summaryrefslogtreecommitdiff
path: root/kernel/include
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/include')
-rw-r--r--kernel/include/apic.h6
-rw-r--r--kernel/include/irq.h35
-rw-r--r--kernel/include/irq_handler.h52
-rw-r--r--kernel/include/madt.h2
-rw-r--r--kernel/include/pic.h8
-rw-r--r--kernel/include/rsdp.h1
6 files changed, 25 insertions, 79 deletions
diff --git a/kernel/include/apic.h b/kernel/include/apic.h
new file mode 100644
index 0000000..f795a49
--- /dev/null
+++ b/kernel/include/apic.h
@@ -0,0 +1,6 @@
+#ifndef APIC_H
+#define APIC_H
+
+void apic_eoi(void);
+
+#endif
diff --git a/kernel/include/irq.h b/kernel/include/irq.h
index 2f22aff..8c956b0 100644
--- a/kernel/include/irq.h
+++ b/kernel/include/irq.h
@@ -3,7 +3,6 @@
#include <types.h>
-// exceptions
void isr0(void);
void isr1(void);
void isr2(void);
@@ -12,20 +11,20 @@ void isr4(void);
void isr5(void);
void isr6(void);
void isr7(void);
-void isr8(uint64_t error);
+void isr8(void);
void isr9(void);
-void isr10(uint64_t error);
-void isr11(uint64_t error);
-void isr12(uint64_t error);
-void isr13(uint64_t error);
-void isr14(uint64_t error);
+void isr10(void);
+void isr11(void);
+void isr12(void);
+void isr13(void);
+void isr14(void);
void isr15(void);
void isr16(void);
-void isr17(uint64_t error);
+void isr17(void);
void isr18(void);
void isr19(void);
void isr20(void);
-void isr21(uint64_t error);
+void isr21(void);
void isr22(void);
void isr23(void);
void isr24(void);
@@ -33,26 +32,12 @@ void isr25(void);
void isr26(void);
void isr27(void);
void isr28(void);
-void isr29(uint64_t error);
-void isr30(uint64_t error);
+void isr29(void);
+void isr30(void);
void isr31(void);
-// interrupts
void irq0(void);
void irq1(void);
void irq2(void);
-void irq3(void);
-void irq4(void);
-void irq5(void);
-void irq6(void);
-void irq7(void);
-void irq8(void);
-void irq9(void);
-void irq10(void);
-void irq11(void);
-void irq12(void);
-void irq13(void);
-void irq14(void);
-void irq15(void);
#endif
diff --git a/kernel/include/irq_handler.h b/kernel/include/irq_handler.h
index f7c4f00..571d1ab 100644
--- a/kernel/include/irq_handler.h
+++ b/kernel/include/irq_handler.h
@@ -3,54 +3,8 @@
#include <types.h>
-void isr0_handler(void);
-void isr1_handler(void);
-void isr2_handler(void);
-void isr3_handler(void);
-void isr4_handler(void);
-void isr5_handler(void);
-void isr6_handler(void);
-void isr7_handler(void);
-void isr8_handler(uint64_t error);
-void isr9_handler(void);
-void isr10_handler(uint64_t error);
-void isr11_handler(uint64_t error);
-void isr12_handler(uint64_t error);
-void isr13_handler(uint64_t error);
-void isr14_handler(uint64_t error);
-void isr15_handler(void);
-void isr16_handler(void);
-void isr17_handler(uint64_t error);
-void isr18_handler(void);
-void isr19_handler(void);
-void isr20_handler(void);
-void isr21_handler(uint64_t error);
-void isr22_handler(void);
-void isr23_handler(void);
-void isr24_handler(void);
-void isr25_handler(void);
-void isr26_handler(void);
-void isr27_handler(void);
-void isr28_handler(void);
-void isr29_handler(uint64_t error);
-void isr30_handler(uint64_t error);
-void isr31_handler(void);
-
-void irq0_handler(void);
-void irq1_handler(void);
-void irq2_handler(void);
-void irq3_handler(void);
-void irq4_handler(void);
-void irq5_handler(void);
-void irq6_handler(void);
-void irq7_handler(void);
-void irq8_handler(void);
-void irq9_handler(void);
-void irq10_handler(void);
-void irq11_handler(void);
-void irq12_handler(void);
-void irq13_handler(void);
-void irq14_handler(void);
-void irq15_handler(void);
+void isr_def_handler(uint64_t number, uint64_t error);
+void eoi(uint64_t number);
+void irq_def_handler(uint64_t number);
#endif
diff --git a/kernel/include/madt.h b/kernel/include/madt.h
index de3eb95..344a6e5 100644
--- a/kernel/include/madt.h
+++ b/kernel/include/madt.h
@@ -5,7 +5,7 @@
struct MADT {
struct ACPI_header h;
- uint32_t lacpi_addr;
+ uint32_t lapic_addr;
uint32_t flags;
} __attribute__((packed));
diff --git a/kernel/include/pic.h b/kernel/include/pic.h
index f1f4e44..7e81293 100644
--- a/kernel/include/pic.h
+++ b/kernel/include/pic.h
@@ -3,10 +3,10 @@
#define PIC1 0x20 /* IO base address for master PIC */
#define PIC2 0xA0 /* IO base address for slave PIC */
-#define PIC1_COMMAND PIC1
-#define PIC1_DATA (PIC1+1)
-#define PIC2_COMMAND PIC2
-#define PIC2_DATA (PIC2+1)
+#define PIC1_COMMAND 0x20
+#define PIC1_DATA 0x21
+#define PIC2_COMMAND 0xA0
+#define PIC2_DATA 0xA1
#define PIC_EOI 0x20 /* End-of-interrupt command code */
diff --git a/kernel/include/rsdp.h b/kernel/include/rsdp.h
index c931ee0..ef76311 100644
--- a/kernel/include/rsdp.h
+++ b/kernel/include/rsdp.h
@@ -25,6 +25,7 @@ struct ACPI_header {
uint64_t* find_rsdp(void);
+void list_sys_tables(void);
uint64_t* find_sys_table_addr(const char* signature);
#endif