summaryrefslogtreecommitdiff
path: root/kernel/trap.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/trap.c')
-rw-r--r--kernel/trap.c11
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);
}