diff options
| author | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2024-01-30 23:03:30 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2024-01-30 23:03:30 +0100 |
| commit | 71a35e96d5597fca8882e96976e9461dc3dd85e9 (patch) | |
| tree | 9b5964cad0edefd00cb2a4eb3842c6e1b428e6bd /Private/KernelKit | |
| parent | df44a789fc90497325ba91be515c02145ae39142 (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')
| -rw-r--r-- | Private/KernelKit/PE.hpp | 2 | ||||
| -rw-r--r-- | Private/KernelKit/PermissionSelector.hxx | 56 | ||||
| -rw-r--r-- | Private/KernelKit/SharedObjectCore.hxx | 122 |
3 files changed, 83 insertions, 97 deletions
diff --git a/Private/KernelKit/PE.hpp b/Private/KernelKit/PE.hpp index 6ac8d428..5bb5d831 100644 --- a/Private/KernelKit/PE.hpp +++ b/Private/KernelKit/PE.hpp @@ -36,7 +36,7 @@ struct ExecHeader final { #define kMagPE32 0x010b #define kMagPE64 0x020b -struct ExecOptionalHeader { +struct ExecOptionalHeader final { U16 mMagic; // 0x010b - PE32, 0x020b - PE32+ (64 bit) U8 mMajorLinkerVersion; U8 mMinorLinkerVersion; diff --git a/Private/KernelKit/PermissionSelector.hxx b/Private/KernelKit/PermissionSelector.hxx index 805d29ff..0fe33c29 100644 --- a/Private/KernelKit/PermissionSelector.hxx +++ b/Private/KernelKit/PermissionSelector.hxx @@ -14,47 +14,43 @@ #include <NewKit/Defines.hpp> // kernel mode user. -#define kMachineUser "machine" +#define kMachineUser "Machine" // user mode users. -#define kSuperUser "super" -#define kGuestUser "guest" +#define kSuperUser "Admin" +#define kGuestUser "Guest" // hash 'user@host:password' -> base64 encoded data // use this data to then fetch specific data. -namespace HCore -{ - enum class RingKind - { - kRingUser = 3, - kRingDriver = 2, - kRingKernel = 0, - kUnknown = -1, - }; +namespace HCore { +enum class RingKind { + kRingUser = 3, + kRingDriver = 2, + kRingKernel = 0, + kUnknown = -1, +}; - class PermissionSelector final - { - private: - explicit PermissionSelector(const Int32& sel); - explicit PermissionSelector(const RingKind& kind); +class PermissionSelector final { + private: + explicit PermissionSelector(const Int32& sel); + explicit PermissionSelector(const RingKind& kind); - ~PermissionSelector(); + ~PermissionSelector(); - public: - HCORE_COPY_DEFAULT(PermissionSelector) + public: + HCORE_COPY_DEFAULT(PermissionSelector) - public: - bool operator==(const PermissionSelector& lhs); - bool operator!=(const PermissionSelector& lhs); + public: + bool operator==(const PermissionSelector& lhs); + bool operator!=(const PermissionSelector& lhs); - public: - const RingKind& Ring() noexcept; + public: + const RingKind& Ring() noexcept; - private: - RingKind fRing; - - }; -} + private: + RingKind fRing; +}; +} // namespace HCore #endif /* ifndef _INC_PERMISSION_SEL_HPP */ 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__ */ |
