]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Fix handling of svr4_sigsets, which are implemented in SysVR4 as a sequence
authornewton <newton@FreeBSD.org>
Sat, 15 Jan 2000 15:38:17 +0000 (15:38 +0000)
committernewton <newton@FreeBSD.org>
Sat, 15 Jan 2000 15:38:17 +0000 (15:38 +0000)
commit4b174b1c2f07e56b47ef7f0109b35954b58016ce
treeb5679091beaa9f8ee72403fceb4d95d569888b37
parent931fcb23e6ad3a28be2e25c1e7ff5ad5545080d2
Fix handling of svr4_sigsets, which are implemented in SysVR4 as a sequence
of 4 longs used as a bitmask.  sv4r4_sigfillset has been broken for a
while, probably since rev 1.5.

This patch fixes SVR4_NSIG (i.e.: sets it to the actual number of signals,
instead of the number of bits in the mask) because some SysVR4 clients
honestly seem to care about whether bits in the signal mask are set for
non-existant signals.

Additionally, the svr4_sigfillset macro has been replaced by a
fully fledged function, because the macro didn't actually work
(it returned an all-ones mask, but we don't want that:  we want 0's
set where FreeBSD doesn't actually have a signal which is the same
as an SysVR4 signal, for example).

SysVR4 clients can now successfully ignore signals, although catching
them remains problematic (see commit log message for rev1.13 of
sys/i386/svr4/svr4_machdep.c for more info).
sys/compat/svr4/svr4_signal.c
sys/compat/svr4/svr4_signal.h
sys/svr4/svr4_signal.c
sys/svr4/svr4_signal.h