/* ------------------------------------------- Copyright (C) 2024, ELMH GROUP, 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 ke_dll_entrypoint(Kernel::Void); 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. Kernel::rtl_create_process(ke_dll_entrypoint, "Kernel System"); Kernel::ke_stop(RUNTIME_CHECK_BOOTSTRAP); }