X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/9440be3a5115a91dcdf8dff05a361cac4b6cea29..b91be0033265b5b6bd716bd39cb0971da41906c4:/lunaix-os/includes/arch/x86/interrupts.h diff --git a/lunaix-os/includes/arch/x86/interrupts.h b/lunaix-os/includes/arch/x86/interrupts.h deleted file mode 100644 index 664d69d..0000000 --- a/lunaix-os/includes/arch/x86/interrupts.h +++ /dev/null @@ -1,121 +0,0 @@ -#ifndef __LUNAIX_INTERRUPTS_H -#define __LUNAIX_INTERRUPTS_H - - -#define FAULT_DIVISION_ERROR 0 -#define FAULT_TRAP_DEBUG_EXCEPTION 1 -#define INT_NMI 2 -#define TRAP_BREAKPOINT 3 -#define TRAP_OVERFLOW 4 -#define FAULT_BOUND_EXCEED 5 -#define FAULT_INVALID_OPCODE 6 -#define FAULT_NO_MATH_PROCESSOR 7 -#define ABORT_DOUBLE_FAULT 8 -#define FAULT_RESERVED_0 9 -#define FAULT_INVALID_TSS 10 -#define FAULT_SEG_NOT_PRESENT 11 -#define FAULT_STACK_SEG_FAULT 12 -#define FAULT_GENERAL_PROTECTION 13 -#define FAULT_PAGE_FAULT 14 -#define FAULT_RESERVED_1 15 -#define FAULT_X87_FAULT 16 -#define FAULT_ALIGNMENT_CHECK 17 -#define ABORT_MACHINE_CHECK 18 -#define FAULT_SIMD_FP_EXCEPTION 19 -#define FAULT_VIRTUALIZATION_EXCEPTION 20 -#define FAULT_CONTROL_PROTECTION 21 - -// LunaixOS related -#define LUNAIX_SYS_PANIC 32 - -#define EX_INTERRUPT_BEGIN 200 - -// Keyboard -#define PC_KBD_IV 201 - -#define RTC_TIMER_IV 210 - -// 来自APIC的中断有着最高的优先级。 -// APIC related -#define APIC_ERROR_IV 250 -#define APIC_LINT0_IV 251 -#define APIC_SPIV_IV 252 -#define APIC_TIMER_IV 253 - -#define PC_AT_IRQ_RTC 8 -#define PC_AT_IRQ_KBD 1 - -#ifndef __ASM__ -#include -typedef struct { - gp_regs registers; - unsigned int vector; - unsigned int err_code; - unsigned int eip; - unsigned int cs; - unsigned int eflags; - unsigned int esp; - unsigned int ss; -} __attribute__((packed)) isr_param; - -typedef void (*int_subscriber)(isr_param*); - -#pragma region ISR_DECLARATION - -#define ISR(iv) void _asm_isr##iv(); - -ISR(0) -ISR(1) -ISR(2) -ISR(3) -ISR(4) -ISR(5) -ISR(6) -ISR(7) -ISR(8) -ISR(9) -ISR(10) -ISR(11) -ISR(12) -ISR(13) -ISR(14) -ISR(15) -ISR(16) -ISR(17) -ISR(18) -ISR(19) -ISR(20) -ISR(21) - -ISR(32) - -ISR(201) - -ISR(210) - -ISR(250) -ISR(251) -ISR(252) -ISR(253) -ISR(254) - -#pragma endregion - -void -intr_subscribe(const uint8_t vector, int_subscriber); - -void -intr_unsubscribe(const uint8_t vector, int_subscriber); - -void -intr_set_fallback_handler(int_subscriber); - -void -intr_handler(isr_param* param); - -void -intr_routine_init(); - -#endif - -#endif /* __LUNAIX_INTERRUPTS_H */