diff options
author | neal <neal> | 2008-05-21 12:18:49 +0000 |
---|---|---|
committer | neal <neal> | 2008-05-21 12:18:49 +0000 |
commit | ff39d190d281d4b5d56c41c7594e7231d8a2045a (patch) | |
tree | 94651f68de57bfe13c76d936c6f1ea92f3fe430f | |
parent | 19479dbbf04b598eb79c7d1c9efbf50eedc9a6ae (diff) |
2008-05-21 Neal H. Walfield <neal@gnu.org>
* thread.h (THREAD_EXCEPTION_PAGE_SLOT): Correctly define to 2.
-rw-r--r-- | hurd/ChangeLog | 4 | ||||
-rw-r--r-- | hurd/thread.h | 16 |
2 files changed, 17 insertions, 3 deletions
diff --git a/hurd/ChangeLog b/hurd/ChangeLog index 5d09a1a..4238604 100644 --- a/hurd/ChangeLog +++ b/hurd/ChangeLog @@ -1,3 +1,7 @@ +2008-05-21 Neal H. Walfield <neal@gnu.org> + + * thread.h (THREAD_EXCEPTION_PAGE_SLOT): Correctly define to 2. + 2008-03-01 Neal H. Walfield <neal@gnu.org> * rpc.h (RPC_SIMPLE_): If the send is interrupted, retry. diff --git a/hurd/thread.h b/hurd/thread.h index 2fb01ce..2aeafd1 100644 --- a/hurd/thread.h +++ b/hurd/thread.h @@ -30,6 +30,7 @@ enum { RM_thread_exregs = 600, RM_thread_wait_object_destroyed, + RM_thread_raise_exception, }; #ifdef RM_INTERN @@ -118,7 +119,7 @@ enum /* The activity the thread is bound to. */ THREAD_ACTIVITY_SLOT = 1, /* Where exceptions are saved. Must be a cap_page. */ - THREAD_EXCEPTION_PAGE_SLOT = 1, + THREAD_EXCEPTION_PAGE_SLOT = 2, }; enum @@ -163,8 +164,6 @@ enum struct hurd_thread_exregs_in { - l4_word_t control; - addr_t aspace; uintptr_t aspace_cap_properties_flags; struct cap_properties aspace_cap_properties; @@ -229,6 +228,17 @@ RPC(thread_wait_object_destroyed, 2, 1, /* Out: */ uintptr_t, return_code); +/* The kernel interprets the payload as a short l4_msg_t buffer: that + is one that does not exceed 128 bytes. */ +struct exception_buffer +{ + char payload[128]; +}; + +RPC(thread_raise_exception, 3, 0, + addr_t, principal, addr_t, thread, + struct exception_buffer, exception_buffer) + #undef RPC_STUB_PREFIX #undef RPC_ID_PREFIX #undef RPC_TARGET |