diff --git a/src/idt.c b/src/idt.c index 2fdaeeb..0bac584 100644 --- a/src/idt.c +++ b/src/idt.c @@ -49,26 +49,26 @@ void idt_init(void) { idt_load(); } -void isr_handler(struct registers regs) { +void isr_handler(struct registers *regs) { kprint_serial("Exception: "); - kprint_serial_dec(regs.int_no); + kprint_serial_dec(regs->int_no); kprint_serial("\nSystem Halted.\n"); while(1) asm("hlt"); } -void irq_handler(struct registers regs) { - if (regs.int_no == 32) { +void irq_handler(struct registers *regs) { + if (regs->int_no == 32) { timer_handler(); - } else if (regs.int_no == 33) { + } else if (regs->int_no == 33) { keyboard_handler(); - } else if (regs.int_no == 44) { + } else if (regs->int_no == 44) { mouse_handler(); } else { kprint_serial("Unknown IRQ: "); - kprint_serial_dec(regs.int_no); + kprint_serial_dec(regs->int_no); kprint_serial("\n"); } - if (regs.int_no >= 40) outb(0xA0, 0x20); // Slave + if (regs->int_no >= 40) outb(0xA0, 0x20); // Slave outb(0x20, 0x20); // Master }