Skip to content

Interrupt Descriptor Table

struct idt_entry {
    uint16_t  base_low;
    uint16_t  selector;
    uint8_t   ist;
    uint8_t   flags;
    uint16_t  base_mid;
    uint32_t  base_high;
    uint32_t  reserved;
};
struct idt_table {
    struct idt_entry  entries[IDT_ENTRIES];
};
struct idt_ptr {
    uint16_t  limit;
    uint64_t  base;
};
void irq_init();
void irq_load();
void idt_set_gate(uint8_t num, uint16_t sel, uint8_t flags);
#define IDT_ENTRIES 256