diff options
Diffstat (limited to 'Private/KernelKit/CodeManager.hpp')
| -rw-r--r-- | Private/KernelKit/CodeManager.hpp | 77 |
1 files changed, 37 insertions, 40 deletions
diff --git a/Private/KernelKit/CodeManager.hpp b/Private/KernelKit/CodeManager.hpp index 66c8ca45..2a843755 100644 --- a/Private/KernelKit/CodeManager.hpp +++ b/Private/KernelKit/CodeManager.hpp @@ -1,7 +1,7 @@ /* * ======================================================== * - * hCore + * HCore * Copyright 2024 Mahrouss Logic, all rights reserved. * * ======================================================== @@ -10,66 +10,63 @@ #ifndef _INC_CODE_MANAGER_ #define _INC_CODE_MANAGER_ -#include "NewKit/Defines.hpp" #include <KernelKit/PEF.hpp> #include <NewKit/ErrorOr.hpp> #include <NewKit/String.hpp> -namespace hCore -{ +#include "NewKit/Defines.hpp" + +namespace HCore { /// /// \name PEFLoader /// \brief PEF loader class. /// -class PEFLoader : public Loader -{ - private: - explicit PEFLoader() = delete; +class PEFLoader : public Loader { + private: + explicit PEFLoader() = delete; - public: - explicit PEFLoader(const VoidPtr blob); - explicit PEFLoader(const char *path); - ~PEFLoader() override; + public: + explicit PEFLoader(const VoidPtr blob); + explicit PEFLoader(const char *path); + ~PEFLoader() override; - public: - HCORE_COPY_DEFAULT(PEFLoader); + public: + HCORE_COPY_DEFAULT(PEFLoader); - public: - typedef void (*MainKind)(void); + public: + typedef void (*MainKind)(void); - public: - const char *Path() override; - const char *Format() override; - const char *MIME() override; + public: + const char *Path() override; + const char *Format() override; + const char *MIME() override; - public: - ErrorOr<VoidPtr> LoadStart() override; - VoidPtr FindSymbol(const char *name, Int32 kind) override; + public: + ErrorOr<VoidPtr> LoadStart() override; + VoidPtr FindSymbol(const char *name, Int32 kind) override; - public: - bool IsLoaded() noexcept; + public: + bool IsLoaded() noexcept; - private: - Ref<StringView> fPath; - VoidPtr fCachedBlob; - bool fBad; + private: + Ref<StringView> fPath; + VoidPtr fCachedBlob; + bool fBad; }; -namespace Utils -{ +namespace Utils { /// \brief Much like Mac OS's UPP. /// This is read-only by design. /// It handles different kind of code. -/// PowerPC <-> AMD64 for example. -typedef struct UniversalProcedureTable final -{ - const Char NAME[kPefNameLen]; - const VoidPtr TRAP; - const SizeT ARCH; +/// ARM <-> AMD64 for example. +typedef struct UniversalProcedureTable final { + const Char NAME[kPefNameLen]; + const VoidPtr TRAP; + const SizeT ARCH; } __attribute__((packed)) UniversalProcedureTableType; bool execute_from_image(PEFLoader &exec) noexcept; -} // namespace Utils -} // namespace hCore +} // namespace Utils +} // namespace HCore -#endif // ifndef _INC_CODE_MANAGER_ +#endif // ifndef _INC_CODE_MANAGER_ |
