summaryrefslogtreecommitdiff
path: root/regress/sys/arch/mvme88k
diff options
context:
space:
mode:
Diffstat (limited to 'regress/sys/arch/mvme88k')
-rw-r--r--regress/sys/arch/mvme88k/Makefile7
-rw-r--r--regress/sys/arch/mvme88k/usertrap/Makefile20
-rw-r--r--regress/sys/arch/mvme88k/usertrap/answer13
-rw-r--r--regress/sys/arch/mvme88k/usertrap/testsuite.sh50
-rw-r--r--regress/sys/arch/mvme88k/usertrap/trap.c542
5 files changed, 632 insertions, 0 deletions
diff --git a/regress/sys/arch/mvme88k/Makefile b/regress/sys/arch/mvme88k/Makefile
new file mode 100644
index 00000000000..f5d7f1067ee
--- /dev/null
+++ b/regress/sys/arch/mvme88k/Makefile
@@ -0,0 +1,7 @@
+# $OpenBSD: Makefile,v 1.1 2003/09/01 19:45:25 miod Exp $
+
+SUBDIR+= usertrap
+
+install:
+
+.include <bsd.subdir.mk>
diff --git a/regress/sys/arch/mvme88k/usertrap/Makefile b/regress/sys/arch/mvme88k/usertrap/Makefile
new file mode 100644
index 00000000000..025ae66113e
--- /dev/null
+++ b/regress/sys/arch/mvme88k/usertrap/Makefile
@@ -0,0 +1,20 @@
+# $OpenBSD: Makefile,v 1.1 2003/09/01 19:45:28 miod Exp $
+
+PROG= trap
+
+.if ${MACHINE_ARCH} != "m88k"
+REGRESS_SKIP="yes"
+.endif
+
+REGRESS_TARGETS= do-trap
+
+do-trap: ${PROG}
+ sh ${.CURDIR}/testsuite.sh >out 2>&1
+ @if diff -u out ${.CURDIR}/answer; then \
+ echo SUCCESS; \
+ else \
+ echo FAIL; \
+ exit 1; \
+ fi
+
+.include <bsd.regress.mk>
diff --git a/regress/sys/arch/mvme88k/usertrap/answer b/regress/sys/arch/mvme88k/usertrap/answer
new file mode 100644
index 00000000000..615188bc681
--- /dev/null
+++ b/regress/sys/arch/mvme88k/usertrap/answer
@@ -0,0 +1,13 @@
+Privilege violation: Illegal instruction
+Privilege violation: Illegal instruction
+Privilege violation: Illegal instruction
+Alternate system call: Bad system call
+Alternate system call: Bad system call
+DDB breakpoint: Illegal instruction
+DDB trace: Illegal instruction
+DDB entry: Illegal instruction
+System call: Bad system call
+BUG:
+Software divide by zero: Floating point exception
+Single step: Trace trap
+Breakpoint: Trace trap
diff --git a/regress/sys/arch/mvme88k/usertrap/testsuite.sh b/regress/sys/arch/mvme88k/usertrap/testsuite.sh
new file mode 100644
index 00000000000..1f46acf6d61
--- /dev/null
+++ b/regress/sys/arch/mvme88k/usertrap/testsuite.sh
@@ -0,0 +1,50 @@
+#! /bin/sh
+# $OpenBSD: testsuite.sh,v 1.1 2003/09/01 19:45:28 miod Exp $
+
+# Simple test program to check what happens when userland tries to trap.
+# Written by Miodrag Vallat 2003 AD -- public domain
+
+PROG=./trap
+
+ulimit -c 0
+
+echo -n "Privilege violation: "
+${PROG} 0
+echo -n "Privilege violation: "
+${PROG} 1
+echo -n "Privilege violation: "
+${PROG} 127
+echo -n "Alternate system call: "
+${PROG} 128
+echo -n "Alternate system call: "
+${PROG} 129
+echo -n "DDB breakpoint: "
+${PROG} 130
+echo -n "DDB trace: "
+${PROG} 131
+echo -n "DDB entry: "
+${PROG} 132
+#echo -n "SIGSYS: "
+#${PROG} 255
+#echo -n "SIGSYS: "
+#${PROG} 256
+#echo -n "SIGSYS: "
+#${PROG} 400
+echo -n "System call: "
+${PROG} 450
+#echo -n "SIGSYS: "
+#${PROG} 495
+echo -n "BUG: "
+${PROG} 496
+# since there won't be any output...
+echo
+#echo -n "SIGTRAP: "
+#${PROG} 502
+echo -n "Software divide by zero: "
+${PROG} 503
+echo -n "Single step: "
+${PROG} 504
+echo -n "Breakpoint: "
+${PROG} 511
+
+exit 0
diff --git a/regress/sys/arch/mvme88k/usertrap/trap.c b/regress/sys/arch/mvme88k/usertrap/trap.c
new file mode 100644
index 00000000000..0c8e81a96a1
--- /dev/null
+++ b/regress/sys/arch/mvme88k/usertrap/trap.c
@@ -0,0 +1,542 @@
+/* $OpenBSD: trap.c,v 1.1 2003/09/01 19:45:28 miod Exp $ */
+
+/*
+ * Simple test program to check what happens when userland tries to trap.
+ * Written by Miodrag Vallat 2003 AD -- public domain
+ */
+
+#include <stdio.h>
+
+#define TRAP(num) \
+ case num: \
+ __asm__ __volatile__ ("tb0 0, r0, " __STRING(num) ); \
+ break;
+
+int
+main(int argc, char *argv[])
+{
+ int trapnum = 503; /* software divide by zero */
+
+ if (argc > 1)
+ trapnum = atoi(argv[1]);
+
+ switch (trapnum) {
+TRAP(0x000)
+TRAP(0x001)
+TRAP(0x002)
+TRAP(0x003)
+TRAP(0x004)
+TRAP(0x005)
+TRAP(0x006)
+TRAP(0x007)
+TRAP(0x008)
+TRAP(0x009)
+TRAP(0x00a)
+TRAP(0x00b)
+TRAP(0x00c)
+TRAP(0x00d)
+TRAP(0x00e)
+TRAP(0x00f)
+TRAP(0x010)
+TRAP(0x011)
+TRAP(0x012)
+TRAP(0x013)
+TRAP(0x014)
+TRAP(0x015)
+TRAP(0x016)
+TRAP(0x017)
+TRAP(0x018)
+TRAP(0x019)
+TRAP(0x01a)
+TRAP(0x01b)
+TRAP(0x01c)
+TRAP(0x01d)
+TRAP(0x01e)
+TRAP(0x01f)
+TRAP(0x020)
+TRAP(0x021)
+TRAP(0x022)
+TRAP(0x023)
+TRAP(0x024)
+TRAP(0x025)
+TRAP(0x026)
+TRAP(0x027)
+TRAP(0x028)
+TRAP(0x029)
+TRAP(0x02a)
+TRAP(0x02b)
+TRAP(0x02c)
+TRAP(0x02d)
+TRAP(0x02e)
+TRAP(0x02f)
+TRAP(0x030)
+TRAP(0x031)
+TRAP(0x032)
+TRAP(0x033)
+TRAP(0x034)
+TRAP(0x035)
+TRAP(0x036)
+TRAP(0x037)
+TRAP(0x038)
+TRAP(0x039)
+TRAP(0x03a)
+TRAP(0x03b)
+TRAP(0x03c)
+TRAP(0x03d)
+TRAP(0x03e)
+TRAP(0x03f)
+TRAP(0x040)
+TRAP(0x041)
+TRAP(0x042)
+TRAP(0x043)
+TRAP(0x044)
+TRAP(0x045)
+TRAP(0x046)
+TRAP(0x047)
+TRAP(0x048)
+TRAP(0x049)
+TRAP(0x04a)
+TRAP(0x04b)
+TRAP(0x04c)
+TRAP(0x04d)
+TRAP(0x04e)
+TRAP(0x04f)
+TRAP(0x050)
+TRAP(0x051)
+TRAP(0x052)
+TRAP(0x053)
+TRAP(0x054)
+TRAP(0x055)
+TRAP(0x056)
+TRAP(0x057)
+TRAP(0x058)
+TRAP(0x059)
+TRAP(0x05a)
+TRAP(0x05b)
+TRAP(0x05c)
+TRAP(0x05d)
+TRAP(0x05e)
+TRAP(0x05f)
+TRAP(0x060)
+TRAP(0x061)
+TRAP(0x062)
+TRAP(0x063)
+TRAP(0x064)
+TRAP(0x065)
+TRAP(0x066)
+TRAP(0x067)
+TRAP(0x068)
+TRAP(0x069)
+TRAP(0x06a)
+TRAP(0x06b)
+TRAP(0x06c)
+TRAP(0x06d)
+TRAP(0x06e)
+TRAP(0x06f)
+TRAP(0x070)
+TRAP(0x071)
+TRAP(0x072)
+TRAP(0x073)
+TRAP(0x074)
+TRAP(0x075)
+TRAP(0x076)
+TRAP(0x077)
+TRAP(0x078)
+TRAP(0x079)
+TRAP(0x07a)
+TRAP(0x07b)
+TRAP(0x07c)
+TRAP(0x07d)
+TRAP(0x07e)
+TRAP(0x07f)
+TRAP(0x080)
+TRAP(0x081)
+TRAP(0x082)
+TRAP(0x083)
+TRAP(0x084)
+TRAP(0x085)
+TRAP(0x086)
+TRAP(0x087)
+TRAP(0x088)
+TRAP(0x089)
+TRAP(0x08a)
+TRAP(0x08b)
+TRAP(0x08c)
+TRAP(0x08d)
+TRAP(0x08e)
+TRAP(0x08f)
+TRAP(0x090)
+TRAP(0x091)
+TRAP(0x092)
+TRAP(0x093)
+TRAP(0x094)
+TRAP(0x095)
+TRAP(0x096)
+TRAP(0x097)
+TRAP(0x098)
+TRAP(0x099)
+TRAP(0x09a)
+TRAP(0x09b)
+TRAP(0x09c)
+TRAP(0x09d)
+TRAP(0x09e)
+TRAP(0x09f)
+TRAP(0x0a0)
+TRAP(0x0a1)
+TRAP(0x0a2)
+TRAP(0x0a3)
+TRAP(0x0a4)
+TRAP(0x0a5)
+TRAP(0x0a6)
+TRAP(0x0a7)
+TRAP(0x0a8)
+TRAP(0x0a9)
+TRAP(0x0aa)
+TRAP(0x0ab)
+TRAP(0x0ac)
+TRAP(0x0ad)
+TRAP(0x0ae)
+TRAP(0x0af)
+TRAP(0x0b0)
+TRAP(0x0b1)
+TRAP(0x0b2)
+TRAP(0x0b3)
+TRAP(0x0b4)
+TRAP(0x0b5)
+TRAP(0x0b6)
+TRAP(0x0b7)
+TRAP(0x0b8)
+TRAP(0x0b9)
+TRAP(0x0ba)
+TRAP(0x0bb)
+TRAP(0x0bc)
+TRAP(0x0bd)
+TRAP(0x0be)
+TRAP(0x0bf)
+TRAP(0x0c0)
+TRAP(0x0c1)
+TRAP(0x0c2)
+TRAP(0x0c3)
+TRAP(0x0c4)
+TRAP(0x0c5)
+TRAP(0x0c6)
+TRAP(0x0c7)
+TRAP(0x0c8)
+TRAP(0x0c9)
+TRAP(0x0ca)
+TRAP(0x0cb)
+TRAP(0x0cc)
+TRAP(0x0cd)
+TRAP(0x0ce)
+TRAP(0x0cf)
+TRAP(0x0d0)
+TRAP(0x0d1)
+TRAP(0x0d2)
+TRAP(0x0d3)
+TRAP(0x0d4)
+TRAP(0x0d5)
+TRAP(0x0d6)
+TRAP(0x0d7)
+TRAP(0x0d8)
+TRAP(0x0d9)
+TRAP(0x0da)
+TRAP(0x0db)
+TRAP(0x0dc)
+TRAP(0x0dd)
+TRAP(0x0de)
+TRAP(0x0df)
+TRAP(0x0e0)
+TRAP(0x0e1)
+TRAP(0x0e2)
+TRAP(0x0e3)
+TRAP(0x0e4)
+TRAP(0x0e5)
+TRAP(0x0e6)
+TRAP(0x0e7)
+TRAP(0x0e8)
+TRAP(0x0e9)
+TRAP(0x0ea)
+TRAP(0x0eb)
+TRAP(0x0ec)
+TRAP(0x0ed)
+TRAP(0x0ee)
+TRAP(0x0ef)
+TRAP(0x0f0)
+TRAP(0x0f1)
+TRAP(0x0f2)
+TRAP(0x0f3)
+TRAP(0x0f4)
+TRAP(0x0f5)
+TRAP(0x0f6)
+TRAP(0x0f7)
+TRAP(0x0f8)
+TRAP(0x0f9)
+TRAP(0x0fa)
+TRAP(0x0fb)
+TRAP(0x0fc)
+TRAP(0x0fd)
+TRAP(0x0fe)
+TRAP(0x0ff)
+TRAP(0x100)
+TRAP(0x101)
+TRAP(0x102)
+TRAP(0x103)
+TRAP(0x104)
+TRAP(0x105)
+TRAP(0x106)
+TRAP(0x107)
+TRAP(0x108)
+TRAP(0x109)
+TRAP(0x10a)
+TRAP(0x10b)
+TRAP(0x10c)
+TRAP(0x10d)
+TRAP(0x10e)
+TRAP(0x10f)
+TRAP(0x110)
+TRAP(0x111)
+TRAP(0x112)
+TRAP(0x113)
+TRAP(0x114)
+TRAP(0x115)
+TRAP(0x116)
+TRAP(0x117)
+TRAP(0x118)
+TRAP(0x119)
+TRAP(0x11a)
+TRAP(0x11b)
+TRAP(0x11c)
+TRAP(0x11d)
+TRAP(0x11e)
+TRAP(0x11f)
+TRAP(0x120)
+TRAP(0x121)
+TRAP(0x122)
+TRAP(0x123)
+TRAP(0x124)
+TRAP(0x125)
+TRAP(0x126)
+TRAP(0x127)
+TRAP(0x128)
+TRAP(0x129)
+TRAP(0x12a)
+TRAP(0x12b)
+TRAP(0x12c)
+TRAP(0x12d)
+TRAP(0x12e)
+TRAP(0x12f)
+TRAP(0x130)
+TRAP(0x131)
+TRAP(0x132)
+TRAP(0x133)
+TRAP(0x134)
+TRAP(0x135)
+TRAP(0x136)
+TRAP(0x137)
+TRAP(0x138)
+TRAP(0x139)
+TRAP(0x13a)
+TRAP(0x13b)
+TRAP(0x13c)
+TRAP(0x13d)
+TRAP(0x13e)
+TRAP(0x13f)
+TRAP(0x140)
+TRAP(0x141)
+TRAP(0x142)
+TRAP(0x143)
+TRAP(0x144)
+TRAP(0x145)
+TRAP(0x146)
+TRAP(0x147)
+TRAP(0x148)
+TRAP(0x149)
+TRAP(0x14a)
+TRAP(0x14b)
+TRAP(0x14c)
+TRAP(0x14d)
+TRAP(0x14e)
+TRAP(0x14f)
+TRAP(0x150)
+TRAP(0x151)
+TRAP(0x152)
+TRAP(0x153)
+TRAP(0x154)
+TRAP(0x155)
+TRAP(0x156)
+TRAP(0x157)
+TRAP(0x158)
+TRAP(0x159)
+TRAP(0x15a)
+TRAP(0x15b)
+TRAP(0x15c)
+TRAP(0x15d)
+TRAP(0x15e)
+TRAP(0x15f)
+TRAP(0x160)
+TRAP(0x161)
+TRAP(0x162)
+TRAP(0x163)
+TRAP(0x164)
+TRAP(0x165)
+TRAP(0x166)
+TRAP(0x167)
+TRAP(0x168)
+TRAP(0x169)
+TRAP(0x16a)
+TRAP(0x16b)
+TRAP(0x16c)
+TRAP(0x16d)
+TRAP(0x16e)
+TRAP(0x16f)
+TRAP(0x170)
+TRAP(0x171)
+TRAP(0x172)
+TRAP(0x173)
+TRAP(0x174)
+TRAP(0x175)
+TRAP(0x176)
+TRAP(0x177)
+TRAP(0x178)
+TRAP(0x179)
+TRAP(0x17a)
+TRAP(0x17b)
+TRAP(0x17c)
+TRAP(0x17d)
+TRAP(0x17e)
+TRAP(0x17f)
+TRAP(0x180)
+TRAP(0x181)
+TRAP(0x182)
+TRAP(0x183)
+TRAP(0x184)
+TRAP(0x185)
+TRAP(0x186)
+TRAP(0x187)
+TRAP(0x188)
+TRAP(0x189)
+TRAP(0x18a)
+TRAP(0x18b)
+TRAP(0x18c)
+TRAP(0x18d)
+TRAP(0x18e)
+TRAP(0x18f)
+TRAP(0x190)
+TRAP(0x191)
+TRAP(0x192)
+TRAP(0x193)
+TRAP(0x194)
+TRAP(0x195)
+TRAP(0x196)
+TRAP(0x197)
+TRAP(0x198)
+TRAP(0x199)
+TRAP(0x19a)
+TRAP(0x19b)
+TRAP(0x19c)
+TRAP(0x19d)
+TRAP(0x19e)
+TRAP(0x19f)
+TRAP(0x1a0)
+TRAP(0x1a1)
+TRAP(0x1a2)
+TRAP(0x1a3)
+TRAP(0x1a4)
+TRAP(0x1a5)
+TRAP(0x1a6)
+TRAP(0x1a7)
+TRAP(0x1a8)
+TRAP(0x1a9)
+TRAP(0x1aa)
+TRAP(0x1ab)
+TRAP(0x1ac)
+TRAP(0x1ad)
+TRAP(0x1ae)
+TRAP(0x1af)
+TRAP(0x1b0)
+TRAP(0x1b1)
+TRAP(0x1b2)
+TRAP(0x1b3)
+TRAP(0x1b4)
+TRAP(0x1b5)
+TRAP(0x1b6)
+TRAP(0x1b7)
+TRAP(0x1b8)
+TRAP(0x1b9)
+TRAP(0x1ba)
+TRAP(0x1bb)
+TRAP(0x1bc)
+TRAP(0x1bd)
+TRAP(0x1be)
+TRAP(0x1bf)
+TRAP(0x1c0)
+TRAP(0x1c1)
+TRAP(0x1c2)
+TRAP(0x1c3)
+TRAP(0x1c4)
+TRAP(0x1c5)
+TRAP(0x1c6)
+TRAP(0x1c7)
+TRAP(0x1c8)
+TRAP(0x1c9)
+TRAP(0x1ca)
+TRAP(0x1cb)
+TRAP(0x1cc)
+TRAP(0x1cd)
+TRAP(0x1ce)
+TRAP(0x1cf)
+TRAP(0x1d0)
+TRAP(0x1d1)
+TRAP(0x1d2)
+TRAP(0x1d3)
+TRAP(0x1d4)
+TRAP(0x1d5)
+TRAP(0x1d6)
+TRAP(0x1d7)
+TRAP(0x1d8)
+TRAP(0x1d9)
+TRAP(0x1da)
+TRAP(0x1db)
+TRAP(0x1dc)
+TRAP(0x1dd)
+TRAP(0x1de)
+TRAP(0x1df)
+TRAP(0x1e0)
+TRAP(0x1e1)
+TRAP(0x1e2)
+TRAP(0x1e3)
+TRAP(0x1e4)
+TRAP(0x1e5)
+TRAP(0x1e6)
+TRAP(0x1e7)
+TRAP(0x1e8)
+TRAP(0x1e9)
+TRAP(0x1ea)
+TRAP(0x1eb)
+TRAP(0x1ec)
+TRAP(0x1ed)
+TRAP(0x1ee)
+TRAP(0x1ef)
+TRAP(0x1f0)
+TRAP(0x1f1)
+TRAP(0x1f2)
+TRAP(0x1f3)
+TRAP(0x1f4)
+TRAP(0x1f5)
+TRAP(0x1f6)
+TRAP(0x1f7)
+TRAP(0x1f8)
+TRAP(0x1f9)
+TRAP(0x1fa)
+TRAP(0x1fb)
+TRAP(0x1fc)
+TRAP(0x1fd)
+TRAP(0x1fe)
+TRAP(0x1ff)
+ default:
+ printf("invalid trap number %x\n", trapnum);
+ return 1;
+ }
+
+ return 0;
+}