diff options
| author | Miguel <m.i@gmx.at> | 2018-08-31 13:15:41 +0200 |
|---|---|---|
| committer | Miguel <m.i@gmx.at> | 2018-08-31 13:15:41 +0200 |
| commit | 418a23ebe1af6974e3f1446896ae09b184a9e2a2 (patch) | |
| tree | 8e6fe0cca1b93516daf056cabc83c2840323b565 /kernel | |
| parent | 331ed2b6273c79e0eaa236c4615205823608dc6b (diff) | |
override video mode from grub
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/interrupts.c | 42 |
1 files changed, 20 insertions, 22 deletions
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(); |
