summaryrefslogtreecommitdiff
path: root/src/arch/amd64/idt.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/arch/amd64/idt.c')
-rw-r--r--src/arch/amd64/idt.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/arch/amd64/idt.c b/src/arch/amd64/idt.c
index c903ca8..5c6261c 100644
--- a/src/arch/amd64/idt.c
+++ b/src/arch/amd64/idt.c
@@ -5,6 +5,7 @@
#include <serial.h>
#include "idt.h"
+#include "pic.h"
#define IDT_SIZE 256
@@ -106,6 +107,28 @@ char *EXCEPTIONS[] = {
"Exception 0x1F Reserved",
};
+void idt_pic_eoi(uint8_t exception) {
+ pic_eoi(exception - PIC_REMAP_OFFSET);
+}
+
+static size_t timer = 0;
+
+void idt_pic_timer(void) {
+ timer += 1;
+ char buf[20];
+ ltoa(timer, buf, 10);
+ serial_out_str(buf);
+ serial_out_str("\n");
+}
+
+void idt_pic_keyboard(void) {
+ serial_out_str("ps2 kbd");
+}
+
+void idt_pic_mouse(void) {
+ serial_out_str("ps2 mouse");
+}
+
void idt_exception_handler(uint64_t exception, uint64_t code) {
// TODO don't just panic
char buf[80];