#pragma once #include #define IDT_TA_InterruptGate 0b10001110 #define IDT_TA_InterruptGateUser 0b11101110 #define IDT_TA_TrapGate 0b10001111 struct IDTR { uint16_t limit; uint64_t offset; } __attribute__((packed)); namespace IDT { void add_handler(short interrupt_number, void* handler, uint8_t type_attr); void load(); }