diff options
author | Roland McGrath <roland@gnu.org> | 1999-11-13 23:52:38 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 1999-11-13 23:52:38 +0000 |
commit | 0bd019279b29e72861ba57e6101afa5e6dafb3a5 (patch) | |
tree | 9c89dfd0f45958c30c82d3a5097cf5feaf96bd95 /sysdeps/mach/hurd/i386/intr-msg.h | |
parent | 28f08f3fd1c20c4352746839c242d3a7776041a6 (diff) | |
download | glibc-0bd019279b29e72861ba57e6101afa5e6dafb3a5.tar.gz glibc-0bd019279b29e72861ba57e6101afa5e6dafb3a5.tar.xz glibc-0bd019279b29e72861ba57e6101afa5e6dafb3a5.zip |
* Versions.def (libc): Move GLIBC_2.2 dependency from GLIBC_2.1.1 to
GLIBC_2.1.3. 1999-11-13 Roland McGrath <roland@baalperazim.frob.com>
Diffstat (limited to 'sysdeps/mach/hurd/i386/intr-msg.h')
-rw-r--r-- | sysdeps/mach/hurd/i386/intr-msg.h | 32 |
1 files changed, 22 insertions, 10 deletions
diff --git a/sysdeps/mach/hurd/i386/intr-msg.h b/sysdeps/mach/hurd/i386/intr-msg.h index a12b2f2174..d862d5842a 100644 --- a/sysdeps/mach/hurd/i386/intr-msg.h +++ b/sysdeps/mach/hurd/i386/intr-msg.h @@ -83,23 +83,35 @@ struct mach_msg_trap_args }; -static inline mach_port_t -MSG_EXAMINE (struct i386_thread_state *state, int *msgid) +static inline int +MSG_EXAMINE (struct i386_thread_state *state, int *msgid, + mach_port_t *rcv_name, mach_port_t *send_name, + mach_msg_option_t *option, mach_msg_timeout_t *timeout) { const struct mach_msg_trap_args *args = (const void *) state->uesp; mach_msg_header_t *msg; - mach_port_t send_port; if (_hurdsig_catch_memory_fault (args)) - return MACH_PORT_NULL; + return -1; msg = args->msg; + *option = args->option; + *timeout = args->timeout; + *rcv_name = args->rcv_name; _hurdsig_end_catch_fault (); - if (_hurdsig_catch_memory_fault (msg)) - return MACH_PORT_NULL; - send_port = msg->msgh_remote_port; - *msgid = msg->msgh_id; - _hurdsig_end_catch_fault (); + if (msg == 0) + { + *send_name = MACH_PORT_NULL; + *msgid = 0; + } + else + { + if (_hurdsig_catch_memory_fault (msg)) + return -1; + *send_name = msg->msgh_remote_port; + *msgid = msg->msgh_id; + _hurdsig_end_catch_fault (); + } - return send_port; + return 0; } |