Files
nub-os/src/arch/x86_64/main.c
2025-09-06 00:59:52 +02:00

45 lines
816 B
C

#include "arch.h"
#include "console.h"
#include "interrupts/idt.h"
#include "interrupts/irq.h"
#include "kernel.h"
#include "mem.h"
#include "panic.h"
#include "util.h"
void x86_64_main(u32 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();
mem_init(info);
mem_alloc_2mb(MiB(128) + 1);
remap_pic();
enable_interrupts();
kernel_main();
}
void console_putchar(char c)
{
console_put_char(c, VGA_DEFAULT_COLOR);
}
arch_api_t arch_api = {
.putchar = console_putchar,
.halt = halt,
.disable_interrupts = disable_interrupts,
.enable_interrupts = enable_interrupts,
.panic = panic,
};