diff --git a/src/kernel/boot/kmain.c b/src/kernel/boot/kmain.c index b768ca2..a2c7217 100644 --- a/src/kernel/boot/kmain.c +++ b/src/kernel/boot/kmain.c @@ -7,7 +7,6 @@ #include #include -#include #include void TEMP_test_scheduler(); diff --git a/src/kernel/cpu/cpu.c b/src/kernel/cpu/cpu.c index fbec1ab..2c32cbf 100644 --- a/src/kernel/cpu/cpu.c +++ b/src/kernel/cpu/cpu.c @@ -1,5 +1,4 @@ #include -#include #include #include diff --git a/src/kernel/cpu/interrupts.c b/src/kernel/cpu/interrupts.c index f9239bf..1a83dc8 100644 --- a/src/kernel/cpu/interrupts.c +++ b/src/kernel/cpu/interrupts.c @@ -1,4 +1,3 @@ -#include #include #include #include diff --git a/src/kernel/include/cpu.h b/src/kernel/include/cpu.h index eb93211..3cf17ac 100644 --- a/src/kernel/include/cpu.h +++ b/src/kernel/include/cpu.h @@ -12,6 +12,35 @@ #define IRQ_PS2_KBD 0x1 #define IRQ_SPURIOUS 0xFF +typedef struct { + uint64_t rax; + uint64_t rbx; + uint64_t rcx; + uint64_t rdx; + uint64_t rsi; + uint64_t rdi; + uint64_t rbp; + uint64_t r8; + uint64_t r9; + uint64_t r10; + uint64_t r11; + uint64_t r12; + uint64_t r13; + uint64_t r14; + uint64_t r15; + + uint64_t int_no; + uint64_t err_code; + + uint64_t rip; + uint64_t cs; + uint64_t rflags; + uint64_t rsp; + uint64_t ss; +} registers; + +typedef registers *(*int_handler_t)(registers *); + struct cpu { uint8_t id; uint8_t apic_id; @@ -37,6 +66,11 @@ void write_cr3(uint64_t); uint64_t read_msr(uint32_t); uint64_t write_msr(uint32_t msr, uint64_t value); +// cpu/interrupts.c +void interrupt_init(); +void isr_return(registers *); +int_handler_t bind_interrupt(uint32_t num, int_handler_t fn); + // cpu/acpi.c void acpi_parse(void *_rsdp); diff --git a/src/kernel/include/cpu/interrupts.h b/src/kernel/include/cpu/interrupts.h deleted file mode 100644 index b1c6845..0000000 --- a/src/kernel/include/cpu/interrupts.h +++ /dev/null @@ -1,36 +0,0 @@ -#pragma once -#include - -typedef struct { - uint64_t rax; - uint64_t rbx; - uint64_t rcx; - uint64_t rdx; - uint64_t rsi; - uint64_t rdi; - uint64_t rbp; - uint64_t r8; - uint64_t r9; - uint64_t r10; - uint64_t r11; - uint64_t r12; - uint64_t r13; - uint64_t r14; - uint64_t r15; - - uint64_t int_no; - uint64_t err_code; - - uint64_t rip; - uint64_t cs; - uint64_t rflags; - uint64_t rsp; - uint64_t ss; -} registers; - -typedef registers *(*int_handler_t)(registers *); - -// cpu/interrupts.c -void interrupt_init(); -void isr_return(registers *); -int_handler_t bind_interrupt(uint32_t num, int_handler_t fn); \ No newline at end of file