Adapt to signal changes.

This commit is contained in:
thorpej 1998-10-01 02:53:53 +00:00
parent 4b8165499a
commit d15a64c38b
8 changed files with 104 additions and 56 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: trap.c,v 1.64 1998/07/10 20:24:34 mhitch Exp $ */
/* $NetBSD: trap.c,v 1.65 1998/10/01 02:53:53 thorpej Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@ -45,6 +45,7 @@
#include "opt_ddb.h"
#include "opt_ktrace.h"
#include "opt_uvm.h"
#include "opt_compat_netbsd.h"
#include "opt_compat_sunos.h"
#include <sys/param.h>
@ -670,11 +671,10 @@ trap(type, code, v, frame)
printf("pid %d: kernel %s exception\n", p->p_pid,
type==T_COPERR ? "coprocessor" : "format");
#endif
p->p_sigacts->ps_sigact[SIGILL] = SIG_DFL;
i = sigmask(SIGILL);
p->p_sigignore &= ~i;
p->p_sigcatch &= ~i;
p->p_sigmask &= ~i;
p->p_sigacts->ps_sigact[SIGILL].sa_handler = SIG_DFL;
sigdelset(&p->p_sigignore, SIGILL);
sigdelset(&p->p_sigcatch, SIGILL);
sigdelset(&p->p_sigmask, SIGILL);
i = SIGILL;
ucode = frame.f_format; /* XXX was ILL_RESAD_FAULT */
break;
@ -830,8 +830,14 @@ syscall(code, frame)
* that is only done if entered via the sigreturn
* trap. Cannot allow it here so make sure we fail.
*/
if (code == SYS_sigreturn)
switch (code) {
#ifdef COMPAT_13
case SYS_compat_13_sigreturn13:
#endif
case SYS___sigreturn14:
code = nsys;
break;
}
break;
case SYS___syscall:
/*

View File

@ -1,4 +1,4 @@
/* $NetBSD: trap.c,v 1.35 1998/09/02 14:58:03 leo Exp $ */
/* $NetBSD: trap.c,v 1.36 1998/10/01 02:53:54 thorpej Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@ -45,6 +45,7 @@
#include "opt_ddb.h"
#include "opt_ktrace.h"
#include "opt_uvm.h"
#include "opt_compat_netbsd.h"
#include "opt_compat_sunos.h"
#include <sys/param.h>
@ -415,11 +416,10 @@ trap(type, code, v, frame)
printf("pid %d: kernel %s exception\n", p->p_pid,
type==T_COPERR ? "coprocessor" : "format");
#endif
p->p_sigacts->ps_sigact[SIGILL] = SIG_DFL;
i = sigmask(SIGILL);
p->p_sigignore &= ~i;
p->p_sigcatch &= ~i;
p->p_sigmask &= ~i;
p->p_sigacts->ps_sigact[SIGILL].sa_handler = SIG_DFL;
sigdelset(&p->p_sigignore, SIGILL);
sigdelset(&p->p_sigcatch, SIGILL);
sigdelset(&p->p_sigmask, SIGILL);
i = SIGILL;
ucode = frame.f_format; /* XXX was ILL_RESAD_FAULT */
break;
@ -1091,8 +1091,14 @@ syscall(code, frame)
* that is only done if entered via the sigreturn
* trap. Cannot allow it here so make sure we fail.
*/
if (code == SYS_sigreturn)
switch (code) {
#ifdef COMPAT_13
case SYS_compat_13_sigreturn13:
#endif
case SYS___sigreturn14:
code = nsys;
break;
}
break;
case SYS___syscall:
/*

View File

@ -1,4 +1,4 @@
/* $NetBSD: trap.c,v 1.65 1998/08/20 08:33:46 kleink Exp $ */
/* $NetBSD: trap.c,v 1.66 1998/10/01 02:53:54 thorpej Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@ -45,6 +45,7 @@
#include "opt_ddb.h"
#include "opt_ktrace.h"
#include "opt_uvm.h"
#include "opt_compat_netbsd.h"
#include "opt_compat_sunos.h"
#include "opt_compat_hpux.h"
@ -372,11 +373,10 @@ trap(type, code, v, frame)
printf("pid %d: kernel %s exception\n", p->p_pid,
type==T_COPERR ? "coprocessor" : "format");
type |= T_USER;
p->p_sigacts->ps_sigact[SIGILL] = SIG_DFL;
i = sigmask(SIGILL);
p->p_sigignore &= ~i;
p->p_sigcatch &= ~i;
p->p_sigmask &= ~i;
p->p_sigacts->ps_sigact[SIGILL].sa_handler = SIG_DFL;
sigdelset(&p->p_sigignore, SIGILL);
sigdelset(&p->p_sigcatch, SIGILL);
sigdelset(&p->p_sigmask, SIGILL);
i = SIGILL;
ucode = frame.f_format; /* XXX was ILL_RESAD_FAULT */
break;
@ -1080,8 +1080,14 @@ syscall(code, frame)
* that is only done if entered via the sigreturn
* trap. Cannot allow it here so make sure we fail.
*/
if (code == SYS_sigreturn)
switch (code) {
#ifdef COMPAT_13
case SYS_compat_13_sigreturn13:
#endif
case SYS___sigreturn14:
code = nsys;
break;
}
break;
case SYS___syscall:
/*

View File

@ -1,4 +1,4 @@
/* $NetBSD: trap.c,v 1.64 1998/07/04 22:18:29 jonathan Exp $ */
/* $NetBSD: trap.c,v 1.65 1998/10/01 02:53:54 thorpej Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@ -45,6 +45,7 @@
#include "opt_ddb.h"
#include "opt_ktrace.h"
#include "opt_uvm.h"
#include "opt_compat_netbsd.h"
#include "opt_compat_sunos.h"
#include <sys/param.h>
@ -428,11 +429,10 @@ copyfault:
printf("pid %d: kernel %s exception\n", p->p_pid,
type==T_COPERR ? "coprocessor" : "format");
type |= T_USER;
p->p_sigacts->ps_sigact[SIGILL] = SIG_DFL;
i = sigmask(SIGILL);
p->p_sigignore &= ~i;
p->p_sigcatch &= ~i;
p->p_sigmask &= ~i;
p->p_sigacts->ps_sigact[SIGILL].sa_handler = SIG_DFL;
sigdelset(&p->p_sigignore, SIGILL);
sigdelset(&p->p_sigcatch, SIGILL);
sigdelset(&p->p_sigmask, SIGILL);
i = SIGILL;
ucode = frame.f_format; /* XXX was ILL_RESAD_FAULT */
break;
@ -1074,8 +1074,14 @@ syscall(code, frame)
* that is only done if entered via the sigreturn
* trap. Cannot allow here, so make sure we fail.
*/
if (code == SYS_sigreturn)
switch (code) {
#ifdef COMPAT_13
case SYS_compat_13_sigreturn13:
#endif
case SYS___sigreturn14:
code = nsys;
break;
}
break;
case SYS___syscall:
/*

View File

@ -1,4 +1,4 @@
/* $NetBSD: trap.c,v 1.23 1998/08/22 10:55:36 scw Exp $ */
/* $NetBSD: trap.c,v 1.24 1998/10/01 02:53:54 thorpej Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@ -45,6 +45,7 @@
#include "opt_ddb.h"
#include "opt_ktrace.h"
#include "opt_uvm.h"
#include "opt_compat_netbsd.h"
#include "opt_compat_sunos.h"
#include "opt_compat_hpux.h"
@ -309,11 +310,10 @@ copyfault:
printf("pid %d: kernel %s exception\n", p->p_pid,
type==T_COPERR ? "coprocessor" : "format");
type |= T_USER;
p->p_sigacts->ps_sigact[SIGILL] = SIG_DFL;
i = sigmask(SIGILL);
p->p_sigignore &= ~i;
p->p_sigcatch &= ~i;
p->p_sigmask &= ~i;
p->p_sigacts->ps_sigact[SIGILL].sa_handler = SIG_DFL;
sigdelset(&p->p_sigignore, SIGILL);
sigdelset(&p->p_sigcatch, SIGILL);
sigdelset(&p->p_sigmask, SIGILL);
i = SIGILL;
ucode = frame.f_format; /* XXX was ILL_RESAD_FAULT */
break;
@ -1005,8 +1005,14 @@ syscall(code, frame)
* that is only done if entered via the sigreturn
* trap. Cannot allow it here so make sure we fail.
*/
if (code == SYS_sigreturn)
switch (code) {
#ifdef COMPAT_13
case SYS_compat_13_sigreturn13:
#endif
case SYS___sigreturn14:
code = nsys;
break;
}
break;
case SYS___syscall:
/*

View File

@ -1,4 +1,4 @@
/* $NetBSD: trap.c,v 1.5 1998/07/04 22:18:34 jonathan Exp $ */
/* $NetBSD: trap.c,v 1.6 1998/10/01 02:53:55 thorpej Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@ -44,6 +44,7 @@
#include "opt_ddb.h"
#include "opt_ktrace.h"
#include "opt_compat_netbsd.h"
#include "opt_compat_sunos.h"
#include "opt_compat_hpux.h"
@ -369,11 +370,10 @@ trap(type, code, v, frame)
printf("pid %d: kernel %s exception\n", p->p_pid,
type==T_COPERR ? "coprocessor" : "format");
type |= T_USER;
p->p_sigacts->ps_sigact[SIGILL] = SIG_DFL;
i = sigmask(SIGILL);
p->p_sigignore &= ~i;
p->p_sigcatch &= ~i;
p->p_sigmask &= ~i;
p->p_sigacts->ps_sigact[SIGILL].sa_handler = SIG_DFL;
sigdelset(&p->p_sigignore, SIGILL);
sigdelset(&p->p_sigcatch, SIGILL);
sigdelset(&p->p_sigmask, SIGILL);
i = SIGILL;
ucode = frame.f_format; /* XXX was ILL_RESAD_FAULT */
break;
@ -1040,8 +1040,14 @@ syscall(code, frame)
* that is only done if entered via the sigreturn
* trap. Cannot allow it here so make sure we fail.
*/
if (code == SYS_sigreturn)
switch (code) {
#ifdef COMPAT_13
case SYS_compat_13_sigreturn13:
#endif
case SYS___sigreturn14:
code = nsys;
break;
}
break;
case SYS___syscall:
/*

View File

@ -1,4 +1,4 @@
/* $NetBSD: trap.c,v 1.80 1998/07/18 23:02:33 thorpej Exp $ */
/* $NetBSD: trap.c,v 1.81 1998/10/01 02:53:55 thorpej Exp $ */
/*
* Copyright (c) 1994 Gordon W. Ross
@ -45,6 +45,7 @@
#include "opt_ktrace.h"
#include "opt_uvm.h"
#include "opt_compat_netbsd.h"
#include "opt_compat_sunos.h"
#include "opt_ddb.h"
@ -334,11 +335,10 @@ trap(type, code, v, tf)
printf("pid %d: kernel %s exception\n", p->p_pid,
type==T_COPERR ? "coprocessor" : "format");
type |= T_USER;
p->p_sigacts->ps_sigact[SIGILL] = SIG_DFL;
tmp = sigmask(SIGILL);
p->p_sigignore &= ~tmp;
p->p_sigcatch &= ~tmp;
p->p_sigmask &= ~tmp;
p->p_sigacts->ps_sigact[SIGILL].sa_handler = SIG_DFL;
sigdelset(&p->p_sigignore, SIGILL);
sigdelset(&p->p_sigcatch, SIGILL);
sigdelset(&p->p_sigmask, SIGILL);
sig = SIGILL;
ucode = tf.tf_format;
break;
@ -661,8 +661,14 @@ syscall(code, tf)
* that is only done if entered via the sigreturn
* trap. Cannot allow it here so make sure we fail.
*/
if (code == SYS_sigreturn)
switch (code) {
#ifdef COMPAT_13
case SYS_compat_13_sigreturn13:
#endif
case SYS___sigreturn14:
code = nsys;
break;
}
break;
case SYS___syscall:
/*

View File

@ -1,4 +1,4 @@
/* $NetBSD: trap.c,v 1.23 1998/08/22 14:38:41 minoura Exp $ */
/* $NetBSD: trap.c,v 1.24 1998/10/01 02:53:55 thorpej Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@ -45,6 +45,7 @@
#include "opt_ddb.h"
#include "opt_ktrace.h"
#include "opt_uvm.h"
#include "opt_compat_netbsd.h"
#include "opt_compat_sunos.h"
#include "opt_compat_hpux.h"
@ -371,11 +372,10 @@ trap(type, code, v, frame)
printf("pid %d: kernel %s exception\n", p->p_pid,
type==T_COPERR ? "coprocessor" : "format");
type |= T_USER;
p->p_sigacts->ps_sigact[SIGILL] = SIG_DFL;
i = sigmask(SIGILL);
p->p_sigignore &= ~i;
p->p_sigcatch &= ~i;
p->p_sigmask &= ~i;
p->p_sigacts->ps_sigact[SIGILL].sa_handler = SIG_DFL;
sigdelset(&p->p_sigignore, SIGILL);
sigdelset(&p->p_sigcatch, SIGILL);
sigdelset(&p->p_sigmask, SIGILL);
i = SIGILL;
ucode = frame.f_format; /* XXX was ILL_RESAD_FAULT */
break;
@ -1103,8 +1103,14 @@ syscall(code, frame)
* that is only done if entered via the sigreturn
* trap. Cannot allow it here so make sure we fail.
*/
if (code == SYS_sigreturn)
switch (code) {
#ifdef COMPAT_13
case SYS_compat_13_sigreturn13:
#endif
case SYS___sigreturn14:
code = nsys;
break;
}
break;
case SYS___syscall:
/*