summaryrefslogtreecommitdiffhomepage
path: root/Private/KernelKit/SharedObjectCore.hxx
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-01-30 23:03:30 +0100
committerAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-01-30 23:03:30 +0100
commit71a35e96d5597fca8882e96976e9461dc3dd85e9 (patch)
tree9b5964cad0edefd00cb2a4eb3842c6e1b428e6bd /Private/KernelKit/SharedObjectCore.hxx
parentdf44a789fc90497325ba91be515c02145ae39142 (diff)
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 <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'Private/KernelKit/SharedObjectCore.hxx')
-rw-r--r--Private/KernelKit/SharedObjectCore.hxx122
1 files changed, 56 insertions, 66 deletions
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 <KernelKit/CodeManager.hpp>
-#include <KernelKit/PEF.hpp>
#include <KernelKit/Loader.hpp>
+#include <KernelKit/PEF.hpp>
#include <NewKit/Defines.hpp>
-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 <typename SymbolType> SymbolType Load(const char *symbol_name)
- {
- auto ret = reinterpret_cast<SymbolType>(fLoader->FindSymbol(symbol_name, kPefCode));
+ void Unmount() {
+ if (fMounted) fMounted = nullptr;
+ };
- if (!ret)
- ret = reinterpret_cast<SymbolType>(fLoader->FindSymbol(symbol_name, kPefData));
+ template <typename SymbolType>
+ SymbolType Load(const char *symbol_name) {
+ auto ret = reinterpret_cast<SymbolType>(
+ fLoader->FindSymbol(symbol_name, kPefCode));
- if (!ret)
- ret = reinterpret_cast<SymbolType>(fLoader->FindSymbol(symbol_name, kPefZero));
+ if (!ret)
+ ret = reinterpret_cast<SymbolType>(
+ fLoader->FindSymbol(symbol_name, kPefData));
- return ret;
- }
+ if (!ret)
+ ret = reinterpret_cast<SymbolType>(
+ 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__ */