Subject: CVS commit: src
To: None <source-changes@netbsd.org>
From: Charles M. Hannum <mycroft@netbsd.org>
List: source-changes
Date: 09/11/1998 05:50:13
Module Name:	src
Committed By:	mycroft
Date:		Fri Sep 11 12:50:13 UTC 1998

Modified Files:
	src/sys/arch/i386/i386: freebsd_machdep.c ibcs2_machdep.c
	    linux_machdep.c machdep.c svr4_machdep.c vm86.c
	src/sys/arch/i386/include: freebsd_machdep.h ibcs2_machdep.h
	    linux_machdep.h signal.h svr4_machdep.h
	src/sys/compat/common: kern_sig_13.c kern_sig_43.c
	src/sys/compat/freebsd: syscalls.master
	src/sys/compat/ibcs2: ibcs2_signal.c ibcs2_signal.h syscalls.master
	src/sys/compat/linux: linux_exec.c linux_misc.c linux_signal.c
	    linux_signal.h syscalls.master
	src/sys/compat/svr4: svr4_misc.c svr4_signal.c svr4_signal.h
	    syscalls.master
	src/sys/kern: kern_exec.c kern_exit.c kern_ktrace.c kern_sig.c
	    kern_synch.c syscalls.master tty.c tty_pty.c
	src/sys/nfs: nfs.h nfs_socket.c
	src/sys/sys: ktrace.h proc.h signal.h signalvar.h
Log Message:
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.