Merge branch 'interrupt-rework' into prog-loader
[lunaix-os.git] / lunaix-os / includes / arch / x86 / vectors.h
1 #ifndef __LUNAIX_VECTORS_H
2 #define __LUNAIX_VECTORS_H
3
4 // clang-format off
5
6 #define FAULT_DIVISION_ERROR            0
7 #define INSTR_DEBUG                     1
8 #define INT_NMI                         2
9 #define INSTR_BREAK                     3
10 #define TRAP_OVERFLOW                   4
11 #define FAULT_BOUND_EXCEED              5
12 #define FAULT_INVALID_OPCODE            6
13 #define FAULT_NO_MATH_PROCESSOR         7
14 #define ABORT_DOUBLE_FAULT              8
15 #define FAULT_RESERVED_0                9
16 #define FAULT_INVALID_TSS               10
17 #define FAULT_SEG_NOT_PRESENT           11
18 #define FAULT_STACK_SEG_FAULT           12
19 #define FAULT_GENERAL_PROTECTION        13
20 #define FAULT_PAGE_FAULT                14
21 #define FAULT_RESERVED_1                15
22 #define FAULT_X87_FAULT                 16
23 #define FAULT_ALIGNMENT_CHECK           17
24 #define ABORT_MACHINE_CHECK             18
25 #define FAULT_SIMD_FP_EXCEPTION         19
26 #define FAULT_VIRTUALIZATION_EXCEPTION  20
27 #define FAULT_CONTROL_PROTECTION        21
28
29 // LunaixOS related
30 #define LUNAIX_SYS_PANIC                32
31 #define LUNAIX_SYS_CALL                 33
32 #define LUNAIX_SCHED                    34
33
34 #define EX_INTERRUPT_BEGIN              200
35
36 // Keyboard
37 #define PC_KBD_IV                       201
38 #define AHCI_HBA_IV                     202
39 #define UART_COM1                       203
40
41 #define RTC_TIMER_IV                    210
42
43 // 来自APIC的中断有着最高的优先级。
44 // APIC related
45 #define APIC_ERROR_IV                   250
46 #define APIC_LINT0_IV                   251
47 #define APIC_SPIV_IV                    252
48 #define APIC_TIMER_IV                   253
49
50 #define PC_AT_IRQ_RTC                   8
51 #define PC_AT_IRQ_KBD                   1
52
53 // clang-format on
54
55 #endif /* __LUNAIX_VECTORS_H */