split off thread specific stuff from struct sigacts to struct sigctx, leaving

only signal handler array sharable between threads
move other random signal stuff from struct proc to struct sigctx

This addresses kern/10981 by Matthew Orgass.

XXX I wish m68k ports would share trap.c
This commit is contained in:
jdolecek 2000-12-23 09:35:51 +00:00
parent ad2b8edf8a
commit de31133f1d
8 changed files with 41 additions and 41 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: trap.c,v 1.80 2000/12/19 21:09:54 scw Exp $ */ /* $NetBSD: trap.c,v 1.81 2000/12/23 09:35:51 jdolecek Exp $ */
/* /*
* Copyright (c) 1988 University of Utah. * Copyright (c) 1988 University of Utah.
@ -662,10 +662,10 @@ trap(type, code, v, frame)
printf("pid %d: kernel %s exception\n", p->p_pid, printf("pid %d: kernel %s exception\n", p->p_pid,
type==T_COPERR ? "coprocessor" : "format"); type==T_COPERR ? "coprocessor" : "format");
#endif #endif
p->p_sigacts->ps_sigact[SIGILL].sa_handler = SIG_DFL; SIGACTION(p, SIGILL).sa_handler = SIG_DFL;
sigdelset(&p->p_sigignore, SIGILL); sigdelset(&p->p_sigctx.ps_sigignore, SIGILL);
sigdelset(&p->p_sigcatch, SIGILL); sigdelset(&p->p_sigctx.ps_sigcatch, SIGILL);
sigdelset(&p->p_sigmask, SIGILL); sigdelset(&p->p_sigctx.ps_sigmask, SIGILL);
i = SIGILL; i = SIGILL;
ucode = frame.f_format; /* XXX was ILL_RESAD_FAULT */ ucode = frame.f_format; /* XXX was ILL_RESAD_FAULT */
break; break;

View File

@ -1,4 +1,4 @@
/* $NetBSD: trap.c,v 1.56 2000/12/19 21:09:55 scw Exp $ */ /* $NetBSD: trap.c,v 1.57 2000/12/23 09:35:51 jdolecek Exp $ */
/* /*
* Copyright (c) 1988 University of Utah. * Copyright (c) 1988 University of Utah.
@ -401,10 +401,10 @@ trap(type, code, v, frame)
printf("pid %d: kernel %s exception\n", p->p_pid, printf("pid %d: kernel %s exception\n", p->p_pid,
type==T_COPERR ? "coprocessor" : "format"); type==T_COPERR ? "coprocessor" : "format");
#endif #endif
p->p_sigacts->ps_sigact[SIGILL].sa_handler = SIG_DFL; SIGACTION(p, SIGILL).sa_handler = SIG_DFL;
sigdelset(&p->p_sigignore, SIGILL); sigdelset(&p->p_sigctx.ps_sigignore, SIGILL);
sigdelset(&p->p_sigcatch, SIGILL); sigdelset(&p->p_sigctx.ps_sigcatch, SIGILL);
sigdelset(&p->p_sigmask, SIGILL); sigdelset(&p->p_sigctx.ps_sigmask, SIGILL);
i = SIGILL; i = SIGILL;
ucode = frame.f_format; /* XXX was ILL_RESAD_FAULT */ ucode = frame.f_format; /* XXX was ILL_RESAD_FAULT */
break; break;

View File

@ -1,4 +1,4 @@
/* $NetBSD: trap.c,v 1.84 2000/12/19 21:09:55 scw Exp $ */ /* $NetBSD: trap.c,v 1.85 2000/12/23 09:35:52 jdolecek Exp $ */
/* /*
* Copyright (c) 1988 University of Utah. * Copyright (c) 1988 University of Utah.
@ -364,10 +364,10 @@ trap(type, code, v, frame)
printf("pid %d: kernel %s exception\n", p->p_pid, printf("pid %d: kernel %s exception\n", p->p_pid,
type==T_COPERR ? "coprocessor" : "format"); type==T_COPERR ? "coprocessor" : "format");
type |= T_USER; type |= T_USER;
p->p_sigacts->ps_sigact[SIGILL].sa_handler = SIG_DFL; SIGACTION(p, SIGILL).sa_handler = SIG_DFL;
sigdelset(&p->p_sigignore, SIGILL); sigdelset(&p->p_sigctx.ps_sigignore, SIGILL);
sigdelset(&p->p_sigcatch, SIGILL); sigdelset(&p->p_sigctx.ps_sigcatch, SIGILL);
sigdelset(&p->p_sigmask, SIGILL); sigdelset(&p->p_sigctx.ps_sigmask, SIGILL);
i = SIGILL; i = SIGILL;
ucode = frame.f_format; /* XXX was ILL_RESAD_FAULT */ ucode = frame.f_format; /* XXX was ILL_RESAD_FAULT */
break; break;

View File

@ -1,4 +1,4 @@
/* $NetBSD: trap.c,v 1.11 2000/12/19 21:09:56 scw Exp $ */ /* $NetBSD: trap.c,v 1.12 2000/12/23 09:35:52 jdolecek Exp $ */
/* /*
* Copyright (c) 1988 University of Utah. * Copyright (c) 1988 University of Utah.
@ -44,7 +44,7 @@
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */ #include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
__KERNEL_RCSID(0, "$NetBSD: trap.c,v 1.11 2000/12/19 21:09:56 scw Exp $"); __KERNEL_RCSID(0, "$NetBSD: trap.c,v 1.12 2000/12/23 09:35:52 jdolecek Exp $");
#include "opt_ddb.h" #include "opt_ddb.h"
#include "opt_execfmt.h" #include "opt_execfmt.h"
@ -334,10 +334,10 @@ trap(type, code, v, frame)
printf("pid %d: kernel %s exception\n", p->p_pid, printf("pid %d: kernel %s exception\n", p->p_pid,
type==T_COPERR ? "coprocessor" : "format"); type==T_COPERR ? "coprocessor" : "format");
type |= T_USER; type |= T_USER;
p->p_sigacts->ps_sigact[SIGILL].sa_handler = SIG_DFL; SIGACTION(p, SIGILL).sa_handler = SIG_DFL;
sigdelset(&p->p_sigignore, SIGILL); sigdelset(&p->p_sigctx.ps_sigignore, SIGILL);
sigdelset(&p->p_sigcatch, SIGILL); sigdelset(&p->p_sigctx.ps_sigcatch, SIGILL);
sigdelset(&p->p_sigmask, SIGILL); sigdelset(&p->p_sigctx.ps_sigmask, SIGILL);
i = SIGILL; i = SIGILL;
ucode = frame.f_format; /* XXX was ILL_RESAD_FAULT */ ucode = frame.f_format; /* XXX was ILL_RESAD_FAULT */
break; break;

View File

@ -1,4 +1,4 @@
/* $NetBSD: trap.c,v 1.53 2000/12/22 21:02:05 scw Exp $ */ /* $NetBSD: trap.c,v 1.54 2000/12/23 09:35:52 jdolecek Exp $ */
/* /*
* Copyright (c) 1988 University of Utah. * Copyright (c) 1988 University of Utah.
@ -383,10 +383,10 @@ trap(type, code, v, frame)
printf("pid %d: kernel %s exception\n", p->p_pid, printf("pid %d: kernel %s exception\n", p->p_pid,
type==T_COPERR ? "coprocessor" : "format"); type==T_COPERR ? "coprocessor" : "format");
type |= T_USER; type |= T_USER;
p->p_sigacts->ps_sigact[SIGILL].sa_handler = SIG_DFL; SIGACTION(p, SIGILL).sa_handler = SIG_DFL;
sigdelset(&p->p_sigignore, SIGILL); sigdelset(&p->p_sigctx.ps_sigignore, SIGILL);
sigdelset(&p->p_sigcatch, SIGILL); sigdelset(&p->p_sigctx.ps_sigcatch, SIGILL);
sigdelset(&p->p_sigmask, SIGILL); sigdelset(&p->p_sigctx.ps_sigmask, SIGILL);
i = SIGILL; i = SIGILL;
ucode = frame.f_format; /* XXX was ILL_RESAD_FAULT */ ucode = frame.f_format; /* XXX was ILL_RESAD_FAULT */
break; break;

View File

@ -1,4 +1,4 @@
/* $NetBSD: trap.c,v 1.10 2000/12/19 21:09:57 scw Exp $ */ /* $NetBSD: trap.c,v 1.11 2000/12/23 09:35:52 jdolecek Exp $ */
/* /*
* Copyright (c) 1988 University of Utah. * Copyright (c) 1988 University of Utah.
@ -354,10 +354,10 @@ trap(type, code, v, frame)
printf("pid %d: kernel %s exception\n", p->p_pid, printf("pid %d: kernel %s exception\n", p->p_pid,
type==T_COPERR ? "coprocessor" : "format"); type==T_COPERR ? "coprocessor" : "format");
type |= T_USER; type |= T_USER;
p->p_sigacts->ps_sigact[SIGILL].sa_handler = SIG_DFL; SIGACTION(p, SIGILL).sa_handler = SIG_DFL;
sigdelset(&p->p_sigignore, SIGILL); sigdelset(&p->p_sigctx.ps_sigignore, SIGILL);
sigdelset(&p->p_sigcatch, SIGILL); sigdelset(&p->p_sigctx.ps_sigcatch, SIGILL);
sigdelset(&p->p_sigmask, SIGILL); sigdelset(&p->p_sigctx.ps_sigmask, SIGILL);
i = SIGILL; i = SIGILL;
ucode = frame.f_format; /* XXX was ILL_RESAD_FAULT */ ucode = frame.f_format; /* XXX was ILL_RESAD_FAULT */
break; break;

View File

@ -1,4 +1,4 @@
/* $NetBSD: trap.c,v 1.28 2000/12/19 21:09:57 scw Exp $ */ /* $NetBSD: trap.c,v 1.29 2000/12/23 09:35:53 jdolecek Exp $ */
/* /*
* This file was taken from mvme68k/mvme68k/trap.c * This file was taken from mvme68k/mvme68k/trap.c
@ -376,10 +376,10 @@ trap(type, code, v, frame)
printf("pid %d: kernel %s exception\n", p->p_pid, printf("pid %d: kernel %s exception\n", p->p_pid,
type==T_COPERR ? "coprocessor" : "format"); type==T_COPERR ? "coprocessor" : "format");
type |= T_USER; type |= T_USER;
p->p_sigacts->ps_sigact[SIGILL].sa_handler = SIG_DFL; SIGACTION(p, SIGILL).sa_handler = SIG_DFL;
sigdelset(&p->p_sigignore, SIGILL); sigdelset(&p->p_sigctx.ps_sigignore, SIGILL);
sigdelset(&p->p_sigcatch, SIGILL); sigdelset(&p->p_sigctx.ps_sigcatch, SIGILL);
sigdelset(&p->p_sigmask, SIGILL); sigdelset(&p->p_sigctx.ps_sigmask, SIGILL);
i = SIGILL; i = SIGILL;
ucode = frame.f_format; /* XXX was ILL_RESAD_FAULT */ ucode = frame.f_format; /* XXX was ILL_RESAD_FAULT */
break; break;

View File

@ -1,4 +1,4 @@
/* $NetBSD: trap.c,v 1.46 2000/12/19 21:09:58 scw Exp $ */ /* $NetBSD: trap.c,v 1.47 2000/12/23 09:35:53 jdolecek Exp $ */
/* /*
* Copyright (c) 1988 University of Utah. * Copyright (c) 1988 University of Utah.
@ -367,10 +367,10 @@ trap(type, code, v, frame)
printf("pid %d: kernel %s exception\n", p->p_pid, printf("pid %d: kernel %s exception\n", p->p_pid,
type==T_COPERR ? "coprocessor" : "format"); type==T_COPERR ? "coprocessor" : "format");
type |= T_USER; type |= T_USER;
p->p_sigacts->ps_sigact[SIGILL].sa_handler = SIG_DFL; SIGACTION(p, SIGILL).sa_handler = SIG_DFL;
sigdelset(&p->p_sigignore, SIGILL); sigdelset(&p->p_sigctx.ps_sigignore, SIGILL);
sigdelset(&p->p_sigcatch, SIGILL); sigdelset(&p->p_sigctx.ps_sigcatch, SIGILL);
sigdelset(&p->p_sigmask, SIGILL); sigdelset(&p->p_sigctx.ps_sigmask, SIGILL);
i = SIGILL; i = SIGILL;
ucode = frame.f_format; /* XXX was ILL_RESAD_FAULT */ ucode = frame.f_format; /* XXX was ILL_RESAD_FAULT */
break; break;