From 0341f71df178fd346332ced28efb677a6ef39414 Mon Sep 17 00:00:00 2001 From: jmallett Date: Mon, 30 Sep 2002 20:20:22 +0000 Subject: First half of implementation of ksiginfo, signal queues, and such. This gets signals operating based on a TailQ, and is good enough to run X11, GNOME, and do job control. There are some intricate parts which could be more refined to match the sigset_t versions, but those require further evaluation of directions in which our signal system can expand and contract to fit our needs. After this has been in the tree for a while, I will make in kernel API changes, most notably to trapsignal(9) and sendsig(9), to use ksiginfo more robustly, such that we can actually pass information with our (queued) signals to the userland. That will also result in using a struct ksiginfo pointer, rather than a signal number, in a lot of kern_sig.c, to refer to an individual pending signal queue member, but right now there is no defined behaviour for such. CODAFS is unfinished in this regard because the logic is unclear in some places. Sponsored by: New Gold Technology Reviewed by: bde, tjr, jake [an older version, logic similar] --- sys/compat/linux/linux_misc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'sys/compat/linux/linux_misc.c') diff --git a/sys/compat/linux/linux_misc.c b/sys/compat/linux/linux_misc.c index 16c8677..d344548 100644 --- a/sys/compat/linux/linux_misc.c +++ b/sys/compat/linux/linux_misc.c @@ -36,6 +36,7 @@ #include #include #include +#include #include #include #include @@ -832,7 +833,7 @@ linux_wait4(struct thread *td, struct linux_wait4_args *args) if ((error = wait4(td, &tmp)) != 0) return error; - SIGDELSET(td->td_proc->p_siglist, SIGCHLD); + signal_delete(td->td_proc, NULL, SIGCHLD); if (args->status) { if ((error = copyin((caddr_t)args->status, &tmpstat, -- cgit v1.1