haiku/headers
Ingo Weinhold 671a2442d9 More work towards making our double fault handler less triple fault prone:
* SMP:
  - Added smp_send_broadcast_ici_interrupts_disabled(), which is basically
    equivalent to smp_send_broadcast_ici(), but is only called with interrupts
    disabled and gets the CPU index, so it doesn't have to use
    smp_get_current_cpu() (which dereferences the current thread).
  - Added cpu index parameter to smp_intercpu_int_handler().
* x86:
  - arch_int.c -> arch_int.cpp
  - Set up an IDT per CPU. We were using a single IDT for all CPUs, but that
    can't work, since we need different tasks for the double fault interrupt
    vector.
  - Set the per CPU double fault task gates correctly.
  - Renamed set_intr_gate() to set_interrupt_gate and set_system_gate() to
    set_trap_gate() and documented them a bit.
  - Renamed double_fault_exception() x86_double_fault_exception() and fixed
    it not to use smp_get_current_cpu(). Instead we have the new
    x86_double_fault_get_cpu() that deducts the CPU index from the used stack.
  - Fixed the double_fault interrupt handler: It no longer calls int_bottom to
    avoid accessing the current thread.
* debug.cpp:
  - Introduced explicit debug_double_fault() to enter the kernel debugger from
    a double fault handler.
  - Avoid using smp_get_current_cpu().
  - Don't use kprintf() before sDebuggerOnCPU is set. Otherwise
    acquire_spinlock() is invoked by arch_debug_serial_puts().

Things look a bit better when the current thread pointer is broken -- we run
into kernel_debugger_loop() and successfully print the "Welcome to KDL"
message -- but we still dereference the thread pointer afterwards, so that we
don't get a usable kernel debugger yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32050 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-01 01:53:54 +00:00
..
build Fixing random GCC4 warnings. Mostly missing consts, some parentheses, some braces... Should all be harmless and not change anything. 2009-07-16 02:42:03 +00:00
compatibility/bsd Added a strsep() to our BSD compatibility library. 2009-04-08 10:57:46 +00:00
cpp Since wchar support now works, the wstring typedef should now also be safe. 2009-07-29 14:09:43 +00:00
glibc * merged 32bit-wchar_t branches of buildtools and haiku back into 2009-07-07 10:30:09 +00:00
gnu adding gnu/termcap.h : is a copy of src/libs/termcap/termcap.h 2004-06-01 12:38:47 +00:00
legacy/network setsockopt and getsockopt use int as others functions 2006-06-23 14:19:11 +00:00
libs Clean up. Renamed spool_file to spoolFile. 2009-07-11 14:37:11 +00:00
os * Fully switch to the Haiku message format so that it is also used for on-disk 2009-07-31 22:19:36 +00:00
posix Add missing definition for wcsstr. This was preventing clucene from building with wide chars enabled. 2009-07-31 22:16:58 +00:00
private More work towards making our double fault handler less triple fault prone: 2009-08-01 01:53:54 +00:00
tools * fix gcc4 build of cppunit library by explicitly spelling out std:: in 2009-05-02 19:04:52 +00:00