better api
This commit is contained in:
48
src/arch/x86_64/main.c
Normal file
48
src/arch/x86_64/main.c
Normal file
@@ -0,0 +1,48 @@
|
||||
#include "console/console.h"
|
||||
#include "interrupts/idt.h"
|
||||
#include "interrupts/irq.h"
|
||||
#include "kernel.h"
|
||||
#include "memory/mmap.h"
|
||||
#include "panic.h"
|
||||
#include "util.h"
|
||||
|
||||
void x86_64_main(uint32_t magic, multiboot_info_t* info)
|
||||
{
|
||||
console_clear();
|
||||
|
||||
if (magic != 0x2BADB002)
|
||||
{
|
||||
panic("Multiboot magic does not match\n");
|
||||
}
|
||||
|
||||
if (info == NULL)
|
||||
{
|
||||
panic("Multiboot info is NULL\n");
|
||||
}
|
||||
|
||||
idt_init();
|
||||
remap_pic();
|
||||
map_memory(info);
|
||||
enable_interrupts();
|
||||
kernel_main();
|
||||
}
|
||||
|
||||
void arch_console_putchar(char c)
|
||||
{
|
||||
console_put_char(c, VGA_DEFAULT_COLOR);
|
||||
}
|
||||
|
||||
uint64_t arch_page_size()
|
||||
{
|
||||
return 4096;
|
||||
}
|
||||
|
||||
arch_api_t arch_api = {
|
||||
.panic = panic,
|
||||
.putchar = arch_console_putchar,
|
||||
.page_size = arch_page_size,
|
||||
.enable_interrupts = enable_interrupts,
|
||||
.disable_interrupts = disable_interrupts,
|
||||
.get_memory_map = get_memory_map,
|
||||
.halt = halt,
|
||||
};
|
||||
Reference in New Issue
Block a user