From 71a35e96d5597fca8882e96976e9461dc3dd85e9 Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Tue, 30 Jan 2024 23:03:30 +0100 Subject: Bootloader: have been working on unifing the BTextWriter class. Next commit will be about the BFileReader class. It's going to read files from EFI. Signed-off-by: Amlal El Mahrouss --- Private/KernelKit/SharedObjectCore.hxx | 122 +++++++++++++++------------------ 1 file changed, 56 insertions(+), 66 deletions(-) (limited to 'Private/KernelKit/SharedObjectCore.hxx') diff --git a/Private/KernelKit/SharedObjectCore.hxx b/Private/KernelKit/SharedObjectCore.hxx index afda0080..b896a9dc 100644 --- a/Private/KernelKit/SharedObjectCore.hxx +++ b/Private/KernelKit/SharedObjectCore.hxx @@ -11,85 +11,75 @@ #define __KERNELKIT_SHARED_OBJECT_CORE_HXX__ #include -#include #include +#include #include -namespace HCore -{ -class SharedObject final -{ - public: - struct SharedObjectTraits final - { - VoidPtr fImageObject; - VoidPtr fImageEntrypointOffset; - }; - - public: - explicit SharedObject() = default; - ~SharedObject() = default; - - public: - HCORE_COPY_DEFAULT(SharedObject); - - private: - SharedObjectTraits *fMounted{nullptr}; - - public: - SharedObjectTraits **GetAddressOf() - { - return &fMounted; - } - SharedObjectTraits *Get() - { - return fMounted; +namespace HCore { +class SharedObject final { + public: + struct SharedObjectTraits final { + VoidPtr fImageObject; + VoidPtr fImageEntrypointOffset; + }; + + public: + explicit SharedObject() = default; + ~SharedObject() = default; + + public: + HCORE_COPY_DEFAULT(SharedObject); + + private: + SharedObjectTraits *fMounted{nullptr}; + + public: + SharedObjectTraits **GetAddressOf() { return &fMounted; } + + SharedObjectTraits *Get() { return fMounted; } + + public: + void Mount(SharedObjectTraits *to_mount) { + fMounted = to_mount; + + if (fLoader && to_mount) { + delete fLoader; + fLoader = nullptr; } - public: - void Mount(SharedObjectTraits *to_mount) - { - fMounted = to_mount; - - if (fLoader && to_mount) - { - delete fLoader; - fLoader = nullptr; - } - - if (!fLoader) - { - fLoader = new PEFLoader(fMounted->fImageObject); - } + if (!fLoader) { + fLoader = new PEFLoader(fMounted->fImageObject); } - void Unmount() - { - if (fMounted) - fMounted = nullptr; - }; + } - template SymbolType Load(const char *symbol_name) - { - auto ret = reinterpret_cast(fLoader->FindSymbol(symbol_name, kPefCode)); + void Unmount() { + if (fMounted) fMounted = nullptr; + }; - if (!ret) - ret = reinterpret_cast(fLoader->FindSymbol(symbol_name, kPefData)); + template + SymbolType Load(const char *symbol_name) { + auto ret = reinterpret_cast( + fLoader->FindSymbol(symbol_name, kPefCode)); - if (!ret) - ret = reinterpret_cast(fLoader->FindSymbol(symbol_name, kPefZero)); + if (!ret) + ret = reinterpret_cast( + fLoader->FindSymbol(symbol_name, kPefData)); - return ret; - } + if (!ret) + ret = reinterpret_cast( + fLoader->FindSymbol(symbol_name, kPefZero)); + + return ret; + } - private: - PEFLoader *fLoader{nullptr}; + private: + PEFLoader *fLoader{nullptr}; }; -inline void hcore_pure_call(void) -{ - // virtual placeholder. - return; +inline void hcore_pure_call(void) { + // virtual placeholder. + return; } -} // namespace HCore +} // namespace HCore #endif /* ifndef __KERNELKIT_SHARED_OBJECT_CORE_HXX__ */ -- cgit v1.2.3