aboutsummaryrefslogtreecommitdiff
path: root/arch/i386/idt.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/i386/idt.h')
-rw-r--r--arch/i386/idt.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/arch/i386/idt.h b/arch/i386/idt.h
new file mode 100644
index 0000000..ca39bde
--- /dev/null
+++ b/arch/i386/idt.h
@@ -0,0 +1,23 @@
+#pragma once
+
+#include <stdint.h>
+
+struct interrupt_frame {
+ uint32_t ip;
+ uint32_t cs;
+ uint32_t flags;
+ uint32_t sp;
+ uint32_t ss;
+};
+
+/* typedef void (*irq_handler)(); */
+
+/* isr.c */
+void abort_handler(struct interrupt_frame *frame);
+void syscall_handler(struct interrupt_frame *frame);
+void irq0x00(struct interrupt_frame *frame); /* timer interrupt */
+void irq0x01(struct interrupt_frame *frame); /* keyboard interrupt */
+void irq0x0c(struct interrupt_frame *frame); /* mouse interrupt */
+
+/* lidt.c */
+void idt_install();