diff options
Diffstat (limited to 'kernel/trap.c')
-rw-r--r-- | kernel/trap.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/kernel/trap.c b/kernel/trap.c index bd3b100..7cc69b1 100644 --- a/kernel/trap.c +++ b/kernel/trap.c @@ -79,6 +79,8 @@ usertrap(void) if(cow_handler(p->pagetable, va) < 0) goto err; } else { + + printf("usertrap(): unexpected scause %p pid=%d\n", r_scause(), p->pid); printf(" sepc=%p stval=%p\n", r_sepc(), r_stval()); err: @@ -88,6 +90,7 @@ usertrap(void) if(killed(p)) exit(-1); + if(which_dev == 2){ // timer interrupt @@ -216,7 +219,13 @@ devintr() uartintr(); } else if(irq == VIRTIO0_IRQ){ virtio_disk_intr(); - } else if(irq){ + } +#ifdef LAB_NET + else if(irq == E1000_IRQ){ + e1000_intr(); + } +#endif + else if(irq){ printf("unexpected interrupt irq=%d\n", irq); } |