#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, };