From 418a23ebe1af6974e3f1446896ae09b184a9e2a2 Mon Sep 17 00:00:00 2001 From: Miguel Date: Fri, 31 Aug 2018 13:15:41 +0200 Subject: override video mode from grub --- kernel/interrupts.c | 42 ++++++++++++++++++++---------------------- 1 file changed, 20 insertions(+), 22 deletions(-) (limited to 'kernel/interrupts.c') diff --git a/kernel/interrupts.c b/kernel/interrupts.c index 74377ad..6e7e2ff 100644 --- a/kernel/interrupts.c +++ b/kernel/interrupts.c @@ -8,10 +8,28 @@ #define INT_MAX 255 // size of our interrupts table +// the interrupt descriptor table +static struct int_desc +{ + uint16_t addrLo; + uint16_t sel; + uint8_t zeros; + uint8_t flags; + uint16_t addrHi; + +} idt[INT_MAX]; + +// interrupt descriptor table descriptor +static struct idt_desc +{ + uint16_t size; + uint16_t baseLo; + uint16_t baseHi; +} idtd; uint32_t interrupt_handler(uint32_t num, uint32_t esp) { - if(num!=990)klog("int: %d %d",num,esp); + if(num!=0)klog("int: %d %d",num,esp); return esp; } @@ -28,27 +46,7 @@ void defklog(uint32_t eip, uint16_t cs, uint32_t flags) } void int_install_ir(int irq, uint16_t flags, uint16_t sel, void *addr); -//void mouse_handler(); -// the interrupt descriptor table -static struct int_desc -{ - uint16_t addrLo; - uint16_t sel; - uint8_t zeros; - uint8_t flags; - uint16_t addrHi; - -} idt[INT_MAX]; - -// interrupt descriptor table descriptor -static struct idt_desc -{ - uint16_t size; - uint16_t baseLo; - uint16_t baseHi; - -} idtd; void exception_handle() { @@ -169,7 +167,7 @@ void interrupts_init(uint16_t sel) //mouse interrupt handler (irq 12 => 34) int_install_ir(44, 0b10001110, 0x08,&int12); - //system calls (can be called from ring3 (0b11)) + //our system calls (can be called from ring3 (0b11)) int_install_ir(0x80, 0b11101110, 0x08,&int128); int_install(); -- cgit v1.2.3