diff options
| author | Amlal El Mahrouss <amlalelmahrouss@icloud.com> | 2024-02-15 11:09:38 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlalelmahrouss@icloud.com> | 2024-02-15 11:09:38 +0100 |
| commit | f323b1049bb581403d903f95224c0476b1812d43 (patch) | |
| tree | c757c75cc476b79a57d39be8b5f20045dc720031 /Private/Source | |
| parent | c6592da1f0461ee7b60fcc5a7f9e852273171b6d (diff) | |
HCR-18
Kernel:
- Add back RuntimeMain jump.
- Update DLL/SO runtime for PEF.
NewBoot:
- Figured out how to load this PE in a reusable way.
Signed-off-by: Amlal El Mahrouss <amlalelmahrouss@icloud.com>
Diffstat (limited to 'Private/Source')
| -rw-r--r-- | Private/Source/PEFSharedObjectRT.cxx | 21 |
1 files changed, 6 insertions, 15 deletions
diff --git a/Private/Source/PEFSharedObjectRT.cxx b/Private/Source/PEFSharedObjectRT.cxx index aceca259..60a3ea8f 100644 --- a/Private/Source/PEFSharedObjectRT.cxx +++ b/Private/Source/PEFSharedObjectRT.cxx @@ -20,6 +20,7 @@ 01/02/24: Rework shared library ABI, except a __LibInit and __LibFini (amlel) + 15/02/24: Breaking changes, changed the name of the routines. (amlel) ------------------------------------------- */ @@ -31,14 +32,13 @@ using namespace HCore; /***********************************************************************************/ /***********************************************************************************/ -/* @brief Allocates a new library. */ +/* @brief Library runtime initializer. */ /***********************************************************************************/ -extern "C" SharedObject *__LibInit() { - SharedObject *library = hcore_tls_new_class<SharedObject>(); +extern "C" SharedObjectPtr ke_library_init(void) { + SharedObjectPtr library = hcore_tls_new_class<SharedObject>(); if (!library) { - kcout << "__LibInit: Out of Memory!\n"; ProcessManager::Shared().Leak().GetCurrent().Leak().Crash(); return nullptr; @@ -47,7 +47,6 @@ extern "C" SharedObject *__LibInit() { library->Mount(hcore_tls_new_class<SharedObject::SharedObjectTraits>()); if (!library->Get()) { - kcout << "__LibInit: Out of Memory!\n"; ProcessManager::Shared().Leak().GetCurrent().Leak().Crash(); return nullptr; @@ -57,7 +56,6 @@ extern "C" SharedObject *__LibInit() { ProcessManager::Shared().Leak().GetCurrent().Leak().Image; if (!library->Get()->fImageObject) { - kcout << "__LibInit: Invalid image!\n"; ProcessManager::Shared().Leak().GetCurrent().Leak().Crash(); return nullptr; @@ -66,25 +64,20 @@ extern "C" SharedObject *__LibInit() { library->Get()->fImageEntrypointOffset = library->Load<VoidPtr>(kPefStart, rt_string_len(kPefStart, 0), kPefCode); - kcout << "__LibInit: Task is successful!\n"; - return library; } /***********************************************************************************/ - -/***********************************************************************************/ -/* @brief Frees the library. */ +/* @brief Ends the library. */ /* @note Please check if the lib got freed! */ /* @param SharedObjectPtr the library to free. */ /***********************************************************************************/ -extern "C" Void __LibFini(SharedObjectPtr lib, bool *successful) { +extern "C" Void ke_library_free(SharedObjectPtr lib, bool *successful) { MUST_PASS(successful); // sanity check (will also trigger a bug check) if (lib == nullptr) { - kcout << "__LibFini: Invalid image!\n"; *successful = false; ProcessManager::Shared().Leak().GetCurrent().Leak().Crash(); } @@ -94,8 +87,6 @@ extern "C" Void __LibFini(SharedObjectPtr lib, bool *successful) { lib = nullptr; - kcout << "__LibFini: Task is successful!\n"; - *successful = true; } |
