#include "idt.hpp" #include "boucane.hpp" #include "core/paging.hpp" #include "libs/string.hpp" u32 idt[IDT_MAX_ENTRIES][4] __attribute__((aligned(4096)));; IDT_REGISTER IDTR; extern u64 INT_DEFAULT,INT_0,INT_10,INT_14,INT_KBD,INT_CLK,INT_SYSCALL; void idt_enable_interrupt(void){ IDTR.base=((u64)idt); IDTR.limit=sizeof(idt); IDT_DESCRIPTOR d; d.ign=0; d.ist=0; d.selector=0x08; d.options=IDT_OPT_P|IDT_OPT_PRVL_0|IDT_OPT_TYPE_INT; // Write idt entries for(u16 i=0;i>32; u32 desc96_127=desc.ign; idt[index][0]=desc0_31; idt[index][1]=desc32_63; idt[index][2]=desc64_95; idt[index][3]=desc96_127; }