From a783cc865f1f261c20f6ef55cb37d4839f519865 Mon Sep 17 00:00:00 2001 From: Jon Santmyer Date: Tue, 15 Sep 2026 10:03:20 -0400 Subject: move constants to api. centralize interrupts. fix rootdir lock hang --- arch/x86_64/main.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'arch/x86_64/main.c') diff --git a/arch/x86_64/main.c b/arch/x86_64/main.c index d688fa0..7266155 100644 --- a/arch/x86_64/main.c +++ b/arch/x86_64/main.c @@ -1,5 +1,6 @@ #include "jove.h" #include "init.h" +#include "lib/string.h" #include "lib/printf.h" #include "lib/virtterm.h" #include "lib/panic.h" @@ -10,21 +11,28 @@ #include "hal/memory.h" #include "hal/framebuffer.h" #include "hal/process.h" +#include "hal/uacpi.h" #include "boot/initrd.h" #include "boot/cmdline.h" #include "uacpi/uacpi.h" int errno = 0; -PAGEALIGN jove_objdir_t _rootdir = { 0 }; +PAGEALIGN jove_objdir_t _rootdir; -void *_rootdir_obj = &_rootdir; +jove_owned_obj_t s_rootdir_obj; +void *_rootdir_obj = &s_rootdir_obj; static void kernel_process_entry(void); void kernel_entry(void) { + memset(&_rootdir, 0, 0x1000); + obj_take(_rootdir_obj); + obj_settype(_rootdir_obj, JOVE_OBJ_OBJDIR); + obj_setvalue(_rootdir_obj, (uintptr_t)&_rootdir); + msr_enable_sse(); obj_settype(_rootdir_obj, JOVE_OBJ_OBJDIR); @@ -49,8 +57,7 @@ kernel_entry(void) static void kernel_process_entry(void) { - uint8_t uacpi_buffer[1024]; - uacpi_setup_early_table_access(uacpi_buffer, 1024); + uacpi_kernel_init(); init_setup(); kpanic("Reached the end of kernel main!\n"); -- cgit v1.2.3