diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2026-02-11 22:07:59 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@nekernel.org> | 2026-02-11 22:07:59 +0100 |
| commit | cc7161dd5684059d2e76f44327a30cea41c1f19d (patch) | |
| tree | 9d2b24cedaf0f3f79b863bee5292b1d172412e7c | |
| parent | aa4cdda82b25557ecaf2085929f50edf208c9e31 (diff) | |
feat: kernel: Introduce 'NE_EXEC_LOADER' macro.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
| -rw-r--r-- | src/boot/src/BootThread.cc | 2 | ||||
| -rw-r--r-- | src/boot/src/HEL/AMD64/BootEFI.cc | 7 | ||||
| -rw-r--r-- | src/kernel/KernelKit/ILoader.h | 4 | ||||
| -rw-r--r-- | src/kernel/KernelKit/PE32CodeMgr.h | 4 | ||||
| -rw-r--r-- | src/kernel/KernelKit/PEFCodeMgr.h | 2 | ||||
| -rw-r--r-- | src/kernel/KernelKit/ProcessScheduler.h | 6 |
6 files changed, 13 insertions, 12 deletions
diff --git a/src/boot/src/BootThread.cc b/src/boot/src/BootThread.cc index bbb8fb5a..2da5f638 100644 --- a/src/boot/src/BootThread.cc +++ b/src/boot/src/BootThread.cc @@ -59,7 +59,7 @@ BootThread::BootThread(VoidPtr blob) : fStartAddress(nullptr), fBlob(blob) { } #endif - writer.Write("BootZ: PE32+ executable detected (NeKernel Subsystem).\r"); + writer.Write("BootZ: PE32+ executable detected. (NeKernel Subsystem)\r"); auto numSecs = header_ptr->NumberOfSections; diff --git a/src/boot/src/HEL/AMD64/BootEFI.cc b/src/boot/src/HEL/AMD64/BootEFI.cc index 27610dd6..54a66a51 100644 --- a/src/boot/src/HEL/AMD64/BootEFI.cc +++ b/src/boot/src/HEL/AMD64/BootEFI.cc @@ -73,6 +73,8 @@ EFI_EXTERN_C EFI_API Int32 BootloaderMain(EfiHandlePtr image_handle, EfiSystemTa Boot::Stop(); } + writer.Write("BootZ: The NeKernel Bootloader. Copyright 2024-2026, Amlal El Mahrouss and al.\r"); + for (SizeT index_vt = 0; index_vt < sys_table->NumberOfTableEntries; ++index_vt) { Char* vendor_table = reinterpret_cast<Char*>(sys_table->ConfigurationTable[index_vt].VendorTable); @@ -127,9 +129,6 @@ EFI_EXTERN_C EFI_API Int32 BootloaderMain(EfiHandlePtr image_handle, EfiSystemTa handover_hdr->f_BitMapStart = nullptr; /* Start of bitmap. */ handover_hdr->f_BitMapSize = 0UL; /* Size of bitmap in bytes. */ - kHandoverHeader->f_BitMapStart = nullptr; /* Start of bitmap. */ - kHandoverHeader->f_BitMapSize = 0UL; /* Size of bitmap in bytes. */ - // Get memory map to determine available memory for bitmap allocation. BS->GetMemoryMap(&size_struct_ptr, struct_ptr, &map_key, &sz_desc, &rev_desc); @@ -154,11 +153,9 @@ EFI_EXTERN_C EFI_API Int32 BootloaderMain(EfiHandlePtr image_handle, EfiSystemTa free_pages -= 1024; // Set bitmap to use the first free page region found. - kHandoverHeader->f_BitMapStart = first_free_page; handover_hdr->f_BitMapStart = first_free_page; // Convert pages to bytes (assuming 4K pages) for bitmap size. - kHandoverHeader->f_BitMapSize = free_pages * 4096; handover_hdr->f_BitMapSize = free_pages * 4096; handover_hdr->f_FirmwareCustomTables[Kernel::HEL::kHandoverTableBS] = (VoidPtr) BS; diff --git a/src/kernel/KernelKit/ILoader.h b/src/kernel/KernelKit/ILoader.h index 8399e1ea..1cc0742d 100644 --- a/src/kernel/KernelKit/ILoader.h +++ b/src/kernel/KernelKit/ILoader.h @@ -10,7 +10,10 @@ #include <NeKit/ErrorOr.h> #include <hint/CompilerHint.h> +#define NE_EXEC_LOADER : public ::Kernel::ILoader + namespace Kernel { + /// @brief This interface is used to make loader contracts (MSCOFF, PEF). /// @author Amlal El Mahrouss class ILoader { @@ -30,6 +33,7 @@ class ILoader { return ErrorOr<VoidPtr>{}; } }; + } // namespace Kernel #endif diff --git a/src/kernel/KernelKit/PE32CodeMgr.h b/src/kernel/KernelKit/PE32CodeMgr.h index ea2f7736..64fa989c 100644 --- a/src/kernel/KernelKit/PE32CodeMgr.h +++ b/src/kernel/KernelKit/PE32CodeMgr.h @@ -17,7 +17,7 @@ #include <NeKit/ErrorOr.h> #include <NeKit/KString.h> -#ifndef KERNELKIT_USERPROCESSSCHEDULER_H +#ifndef KERNELKIT_PROCESS_SCHEDULER_H #include <KernelKit/ProcessScheduler.h> #endif @@ -28,7 +28,7 @@ namespace Kernel { /// \name PE32Loader /// \brief PE32+ loader class. /// -class PE32Loader : public ILoader { +class PE32Loader NE_EXEC_LOADER { private: explicit PE32Loader() = delete; diff --git a/src/kernel/KernelKit/PEFCodeMgr.h b/src/kernel/KernelKit/PEFCodeMgr.h index a3ce74e9..96fb2e3b 100644 --- a/src/kernel/KernelKit/PEFCodeMgr.h +++ b/src/kernel/KernelKit/PEFCodeMgr.h @@ -26,7 +26,7 @@ namespace Kernel { /// \name PEFLoader /// \brief PEF loader class. /// -class PEFLoader : public ILoader { +class PEFLoader NE_EXEC_LOADER { private: explicit PEFLoader() = delete; diff --git a/src/kernel/KernelKit/ProcessScheduler.h b/src/kernel/KernelKit/ProcessScheduler.h index 41ecdf29..1c4b7842 100644 --- a/src/kernel/KernelKit/ProcessScheduler.h +++ b/src/kernel/KernelKit/ProcessScheduler.h @@ -2,8 +2,8 @@ // Licensed under the Apache License, Version 2.0 (see LICENSE file) // Official repository: https://github.com/nekernel-org/nekernel -#ifndef KERNELKIT_PROCESSSCHEDULER_H -#define KERNELKIT_PROCESSSCHEDULER_H +#ifndef KERNELKIT_PROCESS_SCHEDULER_H +#define KERNELKIT_PROCESS_SCHEDULER_H #include <KernelKit/KernelTaskScheduler.h> #include <KernelKit/UserProcessScheduler.h> @@ -21,4 +21,4 @@ inline UserProcessTeam kRTUserTeam; #endif -#endif
\ No newline at end of file +#endif |
