summaryrefslogtreecommitdiff
path: root/sys/arch/hppa
diff options
context:
space:
mode:
authorMichael Shalayeff <mickey@cvs.openbsd.org>2005-01-17 20:47:41 +0000
committerMichael Shalayeff <mickey@cvs.openbsd.org>2005-01-17 20:47:41 +0000
commit359b0a2a412ba1723695bf846a25867024dfc746 (patch)
tree4f12da21ea66bdea86a0d9a80f30a9c0382d023c /sys/arch/hppa
parentf36a932f68701629b67fd644efe676c4da22234d (diff)
proper fault address selection (list all possible pc-based traps)
Diffstat (limited to 'sys/arch/hppa')
-rw-r--r--sys/arch/hppa/hppa/trap.c7
-rw-r--r--sys/arch/hppa/include/trap.h5
2 files changed, 8 insertions, 4 deletions
diff --git a/sys/arch/hppa/hppa/trap.c b/sys/arch/hppa/hppa/trap.c
index b91b012d0d5..0765f83e0f4 100644
--- a/sys/arch/hppa/hppa/trap.c
+++ b/sys/arch/hppa/hppa/trap.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: trap.c,v 1.83 2005/01/17 19:01:00 mickey Exp $ */
+/* $OpenBSD: trap.c,v 1.84 2005/01/17 20:47:40 mickey Exp $ */
/*
* Copyright (c) 1998-2004 Michael Shalayeff
@@ -183,8 +183,9 @@ trap(type, frame)
trapnum = type & ~T_USER;
opcode = frame->tf_iir;
- if (trapnum == T_ITLBMISS ||
- trapnum == T_EXCEPTION || trapnum == T_EMULATION) {
+ if (trapnum <= T_EXCEPTION || trapnum == T_HIGHERPL ||
+ trapnum == T_LOWERPL || trapnum == T_TAKENBR ||
+ trapnum == T_IDEBUG || trapnum == T_PERFMON) {
va = frame->tf_iioq_head;
space = frame->tf_iisq_head;
vftype = UVM_PROT_EXEC;
diff --git a/sys/arch/hppa/include/trap.h b/sys/arch/hppa/include/trap.h
index 40885ea6bd5..774dcbf7ad0 100644
--- a/sys/arch/hppa/include/trap.h
+++ b/sys/arch/hppa/include/trap.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: trap.h,v 1.10 2004/04/07 18:24:20 mickey Exp $ */
+/* $OpenBSD: trap.h,v 1.11 2005/01/17 20:47:40 mickey Exp $ */
/*
* Copyright (c) 1999-2004 Michael Shalayeff
@@ -61,6 +61,9 @@
#define T_DATACC 26 /* data access rights >=7100 */
#define T_DATAPID 27 /* data protection ID >=7100 */
#define T_DATALIGN 28 /* unaligned data ref */
+#define T_PERFMON 29 /* performance monitor interrupt */
+#define T_IDEBUG 30 /* debug SFU interrupt */
+#define T_DDEBUG 31 /* debug SFU interrupt */
/*
* Reserved range for traps is 0-63, place user flag at 6th bit