diff options
author | Roland McGrath <roland@gnu.org> | 1995-08-17 22:55:22 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 1995-08-17 22:55:22 +0000 |
commit | 3fe9de0da5e8ad28a8ba86cc26ae6057984bde10 (patch) | |
tree | 248915736b58d19467d401ad3295c7113aee56cf /hurd/intr-msg.c | |
parent | 191abc516c6f0ecd02f84ec98994b223252b48d7 (diff) | |
download | glibc-3fe9de0da5e8ad28a8ba86cc26ae6057984bde10.tar glibc-3fe9de0da5e8ad28a8ba86cc26ae6057984bde10.tar.gz glibc-3fe9de0da5e8ad28a8ba86cc26ae6057984bde10.tar.bz2 glibc-3fe9de0da5e8ad28a8ba86cc26ae6057984bde10.zip |
Thu Aug 17 16:18:38 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* hurd/intr-msg.c: Use INTR_MSG_TRAP macro from machine-dependent
"intr-msg.h" for special syscall code, instead of i386-specific asm.
* hurd/hurdsig.c: Use INTR_MSG_BACK_OUT macro from
machine-dependent "intr-msg.h" before mutating thread state to
skip RPC.
* sysdeps/mach/hurd/i386/trampoline.c: If PC is inside
_hurd_intr_rpc_mach_msg special syscall code, use real SP saved in
%ecx.
* Makeconfig (link-libc): New variable; use shared library if
available.
(+link): Use it.
* sysdeps/mach/hurd/fork.c (_hurd_fork_locks): Variable removed.
Instead, declare with `symbol_set_declare'.
(fork): Use symbol_set_* macros for _hurd_fork_locks.
Use SS->thread instead of __mach_thread_self (). Suspend all
other threads during task_create and port copying.
Diffstat (limited to 'hurd/intr-msg.c')
-rw-r--r-- | hurd/intr-msg.c | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/hurd/intr-msg.c b/hurd/intr-msg.c index 6f670b538f..024cbfbd3e 100644 --- a/hurd/intr-msg.c +++ b/hurd/intr-msg.c @@ -21,6 +21,9 @@ Cambridge, MA 02139, USA. */ #include <mach/mig_errors.h> #include <hurd/signal.h> +#include "intr-msg.h" + + error_t _hurd_intr_rpc_mach_msg (mach_msg_header_t *msg, mach_msg_option_t option, @@ -56,17 +59,8 @@ _hurd_intr_rpc_mach_msg (mach_msg_header_t *msg, ss->cancel = 0; } else - /* err = intr_msg_trap (msg, option, send_size, - rcv_size, rcv_name, timeout, notify); - */ - asm (".globl _hurd_intr_rpc_msg_do_trap\n" - ".globl _hurd_intr_rpc_msg_in_trap\n" - " movl %%esp, %%ecx\n" - " leal %1, %%esp\n" - " movl $-25, %%eax\n" - "_hurd_intr_rpc_msg_do_trap: lcall $7, $0 # status in %0\n" - "_hurd_intr_rpc_msg_in_trap: movl %%ecx, %%esp" - : "=a" (err) : "m" ((&msg)[-1]) : "%ecx"); + err = INTR_MSG_TRAP (msg, option, send_size, + rcv_size, rcv_name, timeout, notify); switch (err) { |