summaryrefslogtreecommitdiff
path: root/kernel/trap.c
diff options
context:
space:
mode:
authorSanjit Bhat <[email protected]>2023-10-25 19:42:59 -0400
committerSanjit Bhat <[email protected]>2023-10-25 19:42:59 -0400
commit1ed40716eb54e371df9d1814b9129666b3fe4f09 (patch)
tree84666aacb6d6a9554b09500c0b0420870af2e19e /kernel/trap.c
parent74c1eba516fdb0ec1a17b16be7e76613ccba92bf (diff)
downloadxv6-labs-1ed40716eb54e371df9d1814b9129666b3fe4f09.tar.gz
xv6-labs-1ed40716eb54e371df9d1814b9129666b3fe4f09.tar.bz2
xv6-labs-1ed40716eb54e371df9d1814b9129666b3fe4f09.zip
release lab net
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 512c850..5332dda 100644
--- a/kernel/trap.c
+++ b/kernel/trap.c
@@ -68,6 +68,8 @@ usertrap(void)
} else if((which_dev = devintr()) != 0){
// ok
} else {
+
+
printf("usertrap(): unexpected scause %p pid=%d\n", r_scause(), p->pid);
printf(" sepc=%p stval=%p\n", r_sepc(), r_stval());
setkilled(p);
@@ -75,6 +77,7 @@ usertrap(void)
if(killed(p))
exit(-1);
+
// give up the CPU if this is a timer interrupt.
if(which_dev == 2)
@@ -190,7 +193,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);
}