X-Git-Url: http://git.dujemihanovic.xyz/%7B%7B%20%24image.RelPermalink%20%7D%7D?a=blobdiff_plain;f=kernel%2Farch%2Fx86%2Firq%2Fidt.c;h=3871751061001c62d71091d3b24eea1fedf0e880;hb=1bd5762d408e67c3bbe250db3decc809c98d7995;hp=54e8612934ffd9f08751d84cebb59ae5ec1d2227;hpb=a13a1834325462b233906698f311ee6c9b53fd88;p=nameless-os.git diff --git a/kernel/arch/x86/irq/idt.c b/kernel/arch/x86/irq/idt.c index 54e8612..3871751 100644 --- a/kernel/arch/x86/irq/idt.c +++ b/kernel/arch/x86/irq/idt.c @@ -7,17 +7,17 @@ inline void load_idt(struct idtr idtr) asm volatile ("lidt %0": : "m" (idtr)); } -void idt_set_descriptor(struct idt_descriptor *idt, uint8_t vector, uint16_t segment, uint32_t offset, uint8_t type, uint8_t dpl) +void idt_set_descriptor(struct idt_descriptor *idt, uint8_t vector, uint16_t segment, void (*offset)(void), uint8_t type, uint8_t dpl) { struct idt_descriptor *descriptor = &idt[vector]; - descriptor->offset_1 = offset & 0xFFFF; + descriptor->offset_1 = (uint32_t) offset & 0xFFFF; descriptor->segsel = segment; descriptor->unused = 0; descriptor->type = type; descriptor->dpl = dpl; descriptor->present = 1; - descriptor->offset_2 = offset >> 16; + descriptor->offset_2 = (uint32_t) offset >> 16; } inline void populate_idtr(struct idtr *idtr, struct idt_descriptor *idt)