summaryrefslogtreecommitdiff
path: root/traps.h
blob: f8cf3a2cfaab0cc109bd3d502100e82e958d98c7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// 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

#define IRQ_OFFSET      32      // IRQ 0 corresponds to int IRQ_OFFSET

#define IRQ_KBD          1
#define IRQ_IDE         14
#define IRQ_TIMER       18
#define IRQ_ERROR       19
#define IRQ_SPURIOUS    31