/* ------------------------------------------- Copyright (C) 2024, Theater Quality Corp, all rights reserved. ------------------------------------------- */ #include #include #include #include #include #include #include #include #include #include #include #include Kernel::Void hal_real_init(Kernel::Void) noexcept; EXTERN_C Kernel::Void rtl_kernel_main(Kernel::SizeT argc, char** argv, char** envp, Kernel::SizeT envp_len); EXTERN_C void hal_init_platform( Kernel::HEL::BootInfoHeader* handover_hdr) { /************************************************** */ /* INITIALIZE AND VALIDATE HEADER. */ /************************************************** */ kHandoverHeader = handover_hdr; if (kHandoverHeader->f_Magic != kHandoverMagic && kHandoverHeader->f_Version != kHandoverVersion) { return; } /************************************** */ /* INITIALIZE BIT MAP. */ /************************************** */ kKernelBitMpSize = kHandoverHeader->f_BitMapSize; kKernelBitMpStart = reinterpret_cast( reinterpret_cast(kHandoverHeader->f_BitMapStart)); /// @note do initialize the interrupts after it. auto str_proc = Kernel::rt_alloc_string("System"); Kernel::rtl_create_process(rtl_kernel_main, str_proc); while (YES) { } }