haiku/headers/private/kernel/arch
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
..
alpha It is accomplished ... 2002-07-09 12:24:59 +00:00
ppc Reworked the exception handling code. The former one ran into the 2006-01-09 03:30:52 +00:00
sh4 Merged changes from branch build_system_redesign at revision 14573. 2005-10-29 16:27:43 +00:00
sparc Removed execute property that was set accidently (since CVS days). 2005-03-18 01:50:45 +00:00
x86 The real_time_data structure contains an architecture specific 2006-01-04 02:17:59 +00:00
cpu.h * We now support the global page feature of x86 processors that prevents 2005-12-14 17:07:37 +00:00
debug_console.h Removed debug/console.c, we no longer need it. frame_buffer_console_init() is now 2005-05-29 16:23:00 +00:00
debug.h Cleanup of the debug stuff, prepared for blue screen debugging. 2005-05-29 13:01:38 +00:00
elf.h Some header cleanups. 2003-05-03 14:12:16 +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
platform.h Reorganized the boot platform dependencies in the kernel a bit. 2006-01-03 16:26:39 +00:00
real_time_clock.h The real_time_data structure contains an architecture specific 2006-01-04 02:17:59 +00:00
smp.h Applied NewOS change 1914: moved APIC setup into the kernel due to a 2004-03-14 22:54:00 +00:00
system_info.h Added our first x86-only syscall for get_cpuid(). 2004-12-01 03:54:23 +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 Prevent cyclic inclusion. 2005-02-24 15:53:12 +00:00
timer.h Replaced timer.h with a cpp safe version. 2004-03-14 21:08:25 +00:00
user_debugger.h Added functions for clearing/destroying the architecture specific thread 2005-03-01 23:49:20 +00:00
vm_translation_map.h - the arch_vm_translation_map.c exported functions now have the arch_ prefix 2004-10-19 23:19:10 +00:00
vm_types.h Preparation for MTRR support, code is completely untested, though. 2005-12-12 17:04:36 +00:00
vm.h The short story: we now have MTRR support on Intel and AMD CPUs (the latter 2005-12-13 16:34:29 +00:00