#include void idt_encode_entry(struct idt_entry idt[], int i, uint32_t offset, uint16_t segment_selector, uint8_t attributes) { idt[i].offset_lo = (uint16_t)(offset & 0xFFFF); idt[i].seg_select = segment_selector; idt[i].reserved = 0; idt[i].attributes = attributes; idt[i].offset_hi = (uint16_t)(offset >> 16); }