summaryrefslogtreecommitdiffhomepage
path: root/Private/Source/PEFSharedObjectRT.cxx
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlalelmahrouss@icloud.com>2024-02-16 14:00:12 +0000
committerAmlal El Mahrouss <amlalelmahrouss@icloud.com>2024-02-16 14:00:12 +0000
commit82f0a2da77af7d79e53f5e65e46c527c1fe92765 (patch)
tree319ef7dd933367d64911c0ed9a53f91565002b00 /Private/Source/PEFSharedObjectRT.cxx
parent544d0cadfc371bcfb54d9f7ec15464bc6a79af21 (diff)
parent4c7aebf1b8964b99b89a25da0965b30fe6c7e6b3 (diff)
Merge branch 'HCR-18' into 'trunk'
HCR-18: First commit, bringing HCoreKrnl.exe into memory. See merge request mahrouss-logic/micro-kernel!6
Diffstat (limited to 'Private/Source/PEFSharedObjectRT.cxx')
-rw-r--r--Private/Source/PEFSharedObjectRT.cxx23
1 files changed, 7 insertions, 16 deletions
diff --git a/Private/Source/PEFSharedObjectRT.cxx b/Private/Source/PEFSharedObjectRT.cxx
index c6bec404..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,34 +56,28 @@ 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;
}
library->Get()->fImageEntrypointOffset =
- library->Load<VoidPtr>(kPefStart, string_length(kPefStart, 0), kPefCode);
-
- kcout << "__LibInit: Task is successful!\n";
+ library->Load<VoidPtr>(kPefStart, rt_string_len(kPefStart, 0), kPefCode);
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;
}