summaryrefslogtreecommitdiffstats
path: root/sys/compat/linux/linux_signal.c
diff options
context:
space:
mode:
authormickey <mickey@openbsd.org>1996-04-17 05:23:40 +0000
committermickey <mickey@openbsd.org>1996-04-17 05:23:40 +0000
commit575021aa90409e1fec01e80d1ecb75be4ec213f1 (patch)
treee2c61190c9cd5b806ebd4b4c7ea0d149ce5e9d79 /sys/compat/linux/linux_signal.c
parentCleanups & fixes from latest NetBSD primarily to run doscmd, etc. (diff)
downloadwireguard-openbsd-575021aa90409e1fec01e80d1ecb75be4ec213f1.tar.xz
wireguard-openbsd-575021aa90409e1fec01e80d1ecb75be4ec213f1.zip
Good fixes and changes from latest Net.
Diffstat (limited to 'sys/compat/linux/linux_signal.c')
-rw-r--r--sys/compat/linux/linux_signal.c19
1 files changed, 14 insertions, 5 deletions
diff --git a/sys/compat/linux/linux_signal.c b/sys/compat/linux/linux_signal.c
index 212a0f254ee..a6e1c5f6466 100644
--- a/sys/compat/linux/linux_signal.c
+++ b/sys/compat/linux/linux_signal.c
@@ -1,4 +1,5 @@
-/* $NetBSD: linux_signal.c,v 1.9 1995/10/07 06:27:12 mycroft Exp $ */
+/* $OpenBSD: linux_signal.c,v 1.2 1996/04/17 05:23:59 mickey Exp $ */
+/* $NetBSD: linux_signal.c,v 1.10 1996/04/04 23:51:36 christos Exp $ */
/*
* Copyright (c) 1995 Frank van der Linden
@@ -131,6 +132,13 @@ int linux_to_bsd_sig[] = {
0,
};
+
+/* linux_signal.c */
+void linux_to_bsd_sigset __P((const linux_sigset_t *, sigset_t *));
+void bsd_to_linux_sigset __P((const sigset_t *, linux_sigset_t *));
+void linux_to_bsd_sigaction __P((struct linux_sigaction *, struct sigaction *));
+void bsd_to_linux_sigaction __P((struct sigaction *, struct linux_sigaction *));
+
/*
* Ok, we know that Linux and BSD signals both are just an unsigned int.
* Don't bother to use the sigismember() stuff for now.
@@ -180,7 +188,7 @@ linux_to_bsd_sigaction(lsa, bsa)
{
bsa->sa_handler = lsa->sa_handler;
- linux_to_bsd_sigset(&bsa->sa_mask, &lsa->sa_mask);
+ linux_to_bsd_sigset(&lsa->sa_mask, &bsa->sa_mask);
bsa->sa_flags = 0;
if ((lsa->sa_flags & LINUX_SA_ONSTACK) != 0)
bsa->sa_flags |= SA_ONSTACK;
@@ -201,7 +209,7 @@ bsd_to_linux_sigaction(bsa, lsa)
{
lsa->sa_handler = bsa->sa_handler;
- bsd_to_linux_sigset(&lsa->sa_mask, &bsa->sa_mask);
+ bsd_to_linux_sigset(&bsa->sa_mask, &lsa->sa_mask);
lsa->sa_flags = 0;
if ((bsa->sa_flags & SA_NOCLDSTOP) != 0)
lsa->sa_flags |= LINUX_SA_NOCLDSTOP;
@@ -420,7 +428,7 @@ linux_sys_sigsetmask(p, v, retval)
bsd_to_linux_sigset(&p->p_sigmask, (linux_sigset_t *)retval);
mask = SCARG(uap, mask);
- bsd_to_linux_sigset(&mask, &bsdsig);
+ bsd_to_linux_sigset(&bsdsig, &mask);
splhigh();
p->p_sigmask = bsdsig & ~sigcantmask;
@@ -459,8 +467,9 @@ linux_sys_sigsuspend(p, v, retval)
syscallarg(int) mask;
} */ *uap = v;
struct sys_sigsuspend_args sa;
+ linux_sigset_t mask = SCARG(uap, mask);
- linux_to_bsd_sigset(&SCARG(uap, mask), &SCARG(&sa, mask));
+ linux_to_bsd_sigset(&mask, &SCARG(&sa, mask));
return sys_sigsuspend(p, &sa, retval);
}