summaryrefslogtreecommitdiff
path: root/sys/arch
diff options
context:
space:
mode:
Diffstat (limited to 'sys/arch')
-rw-r--r--sys/arch/alpha/alpha/machdep.c5
-rw-r--r--sys/arch/alpha/alpha/netbsd_machdep.c5
-rw-r--r--sys/arch/hp300/hp300/hpux_machdep.c5
-rw-r--r--sys/arch/hppa/hppa/machdep.c5
-rw-r--r--sys/arch/i386/i386/freebsd_machdep.c6
-rw-r--r--sys/arch/i386/i386/linux_machdep.c6
-rw-r--r--sys/arch/i386/i386/machdep.c5
-rw-r--r--sys/arch/i386/i386/svr4_machdep.c6
-rw-r--r--sys/arch/m68k/m68k/sig_machdep.c5
-rw-r--r--sys/arch/macppc/macppc/machdep.c5
-rw-r--r--sys/arch/mvme68k/mvme68k/hpux_machdep.c5
-rw-r--r--sys/arch/mvme88k/mvme88k/machdep.c7
-rw-r--r--sys/arch/mvmeppc/mvmeppc/machdep.c5
-rw-r--r--sys/arch/sparc/sparc/machdep.c6
-rw-r--r--sys/arch/sparc/sparc/svr4_machdep.c6
-rw-r--r--sys/arch/sparc64/sparc64/machdep.c6
-rw-r--r--sys/arch/sparc64/sparc64/netbsd_machdep.c6
-rw-r--r--sys/arch/sparc64/stand/ofwboot/version2
-rw-r--r--sys/arch/vax/vax/machdep.c5
19 files changed, 37 insertions, 64 deletions
diff --git a/sys/arch/alpha/alpha/machdep.c b/sys/arch/alpha/alpha/machdep.c
index 1d7b9761bf3..fadfb4d3ce6 100644
--- a/sys/arch/alpha/alpha/machdep.c
+++ b/sys/arch/alpha/alpha/machdep.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: machdep.c,v 1.74 2002/06/08 05:19:12 art Exp $ */
+/* $OpenBSD: machdep.c,v 1.75 2002/07/20 19:24:55 art Exp $ */
/* $NetBSD: machdep.c,v 1.210 2000/06/01 17:12:38 thorpej Exp $ */
/*-
@@ -1638,8 +1638,7 @@ sendsig(catcher, sig, mask, code, type, val)
/*
* Set up the registers to return to sigcode.
*/
- frame->tf_regs[FRAME_PC] =
- (u_int64_t)PS_STRINGS - (esigcode - sigcode);
+ frame->tf_regs[FRAME_PC] = p->p_sigcode;
frame->tf_regs[FRAME_A0] = sig;
frame->tf_regs[FRAME_A1] = (psp->ps_siginfo & sigmask(sig)) ?
(u_int64_t)sip : NULL;
diff --git a/sys/arch/alpha/alpha/netbsd_machdep.c b/sys/arch/alpha/alpha/netbsd_machdep.c
index 13fee57ba65..f6ba2928d50 100644
--- a/sys/arch/alpha/alpha/netbsd_machdep.c
+++ b/sys/arch/alpha/alpha/netbsd_machdep.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: netbsd_machdep.c,v 1.7 2002/03/14 01:26:26 millert Exp $ */
+/* $OpenBSD: netbsd_machdep.c,v 1.8 2002/07/20 19:24:55 art Exp $ */
/*
* Copyright (c) 1994, 1995, 1996 Carnegie-Mellon University.
@@ -201,8 +201,7 @@ netbsd_sendsig(catcher, sig, mask, code, type, val)
/*
* Set up the registers to return to netbsd_sigcode.
*/
- frame->tf_regs[FRAME_PC] =
- (u_int64_t)PS_STRINGS - (netbsd_esigcode - netbsd_sigcode);
+ frame->tf_regs[FRAME_PC] = p->p_sigcode;
frame->tf_regs[FRAME_A0] = sig;
frame->tf_regs[FRAME_A1] = code;
frame->tf_regs[FRAME_A2] = (u_int64_t)scp;
diff --git a/sys/arch/hp300/hp300/hpux_machdep.c b/sys/arch/hp300/hp300/hpux_machdep.c
index 1f8794c721d..5e149e4f318 100644
--- a/sys/arch/hp300/hp300/hpux_machdep.c
+++ b/sys/arch/hp300/hp300/hpux_machdep.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: hpux_machdep.c,v 1.12 2002/06/04 00:09:08 deraadt Exp $ */
+/* $OpenBSD: hpux_machdep.c,v 1.13 2002/07/20 19:24:55 art Exp $ */
/* $NetBSD: hpux_machdep.c,v 1.19 1998/02/16 20:58:30 thorpej Exp $ */
/*
@@ -391,7 +391,6 @@ hpux_sendsig(catcher, sig, mask, code, type, val)
struct sigacts *psp = p->p_sigacts;
short ft;
int oonstack, fsize;
- extern char sigcode[], esigcode[];
frame = (struct frame *)p->p_md.md_regs;
ft = frame->f_format;
@@ -531,7 +530,7 @@ hpux_sendsig(catcher, sig, mask, code, type, val)
/*
* Signal trampoline code is at base of user stack.
*/
- frame->f_pc = (int)PS_STRINGS - (esigcode - sigcode);
+ frame->f_pc = p->p_sigcode;
#ifdef DEBUG
if ((hpuxsigdebug & SDB_KSTACK) && p->p_pid == hpuxsigpid)
printf("hpux_sendsig(%d): sig %d returns\n",
diff --git a/sys/arch/hppa/hppa/machdep.c b/sys/arch/hppa/hppa/machdep.c
index 03ebd577c3a..d33a565c17e 100644
--- a/sys/arch/hppa/hppa/machdep.c
+++ b/sys/arch/hppa/hppa/machdep.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: machdep.c,v 1.72 2002/05/14 00:25:02 mickey Exp $ */
+/* $OpenBSD: machdep.c,v 1.73 2002/07/20 19:24:55 art Exp $ */
/*
* Copyright (c) 1999-2002 Michael Shalayeff
@@ -1256,8 +1256,7 @@ sendsig(catcher, sig, mask, code, type, val)
tf->tf_arg2 = tf->tf_r3 = (register_t)scp;
tf->tf_arg3 = (register_t)catcher;
tf->tf_sp = (register_t)scp + sss;
- tf->tf_iioq_head = HPPA_PC_PRIV_USER |
- ((register_t)PS_STRINGS + sizeof(struct ps_strings));
+ tf->tf_iioq_head = HPPA_PC_PRIV_USER | p->p_sigcode;
tf->tf_iioq_tail = tf->tf_iioq_head + 4;
/* disable tracing in the trapframe */
diff --git a/sys/arch/i386/i386/freebsd_machdep.c b/sys/arch/i386/i386/freebsd_machdep.c
index ebc5c51fba1..387ec943199 100644
--- a/sys/arch/i386/i386/freebsd_machdep.c
+++ b/sys/arch/i386/i386/freebsd_machdep.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: freebsd_machdep.c,v 1.12 2001/11/06 19:53:14 miod Exp $ */
+/* $OpenBSD: freebsd_machdep.c,v 1.13 2002/07/20 19:24:56 art Exp $ */
/* $NetBSD: freebsd_machdep.c,v 1.10 1996/05/03 19:42:05 christos Exp $ */
/*-
@@ -89,7 +89,6 @@ freebsd_sendsig(catcher, sig, mask, code, type, val)
struct freebsd_sigframe *fp, frame;
struct sigacts *psp = p->p_sigacts;
int oonstack;
- extern char freebsd_sigcode[], freebsd_esigcode[];
/*
* Build the argument list for the signal handler.
@@ -160,8 +159,7 @@ freebsd_sendsig(catcher, sig, mask, code, type, val)
*/
tf->tf_es = GSEL(GUDATA_SEL, SEL_UPL);
tf->tf_ds = GSEL(GUDATA_SEL, SEL_UPL);
- tf->tf_eip = (int)(((char *)PS_STRINGS) -
- (freebsd_esigcode - freebsd_sigcode));
+ tf->tf_eip = p->p_sigcode;
tf->tf_cs = GSEL(GUCODE_SEL, SEL_UPL);
tf->tf_eflags &= ~(PSL_T|PSL_VM|PSL_AC);
tf->tf_esp = (int)fp;
diff --git a/sys/arch/i386/i386/linux_machdep.c b/sys/arch/i386/i386/linux_machdep.c
index a2064fbb418..fc3989a98fd 100644
--- a/sys/arch/i386/i386/linux_machdep.c
+++ b/sys/arch/i386/i386/linux_machdep.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: linux_machdep.c,v 1.22 2002/04/19 21:28:58 jasoni Exp $ */
+/* $OpenBSD: linux_machdep.c,v 1.23 2002/07/20 19:24:56 art Exp $ */
/* $NetBSD: linux_machdep.c,v 1.29 1996/05/03 19:42:11 christos Exp $ */
/*
@@ -116,7 +116,6 @@ linux_sendsig(catcher, sig, mask, code, type, val)
struct linux_sigframe *fp, frame;
struct sigacts *psp = p->p_sigacts;
int oonstack;
- extern char linux_sigcode[], linux_esigcode[];
tf = p->p_md.md_regs;
oonstack = psp->ps_sigstk.ss_flags & SS_ONSTACK;
@@ -184,8 +183,7 @@ linux_sendsig(catcher, sig, mask, code, type, val)
*/
tf->tf_es = GSEL(GUDATA_SEL, SEL_UPL);
tf->tf_ds = GSEL(GUDATA_SEL, SEL_UPL);
- tf->tf_eip = (int)(((char *)PS_STRINGS) -
- (linux_esigcode - linux_sigcode));
+ tf->tf_eip = p->p_sigcode;
tf->tf_cs = GSEL(GUCODE_SEL, SEL_UPL);
tf->tf_eflags &= ~(PSL_T|PSL_VM|PSL_AC);
tf->tf_esp = (int)fp;
diff --git a/sys/arch/i386/i386/machdep.c b/sys/arch/i386/i386/machdep.c
index 4fba879ade1..936990935f6 100644
--- a/sys/arch/i386/i386/machdep.c
+++ b/sys/arch/i386/i386/machdep.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: machdep.c,v 1.211 2002/07/19 17:30:50 mickey Exp $ */
+/* $OpenBSD: machdep.c,v 1.212 2002/07/20 19:24:56 art Exp $ */
/* $NetBSD: machdep.c,v 1.214 1996/11/10 03:16:17 thorpej Exp $ */
/*-
@@ -1467,7 +1467,6 @@ sendsig(catcher, sig, mask, code, type, val)
struct sigframe *fp, frame;
struct sigacts *psp = p->p_sigacts;
int oonstack;
- extern char sigcode[], esigcode[];
/*
* Build the argument list for the signal handler.
@@ -1554,7 +1553,7 @@ sendsig(catcher, sig, mask, code, type, val)
__asm("movw %w0,%%fs" : : "r" (GSEL(GUDATA_SEL, SEL_UPL)));
tf->tf_es = GSEL(GUDATA_SEL, SEL_UPL);
tf->tf_ds = GSEL(GUDATA_SEL, SEL_UPL);
- tf->tf_eip = (int)(((char *)PS_STRINGS) - (esigcode - sigcode));
+ tf->tf_eip = p->p_sigcode;
tf->tf_cs = GSEL(GUCODE_SEL, SEL_UPL);
tf->tf_eflags &= ~(PSL_T|PSL_VM|PSL_AC);
tf->tf_esp = (int)fp;
diff --git a/sys/arch/i386/i386/svr4_machdep.c b/sys/arch/i386/i386/svr4_machdep.c
index 7ed6edcc7a7..a0569208045 100644
--- a/sys/arch/i386/i386/svr4_machdep.c
+++ b/sys/arch/i386/i386/svr4_machdep.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: svr4_machdep.c,v 1.15 2002/03/14 01:26:33 millert Exp $ */
+/* $OpenBSD: svr4_machdep.c,v 1.16 2002/07/20 19:24:56 art Exp $ */
/* $NetBSD: svr4_machdep.c,v 1.24 1996/05/03 19:42:26 christos Exp $ */
/*
@@ -325,7 +325,6 @@ svr4_sendsig(catcher, sig, mask, code, type, val)
struct svr4_sigframe *fp, frame;
struct sigacts *psp = p->p_sigacts;
int oonstack;
- extern char svr4_esigcode[], svr4_sigcode[];
tf = p->p_md.md_regs;
oonstack = psp->ps_sigstk.ss_flags & SS_ONSTACK;
@@ -378,8 +377,7 @@ svr4_sendsig(catcher, sig, mask, code, type, val)
*/
tf->tf_es = GSEL(GUDATA_SEL, SEL_UPL);
tf->tf_ds = GSEL(GUDATA_SEL, SEL_UPL);
- tf->tf_eip = (int)(((char *)PS_STRINGS) -
- (svr4_esigcode - svr4_sigcode));
+ tf->tf_eip = p->p_sigcode;
tf->tf_cs = GSEL(GUCODE_SEL, SEL_UPL);
tf->tf_eflags &= ~(PSL_T|PSL_VM|PSL_AC);
tf->tf_esp = (int)fp;
diff --git a/sys/arch/m68k/m68k/sig_machdep.c b/sys/arch/m68k/m68k/sig_machdep.c
index e0555f3a5ef..9570ba4a9b1 100644
--- a/sys/arch/m68k/m68k/sig_machdep.c
+++ b/sys/arch/m68k/m68k/sig_machdep.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: sig_machdep.c,v 1.9 2002/06/04 00:09:08 deraadt Exp $ */
+/* $OpenBSD: sig_machdep.c,v 1.10 2002/07/20 19:24:56 art Exp $ */
/* $NetBSD: sig_machdep.c,v 1.3 1997/04/30 23:28:03 gwr Exp $ */
/*
@@ -145,7 +145,6 @@ sendsig(catcher, sig, mask, code, type, val)
register struct sigacts *psp = p->p_sigacts;
register short ft;
int oonstack, fsize;
- extern char sigcode[], esigcode[];
frame = (struct frame *)p->p_md.md_regs;
ft = frame->f_format;
@@ -276,7 +275,7 @@ sendsig(catcher, sig, mask, code, type, val)
/*
* Signal trampoline code is at base of user stack.
*/
- frame->f_pc = (int)PS_STRINGS - (esigcode - sigcode);
+ frame->f_pc = p->p_sigcode;
#ifdef DEBUG
if ((sigdebug & SDB_KSTACK) && p->p_pid == sigpid)
printf("sendsig(%d): sig %d returns\n",
diff --git a/sys/arch/macppc/macppc/machdep.c b/sys/arch/macppc/macppc/machdep.c
index 497d655b801..f50cb9699ae 100644
--- a/sys/arch/macppc/macppc/machdep.c
+++ b/sys/arch/macppc/macppc/machdep.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: machdep.c,v 1.35 2002/06/07 21:54:25 drahn Exp $ */
+/* $OpenBSD: machdep.c,v 1.36 2002/07/20 19:24:56 art Exp $ */
/* $NetBSD: machdep.c,v 1.4 1996/10/16 19:33:11 ws Exp $ */
/*
@@ -774,8 +774,7 @@ sendsig(catcher, sig, mask, code, type, val)
tf->fixreg[3] = (int)sig;
tf->fixreg[4] = (psp->ps_siginfo & sigmask(sig)) ? (int)&fp->sf_si : NULL;
tf->fixreg[5] = (int)&fp->sf_sc;
- tf->srr0 = (int)(((char *)PS_STRINGS)
- - (p->p_emul->e_esigcode - p->p_emul->e_sigcode));
+ tf->srr0 = p->p_sigcode;
#if WHEN_WE_ONLY_FLUSH_DATA_WHEN_DOING_PMAP_ENTER
pmap_extract(vm_map_pmap(&p->p_vmspace->vm_map),tf->srr0, &pa);
diff --git a/sys/arch/mvme68k/mvme68k/hpux_machdep.c b/sys/arch/mvme68k/mvme68k/hpux_machdep.c
index 2d775d753d4..571cdfa014b 100644
--- a/sys/arch/mvme68k/mvme68k/hpux_machdep.c
+++ b/sys/arch/mvme68k/mvme68k/hpux_machdep.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: hpux_machdep.c,v 1.7 2002/06/04 00:09:08 deraadt Exp $ */
+/* $OpenBSD: hpux_machdep.c,v 1.8 2002/07/20 19:24:56 art Exp $ */
/* $NetBSD: hpux_machdep.c,v 1.9 1997/03/16 10:00:45 thorpej Exp $ */
/*
@@ -432,7 +432,6 @@ hpux_sendsig(catcher, sig, mask, code, type, val)
register struct sigacts *psp = p->p_sigacts;
register short ft;
int oonstack, fsize;
- extern char sigcode[], esigcode[];
frame = (struct frame *)p->p_md.md_regs;
ft = frame->f_format;
@@ -571,7 +570,7 @@ hpux_sendsig(catcher, sig, mask, code, type, val)
/*
* Signal trampoline code is at base of user stack.
*/
- frame->f_pc = (int)PS_STRINGS - (esigcode - sigcode);
+ frame->f_pc = p->p_sigcode;
#ifdef DEBUG
if ((hpuxsigdebug & SDB_KSTACK) && p->p_pid == hpuxsigpid)
printf("hpux_sendsig(%d): sig %d returns\n",
diff --git a/sys/arch/mvme88k/mvme88k/machdep.c b/sys/arch/mvme88k/mvme88k/machdep.c
index f0de9357b07..b5e9e1ed9c7 100644
--- a/sys/arch/mvme88k/mvme88k/machdep.c
+++ b/sys/arch/mvme88k/mvme88k/machdep.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: machdep.c,v 1.94 2002/06/04 00:09:08 deraadt Exp $ */
+/* $OpenBSD: machdep.c,v 1.95 2002/07/20 19:24:56 art Exp $ */
/*
* Copyright (c) 1998, 1999, 2000, 2001 Steve Murphree, Jr.
* Copyright (c) 1996 Nivas Madhur
@@ -876,9 +876,6 @@ sendsig(catcher, sig, mask, code, type, val)
int oonstack, fsize;
struct sigframe sf;
int addr;
- extern char sigcode[], esigcode[];
-
-#define szsigcode (esigcode - sigcode)
tf = p->p_md.md_tf;
oonstack = psp->ps_sigstk.ss_flags & SA_ONSTACK;
@@ -993,7 +990,7 @@ sendsig(catcher, sig, mask, code, type, val)
* Build the argument list for the signal handler.
* Signal trampoline code is at base of user stack.
*/
- addr = (int)PS_STRINGS - szsigcode;
+ addr = p->p_sigcode;
if (cputyp != CPU_88110) {
/* mc88100 */
tf->snip = (addr & ~3) | NIP_V;
diff --git a/sys/arch/mvmeppc/mvmeppc/machdep.c b/sys/arch/mvmeppc/mvmeppc/machdep.c
index 855d28aa085..b9ea45475b0 100644
--- a/sys/arch/mvmeppc/mvmeppc/machdep.c
+++ b/sys/arch/mvmeppc/mvmeppc/machdep.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: machdep.c,v 1.26 2002/06/08 15:48:58 miod Exp $ */
+/* $OpenBSD: machdep.c,v 1.27 2002/07/20 19:24:56 art Exp $ */
/* $NetBSD: machdep.c,v 1.4 1996/10/16 19:33:11 ws Exp $ */
/*
@@ -768,8 +768,7 @@ sendsig(catcher, sig, mask, code, type, val)
tf->fixreg[3] = (int)sig;
tf->fixreg[4] = (psp->ps_siginfo & sigmask(sig)) ? (int)&fp->sf_si : NULL;
tf->fixreg[5] = (int)&fp->sf_sc;
- tf->srr0 = (int)(((char *)PS_STRINGS)
- - (p->p_emul->e_esigcode - p->p_emul->e_sigcode));
+ tf->srr0 = p->p_sigcode;
#if WHEN_WE_ONLY_FLUSH_DATA_WHEN_DOING_PMAP_ENTER
pmap_extract(vm_map_pmap(&p->p_vmspace->vm_map),tf->srr0, &pa);
diff --git a/sys/arch/sparc/sparc/machdep.c b/sys/arch/sparc/sparc/machdep.c
index 41ed403374d..7de944e8aa1 100644
--- a/sys/arch/sparc/sparc/machdep.c
+++ b/sys/arch/sparc/sparc/machdep.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: machdep.c,v 1.83 2002/06/14 04:16:06 art Exp $ */
+/* $OpenBSD: machdep.c,v 1.84 2002/07/20 19:24:56 art Exp $ */
/* $NetBSD: machdep.c,v 1.85 1997/09/12 08:55:02 pk Exp $ */
/*
@@ -525,8 +525,6 @@ sendsig(catcher, sig, mask, code, type, val)
struct trapframe *tf;
int caddr, oonstack, oldsp, newsp;
struct sigframe sf;
- extern char sigcode[], esigcode[];
-#define szsigcode (esigcode - sigcode)
#ifdef COMPAT_SUNOS
extern struct emul emul_sunos;
#endif
@@ -624,7 +622,7 @@ sendsig(catcher, sig, mask, code, type, val)
} else
#endif
{
- caddr = (int)PS_STRINGS - szsigcode;
+ caddr = p->p_sigcode;
tf->tf_global[1] = (int)catcher;
}
tf->tf_pc = caddr;
diff --git a/sys/arch/sparc/sparc/svr4_machdep.c b/sys/arch/sparc/sparc/svr4_machdep.c
index cfd23afdf5d..cd448800d36 100644
--- a/sys/arch/sparc/sparc/svr4_machdep.c
+++ b/sys/arch/sparc/sparc/svr4_machdep.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: svr4_machdep.c,v 1.10 2002/03/14 01:26:44 millert Exp $ */
+/* $OpenBSD: svr4_machdep.c,v 1.11 2002/07/20 19:24:57 art Exp $ */
/* $NetBSD: svr4_machdep.c,v 1.24 1997/07/29 10:04:45 fair Exp $ */
/*
@@ -452,8 +452,6 @@ svr4_sendsig(catcher, sig, mask, code, type, val)
struct svr4_sigframe *fp, frame;
struct sigacts *psp = p->p_sigacts;
int oonstack, oldsp, newsp, caddr;
- extern char svr4_sigcode[], svr4_esigcode[];
-
tf = (struct trapframe *)p->p_md.md_tf;
oldsp = tf->tf_out[6];
@@ -514,7 +512,7 @@ svr4_sendsig(catcher, sig, mask, code, type, val)
/*
* Build context to run handler in.
*/
- caddr = (int)PS_STRINGS - (svr4_esigcode - svr4_sigcode);
+ caddr = p->p_sigcode;
tf->tf_global[1] = (int)catcher;
tf->tf_pc = caddr;
diff --git a/sys/arch/sparc64/sparc64/machdep.c b/sys/arch/sparc64/sparc64/machdep.c
index 4fe6af36656..ddf79f9c508 100644
--- a/sys/arch/sparc64/sparc64/machdep.c
+++ b/sys/arch/sparc64/sparc64/machdep.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: machdep.c,v 1.46 2002/07/10 20:30:15 jsyn Exp $ */
+/* $OpenBSD: machdep.c,v 1.47 2002/07/20 19:24:57 art Exp $ */
/* $NetBSD: machdep.c,v 1.108 2001/07/24 19:30:14 eeh Exp $ */
/*-
@@ -625,8 +625,6 @@ sendsig(catcher, sig, mask, code, type, val)
struct rwindow *oldsp, *newsp;
struct sigframe sf;
int onstack;
- extern char sigcode[], esigcode[];
-#define szsigcode (esigcode - sigcode)
tf = p->p_md.md_tf;
oldsp = (struct rwindow *)(u_long)(tf->tf_out[6] + STACK_OFFSET);
@@ -710,7 +708,7 @@ sendsig(catcher, sig, mask, code, type, val)
* Arrange to continue execution at the code copied out in exec().
* It needs the function to call in %g1, and a new stack pointer.
*/
- addr = (vaddr_t)PS_STRINGS - szsigcode;
+ addr = p->p_sigcode;
tf->tf_global[1] = (vaddr_t)catcher;
tf->tf_pc = addr;
tf->tf_npc = addr + 4;
diff --git a/sys/arch/sparc64/sparc64/netbsd_machdep.c b/sys/arch/sparc64/sparc64/netbsd_machdep.c
index c5c527cb5f5..7bbf4f02e51 100644
--- a/sys/arch/sparc64/sparc64/netbsd_machdep.c
+++ b/sys/arch/sparc64/sparc64/netbsd_machdep.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: netbsd_machdep.c,v 1.3 2002/06/15 17:23:31 art Exp $ */
+/* $OpenBSD: netbsd_machdep.c,v 1.4 2002/07/20 19:24:57 art Exp $ */
/*-
* Copyright (c) 1996, 1997, 1998 The NetBSD Foundation, Inc.
@@ -146,8 +146,6 @@ netbsd_sendsig(catcher, sig, mask, code, type, val)
struct rwindow *oldsp, *newsp;
struct netbsd_sigframe sf, *fp;
int onstack;
- extern char netbsd_sigcode[], netbsd_esigcode[];
-#define szsigcode (netbsd_esigcode - netbsd_sigcode)
tf = p->p_md.md_tf;
oldsp = (struct rwindow *)(u_long)(tf->tf_out[6] + STACK_OFFSET);
@@ -215,7 +213,7 @@ netbsd_sendsig(catcher, sig, mask, code, type, val)
* Arrange to continue execution at the code copied out in exec().
* It needs the function to call in %g1, and a new stack pointer.
*/
- addr = (vaddr_t)PS_STRINGS - szsigcode;
+ addr = p->p_sigcode;
tf->tf_global[1] = (vaddr_t)catcher;
tf->tf_pc = addr;
tf->tf_npc = addr + 4;
diff --git a/sys/arch/sparc64/stand/ofwboot/version b/sys/arch/sparc64/stand/ofwboot/version
index 0cfbf08886f..b8626c4cff2 100644
--- a/sys/arch/sparc64/stand/ofwboot/version
+++ b/sys/arch/sparc64/stand/ofwboot/version
@@ -1 +1 @@
-2
+4
diff --git a/sys/arch/vax/vax/machdep.c b/sys/arch/vax/vax/machdep.c
index f6404516fa3..2a6d400a6cf 100644
--- a/sys/arch/vax/vax/machdep.c
+++ b/sys/arch/vax/vax/machdep.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: machdep.c,v 1.59 2002/05/16 07:37:44 miod Exp $ */
+/* $OpenBSD: machdep.c,v 1.60 2002/07/20 19:24:57 art Exp $ */
/* $NetBSD: machdep.c,v 1.108 2000/09/13 15:00:23 thorpej Exp $ */
/*
@@ -439,7 +439,6 @@ sendsig(catcher, sig, mask, code, type, val)
struct trapframe *syscf;
struct sigcontext *sigctx, gsigctx;
struct trampframe *trampf, gtrampf;
- extern char sigcode[], esigcode[];
unsigned cursp;
int onstack;
@@ -490,7 +489,7 @@ printf("sendsig: signal %x catcher %x\n", sig, catcher);
copyout(&gsigctx, sigctx, sizeof(gsigctx)))
sigexit(p, SIGILL);
- syscf->pc = (unsigned) (((char *) PS_STRINGS) - (esigcode - sigcode));
+ syscf->pc = p->p_sigcode;
syscf->psl = PSL_U | PSL_PREVU;
syscf->ap = (unsigned) sigctx-8;
syscf->sp = cursp;