This commit is contained in:
nub31
2025-09-03 18:38:02 +02:00
parent f05e7c9e64
commit b7bbccca73
3 changed files with 29 additions and 9 deletions

View File

@@ -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();

View File

@@ -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();
void arch_register_interrupt_handler(int vector, void (*handler)(void))
{
register_irq_handler(vector, (irq_handler_t)handler);
}
void arch_halt()
{
halt();
}

View File

@@ -1,6 +1,6 @@
#pragma once
#include "../multiboot.h"
#include "arch.h"
#include "x86_64/multiboot.h"
void map_memory(multiboot_info_t* mbd);