summaryrefslogtreecommitdiff
path: root/sys/arch/hp300
diff options
context:
space:
mode:
authorJason Downs <downsj@cvs.openbsd.org>1997-02-05 17:33:03 +0000
committerJason Downs <downsj@cvs.openbsd.org>1997-02-05 17:33:03 +0000
commitb1b18d5bdd435847de2612aab357a4db4aa9e683 (patch)
treedf0f949f87056dca6e7336f613ead372ae644cac /sys/arch/hp300
parent8600a3043da9598b34ffebd924c85e1c763e4b45 (diff)
latest siginfo changes from theo
Diffstat (limited to 'sys/arch/hp300')
-rw-r--r--sys/arch/hp300/hp300/machdep.c3
-rw-r--r--sys/arch/hp300/hp300/trap.c14
2 files changed, 10 insertions, 7 deletions
diff --git a/sys/arch/hp300/hp300/machdep.c b/sys/arch/hp300/hp300/machdep.c
index 3308b0757f9..f4e2d74c49e 100644
--- a/sys/arch/hp300/hp300/machdep.c
+++ b/sys/arch/hp300/hp300/machdep.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: machdep.c,v 1.16 1997/02/04 07:15:28 downsj Exp $ */
+/* $OpenBSD: machdep.c,v 1.17 1997/02/05 17:33:00 downsj Exp $ */
/* $NetBSD: machdep.c,v 1.77 1996/12/11 16:49:23 thorpej Exp $ */
/*
@@ -943,6 +943,7 @@ sendsig(catcher, sig, mask, code, type, val)
kfp->sf_scp = hkfp->hsf_scp;
}
#endif
+ /* XXX do not copy out siginfo if not needed */
(void) copyout((caddr_t)kfp, (caddr_t)fp, fsize);
frame->f_regs[SP] = (int)fp;
#ifdef DEBUG
diff --git a/sys/arch/hp300/hp300/trap.c b/sys/arch/hp300/hp300/trap.c
index 499c48d8fad..c30f7935c65 100644
--- a/sys/arch/hp300/hp300/trap.c
+++ b/sys/arch/hp300/hp300/trap.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: trap.c,v 1.6 1997/02/04 06:21:32 downsj Exp $ */
+/* $OpenBSD: trap.c,v 1.7 1997/02/05 17:33:02 downsj Exp $ */
/* $NetBSD: trap.c,v 1.47 1996/10/14 20:06:31 thorpej Exp $ */
/*
@@ -263,7 +263,8 @@ again:
} else if (sig = writeback(fp, fromtrap)) {
beenhere = 1;
oticks = p->p_sticks;
- trapsignal(p, sig, T_MMUFLT, SEGV_MAPERR, (caddr_t)faultaddr);
+ trapsignal(p, sig, T_MMUFLT, SEGV_MAPERR,
+ (caddr_t)faultaddr);
goto again;
}
}
@@ -604,7 +605,7 @@ trap(type, code, v, frame)
register struct vmspace *vm = p->p_vmspace;
register vm_map_t map;
int rv;
- vm_prot_t ftype;
+ vm_prot_t ftype, vftype;
extern vm_map_t kernel_map;
#ifdef DEBUG
@@ -626,9 +627,10 @@ trap(type, code, v, frame)
else
map = vm ? &vm->vm_map : kernel_map;
- if (WRFAULT(code))
+ if (WRFAULT(code)) {
+ vftype = VM_PROT_WRITE;
ftype = VM_PROT_READ | VM_PROT_WRITE;
- else
+ } else
ftype = VM_PROT_READ;
va = trunc_page((vm_offset_t)v);
@@ -697,7 +699,7 @@ trap(type, code, v, frame)
goto dopanic;
}
frame.f_pad = code & 0xffff;
- ucode = T_MMUFLT;
+ ucode = vftype;
typ = SEGV_MAPERR;
i = SIGSEGV;
break;