#include "jove.h" #include "init.h" #include "lib/printf.h" #include "lib/virtterm.h" #include "lib/panic.h" #include "../../hal/obj.h" #include "hal/serial_com.h" #include "hal/smp.h" #include "hal/memory.h" #include "hal/framebuffer.h" #include "hal/process.h" #include "boot/initrd.h" #include "boot/cmdline.h" int errno = 0; PAGEALIGN jove_objdir_t _rootdir = { 0 }; void *_rootdir_obj = &_rootdir; static void kernel_process_entry(void); void kernel_entry(void) { obj_settype(_rootdir_obj, JOVE_OBJ_OBJDIR); serial_com_init(); smp_init_bsp(); initrd_setup(); fb_init(); vt_init(); cmdline_print(); mem_setup_untyped(); extern void processing_setup(void*); processing_setup(kernel_process_entry); hcf(); } static void kernel_process_entry(void) { init_setup(); kpanic("Reached the end of kernel main!\n"); }