diff options
| author | mycroft <mycroft@NetBSD.org> | 1998-09-11 12:50:05 +0000 |
|---|---|---|
| committer | mycroft <mycroft@NetBSD.org> | 1998-09-11 12:50:05 +0000 |
| commit | fb526e055ce7fc93c2d1e25d27ddcbb904326689 (patch) | |
| tree | 246edcbecaa293bb66c325bdd2d7878a35c17b1f /sys/compat/linux/common/linux_exec.c | |
| parent | 4e2ece10351d6d481d8324585b33261d0c47e49c (diff) | |
Substantial signal handling changes:
* Increase the size of sigset_t to accomodate 128 signals -- adding new
versions of sys_setprocmask(), sys_sigaction(), sys_sigpending() and
sys_sigsuspend() to handle the changed arguments.
* Abstract the guts of sys_sigaltstack(), sys_setprocmask(), sys_sigaction(),
sys_sigpending() and sys_sigsuspend() into separate functions, and call them
from all the emulations rather than hard-coding everything. (Avoids uses
the stackgap crap for these system calls.)
* Add a new flag (p_checksig) to indicate that a process may have signals
pending and userret() needs to do the full (slow) check.
* Eliminate SAS_ALTSTACK; it's exactly the inverse of SS_DISABLE.
* Correct emulation bugs with restoring SS_ONSTACK.
* Make the signal mask in the sigcontext always use the emulated mask format.
* Store signals internally in sigaction structures, rather than maintaining a
bunch of little sigsets for each SA_* bit.
* Keep track of where we put the signal trampoline, rather than figuring it out
in *_sendsig().
* Issue a warning when a non-emulated sigaction bit is observed.
* Add missing emulated signals, and a native SIGPWR (currently not used).
* Implement the `not reset when caught' semantics for relevant signals.
Note: Only code touched by the i386 port has been modified. Other ports and
emulations need to be updated.
Diffstat (limited to 'sys/compat/linux/common/linux_exec.c')
| -rw-r--r-- | sys/compat/linux/common/linux_exec.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/compat/linux/common/linux_exec.c b/sys/compat/linux/common/linux_exec.c index 7e6a79b7ec7..234328e019b 100644 --- a/sys/compat/linux/common/linux_exec.c +++ b/sys/compat/linux/common/linux_exec.c @@ -1,4 +1,4 @@ -/* $NetBSD: linux_exec.c,v 1.29 1998/09/05 14:50:26 christos Exp $ */ +/* $NetBSD: linux_exec.c,v 1.30 1998/09/11 12:50:08 mycroft Exp $ */ /*- * Copyright (c) 1994 The NetBSD Foundation, Inc. @@ -87,7 +87,6 @@ #include <machine/cpu.h> #include <machine/reg.h> -#include <machine/linux_machdep.h> #include <compat/linux/linux_types.h> #include <compat/linux/linux_syscall.h> @@ -95,6 +94,7 @@ #include <compat/linux/linux_syscallargs.h> #include <compat/linux/linux_util.h> #include <compat/linux/linux_exec.h> +#include <machine/linux_machdep.h> static void *linux_aout_copyargs __P((struct exec_package *, struct ps_strings *, void *, void *)); |
