haiku/headers/private/kernel
Ingo Weinhold 7176dd57e5 Reworked the exception handling code. The former one ran into the
void after turning off BAT for the segment containing itself.
The monster macro for the exception vector code was not really
elegant besides being too long for the 32 byte performance
monitor exception slot. Furthermore wasting three of the SPRG*
registers as cheap scratch memory wasn't that nice either.

We now have a three-step approach: The exception vectors
themselves contain only five instructions which branch to common
code at the beginning of the same physical page. That one sets
up BAT for itself, turns address translation back on and jumps
into the kernel. There we turn off BAT again, dump an iframe,
and enter the actual exception handler (/dispatcher). Upon return
the registers are restored from the iframe and we get back to the
place where the exception occurred.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15881 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-09 03:30:52 +00:00
..
arch Reworked the exception handling code. The former one ran into the 2006-01-09 03:30:52 +00:00
boot Implemented the PPC specific RTC support. We search for an "rtc" 2006-01-04 04:55:04 +00:00
disk_device_manager Fixes that make Haiku build with gcc 4. Mainly out of the following 2005-11-12 23:27:14 +00:00
fs * vfs_init() is now called later in the startup sequence - since no core kernel 2005-12-16 16:11:36 +00:00
platform/openfirmware * Introduced new build system variables 2005-12-30 21:20:07 +00:00
util Made C++ save. 2006-01-07 03:14:02 +00:00
block_cache.h First step into a new block allocation strategy for the block_cache 2005-05-13 18:18:28 +00:00
boot_device.h Moved declaration of gBootDevice into its own header. 2005-12-12 16:06:33 +00:00
boot_item.h The boot item list was not initialized; this was no problem, though, as 2005-06-13 13:01:13 +00:00
cache.h We temporarily need a BeOS compatible cache implementation. 2004-06-08 05:59:53 +00:00
cbuf.h Removed execute property that was set accidently (since CVS days). 2005-03-18 01:50:45 +00:00
console.h Made the header C++ safe. 2005-05-26 09:08:54 +00:00
cpu.h The short story: we now have MTRR support on Intel and AMD CPUs (the latter 2005-12-13 16:34:29 +00:00
debug.h Some work in progress of the MTRR support. Shouldn't do any harm yet :-) 2005-12-13 00:06:52 +00:00
defines.h Removed execute property that was set accidently (since CVS days). 2005-03-18 01:50:45 +00:00
elf32.h For PPC the read/write (==data) segment is actually executable 2005-12-29 01:19:45 +00:00
elf_priv.h Replaced the regions array with the nicer text_region and data_region members. 2004-06-09 02:51:27 +00:00
elf.h Renamed elf_lookup_symbol_address() to elf_debug_lookup_symbol_address() and 2005-08-22 20:35:42 +00:00
faults_priv.h Removed execute property that was set accidently (since CVS days). 2005-03-18 01:50:45 +00:00
file_cache.h The file cache now has another init method that is called after the boot 2005-08-03 17:25:03 +00:00
frame_buffer_console.h Some work in progress of the MTRR support. Shouldn't do any harm yet :-) 2005-12-13 00:06:52 +00:00
gdb.h Removed execute property that was set accidently (since CVS days). 2005-03-18 01:50:45 +00:00
generic_syscall.h As suggested by Ingo, the "subsystem" parameter is now a string. That allows 2004-12-14 17:09:06 +00:00
int.h {install|remove}_io_interrupt_handler() now correctly handle the B_NO_ENABLE_COUNTER flag. 2005-04-27 01:08:35 +00:00
kdevice_manager.h Merged branches/developer/axeld/driver_recognition changed r12307:12637 into trunk. 2005-05-12 03:27:44 +00:00
kdriver_settings.h Added driver_settings support to the kernel_args structure. 2005-01-10 07:36:08 +00:00
kernel_daemon.h Added the kernel_daemon.h header which defines the init function for the 2003-01-26 17:27:42 +00:00
kernel.h Moved the kernel_startup variable declaration from int.h to kernel.h (it's defined in main.c). 2005-04-12 06:09:13 +00:00
kimage.h Added a image_debug_lookup_user_symbol_address() that one day may find symbol names 2005-11-04 17:25:58 +00:00
kmodule.h Added function prototypes for the kernel private load_module() and unload_module() calls. 2005-01-18 02:34:00 +00:00
kscheduler.h Changed the boot procedure a bit. 2005-10-25 16:59:12 +00:00
ksignal.h Changed the signal handling code so that handle_signals() can be called without 2005-10-20 16:56:04 +00:00
ksocket.h It is accomplished ... 2002-07-09 12:24:59 +00:00
ksyscalls.h Removed execute property that was set accidently (since CVS days). 2005-03-18 01:50:45 +00:00
lock.h Removed execute property that was set accidently (since CVS days). 2005-03-18 01:50:45 +00:00
memheap.h Enlarged the kernel heap to 16 MB. 2005-05-26 09:11:30 +00:00
messaging.h Added _user_unregister_messaging_service(). Fixed second send_message() proto. 2005-01-24 01:19:03 +00:00
MessagingServiceDefs.h Removed obsolete struct. 2005-01-30 01:11:33 +00:00
pools.h Removed references to ktypes.h. 2004-11-27 12:05:41 +00:00
port.h We now have a (private) writev_port_etc() call. This could be used to avoid 2005-07-13 23:55:15 +00:00
real_time_clock.h Pulled the conversion between seconds since the epoche and the split up 2006-01-03 17:26:37 +00:00
real_time_data.h The real_time_data structure contains an architecture specific 2006-01-04 02:17:59 +00:00
safemode.h * renamed smp_boot.c to smp.cpp 2005-10-26 22:57:13 +00:00
sem.h Removed execute property that was set accidently (since CVS days). 2005-03-18 01:50:45 +00:00
smp.h * We now support the global page feature of x86 processors that prevents 2005-12-14 17:07:37 +00:00
syscall_process_info.h Added syscalls for various process/group/session related functions. 2004-10-14 14:31:31 +00:00
syscalls.h _kern_get_next_{sem|port}_info() had a wrong argument type for the 2006-01-08 15:34:09 +00:00
sysctl.h Several follow-up changes required by the changes either to the VFS 2004-08-28 20:45:00 +00:00
system_info.h Extended the get_system_info() mechanism; it now gets info about threads/teams 2004-11-30 21:06:11 +00:00
team.h Added a team watching mechanism in the kernel, not yet tested (but at least doesn't cause any harm yet :-)). 2005-08-03 12:00:42 +00:00
thread_types.h Replaced arch/thread_struct.h with arch/thread_types.h, and renamed 2005-12-20 16:07:27 +00:00
thread.h Changed the boot procedure a bit. 2005-10-25 16:59:12 +00:00
timer.h Removed execute property that was set accidently (since CVS days). 2005-03-18 01:50:45 +00:00
tls.h Added another argument parameter for the thread creation code. Helps 2003-04-18 09:21:22 +00:00
user_atomic.h renamed atomic_read() into atomic_get() (since we already have atomic_set(), but not a atomic_write()) 2003-08-31 01:21:56 +00:00
user_debugger.h * Fail, if debug_thread() is invoked for the debug nub thread. 2005-11-03 00:40:36 +00:00
user_runtime.h Made our glue code compatible to BeOS again. IOW executables compiled for Haiku will 2006-01-06 03:48:11 +00:00
vfs.h Moved vfs_bootstrap_file_systems() and vfs_mount_boot_file_system() out of vfs.cpp 2005-10-17 14:01:04 +00:00
vm_address_space.h Separated vm_address_space.h from vm.h. 2005-12-20 15:54:45 +00:00
vm_cache.h * Fixed the strange vm_cache_ref reference count mechanism: now, a fresh 2005-12-21 17:00:03 +00:00
vm_low_memory.h Added new function vm_low_memory_state() that returns the current low 2005-12-15 21:30:28 +00:00
vm_page.h * Made vm_alloc_virtual_from_kernel_args() available to other kernel 2006-01-07 17:37:21 +00:00
vm_priv.h Separated vm_address_space.h from vm.h. 2005-12-20 15:54:45 +00:00
vm_translation_map.h Removed execute property that was set accidently (since CVS days). 2005-03-18 01:50:45 +00:00
vm_types.h * vm_page::offset is now called cache_offset and is now an uint32 instead of off_t; 2005-12-21 12:38:31 +00:00
vm.h * vm_page::offset is now called cache_offset and is now an uint32 instead of off_t; 2005-12-21 12:38:31 +00:00