diff options
author | neal <neal> | 2007-11-23 13:39:36 +0000 |
---|---|---|
committer | neal <neal> | 2007-11-23 13:39:36 +0000 |
commit | 063d8339dfe16b6035375a00f3a6313f2dff083c (patch) | |
tree | 6e37ef358183bf00e277da95f46f2586f597bd64 /libhurd-mm/exceptions.c | |
parent | 2b62e6480aaa4c3dcb73f45fa4977d6b2e7de080 (diff) |
/
2007-11-23 Neal H. Walfield <neal@gnu.org>
* README: Add note that Pistachio must be compiled with the Pager
ExchangeRegisters configure option enabled.
hurd/
2007-11-23 Neal H. Walfield <neal@gnu.org>
* thread.h: Include <hurd/addr-trans.h>.
(HURD_EXREGS_EXCEPTION_THREAD): New definition.
(trans_exregs): Take two additional arguments for determining how
to copy the aspace address translation bits. Update callers.
(thread_stop): New function.
* rpc.h (RPC12_4): New macro.
(RPC13_4): Likewise.
* exceptions.h (exception_handler_init): New declaration.
(exception_handler_loop): Likewise.
libhurd-mm/
2007-11-23 Neal H. Walfield <neal@gnu.org>
* exceptions.c (exception_thread): Rename from this...
(exception_handler_loop): ... to this. Update caller.
* Makefile.am (libhurd_mm_a_SOURCES): Remove exceptions.h.
* exceptions.h: Remove file.
viengoos/
2007-11-23 Neal H. Walfield <neal@gnu.org>
* thread.h (thread_exregs): Take two additional arguments, a
cap_addr_trans structure and a corresponding flags. Update users.
* thread.c (thread_commission): Don't start thread THREAD.
(control_to_string): New function.
(thread_exregs): Take two additional arguments, a cap_addr_trans
structure and a corresponding flags. Use them when copying a
supplied capability into the address space slot of the thread.
Support the HURD_EXREGS_EXCEPTION_THREAD flag. Improve error
detection and debugging out.
* server.c (server_loop): Let a void address for the activity slot
imply the caller's current activity. Take two additional
arguments, a cap_addr_trans structure and a corresponding flags
argument. Pass them to thread_exregs.
* viengoos.c (system_task_load): Set THREAD_ACTIVITY. Don't call
thread_commission. Instead, call thread_exregs.
ruth/
2007-11-23 Neal H. Walfield <neal@gnu.org>
* ruth.c (main): Don't call rm_object_slot_copy_in to update the
address space slot. Just use rm_thread_exregs. Add test for
pthread library.
* ia32-cmain.c (cmain): If _pthread_init_routine is not NULL, call
it. Otherwise, just call finish directly.
Diffstat (limited to 'libhurd-mm/exceptions.c')
-rw-r--r-- | libhurd-mm/exceptions.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/libhurd-mm/exceptions.c b/libhurd-mm/exceptions.c index ee0fcf3..94f46c2 100644 --- a/libhurd-mm/exceptions.c +++ b/libhurd-mm/exceptions.c @@ -66,8 +66,8 @@ extern struct hurd_startup_data *__hurd_startup_data; } \ }) -static void -exception_thread (void) +void +exception_handler_loop (void) { debug (5, "Exception thread launched (0x%x.%x)", l4_thread_no (l4_myself ()), l4_version (l4_myself ())); @@ -121,15 +121,16 @@ exception_thread (void) } } -static char stack[2 * PAGESIZE] __attribute__ ((aligned(PAGESIZE))); +#define STACK_SIZE (2 * PAGESIZE) +static char stack[STACK_SIZE] __attribute__ ((aligned(PAGESIZE))); void exception_handler_init (void) { /* XXX: This only works for architectures on which the stack grows downward. */ - void *sp = stack + sizeof (stack); + char *sp = (char *) stack + STACK_SIZE; l4_thread_id_t tid = hurd_exception_thread (l4_myself ()); - l4_start_sp_ip (tid, (l4_word_t) sp, (l4_word_t) &exception_thread); + l4_start_sp_ip (tid, (l4_word_t) sp, (l4_word_t) &exception_handler_loop); } |