diff options
author | kaashoek <kaashoek> | 2006-09-03 18:32:58 +0000 |
---|---|---|
committer | kaashoek <kaashoek> | 2006-09-03 18:32:58 +0000 |
commit | 97c74a3a642c17dfcd605018c3fb45a1f4f4d5e2 (patch) | |
tree | 0b38280ba50dc6cd9b3a6670773ec5ba91c47803 | |
parent | 0b6ab8416e50dcbf790163282f461647e180dbc6 (diff) | |
download | xv6-labs-97c74a3a642c17dfcd605018c3fb45a1f4f4d5e2.tar.gz xv6-labs-97c74a3a642c17dfcd605018c3fb45a1f4f4d5e2.tar.bz2 xv6-labs-97c74a3a642c17dfcd605018c3fb45a1f4f4d5e2.zip |
nits
-rw-r--r-- | ioapic.c | 3 | ||||
-rw-r--r-- | trap.c | 14 | ||||
-rw-r--r-- | userfs.c | 1 |
3 files changed, 10 insertions, 8 deletions
@@ -46,7 +46,7 @@ ioapic_init(void) for (i = 0; i < nintr; i++) { // active-hi and edge-triggered for ISA interrupts // Assume that pin 0 on the first I/O APIC is an ExtINT pin. - // Assume that pins 1-15 are ISA interrupts and that all + // Assume that pins 1-15 are ISA interrupts l = ioapic_read(io, IOAPIC_REDTBL_LO(i)); l = l & ~IOART_INTMASK; // allow INTs l |= IOART_INTMSET; @@ -59,7 +59,6 @@ ioapic_init(void) h = ioapic_read(io, IOAPIC_REDTBL_HI(i)); h &= ~IOART_DEST; ioapic_write(io, IOAPIC_REDTBL_HI(i), h); - // cprintf("intr %d: lo 0x%x hi 0x%x\n", i, l, h); } } @@ -79,12 +79,16 @@ trap(struct trapframe *tf) return; } - cprintf("trap %d from cpu %d eip %x\n", v, cpu(), tf->eip); + if(v == (IRQ_OFFSET + IRQ_SPURIOUS)){ + cprintf("spurious interrupt from cpu %d eip %x\n", cpu(), tf->eip); + return; // no eoi for this one. + } + if(curproc[cpu()]) { - cprintf("pid %d\n", curproc[cpu()]->pid); + cprintf("pid %d: unhandled trap %d on cpu %d eip %x---terminate process\n", + curproc[cpu()]->pid, v, cpu(), tf->eip); proc_exit(); } - // panic("trap"); - - return; + cprintf("unexpected trap %d from cpu %d eip %x\n", v, cpu(), tf->eip); + panic("trap"); } @@ -200,7 +200,6 @@ int main(void) { printf(stdout, "userfs is running\n"); - opentest(); writetest(); writetest1(); |