summaryrefslogtreecommitdiffhomepage
path: root/Private/KernelKit/CodeManager.hpp
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-01-30 08:46:09 +0100
committerAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2024-01-30 08:46:09 +0100
commitd7112cd6909640afd7609b3a142bc6ecf921ee25 (patch)
tree55033ad28d58d536c4b3bad715d8635f00773bfd /Private/KernelKit/CodeManager.hpp
parentf22e69b8837b84548f79e0b8ca7bef24605c6611 (diff)
Kernel: Breaking changes, see source code.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'Private/KernelKit/CodeManager.hpp')
-rw-r--r--Private/KernelKit/CodeManager.hpp77
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_