about summary refs log tree commit diff
path: root/sysdeps/mach/hurd/i386/intr-msg.h
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>1999-11-13 23:52:38 +0000
committerRoland McGrath <roland@gnu.org>1999-11-13 23:52:38 +0000
commit0bd019279b29e72861ba57e6101afa5e6dafb3a5 (patch)
tree9c89dfd0f45958c30c82d3a5097cf5feaf96bd95 /sysdeps/mach/hurd/i386/intr-msg.h
parent28f08f3fd1c20c4352746839c242d3a7776041a6 (diff)
downloadglibc-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.h32
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;
 }