summaryrefslogtreecommitdiff
path: root/src/kernel/arch/amd64/interrupts.h
diff options
context:
space:
mode:
authordzwdz2023-01-25 21:49:14 +0100
committerdzwdz2023-01-25 21:49:14 +0100
commitf9ce893e143a7c2356a0f2204afac1f37d3e54d2 (patch)
treee93e569328ea61b71e785a52964238dc032aeefd /src/kernel/arch/amd64/interrupts.h
parentc24a9376b4a048a3f9408df2d47eaad367459bd7 (diff)
kernel/irq: use a lookup table for irqs
Diffstat (limited to 'src/kernel/arch/amd64/interrupts.h')
-rw-r--r--src/kernel/arch/amd64/interrupts.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/kernel/arch/amd64/interrupts.h b/src/kernel/arch/amd64/interrupts.h
new file mode 100644
index 0000000..262ea16
--- /dev/null
+++ b/src/kernel/arch/amd64/interrupts.h
@@ -0,0 +1,17 @@
+#pragma once
+#include <stdbool.h>
+#include <stdint.h>
+
+#define IRQ_COM1 4
+#define IRQ_IBASE 0x20
+#define IRQ_PIT 0
+#define IRQ_PS2KB 1
+#define IRQ_PS2MOUSE 12
+#define IRQ_RTL8139 11
+
+extern void (*irq_fn[16])(void);
+extern const char _isr_stubs;
+
+void irq_init(void);
+void irq_eoi(uint8_t line);
+void isr_stage3(uint8_t interrupt, uint64_t *stackframe);