#include #include #include #include #include #include #include #include #include #include static const char zinnia_banner[] = "zinnia " ZINNIA_VERSION " (" ZINNIA_ARCH ", " ZINNIA_COMPILER_ID ", " ZINNIA_LINKER_ID ")"; [[__init]] void kernel_early_init() { percpu_bsp_early_init(); percpu_get()->online = true; irq_lock(); } [[noreturn]] void kernel_main(struct boot_info* info) { cmdline_parse(info->cmdline); console_init(); kprintf("%s\n", zinnia_banner); // Say hello! kprintf("Command line: \"%s\"\n", info->cmdline); mem_init(info->mem_map, info->num_mem_maps, info->virt_base, info->phys_base, info->hhdm_base); sched_init(); irq_unlock(); while (1) {} } [[noreturn]] void kernel_main_task() { while (1) {} ASSERT(false, "Nothing to do"); }