* same with xv6
[mascara-docs.git] / i386 / MIT / src.xv6 / traps.h
blob0bd1fd8454bfa6c08e0807c4eb12a2b7604ae0ce
1 // x86 trap and interrupt constants.
3 // Processor-defined:
4 #define T_DIVIDE 0 // divide error
5 #define T_DEBUG 1 // debug exception
6 #define T_NMI 2 // non-maskable interrupt
7 #define T_BRKPT 3 // breakpoint
8 #define T_OFLOW 4 // overflow
9 #define T_BOUND 5 // bounds check
10 #define T_ILLOP 6 // illegal opcode
11 #define T_DEVICE 7 // device not available
12 #define T_DBLFLT 8 // double fault
13 // #define T_COPROC 9 // reserved (not used since 486)
14 #define T_TSS 10 // invalid task switch segment
15 #define T_SEGNP 11 // segment not present
16 #define T_STACK 12 // stack exception
17 #define T_GPFLT 13 // general protection fault
18 #define T_PGFLT 14 // page fault
19 // #define T_RES 15 // reserved
20 #define T_FPERR 16 // floating point error
21 #define T_ALIGN 17 // aligment check
22 #define T_MCHK 18 // machine check
23 #define T_SIMDERR 19 // SIMD floating point error
25 // These are arbitrarily chosen, but with care not to overlap
26 // processor defined exceptions or interrupt vectors.
27 #define T_SYSCALL 64 // system call
28 #define T_DEFAULT 500 // catchall
30 #define T_IRQ0 32 // IRQ 0 corresponds to int T_IRQ
32 #define IRQ_TIMER 0
33 #define IRQ_KBD 1
34 #define IRQ_COM1 4
35 #define IRQ_IDE 14
36 #define IRQ_ERROR 19
37 #define IRQ_SPURIOUS 31