Architectural Support: x86_64 (#37)
[lunaix-os.git] / lunaix-os / arch / x86 / includes / sys / vectors.h
1 #ifndef __LUNAIX_VECTORS_H
2 #define __LUNAIX_VECTORS_H
3
4 // clang-format off
5
6 #define TOTAL_IV 256
7
8 #define FAULT_DIVISION_ERROR            0
9 #define INSTR_DEBUG                     1
10 #define INT_NMI                         2
11 #define INSTR_BREAK                     3
12 #define TRAP_OVERFLOW                   4
13 #define FAULT_BOUND_EXCEED              5
14 #define FAULT_INVALID_OPCODE            6
15 #define FAULT_NO_MATH_PROCESSOR         7
16 #define ABORT_DOUBLE_FAULT              8
17 #define FAULT_RESERVED_0                9
18 #define FAULT_INVALID_TSS               10
19 #define FAULT_SEG_NOT_PRESENT           11
20 #define FAULT_STACK_SEG_FAULT           12
21 #define FAULT_GENERAL_PROTECTION        13
22 #define FAULT_PAGE_FAULT                14
23 #define FAULT_RESERVED_1                15
24 #define FAULT_X87_FAULT                 16
25 #define FAULT_ALIGNMENT_CHECK           17
26 #define ABORT_MACHINE_CHECK             18
27 #define FAULT_SIMD_FP_EXCEPTION         19
28 #define FAULT_VIRTUALIZATION_EXCEPTION  20
29 #define FAULT_CONTROL_PROTECTION        21
30
31 #define IV_BASE_END       31
32
33 // LunaixOS related
34 #define LUNAIX_SYS_PANIC                32
35 #define LUNAIX_SYS_CALL                 33
36
37 // begin allocatable iv resources
38 #define IV_EX_BEGIN                     50
39 #define LUNAIX_SCHED                    50
40
41 // end allocatable iv resources
42 #define IV_EX_END             249
43
44 // 来自APIC的中断有着最高的优先级。
45 // APIC related
46 #define APIC_ERROR_IV                   250
47 #define APIC_LINT0_IV                   251
48 #define APIC_SPIV_IV                    252
49 #define APIC_TIMER_IV                   253
50
51 // clang-format on
52
53 #endif /* __LUNAIX_VECTORS_H */