Commit Graph

866 Commits

Author SHA1 Message Date
Axel Dörfler
20a6e5473b Renamed RESERVED_REGION_ID to RESERVED_AREA_ID.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12674 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-15 15:06:57 +00:00
Axel Dörfler
ccc8865ba2 Added an additional flag B_OVERCOMMITTING_AREA (currently to be specified
along the protection flags).
Changed the handling of B_STACK_AREA types and anonymous vm_areas: now
every area can overcommit if B_OVERCOMMITTING_AREA was specified.
B_STACK_AREA areas are still automatically overcommitting, but
B_KERNEL_STACK_AREA areas no longer.
vm_store_anonymous_noswap.c now only tests for guard pages if there were
any specified which is only done for B_STACK_AREA areas.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12673 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-15 15:03:44 +00:00
Axel Dörfler
d5b04e50f8 First step into a new block allocation strategy for the block_cache
(right now, it's still malloc/free, just encapsulated in an allocator class).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12662 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-13 18:18:28 +00:00
Axel Dörfler
6094d89f2f Merged branches/developer/axeld/driver_recognition changed r12307:12637 into trunk.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12638 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-12 03:27:44 +00:00
Axel Dörfler
d4112f6bc5 Applied some changes suggested by mmu_man, more to come, though:
- has_signals_pending() is not declared in Be headers, and it isn't declared in
  our KernelExport.h anymore, too
- removed snooze_etc() from KernelExport.h, as it's already defined in OS.h
  (and really exported by libroot.so).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12506 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-29 11:41:12 +00:00
Axel Dörfler
b20667b35b {install|remove}_io_interrupt_handler() now correctly handle the B_NO_ENABLE_COUNTER flag.
Lots of cleanup:
- moved B_NO_ENABLE_COUNTER flag definition out of int.h to KernelExport.h, as it's
  described in the BeBook (although it's probably not really used that often :))
- int.c no longer has any platform dependent code (+ 0x20 on interrupt numbers is gone);
  it's now entirely handled in the arch/x86/ section.
- the io_vectors[] is now statically initialized, instead of allocated from the heap
- removed {install|remove}_interrupt_handler(); they weren't that useful, arch_smp_init()
  is now calling install_io_interrupt_handler() correctly instead
- introduced a new arch_int.h header file that currently contains NUM_IO_VECTORS only
  (though on x86, it also has ARCH_INTERRUPT_BASE == 0x20).
- changed the return type from {install|remove}_io_interrupt_handler() from "long" to
  "status_t"
- rearranged and cleaned the PIC initialization code, made the PIC code more prominent
- changed comments that talk about a non existing 8239 (the PIC chip is actually 8259)
- moved arch/x86/interrupts.h to the source directory, as it's not used outside
- added BeOS compatible interrupts_enabled() function, that should replace our
  equivalent (and private) are_interrupts_enabled()


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12477 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-27 01:08:35 +00:00
Axel Dörfler
3e15f83d9e Added a BenaphoreLocker.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12380 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-13 22:40:48 +00:00
Axel Dörfler
ef2b38e7a9 Added a simple ring buffer implementation to be used by the mouse
and keyboard drivers, as well as pipefs.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12357 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-13 12:57:42 +00:00
Axel Dörfler
f80b1fa5b5 Moved the kernel_startup variable declaration from int.h to kernel.h (it's defined in main.c).
Some cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12327 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-12 06:09:13 +00:00
Axel Dörfler
219dacab3c Changed our read link syscall and FS interface call to make it easily possible to be POSIX compliant.
Also changed readlink() to be POSIX compliant with those changes.
"ls -l" does now resolve links properly again (the new coreutils version outlined the problems).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12263 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-06 16:07:10 +00:00
Axel Dörfler
bc440dcb46 No longer used.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12253 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-05 14:09:08 +00:00
Axel Dörfler
f05e261fd7 The VM can now ask the platform dependent part if it supports a specified protection.
create_area() and friends should fail if it's not supported.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12248 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-05 13:50:37 +00:00
Ingo Weinhold
8e26b085e5 Fixed double fault handler. Personally I disclaim all responsiblity
for these changes. I was mostly just staring in amazement at the screen
while Axel and Thomas were discussing IA32 internals. A particularly
fascinating moment was when Thomas produced the cause of a bug we had
been trying to track down for hours off the top of his head (of course
iret behaves specially when the NT bit is set :-). His slowness must be
excused though, since he hadn't slept for more then 30 hours. ;-)

The code doesn't wholeheartedly deal with multi-processor machines yet.
Axel will certainly do some cleanup...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12239 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-04 21:43:47 +00:00
Axel Dörfler
e5b0e0b5e3 Changed the set_segment_descriptor()'s usage of the limit/granularity
flag. Now, it will choose how to set the granularity by evaluating the
limit.
This call was actually already used this way in the kernel, so that
the TLS and TSS segments were much too large (harmless but incorrect).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12231 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-04 14:34:18 +00:00
Axel Dörfler
9d06770cdc The iframe stack is now in a special structure iframe_stack.
Introduced a gBootFrameStack that is used until the first thread structure
is available - this allows stack crawls and useful register dumps during
early startup. Could also be solved differently by making sure there is
always a thread structure installed in %dr3 (ie. the boot thread would
get a static thread structure instead of a static iframe stack only).
This might be a better solution as i386_handle_trap() would no longer
need to check for an existing thread structure.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12230 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-04 14:13:25 +00:00
Axel Dörfler
edb5566393 Fixed struct tss; there is no ss3/sp3.
Moved ptentry/pdentry to arch_vm_translation_map.c and renamed them to
page_table_entry and page_directory_entry.
Fixed a race condition that happened when memory was remapped (which
can currently happen because lock_memory() does not work correctly, and
there might be other conditions as well, like certain vm_store fault
handlers). Now, page table and directory entries are updated atomically.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12229 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-04 14:07:24 +00:00
Axel Dörfler
d305ab35ac Added the get_boot_item() call similar to what BeOS exports (have a look at
the APM driver to see it at work).
The frame buffer console now creates such a boot item to give a potential
VESA driver access to the boot frame buffer configuration.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12221 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-01 15:09:09 +00:00
Axel Dörfler
2d7ad656ec Added "Disable IDE DMA" safemode option.
MenuItem::SetData() now asks for a const parameter.
The safemode menu options now set their MenuItem::Data() to the safemode option string.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12191 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-31 15:16:09 +00:00
Ingo Weinhold
d832aa7efc We must just the same naming as in DiskDeviceTypes.cpp for the intel partition types, since the implementation relies on it.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12186 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-31 11:22:02 +00:00
Axel Dörfler
9f90fa0e3a Introduced new B_KERNEL_AREA_FLAGS and B_USER_AREA_FLAGS that can be used
instead B_KERNEL_PROTECTION and B_USER_PROTECTION.
Unlike before, B_USER_CLONEABLE_AREA is now only in B_KERNEL_AREA_FLAGS,
but no longer in B_KERNEL_PROTECTION. This fixes a couple of problems
when B_USER_CLONEABLE_AREA was defined without specifing read/write
access.
PAGE_PRESENT|MODIFIED|ACCESSED are in the same "namespace" as the
protection flags, and therefore, shouldn't overlap.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12154 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-30 06:34:17 +00:00
Ingo Weinhold
85001a7cc6 * Fixed checking for DR6 bits after a debug exception (we were and'ing
with the bit number, not the respective mask).
* Added a small hack to allow single stepping to work in qemu.
  Apparently the BS bit in DR6 is not set when the debug exception
  is handled. So we always assume that a single step event occurred,
  when we couldn't recognize any other event, if the hack is enabled.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11998 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-25 18:48:51 +00:00
Ingo Weinhold
3eae1fea40 * Added support for debugging through exec*().
* Added initialization function. Currently only need to init the
  single step hack for qemu.
* Fixed a deadlock when the nub thread destroyed the debug info. It was
  waiting for itself.
* Moved the filling in the origin info of the debug messages into
  thread_hit_debug_event_internal(). No need for code duplication.
* Writing to user memory can now be partial. We also change the area
  protection, if it wasn't writable. Necessary for setting software
  breakpoints.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11996 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-25 18:40:07 +00:00
Ingo Weinhold
1cebd061c3 Added delete_select_sync_pool() to clean up.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11928 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-20 22:07:29 +00:00
Ingo Weinhold
8af41139d5 Added default constructor. Useful in combination with SetTo().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11924 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-20 21:59:51 +00:00
Axel Dörfler
1ff0923db6 Removed the old (and nowadays unused) addons directory and related headers.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11915 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-19 02:35:40 +00:00
Axel Dörfler
52fe8bf7a8 Minor header cleanup: moved some headers to better matching directories,
removed unused headers. Adapted sources to still compile with the new
header locations.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11913 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-19 01:58:05 +00:00
Axel Dörfler
74b043d98d Removed execute property that was set accidently (since CVS days).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11896 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-18 01:50:45 +00:00
Axel Dörfler
9391dd214d Fixed broken handling of the new file_descriptor::open_count across
team boundaries; if you didn't actually call close() from within the
application, the close-hook of the file system was never called.
Also, you could close files of other teams (ie. invoke close on a
shared file descriptor).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11892 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-18 01:24:11 +00:00
Axel Dörfler
34e92cad76 Added and implemented new system calls switch_sem() and switch_sem_etc(); even if
they are public now, they might become private later on.
It's almost the same as acquire_sem() but allows you to release another semaphore
atomically. This makes condvar implementations and the like very simple to do.
Added B_CHECK_PERMISSION flags to the user calls, although it's not honored yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11887 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-17 22:35:00 +00:00
Ingo Weinhold
63531836b9 * Added a small private API (<fs/select_sync_pool.h>) to support FSs
and drivers that need to provide special select() support with
  managing select notification information.
* Renamed vfs_select.c to *.cpp and fixed the resulting C++ compiler
  errors. Added tracing macros.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11886 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-17 21:27:01 +00:00
Ingo Weinhold
d49f1b87a0 We were handling closing of file descriptors incorrectly. The close_*()
and free_*_cookie() hooks of the underlying FS were always called
together when the reference count of the FD dropped to zero. When
blocking operations (reading/writing) on the FD were still in progress
this would never happen, though. Now we additionally maintain an open
count and call the close_*() hook when it drops to zero.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11882 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-17 20:25:07 +00:00
Axel Dörfler
a36a94da37 Added the missing clear_caches() function and syscall. Does not yet do anything (which
is perfectly okay on x86 anyway, but should be moved into the arch stuff).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11869 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-17 17:06:56 +00:00
Ingo Weinhold
823f4c5bf4 * Various modifications needed due to the changes in <debugger.h>.
* user_debug_break_or_watchpoint_hit() into separate functions for
  break- and watchpoints. The one for breakpoints gets another parameter
  which indicates whether the breakpoint was a soft- or hardware
  breakpoint. This info is also sent to the debugger.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11714 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-13 23:57:34 +00:00
Ingo Weinhold
20b656f066 * Check the thread debug signal ignore masks before notifying the debugger
of a signal.
* Added sigaction_etc(). It's just a sigaction() for which the thread
  in question can be specified.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11704 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-12 21:45:49 +00:00
Ingo Weinhold
293a59b0e9 * The debug_thread_info records now, which signals the debugger wishes
not to be notified.
* Added debugger commands for setting/getting of thread signal ignore
  masks and signal handlers.
* Renamed user_debug_fault_occurred() to a more correct
  user_debug_exception_occurred(). It no longer sends a `stopped' message,
  but the new one dedicated to exceptions. Additionally the number of the
  signal is supplied that will be sent, when the thread continues (without
  indicating to ignore the event).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11703 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-12 21:43:35 +00:00
Ingo Weinhold
0dd3a50bb3 _user_load_image() has a flags parameter now. Added a new structure team_loading_info, which is referenced by the team structure while the team is being loaded..
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11695 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-12 15:11:08 +00:00
Ingo Weinhold
3a96ba0bed Added _user_image_relocated() and _user_loading_app_failed().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11693 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-12 15:05:12 +00:00
Ingo Weinhold
7884e8986b * _kern_load_image() has a `flags' parameter now.
* Added _kern_image_relocated() and  _kern_loading_app_failed(), which
  are invoked by the loader to provide the kernel with more info.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11689 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-12 14:58:39 +00:00
Axel Dörfler
3c75dcf982 Removed team::user_env_base; it's no longer needed.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11673 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-10 23:08:16 +00:00
Axel Dörfler
8e6c95bcce Removed setenv()/getenv() syscalls - env is now changed on the heap.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11671 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-10 23:04:48 +00:00
Ingo Weinhold
2eece8633c * Added support for debugger handover.
* Implemented _user_wait_for_debugger().
* Reworked a few bits to ensure that after a remove_team_debugger() or
  after requesting a debugger handover the debugger doesn't get any more
  messages.
* When the debugger is removed or dies, the debugged threads should now
  cleanup their debug info and continue, instead of waiting at their
  debug port forever.
All the new features are not tested. Will happen, when gdb will be
debugged.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11664 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-10 22:04:27 +00:00
Ingo Weinhold
6bbfd2627b New syscall _kern_wait_for_debugger().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11635 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-09 22:46:31 +00:00
Ingo Weinhold
2562e5185c Command B_DEBUG_MESSAGE_GET_WHY_STOPPED supports a reply port now.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11633 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-09 22:05:43 +00:00
Axel Dörfler
db75a08b98 Solved the big mystery in Ingo's life: in C, func(); and func(void); is not the same.
This fixes the "missing prototype" warnings.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11627 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-09 01:42:37 +00:00
Ingo Weinhold
5939c4d7a9 Added functions allocate_thread_id() and peek_next_thread_id() and a
threadID parameter to spawn_kernel_thread_etc(). It's now possible to
set the ID of a new thread. Used in team.c to make team ID and the ID of
the main thread equal.

Fascinatingly the two added functions prompt my compiler to issue
`missing prototype' warnings, although those are obviously there. It would
be nice if someone could solve that riddle.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11621 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-08 18:16:16 +00:00
Axel Dörfler
8be9e1dbae Added empty arch_user_debugger.h header.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11556 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-03 06:11:08 +00:00
Ingo Weinhold
935486a09f Added some more EFLAGS bits.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11533 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-02 14:51:48 +00:00
Ingo Weinhold
86cc722477 * DR3 is used for holding the pointer to the current struct thread*, so
we only have 3 debug registers available for break-/watchpoints.
* Added definitions for debug status register DR6. Reordered DR7 defs to
  ascending order. Added definitions for the EFLAGS flags we need.
* Added arch_thread_debug_info structure and related definitions.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11525 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-02 00:05:02 +00:00
Ingo Weinhold
98b14f8a6a * Made i386_get_current_iframe() static again, since it wasn't what was
needed to get the topmost user iframe. Added i386_get_user_iframe() for
  exactly that purpose.
* Added reinitialization of user debugging for the new thread when
  switching the context.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11523 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-01 23:56:52 +00:00
Ingo Weinhold
c8d7534e5d * Made C++ save.
* Made the parameter for restoring the FPU state const.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11522 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-01 23:52:09 +00:00
Ingo Weinhold
00a2b607d8 Added functions for clearing/destroying the architecture specific thread
debug info.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11521 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-01 23:49:20 +00:00
Ingo Weinhold
ae7c619aae * Added architecture specific structure to thread_debug_info.
* Added event callbacks for break- and watchpoints and single stepping.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11520 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-01 23:47:59 +00:00
Ingo Weinhold
8ae64a82eb x86 specific user debugging support definitions.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11508 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-28 00:44:41 +00:00
Ingo Weinhold
dd07f6001d * Added functions for clearing/destroying the architecture specific team
debug infos.
* Added function for setting the CPU state.
* Added functions for setting break-/watchpoints.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11507 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-28 00:43:43 +00:00
Ingo Weinhold
a7ad39fe09 * New locking strategy for the team debug info. It's no longer protected
by the team lock, but by a lock in the structure. This is necessary
  since we can't acquire the team lock while thread switching, for then the
  thread lock is already held.
* Added support for single stepping and break-/watchpoints.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11503 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-28 00:34:06 +00:00
Ingo Weinhold
782c98afd9 * Added KILL_SIGNALS, a signal mask for SIGKILL + SIGKILLTHR.
* Removed SIGKILLTHR from BLOCKABLE_SIGS.
* Made header C++ safe.
* Added function is_kill_signal_pending(), returning true, if a
  SIGKILL[THR] is pending for the current thread.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11487 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-25 14:16:07 +00:00
Ingo Weinhold
e988d66022 * Added B_TEAM_DEBUG_DEFAULT_FLAGS and B_THREAD_DEBUG_DEFAULT_FLAGS for
convenience.
* Added/implemented callbacks for almost all missing debug events (team,
  thread, image creation/deletion, exceptions/faults, signals).
* The debugger can now specify how to deal with the event that stopped an
  event (ignore or handle signals, exceptions/faults).
* Implemented B_DEBUGGED_THREAD_GET_WHY_STOPPED debugger message.
* The cpu_state is now passed to the debugger with
  B_DEBUGGER_MESSAGE_THREAD_STOPPED notifications.
* Completed _user_debugger() implementation.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11474 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-24 16:07:19 +00:00
Ingo Weinhold
fc0eb1b266 Prevent cyclic inclusion.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11473 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-24 15:53:12 +00:00
Ingo Weinhold
05916979f9 Export i386_get_current_iframe() so it can be used in arch_user_debugger.cpp.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11472 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-24 15:49:41 +00:00
Ingo Weinhold
98dbeb36df Added note to keep struct iframe in sync with the struct cpu_state.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11471 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-24 15:47:54 +00:00
Ingo Weinhold
c7eab67fe1 Architecture specific debugger interface.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11469 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-24 15:44:48 +00:00
Axel Dörfler
9b0f912d96 Added header for the frame buffer console module. It's here because it
will also get syscall that the app_server has to call in order to update
the frame buffer configuration.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11352 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-12 03:50:49 +00:00
Axel Dörfler
f5a934c950 Added console_module_info structure to be used by console modules like
frame buffer console and VGA text.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11351 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-12 03:48:54 +00:00
Ingo Weinhold
7d4d6d35c0 Export an array of static syscall infos generated by gensyscalls.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11340 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-11 04:54:35 +00:00
Axel Dörfler
ab78c7cbc5 Added partition type constants for HFS/HFS+ file systems.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11332 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-11 03:11:19 +00:00
Axel Dörfler
90bce836e0 Changed the way user/kernel time is tracked for threads. Now, thread_at_kernel_entry()
and thread_at_kernel_exit() are always called for userland threads at the appropriate
situation (note, I've renamed those from *_atkernel_*).
The timing should be more accurate this way, and the thread::last_time_type field
is no longer needed: all interrupts are now added to the kernel time (where the
time is actually spent).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11331 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-11 03:10:21 +00:00
Ingo Weinhold
032fea39cb Added userland debugging support structures to thread and team structures.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11315 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-10 03:00:52 +00:00
Ingo Weinhold
f19279abda Danger! The size of empty structures differs between C and C++, so we have to put something in, if we want to use them from both.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11314 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-10 02:59:37 +00:00
Ingo Weinhold
44ed1270a3 Added debugging related syscalls.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11311 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-10 02:55:02 +00:00
Ingo Weinhold
1ec1e1185b handle_signals() now takes a pointer to a cpu_state, so that after restoring and re-disabling interrupts the state can be propagated back to the caller.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11309 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-10 02:49:41 +00:00
Ingo Weinhold
bc797a9ee5 The beginnings of userland debugger support. Currently basically only what is needed for strace is implemented.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11308 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-10 02:47:46 +00:00
Axel Dörfler
d12de9209a Added some more convenience VFS calls (vfs_stat_vnode(), and vfs_get_vnode_name()).
Removed *_create() and *_create_entry_ref() syscalls - they are now handled by
*_open() and *_open_entry_ref() calls which get another parameter for the permissions.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11204 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-02 06:20:00 +00:00
Axel Dörfler
76017250df Added some more and better cache notifications.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11203 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-02 06:17:58 +00:00
Ingo Weinhold
164d84bb10 Switched to new DoublyLinkedList class.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11193 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-02 02:35:16 +00:00
Ingo Weinhold
f42f300bd5 Work around a gcc bug: A private typedef in a base class can class with an equal identifier in a derived class.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11192 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-02 02:31:06 +00:00
Ingo Weinhold
b0f7c84522 Switched to new DoublyLinkedList class.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11191 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-02 02:19:23 +00:00
Ingo Weinhold
50d68edcf4 It's fun to rename functions in templatized code. You only realize, that you missed some, when that specific part is instantiated.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11190 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-02 02:12:35 +00:00
Ingo Weinhold
2cfdb0ed38 * Added DoublyLinkedListMemberGetLink class which directly accesses the
link member in the element class. Usually more comfortable for structs.
* Added Add() method as synonym for Insert().
* Made fGetLink member static to save memory in objects using it.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11188 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-02 01:48:43 +00:00
Ingo Weinhold
297ffaeb84 Appended the new DoublyLinkedList implementation to DoublyLinkedList.h. The old implementation will go, when all the places where it is used have been adjusted.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11185 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-02 01:14:47 +00:00
Ingo Weinhold
244f03dc1c * Moved the autolocking code for recursive lockers to <util/AutoLock.h>.
* Added resolve_mount_point_to_volume_root() version for external use
  (by the node monitor).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11159 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-30 16:11:46 +00:00
Ingo Weinhold
831841e1c0 Moved generic autolocking code to <util/AutoLock.h>.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11158 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-30 16:09:57 +00:00
Ingo Weinhold
b6933d8acc Moved generic auto locking code out of
<disk_device_manager/KDiskDeviceUtils.h> into <util/AutoLock.h>.
Added instantiations for recursive locks (moved from vfs.cpp) and
mutexes.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11157 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-30 16:09:06 +00:00
Ingo Weinhold
1fa9da350b Removed obsolete struct.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11143 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-30 01:11:33 +00:00
Ingo Weinhold
4a24ce3652 An alternative doubly linked list implementation which is far more complete and usable.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11138 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-30 00:42:56 +00:00
Axel Dörfler
14771b1547 Added _kern_transfer_area() syscall.
Added team_id parameter to vm_create_aspace().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11083 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-27 07:06:49 +00:00
Axel Dörfler
f1a2f39517 Added arch_rtc_init() function prototype.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11074 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-26 18:28:40 +00:00
Ingo Weinhold
c277ab01e6 Make the compiler happy. Shadowing super class methods with different signature is a very annoying C++ feature.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11069 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-26 14:57:35 +00:00
Ingo Weinhold
ea69d9d35f Moved the kMessageHeaderMagic constant into the class. Made BMessage a friend of KMessage.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11059 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-26 02:10:42 +00:00
Ingo Weinhold
0859d5e9ae Added B_USER_CLONEABLE_AREA to the kernel area protection mask.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11049 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-25 22:56:31 +00:00
Ingo Weinhold
647bed8f15 Added clarifying comment.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11024 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-25 14:47:22 +00:00
Axel Dörfler
f3cadd05dd Improved header - struct kernel_args was only defined in arch headers.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11019 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-25 14:24:01 +00:00
Axel Dörfler
dd5857c283 Added devfs_publish_directory() prototype.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11016 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-25 02:37:08 +00:00
Ingo Weinhold
fbca78bb8b Added messaging service syscalls.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10993 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-24 01:22:51 +00:00
Ingo Weinhold
244ddcf058 Added _user_unregister_messaging_service(). Fixed second send_message() proto.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10991 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-24 01:19:03 +00:00
Ingo Weinhold
59b9b48bb3 Added a service that will be responsible for sending messages from kernel
to userland applications. A userland server (probably the registrar) will
register as the server responsible for delivering the messages. The
messages are passed to it via shared memory.

The advantage over sending the messages directly will be, that they won't
need to be dropped, if the receiver port is temporarily full.

Currently only the kernel side is implemented. Completely untested yet.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10983 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-23 19:54:19 +00:00
Ingo Weinhold
e81d2d2645 Added missing headers.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10982 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-23 19:43:32 +00:00
Ingo Weinhold
c3a3ddf246 Added KMessage, a data container pretty much like BMessage, but
append-only and hence has very compact storage and a comparatively small
footprint implementation. Can be used for kernel->userland messaging.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10958 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-22 19:19:36 +00:00
Axel Dörfler
a829700f98 Added missing arch_system_info.h header.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10911 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-20 18:00:33 +00:00
Axel Dörfler
dca263620a Improved headers, updated license, made C++ safe.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10909 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-20 17:52:06 +00:00
Ingo Weinhold
9a6c828556 The return value of _user_read_port_etc() is ssize_t. Reported by Gert van Valkenhoef.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10871 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-19 14:13:44 +00:00
Axel Dörfler
28d9360f57 Removed no longer used SYS_MAX_* constants (we have B_*_NAME_LENGTH for this).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10841 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-18 17:18:01 +00:00
Axel Dörfler
f43c430864 No longer used.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10837 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-18 16:46:01 +00:00
Axel Dörfler
321231a056 Added prototype for probe_for_device_type().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10832 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-18 16:13:27 +00:00
Axel Dörfler
ceba105306 Added function prototypes for the kernel private load_module() and unload_module() calls.
Made the header C++ safe.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10820 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-18 02:34:00 +00:00
Axel Dörfler
6de263b12e This can be useful at other places as well (originally came from the
BFS implementation).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10819 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-18 02:31:56 +00:00
Axel Dörfler
aedf4f4358 Changes because of renaming various data structures (pnp_node -> device_node, ...).
Also renamed children_next|prev to siblings_next|prev as I was confused by the former.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10671 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-11 23:23:20 +00:00
Axel Dörfler
3278ab8475 Made header C++ safe. Added new function prototype for arch_dbg_con_init_settings().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10638 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-10 07:43:48 +00:00
Axel Dörfler
0d4ea07bd7 Added driver_settings support to the kernel_args structure.
The driver settings are put into the kernel_args memory section and
copied on kernel startup.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10635 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-10 07:36:08 +00:00
Axel Dörfler
4b0c008cc5 Added some definitions for the generic syscalls. Cache modules should currently
be located in the "file_cache" directory - this might or might be changed later.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10602 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-07 00:56:50 +00:00
Jérôme Duval
5622a2e2c5 added get_rtc_info, needed in the kernel for services which use local timestamps such as the dos filesystem
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10463 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-15 09:23:50 +00:00
Axel Dörfler
dbef8d930c As suggested by Ingo, the "subsystem" parameter is now a string. That allows
modules to use their module name directly.
Also introduced a whole range of reserved syscall functions in case we want
to add some more.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10458 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-14 17:09:06 +00:00
Axel Dörfler
b793d2a2bc Cleaned up the disk device manager syscalls to look like the rest.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10457 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-14 17:05:56 +00:00
Axel Dörfler
2fe71062b7 Renamed the semaphore syscalls to the new scheme (_kern_ instead of sys_).
Small cleanup.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10453 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-14 16:06:34 +00:00
Axel Dörfler
c3c3d22f64 Implemented a generic syscall mechanism.
Minor cleanup in syscalls.h.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10451 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-14 15:46:53 +00:00
Axel Dörfler
c2c20b7848 Incorporated some code from NewOS to set up a double fault handler.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10444 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-14 01:46:46 +00:00
Axel Dörfler
97dda329ed Some header work to reduce dependencies. Also fixes the debug build.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10434 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-13 22:22:45 +00:00
Axel Dörfler
5c143f85ad cache_node_closed() and *_opened() now accept a vm_cache_ref as first
parameter instead of a void pointer.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10433 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-13 22:21:51 +00:00
Axel Dörfler
d786bd1324 Renamed vfs_get_vnode() to vfs_lookup_vnode() as it doesn't grab a ref to the node.
Added new vfs_get_vnode() that actually grabs such a ref.
vfs_get_vnode_cache() now fills a vm_cache_ref instead of a void pointer.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10430 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-13 22:07:27 +00:00
Axel Dörfler
c00c141557 vm_create_vnode_cache() now fills a vm_cache_ref instead a void pointer.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10427 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-13 22:04:26 +00:00
Axel Dörfler
21bf7339b1 Moved B_KERNEL_{READ|WRITE_AREA} from vm_types.h to KernelExport.h.
Small header cleanup.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10426 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-13 22:01:26 +00:00
Axel Dörfler
dfb71e0444 Added a query length parameter to _kern_open_query() - it's much easier to
do these things in userland.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10397 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-12 20:33:58 +00:00
Axel Dörfler
fafd79e5c1 Added a function to allocate a non-continuous page run.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10396 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-12 20:33:01 +00:00
Axel Dörfler
68b54c0db9 Introduced new arch_vm.h header.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10385 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-10 18:48:31 +00:00
Axel Dörfler
c44645aa42 vm.h was not used anywhere.
Introduced new arch_vm.h ("public" arch headers have the arch_ prefix).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10384 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-10 18:43:26 +00:00
Axel Dörfler
a16bf97a7d Added preliminary support for cache modules.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10334 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-01 07:35:20 +00:00
Axel Dörfler
a32c8f261f Renamed _kern_exit() to _kern_exit_team(), just to avoid any confusion.
Added real _user_exit_team() syscall (it was previously incorrectly mapped
to _user_exit_thread()).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10325 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-01 04:14:55 +00:00
Axel Dörfler
b385f97e3e Added our first x86-only syscall for get_cpuid().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10323 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-01 03:54:23 +00:00
Axel Dörfler
545ecbe86d Extended the get_system_info() mechanism; it now gets info about threads/teams
as well as architecture specific stuff.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10313 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-30 21:06:11 +00:00
Axel Dörfler
a3129fbc3b Added cpu_clock_speed field for now - might either be moved to the main
kernel_args; depending on how it'll be done on PPC.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10311 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-30 20:57:36 +00:00
Axel Dörfler
be505eacf5 Removed all error codes that are not used anymore.
Some of the remaining ones would be candidate for the standard Errors.h.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10308 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-30 18:32:02 +00:00
Axel Dörfler
7028b4da5d Cleanup, made C++ safe, updated license.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10306 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-30 18:17:59 +00:00
Axel Dörfler
50b844ee0b Removed the _user_delete_sem_etc() syscall prototype, as it is no longer present.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10305 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-30 18:10:32 +00:00
Axel Dörfler
4c8e8f2f19 Added "flags" parameter to unmount.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10288 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-29 22:42:01 +00:00
Axel Dörfler
86a48e24ad Got inspired by mmu_man's dmidecode release and added a simple identification
of BIOS32, SMBIOS, and DMI services.
Also implemented a get_bios32_service() function which you can use to get
access to that service (ie. for use by the PCI bus manager).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10286 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-29 20:42:04 +00:00
Jérôme Duval
9b50999cc7 reverted to rtc_boot_time
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10281 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-28 23:23:48 +00:00
Axel Dörfler
e6ef7e58f4 No longer of use.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10262 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-27 12:06:41 +00:00
Axel Dörfler
841093cf3c Removed references to ktypes.h.
aspace_id is now defined in vm_types.h only, as it's only used internally anyway.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10261 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-27 12:05:41 +00:00
Axel Dörfler
04169a304b Added header for additional safemode definitions.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10256 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-26 16:23:49 +00:00
Axel Dörfler
0d96fb1167 Moved _user_system_time() to real_time_clock.c.
Renamed _user_set_tzspecs() to _user_set_timezone().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10252 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-26 15:00:27 +00:00
Axel Dörfler
2080a7c04f Added fields to be able to track the time spent in children and threads
that are already gone.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10250 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-26 14:46:47 +00:00
Axel Dörfler
791fc0bf95 Added _user_shutdown() prototype.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10249 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-26 14:41:53 +00:00
Axel Dörfler
08f58535d9 Added syscalls for get_team_usage_info().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10243 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-25 21:18:54 +00:00
Axel Dörfler
fa2c0f885f Added _kern_get_safemode_option() syscall.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10235 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-25 18:32:51 +00:00
Axel Dörfler
d3d7ec98b6 Moved some time syscalls to the other time related syscalls.
Added _kern_shutdown() syscall.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10232 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-25 17:57:37 +00:00
Axel Dörfler
e3e06dd847 Added new new_fd_etc() call.
Cleaned up included headers.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10220 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-25 02:53:28 +00:00
Axel Dörfler
e0ee16403e Added prototype for vm_cache_write_modified().
Changed size argument of vm_cache_resize() from size_t to off_t.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10200 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-23 03:17:39 +00:00
Axel Dörfler
583e12c489 Added vm_page_write_modified() prototype.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10199 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-23 03:16:10 +00:00
Jérôme Duval
10a832f235 removed fields not needed any more in userland
boot_time is now system_time_offset


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10191 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-23 00:11:33 +00:00
Jérôme Duval
0018ac6a37 added _user_get_tzfilename
renamed rtc_boot_time to rtc_system_time_offset


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10190 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-23 00:10:18 +00:00
Jérôme Duval
6f8c05c381 added _kern_get_tzfilename
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10189 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-23 00:06:49 +00:00
Jérôme Duval
4bbf2e4987 added _user_set_tzfilename
removed set_tzspecs, which was useless; now done in user_set_tzspecs


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10176 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-22 17:05:17 +00:00
Jérôme Duval
d585e91d9d added tzfilename and isGMT fields.
tzfilename is used to keep current timezone filename
isGMT is used to know how to handle rtc clock


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10175 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-22 17:02:01 +00:00
Jérôme Duval
fbf47a381c added _kern_set_tzfilename, used to set global timezone filename and whether clock is GMT
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10174 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-22 16:59:10 +00:00
Jérôme Duval
35bec416bb added timezone_offset and dst_observed fields to real_time_data
added prototypes for set_tzspecs, used for setting these fields


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10132 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-22 00:28:12 +00:00
shatty
a3a80c27cc change vm_address_space to struct vm_address_space
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10063 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-20 23:25:37 +00:00
Axel Dörfler
4cf2317767 Replaced reboot() by arch_cpu_shutdown().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10043 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-19 20:16:20 +00:00
Axel Dörfler
7b380c5b9f Added a comment why debugging kernel stacks doesn't work like one would expect.
Added prototype for new shutdown() function.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10041 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-19 20:13:58 +00:00
Axel Dörfler
6a689590ce Removed unneeded includes of ktypes.h.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10036 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-19 19:40:05 +00:00
Axel Dörfler
9ebc403c77 Renamed KSTACK_SIZE to KERNEL_STACK_SIZE, STACK_SIZE to USER_STACK_SIZE,
MAIN_THREAD_STACK_SIZE to USER_MAIN_THREAD_STACK_SIZE.
Added support for stack overflow debugging: in userspace, the lower (on x86)
4 pages will be used to detect stack overflows. It's disabled for kernel
stacks by default.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10013 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-18 17:49:12 +00:00
Axel Dörfler
704d6e100b Added stack special case to the anonymous store.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10012 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-18 17:46:39 +00:00
Axel Dörfler
99daf65959 Added definitions that describe the stack direction.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10007 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-18 14:43:28 +00:00
Axel Dörfler
4eaf08ab83 Added B_STACK_AREA and B_KERNEL_STACK_AREA protection values.
vm_store::fault() now returns a status_t.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10004 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-18 14:33:13 +00:00
Axel Dörfler
06db250916 vfs_mount_boot_file_system() now also gets the kernel_args.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9964 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-15 20:00:49 +00:00
Axel Dörfler
b193fcc716 Some work on the boot disk identification: the kernel_args structure has
now fields that carry information about the boot disk and partition.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9956 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-15 17:59:15 +00:00
Axel Dörfler
0c3888b965 Add a method to get the partition's file descriptor.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9955 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-15 17:56:55 +00:00
Axel Dörfler
a7e6b6f35b Added prototype for new hash_remove_first() function.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9894 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-10 01:59:09 +00:00
Axel Dörfler
d4f36305b0 Added a comment about the architecture dependency.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9883 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-09 13:34:09 +00:00
Jérôme Duval
78bda9a24d typo
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9882 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-09 12:53:12 +00:00
Axel Dörfler
921c7286c3 Added some missing consts.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9871 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-08 19:23:29 +00:00
Axel Dörfler
a49a5623f1 Got rid of regions - we're now back in area-land.
Renamed vm_area::lock to vm_area::protection to be less confusing - wiring
is still called wiring, though (might be renamed to lock later, as that's
how BeOS calls it).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9858 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-08 14:16:35 +00:00
Axel Dörfler
148a8e0c57 Renamed *_stack_region_id with *_stack_area, also replaced region_id with area_id.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9853 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-08 13:53:34 +00:00
Axel Dörfler
9e78877956 Added the real_time_data structure that extends Jerome's work on the
real time shared page (it contains the boot time offset and the system
time conversion factor for now).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9850 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-08 11:35:00 +00:00
Axel Dörfler
d790daa3cc The status field is no system field; it has to be set by the disk system
(it will be maintained by the system afterwards, though).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9849 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-08 11:29:12 +00:00
Axel Dörfler
c9293f364f vm_get_region_by_id() and vm_put_region() are now private.
Removed vm_find_region_by_name() (superseded by find_area()).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9845 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-08 11:14:32 +00:00
Axel Dörfler
4ce0cb439a The set_read_time_clock() syscall now returns a status_t to be able to
indicate failure.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9803 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-05 16:06:28 +00:00
Axel Dörfler
8665123697 Added empty arch_fork_arg structure.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9800 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-04 16:46:02 +00:00
Axel Dörfler
024b8e7bd1 Relied on ktypes.h, but didn't include it (because on x86, some arch header
did that already).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9795 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-04 15:54:47 +00:00
Axel Dörfler
b38248e108 Fixed a warning in GCC 3.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9794 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-04 15:51:27 +00:00
Ingo Weinhold
90072e721d Always define the symbols needed for basic C++ features. If we link against libgcc.a the symbols from there are simply overridden.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9778 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-03 17:33:17 +00:00
Axel Dörfler
ba44a1e8e1 Changed the way the stores commit their memory: there is no special handling
for temporary memory anymore, it's the store's responsibility to do that
correctly now, and that functionality is reached via the vm_cache using
vm_cache_set_minimal_commitment().
Therefore, the vm_store commit() function now returns a status instead of
the size that could be commited.
Replaced the max_commit mechanism with one that cares about the available
memory, stores can reserve and unreserve such memory. The anonymous_commit()
will now fail in case it could not reserve the needed amount of memory.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9777 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-03 17:24:41 +00:00
Axel Dörfler
424f90aff9 Added prototypes for readv/writev() syscalls.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9766 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-03 14:55:44 +00:00
Axel Dörfler
ec5d706492 SetParent() is now a public function (could be made private again and friend of
add_partitions_for(), though).
The partition now also tracks if it refers to a partitioning system or not.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9745 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-03 02:10:10 +00:00
Axel Dörfler
eef5d24c90 Changed the last argument of _kern_mount() to be a string rather than a void pointer.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9691 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-01 00:25:25 +00:00
Axel Dörfler
65026923e6 Added prototypes for the new devfs_[un]publish_file_device() calls.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9641 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-29 01:41:49 +00:00
Ingo Weinhold
8ae2a1ef21 Include <storage/DiskDeviceDefs.h> instead of <DiskDeviceDefs.h>. So noone including <syscalls.h> needs to explicitly add the private storage kit header dir to the include search path.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9633 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-29 01:36:07 +00:00
Ingo Weinhold
af327271cc Made C-safe. Now no longer declares the syscall prototypes, but the prototypes for the respective _user_*() functions.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9632 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-29 01:33:59 +00:00
Ingo Weinhold
2956802960 Added the DDM syscalls.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9631 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-29 01:27:44 +00:00
Ingo Weinhold
7fb2963ae4 * Added vfs_normalize_path() service call.
* Added resolve_mount_point_to_volume_root() which does what
  resolve_volume_root_to_mount_point() did. IOW the latter one didn't
  do what it advertised.
* Fixed dir_vnode_to_path(). Basically broken due to the broken
  resolve_volume_root_to_mount_point(), but also compared potentially
  unrelated vnode IDs (belonging to different volumes).
* Fixed get_dir_path_and_leaf(). It didn't deal correctly with paths
  ending in '/' (including the root dir).
* fs_mount() does now accept a NULL fsName, getting the FS name from
  the DDM in this case.
* fs_mount() now also supports mounting file images; it lets the DDM
  create a file device for them.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9629 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-28 22:31:43 +00:00
Ingo Weinhold
c06238cbd6 * Reworked publishing/unpublishing of the device. This is now basically
done by (currently not existing) devfs functions.
* Overridden GetMediaStatus() and GetGeometry() to return useful data.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9627 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-28 22:22:04 +00:00
Ingo Weinhold
1e2e4b3c71 Re-added support for file devices.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9626 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-28 22:18:20 +00:00
Ingo Weinhold
cba3b01fdf Added support for path normalization.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9625 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-28 22:16:41 +00:00
Ingo Weinhold
0402530222 Extended Append() to also allow adding parts of path components. Added leaf component manipulation. Now always chop trailing slashes off the path.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9560 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-28 15:09:48 +00:00
Ingo Weinhold
5de8542789 Since the kernel links against libgcc.a and we use some C++ features that cause functions of libgcc.a to be included that use a couple of formerly undefined symbols (stderr, fprintf, abort, debugger) those had to be added to kernel_cpp.cpp. We don't build the kernel utils as static library anymore, since libgcc.a is listed at the end of the link command line and trying to change that would be a bit ugly. For C++ in the boot loader nothing changes.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9554 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-27 22:07:00 +00:00
Ingo Weinhold
92221d2425 KPath is used now where possible.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9549 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-27 21:56:05 +00:00
Ingo Weinhold
3f3f9cb61a Added Unlock() (an nicer sounding alias for Unset()) and Detach() (the lock is kept when the object is destroyed) to AutoLocker.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9547 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-27 21:54:12 +00:00
Ingo Weinhold
1b5f626633 * Changes to use KPath where possible now.
* Made GetMediaStatus() a bit more robust. If the ioctl fails (e.g. if it
  is not implemented as in Thomas' drivers), it gets the device geometry
  and does not fail, if the device is not removable.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9546 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-27 21:52:33 +00:00
Ingo Weinhold
0707c10377 KPartition::GetPath() now uses the new KPath class, which makes it more convenient to use.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9545 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-27 21:48:47 +00:00
Ingo Weinhold
1d5b7e0b23 _user_mount() now has a flags parameter, too.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9544 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-27 21:45:04 +00:00
Ingo Weinhold
ad6059d89f Added missing flags parameter to _kern_mount().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9542 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-27 21:42:13 +00:00
Ingo Weinhold
d68a188e6d Added class KPath. Convenient wrapper for a fixed-sized path buffer.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9541 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-27 21:41:16 +00:00