summaryrefslogtreecommitdiffstats
path: root/sys/compat
diff options
context:
space:
mode:
authorjmallett <jmallett@FreeBSD.org>2002-10-01 17:15:53 +0000
committerjmallett <jmallett@FreeBSD.org>2002-10-01 17:15:53 +0000
commit7a693db242641440dad298d332b3cc5a4c88f8f4 (patch)
tree07d2fcfbfe85d84af8cf79f8fec57733afa19e18 /sys/compat
parentb5dfcc0b31407d0d79c551549f16736d600e350a (diff)
downloadFreeBSD-src-7a693db242641440dad298d332b3cc5a4c88f8f4.zip
FreeBSD-src-7a693db242641440dad298d332b3cc5a4c88f8f4.tar.gz
Back our kernel support for reliable signal queues.
Requested by: rwatson, phk, and many others
Diffstat (limited to 'sys/compat')
-rw-r--r--sys/compat/linprocfs/linprocfs.c2
-rw-r--r--sys/compat/linux/linux_misc.c3
-rw-r--r--sys/compat/linux/linux_signal.c3
-rw-r--r--sys/compat/svr4/svr4_filio.c3
-rw-r--r--sys/compat/svr4/svr4_signal.c2
5 files changed, 4 insertions, 9 deletions
diff --git a/sys/compat/linprocfs/linprocfs.c b/sys/compat/linprocfs/linprocfs.c
index af542b4..d0db293 100644
--- a/sys/compat/linprocfs/linprocfs.c
+++ b/sys/compat/linprocfs/linprocfs.c
@@ -651,7 +651,7 @@ linprocfs_doprocstatus(PFS_FILL_ARGS)
* running on anything but i386, so ignore that for now.
*/
PROC_LOCK(p);
- sbuf_printf(sb, "SigPnd:\t%08x\n", 0); /* XXX */
+ sbuf_printf(sb, "SigPnd:\t%08x\n", p->p_siglist.__bits[0]);
/*
* I can't seem to find out where the signal mask is in
* relation to struct proc, so SigBlk is left unimplemented.
diff --git a/sys/compat/linux/linux_misc.c b/sys/compat/linux/linux_misc.c
index d344548..16c8677 100644
--- a/sys/compat/linux/linux_misc.c
+++ b/sys/compat/linux/linux_misc.c
@@ -36,7 +36,6 @@
#include <sys/imgact_aout.h>
#include <sys/jail.h>
#include <sys/kernel.h>
-#include <sys/ksiginfo.h>
#include <sys/lock.h>
#include <sys/mac.h>
#include <sys/malloc.h>
@@ -833,7 +832,7 @@ linux_wait4(struct thread *td, struct linux_wait4_args *args)
if ((error = wait4(td, &tmp)) != 0)
return error;
- signal_delete(td->td_proc, NULL, SIGCHLD);
+ SIGDELSET(td->td_proc->p_siglist, SIGCHLD);
if (args->status) {
if ((error = copyin((caddr_t)args->status, &tmpstat,
diff --git a/sys/compat/linux/linux_signal.c b/sys/compat/linux/linux_signal.c
index d264db5..532fb81 100644
--- a/sys/compat/linux/linux_signal.c
+++ b/sys/compat/linux/linux_signal.c
@@ -34,7 +34,6 @@
#include <sys/mutex.h>
#include <sys/proc.h>
#include <sys/signalvar.h>
-#include <sys/ksiginfo.h>
#include <sys/syscallsubr.h>
#include <sys/sysproto.h>
@@ -391,7 +390,7 @@ linux_sigpending(struct thread *td, struct linux_sigpending_args *args)
#endif
PROC_LOCK(p);
- ksiginfo_to_sigset_t(p, &bset);
+ bset = p->p_siglist;
SIGSETAND(bset, p->p_sigmask);
bsd_to_linux_sigset(&bset, &lset);
PROC_UNLOCK(p);
diff --git a/sys/compat/svr4/svr4_filio.c b/sys/compat/svr4/svr4_filio.c
index 8dc1b4d..c2bad1d 100644
--- a/sys/compat/svr4/svr4_filio.c
+++ b/sys/compat/svr4/svr4_filio.c
@@ -39,7 +39,6 @@
#include <sys/poll.h>
#include <sys/malloc.h>
#include <sys/mutex.h>
-#include <sys/ksiginfo.h>
#include <sys/sysproto.h>
@@ -136,9 +135,7 @@ svr4_sys_read(td, uap)
DPRINTF(("sigmask = 0x%x\n", td->td_proc->p_sigmask));
DPRINTF(("sigignore = 0x%x\n", td->td_proc->p_sigignore));
DPRINTF(("sigcaught = 0x%x\n", td->td_proc->p_sigcatch));
-#if 0 /* XXX - use ksiginfo_to_sigset_t ? */
DPRINTF(("siglist = 0x%x\n", td->td_proc->p_siglist));
-#endif
}
#if defined(GROTTY_READ_HACK)
diff --git a/sys/compat/svr4/svr4_signal.c b/sys/compat/svr4/svr4_signal.c
index 1c78b53..fea5317 100644
--- a/sys/compat/svr4/svr4_signal.c
+++ b/sys/compat/svr4/svr4_signal.c
@@ -565,7 +565,7 @@ svr4_sys_sigpending(td, uap)
if (SCARG(uap, mask) == NULL)
return 0;
PROC_LOCK(td->td_proc);
- ksiginfo_to_sigset_t(td->td_proc, &bss);
+ bss = td->td_proc->p_siglist;
SIGSETAND(bss, td->td_proc->p_sigmask);
PROC_UNLOCK(td->td_proc);
bsd_to_svr4_sigset(&bss, &sss);
OpenPOWER on IntegriCloud