diff options
| author | Michal Idziorek <m.i@gmx.at> | 2014-09-03 23:21:33 +0200 |
|---|---|---|
| committer | Michal Idziorek <m.i@gmx.at> | 2014-09-03 23:21:33 +0200 |
| commit | e7648669694806b366824c0dc0c8b80c8d167d35 (patch) | |
| tree | b1243ceaa1f7835ef8a77ef033bcacce9debacf7 /kernel/interrupts.c | |
| parent | 4a46c2e07a9b79af01bbc984f20e01b12e98129f (diff) | |
debugging floppy driver :(
Diffstat (limited to 'kernel/interrupts.c')
| -rw-r--r-- | kernel/interrupts.c | 46 |
1 files changed, 10 insertions, 36 deletions
diff --git a/kernel/interrupts.c b/kernel/interrupts.c index 599221c..81ad1c9 100644 --- a/kernel/interrupts.c +++ b/kernel/interrupts.c @@ -32,9 +32,19 @@ void int_def_handler() { X86_IRQ_BEGIN + panic(FOOLOS_MODULE_NAME,"Unexpected Interrupt occured"); + X86_IRQ_END } +void show_error(uint32_t err) +{ + log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"interrupt error code: 0x%08x",err); + log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"External Event: %x",err&0b001); + log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"Location: %x",err&0b110); + log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"Selector: %x",err&0b1111111111111000); +} + void int_irq0(){ X86_IRQ_BEGIN panic(FOOLOS_MODULE_NAME,"Divide by 0"); X86_IRQ_END } void int_irq1(){ X86_IRQ_BEGIN panic(FOOLOS_MODULE_NAME,"Single step (debugger)"); X86_IRQ_END } void int_irq2(){ X86_IRQ_BEGIN panic(FOOLOS_MODULE_NAME,"Non Maskable Interrupt"); X86_IRQ_END } @@ -49,14 +59,6 @@ void int_irq10(){ X86_IRQ_BEGIN panic(FOOLOS_MODULE_NAME,"Invalid TSS"); X86_ void int_irq11(){ X86_IRQ_BEGIN panic(FOOLOS_MODULE_NAME,"Segment Not Present"); X86_IRQ_END } void int_irq12(){ X86_IRQ_BEGIN panic(FOOLOS_MODULE_NAME,"Stack Segment Overrun"); X86_IRQ_END } -void show_error(uint32_t err) -{ - log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"interrupt error code: 0x%08x",err); - log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"External Event: %x",err&0b001); - log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"Location: %x",err&0b110); - log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"Selector: %x",err&0b1111111111111000); -} - void int_irq13() { X86_IRQ_BEGIN @@ -136,31 +138,3 @@ void int_install() __asm__("lidt %0"::"m" (idtd)); } -/* -//print interrupt table; //TODO! -void int_show() -{ - uint16_t *ptr3=&idt[0]; // TODO! - - scr_put_string("idt located: "); - scr_put_hex(ptr3); - scr_nextline(); - - - // first two bytes as chars - int offset; - for(offset=32;offset<40;offset++) - { - print_hex(offset-32); //ir // install keyboard handler - int_install_ir(33, 0b10001110, 0x08,&int_kb_handler); -q - print_string(" -> "); - print_hex(*(ptr3+offset*4)); //addrLo - print_hex(*(ptr3+1+offset*4)); //sel - print_hex(*(ptr3+2+offset*4)); //zeros & flags - print_hex(*(ptr3+3+offset*4)); //addrHi - print_nextline(); - } -} -*/ - |
