summaryrefslogtreecommitdiff
path: root/traps.h
diff options
context:
space:
mode:
authorrtm <rtm>2006-06-15 16:02:20 +0000
committerrtm <rtm>2006-06-15 16:02:20 +0000
commita4c03dea09b7b5f2463147e979d20b035b81de96 (patch)
tree3ba362f412faf45f0fb0e93b72f613ecc3956193 /traps.h
parentcb83c71628378bc0e295dd71bf6641379fbcdf37 (diff)
downloadxv6-labs-a4c03dea09b7b5f2463147e979d20b035b81de96.tar.gz
xv6-labs-a4c03dea09b7b5f2463147e979d20b035b81de96.tar.bz2
xv6-labs-a4c03dea09b7b5f2463147e979d20b035b81de96.zip
primitive fork and exit system calls
Diffstat (limited to 'traps.h')
-rw-r--r--traps.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/traps.h b/traps.h
new file mode 100644
index 0000000..a81903c
--- /dev/null
+++ b/traps.h
@@ -0,0 +1,26 @@
+// system defined:
+#define T_DIVIDE 0 // divide error
+#define T_DEBUG 1 // debug exception
+#define T_NMI 2 // non-maskable interrupt
+#define T_BRKPT 3 // breakpoint
+#define T_OFLOW 4 // overflow
+#define T_BOUND 5 // bounds check
+#define T_ILLOP 6 // illegal opcode
+#define T_DEVICE 7 // device not available
+#define T_DBLFLT 8 // double fault
+/* #define T_COPROC 9 */ // reserved (not generated by recent processors)
+#define T_TSS 10 // invalid task switch segment
+#define T_SEGNP 11 // segment not present
+#define T_STACK 12 // stack exception
+#define T_GPFLT 13 // genernal protection fault
+#define T_PGFLT 14 // page fault
+/* #define T_RES 15 */ // reserved
+#define T_FPERR 16 // floating point error
+#define T_ALIGN 17 // aligment check
+#define T_MCHK 18 // machine check
+#define T_SIMDERR 19 // SIMD floating point error
+
+// These are arbitrarily chosen, but with care not to overlap
+// processor defined exceptions or interrupt vectors.
+#define T_SYSCALL 48 // system call
+#define T_DEFAULT 500 // catchall