diff options
author | jeff <jeff@FreeBSD.org> | 2003-03-31 21:40:47 +0000 |
---|---|---|
committer | jeff <jeff@FreeBSD.org> | 2003-03-31 21:40:47 +0000 |
commit | 848087b9b0b45a29daa2a3f8acf9cb8d797e8b51 (patch) | |
tree | 160e82df3537ad029f4930285efcd5ff4fbccdc4 /sys | |
parent | ca1839cb9191762cd4c49990a18f78fd9798c4d1 (diff) | |
download | FreeBSD-src-848087b9b0b45a29daa2a3f8acf9cb8d797e8b51.zip FreeBSD-src-848087b9b0b45a29daa2a3f8acf9cb8d797e8b51.tar.gz |
- Use sigexit() instead of twiddling the signal mask, catch, ignore, and
action bits to allow SIGILL to work as expected. This brings this file in
line with other architectures.
Diffstat (limited to 'sys')
-rw-r--r-- | sys/alpha/alpha/machdep.c | 18 | ||||
-rw-r--r-- | sys/alpha/osf1/osf1_signal.c | 6 | ||||
-rw-r--r-- | sys/ia64/ia64/machdep.c | 6 |
3 files changed, 5 insertions, 25 deletions
diff --git a/sys/alpha/alpha/machdep.c b/sys/alpha/alpha/machdep.c index 98afcd1..273bda5 100644 --- a/sys/alpha/alpha/machdep.c +++ b/sys/alpha/alpha/machdep.c @@ -1199,11 +1199,7 @@ osendsig(sig_t catcher, int sig, sigset_t *mask, u_long code) * instruction to halt it in its tracks. */ PROC_LOCK(p); - SIGACTION(p, SIGILL) = SIG_DFL; - SIGDELSET(p->p_sigignore, SIGILL); - SIGDELSET(p->p_sigcatch, SIGILL); - SIGDELSET(p->p_sigmask, SIGILL); - psignal(p, SIGILL); + sigexit(td, SIGILL); return; } @@ -1305,11 +1301,7 @@ freebsd4_sendsig(sig_t catcher, int sig, sigset_t *mask, u_long code) * instruction to halt it in its tracks. */ PROC_LOCK(p); - SIGACTION(p, SIGILL) = SIG_DFL; - SIGDELSET(p->p_sigignore, SIGILL); - SIGDELSET(p->p_sigcatch, SIGILL); - SIGDELSET(p->p_sigmask, SIGILL); - psignal(p, SIGILL); + sigexit(td, SIGILL); return; } @@ -1430,11 +1422,7 @@ sendsig(sig_t catcher, int sig, sigset_t *mask, u_long code) * instruction to halt it in its tracks. */ PROC_LOCK(p); - SIGACTION(p, SIGILL) = SIG_DFL; - SIGDELSET(p->p_sigignore, SIGILL); - SIGDELSET(p->p_sigcatch, SIGILL); - SIGDELSET(p->p_sigmask, SIGILL); - psignal(p, SIGILL); + sigexit(td, SIGILL); return; } diff --git a/sys/alpha/osf1/osf1_signal.c b/sys/alpha/osf1/osf1_signal.c index b1369ed..718c7d9 100644 --- a/sys/alpha/osf1/osf1_signal.c +++ b/sys/alpha/osf1/osf1_signal.c @@ -663,11 +663,7 @@ osf1_sendsig(sig_t catcher, int sig, sigset_t *mask, u_long code) * instruction to halt it in its tracks. */ PROC_LOCK(p); - SIGACTION(p, SIGILL) = SIG_DFL; - SIGDELSET(p->p_sigignore, SIGILL); - SIGDELSET(p->p_sigcatch, SIGILL); - SIGDELSET(p->p_sigmask, SIGILL); - psignal(p, SIGILL); + sigexit(td, SIGILL); return; } diff --git a/sys/ia64/ia64/machdep.c b/sys/ia64/ia64/machdep.c index e313fb9..57e86c3 100644 --- a/sys/ia64/ia64/machdep.c +++ b/sys/ia64/ia64/machdep.c @@ -857,11 +857,7 @@ sendsig(sig_t catcher, int sig, sigset_t *mask, u_long code) * instruction to halt it in its tracks. */ PROC_LOCK(p); - SIGACTION(p, SIGILL) = SIG_DFL; - SIGDELSET(p->p_sigignore, SIGILL); - SIGDELSET(p->p_sigcatch, SIGILL); - SIGDELSET(p->p_sigmask, SIGILL); - psignal(p, SIGILL); + sigexit(td, SIGILL); return; } #ifdef DEBUG |