summaryrefslogtreecommitdiff
path: root/src/kernel/trap/handler.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/trap/handler.cc')
-rw-r--r--src/kernel/trap/handler.cc13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/kernel/trap/handler.cc b/src/kernel/trap/handler.cc
index d7f78de..c1626cc 100644
--- a/src/kernel/trap/handler.cc
+++ b/src/kernel/trap/handler.cc
@@ -6,6 +6,7 @@
#include "kernel/mm.h"
#include "kernel/timer.h"
#include "drivers/plic.h"
+#include "drivers/virtio.h"
#include "lib/string.h"
@@ -59,20 +60,24 @@ namespace Trap
if (is_interrupt && code == 9)
{
// Supervisor External Interrupt (IRQ 9)
- int irq = PILC::claim();
+ int irq = PLIC::claim();
if (irq == 10)
{
- // uart_intr();
+ Drivers::uart_intr();
+ // Debug
+ // Drivers::uart_puts("[Interrupt] UART Input detected!\n");
}
else if (irq >= 1 && irq <= 8)
{
- // virtio_disk_intr();
+ VirtIO::intr();
+ // Debug
+ // Drivers::uart_puts("[Interrupt] VirtIO disk finished!\n");
}
if (irq > 0)
{
- PILC::complete(irq);
+ PLIC::complete(irq);
}
return 1;