From 7efcf975fe61b2d20d2379f6151b6cdd99391dff Mon Sep 17 00:00:00 2001 From: Amlal EL Mahrouss Date: Tue, 13 Aug 2024 13:00:12 +0200 Subject: [IMP] Add WIP Thread scheduler inside kernel DLL. [META] PE loader: Fix uneven macros inside PE.hxx. [FIX] Add more checks to Thread loader inside bootloader for PE32+ [IMP] Refactor KernelLoader to Thread inside loader EXE. Signed-off-by: Amlal EL Mahrouss --- Boot/BootKit/KernelLoader.hxx | 43 ------------------------------------------- Boot/BootKit/Thread.hxx | 42 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 43 deletions(-) delete mode 100644 Boot/BootKit/KernelLoader.hxx create mode 100644 Boot/BootKit/Thread.hxx (limited to 'Boot/BootKit') diff --git a/Boot/BootKit/KernelLoader.hxx b/Boot/BootKit/KernelLoader.hxx deleted file mode 100644 index 3c98a238..00000000 --- a/Boot/BootKit/KernelLoader.hxx +++ /dev/null @@ -1,43 +0,0 @@ -/* ------------------------------------------- - - Copyright ZKA Technologies - -------------------------------------------- */ - -#pragma once - -#include -#include -#include - -namespace Boot -{ - using namespace Kernel; - - class KernelLoader; - - /// @brief Program loader class - /// @package nl.zeta.boot.api - class KernelLoader final - { - public: - explicit KernelLoader() = delete; - ~KernelLoader() = default; - - explicit KernelLoader(Kernel::VoidPtr blob); - - KernelLoader& operator=(const KernelLoader&) = default; - KernelLoader(const KernelLoader&) = default; - - void Start(HEL::HandoverInformationHeader* handover); - const char* GetName(); - void SetName(const char* name); - bool IsValid(); - - private: - Char fBlobName[255]; - Char* fHeapForProgram{nullptr}; - VoidPtr fStartAddress{nullptr}; - VoidPtr fBlob{nullptr}; - }; -} // namespace Boot diff --git a/Boot/BootKit/Thread.hxx b/Boot/BootKit/Thread.hxx new file mode 100644 index 00000000..6303eb35 --- /dev/null +++ b/Boot/BootKit/Thread.hxx @@ -0,0 +1,42 @@ +/* ------------------------------------------- + + Copyright ZKA Technologies + +------------------------------------------- */ + +#pragma once + +#include +#include +#include + +namespace Boot +{ + using namespace Kernel; + + class Thread; + + /// @brief Program loader class + /// @package nl.zeta.boot.api + class Thread final + { + public: + explicit Thread() = delete; + ~Thread() = default; + + explicit Thread(Kernel::VoidPtr blob); + + Thread& operator=(const Thread&) = default; + Thread(const Thread&) = default; + + void Start(HEL::HandoverInformationHeader* handover); + const char* GetName(); + void SetName(const char* name); + bool IsValid(); + + private: + Char fBlobName[255] = { "Boot Thread" }; + VoidPtr fStartAddress{nullptr}; + VoidPtr fBlob{nullptr}; + }; +} // namespace Boot -- cgit v1.2.3