summaryrefslogtreecommitdiffhomepage
path: root/Private/KernelKit/CodeManager.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'Private/KernelKit/CodeManager.hpp')
-rw-r--r--Private/KernelKit/CodeManager.hpp76
1 files changed, 11 insertions, 65 deletions
diff --git a/Private/KernelKit/CodeManager.hpp b/Private/KernelKit/CodeManager.hpp
index afb1a33e..fcb0d46b 100644
--- a/Private/KernelKit/CodeManager.hpp
+++ b/Private/KernelKit/CodeManager.hpp
@@ -1,72 +1,18 @@
-/*
- * ========================================================
- *
- * HCore
- * Copyright Mahrouss Logic, all rights reserved.
- *
- * ========================================================
- */
+/* -------------------------------------------
-#ifndef _INC_CODE_MANAGER_
-#define _INC_CODE_MANAGER_
+ Copyright Mahrouss Logic
-#include <KernelKit/PEF.hpp>
-#include <NewKit/ErrorOr.hpp>
-#include <NewKit/String.hpp>
+ File: CodeManager.hpp
+ Purpose: Code Manager and Shared Objects.
-#include "NewKit/Defines.hpp"
+ Revision History:
-namespace HCore {
-///
-/// \name PEFLoader
-/// \brief PEF loader class.
-///
-class PEFLoader : public Loader {
- private:
- explicit PEFLoader() = delete;
+ 30/01/24: Added file (amlel)
- public:
- explicit PEFLoader(const VoidPtr blob);
- explicit PEFLoader(const char *path);
- ~PEFLoader() override;
+------------------------------------------- */
- public:
- HCORE_COPY_DEFAULT(PEFLoader);
+#pragma once
- public:
- typedef void (*MainKind)(void);
-
- 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:
- bool IsLoaded() noexcept;
-
- private:
- Ref<StringView> fPath;
- VoidPtr fCachedBlob;
- bool fBad;
-};
-
-namespace Utils {
-/// \brief Much like Mac OS's UPP.
-/// This is read-only by design.
-/// It handles different kind of code.
-/// 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
-
-#endif // ifndef _INC_CODE_MANAGER_
+#include <KernelKit/PEFCodeManager.hxx>
+// #include <KernelKit/PECodeManager.hpp>
+#include <KernelKit/PEFSharedObject.hxx>