From b7bbccca7309ac7712794f9b90453351d8847ba1 Mon Sep 17 00:00:00 2001 From: nub31 Date: Wed, 3 Sep 2025 18:38:02 +0200 Subject: [PATCH] ... --- src/arch/arch.h | 1 - src/arch/x86_64/arch.c | 35 ++++++++++++++++++++++++++++------- src/arch/x86_64/memory/mmap.h | 2 +- 3 files changed, 29 insertions(+), 9 deletions(-) diff --git a/src/arch/arch.h b/src/arch/arch.h index c338dc0..b144135 100644 --- a/src/arch/arch.h +++ b/src/arch/arch.h @@ -19,7 +19,6 @@ extern memory_map_t memory_map; void arch_panic(const char* msg); void arch_putchar(char c); -uintptr_t arch_kernel_base(); uintptr_t arch_page_size(); void arch_interrupts_enable(); diff --git a/src/arch/x86_64/arch.c b/src/arch/x86_64/arch.c index 7e9a75c..217714a 100644 --- a/src/arch/x86_64/arch.c +++ b/src/arch/x86_64/arch.c @@ -2,9 +2,11 @@ #include "console/console.h" #include "interrupts/idt.h" #include "interrupts/irq.h" +#include "interrupts/isr.h" #include "kernel.h" #include "memory/mmap.h" #include "multiboot.h" +#include "x86_64/util.h" void x86_64_main(uint32_t magic, multiboot_info_t* info) { @@ -27,19 +29,38 @@ void x86_64_main(uint32_t magic, multiboot_info_t* info) kernel_main(); } -void arch_panic(const char* msg); +void arch_panic(const char* msg) +{ + printf(msg); + arch_halt(); +} void arch_putchar(char c) { console_put_char(c, VGA_DEFAULT_COLOR); } -uintptr_t arch_kernel_base(); -uintptr_t arch_page_size(); +uintptr_t arch_page_size() +{ + return 4096; +} -void arch_interrupts_enable(); -void arch_interrupts_disable(); +void arch_interrupts_enable() +{ + enable_interrupts(); +} -void arch_register_interrupt_handler(int vector, void (*handler)(void)); +void arch_interrupts_disable() +{ + disable_interrupts(); +} -void arch_halt(); \ No newline at end of file +void arch_register_interrupt_handler(int vector, void (*handler)(void)) +{ + register_irq_handler(vector, (irq_handler_t)handler); +} + +void arch_halt() +{ + halt(); +} \ No newline at end of file diff --git a/src/arch/x86_64/memory/mmap.h b/src/arch/x86_64/memory/mmap.h index 18412ad..d93fb3b 100644 --- a/src/arch/x86_64/memory/mmap.h +++ b/src/arch/x86_64/memory/mmap.h @@ -1,6 +1,6 @@ #pragma once +#include "../multiboot.h" #include "arch.h" -#include "x86_64/multiboot.h" void map_memory(multiboot_info_t* mbd);