xref: /xv6-public/traps.h (revision bd303ed0)
1a4c03deaSrtm // system defined:
2a4c03deaSrtm #define T_DIVIDE     0		// divide error
3a4c03deaSrtm #define T_DEBUG      1		// debug exception
4a4c03deaSrtm #define T_NMI        2		// non-maskable interrupt
5a4c03deaSrtm #define T_BRKPT      3		// breakpoint
6a4c03deaSrtm #define T_OFLOW      4		// overflow
7a4c03deaSrtm #define T_BOUND      5		// bounds check
8a4c03deaSrtm #define T_ILLOP      6		// illegal opcode
9a4c03deaSrtm #define T_DEVICE     7		// device not available
10a4c03deaSrtm #define T_DBLFLT     8		// double fault
11a4c03deaSrtm /* #define T_COPROC  9 */	// reserved (not generated by recent processors)
12a4c03deaSrtm #define T_TSS       10		// invalid task switch segment
13a4c03deaSrtm #define T_SEGNP     11		// segment not present
14a4c03deaSrtm #define T_STACK     12		// stack exception
15a4c03deaSrtm #define T_GPFLT     13		// genernal protection fault
16a4c03deaSrtm #define T_PGFLT     14		// page fault
17a4c03deaSrtm /* #define T_RES    15 */	// reserved
18a4c03deaSrtm #define T_FPERR     16		// floating point error
19a4c03deaSrtm #define T_ALIGN     17		// aligment check
20a4c03deaSrtm #define T_MCHK      18		// machine check
21a4c03deaSrtm #define T_SIMDERR   19		// SIMD floating point error
22a4c03deaSrtm 
23a4c03deaSrtm // These are arbitrarily chosen, but with care not to overlap
24a4c03deaSrtm // processor defined exceptions or interrupt vectors.
25a4c03deaSrtm #define T_SYSCALL   48		// system call
26a4c03deaSrtm #define T_DEFAULT   500		// catchall
27*bd303ed0Skaashoek 
28*bd303ed0Skaashoek #define IRQ_OFFSET      32	// IRQ 0 corresponds to int IRQ_OFFSET
29*bd303ed0Skaashoek 
30*bd303ed0Skaashoek #define IRQ_TIMER       18
31*bd303ed0Skaashoek #define IRQ_ERROR       19
32*bd303ed0Skaashoek #define IRQ_SPURIOUS    31
33