#include <arch/x86/interrupts.h>
#include <stdint.h>
-#define IDT_ENTRY 32
+#define IDT_ENTRY 256
uint64_t _idt[IDT_ENTRY];
uint16_t _idt_limit = sizeof(_idt) - 1;
void
_init_idt() {
+ // CPU defined interrupts
_set_idt_entry(FAULT_DIVISION_ERROR, 0x08, _asm_isr0, 0);
_set_idt_entry(FAULT_GENERAL_PROTECTION, 0x08, _asm_isr13, 0);
+ _set_idt_entry(FAULT_PAGE_FAULT, 0x08, _asm_isr14, 0);
+
+ _set_idt_entry(APIC_ERROR_IV, 0x08, _asm_isr200, 0);
+ _set_idt_entry(APIC_LINT0_IV, 0x08, _asm_isr201, 0);
+ _set_idt_entry(APIC_TIMER_IV, 0x08, _asm_isr202, 0);
+ _set_idt_entry(APIC_SPIV_IV, 0x08, _asm_isr203, 0);
+
+ _set_idt_entry(RTC_TIMER_IV, 0x08, _asm_isr210, 0);
+
+ // system defined interrupts
+ _set_idt_entry(LUNAIX_SYS_PANIC, 0x08, _asm_isr32, 0);
}
\ No newline at end of file