summaryrefslogtreecommitdiffhomepage
path: root/Private/Source/PEFSharedObjectRT.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'Private/Source/PEFSharedObjectRT.cxx')
-rw-r--r--Private/Source/PEFSharedObjectRT.cxx107
1 files changed, 0 insertions, 107 deletions
diff --git a/Private/Source/PEFSharedObjectRT.cxx b/Private/Source/PEFSharedObjectRT.cxx
deleted file mode 100644
index da12eb05..00000000
--- a/Private/Source/PEFSharedObjectRT.cxx
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * ========================================================
- *
- * NewOS
- * Copyright Mahrouss Logic, all rights reserved.
- *
- * ========================================================
- */
-
-#include <KernelKit/DebugOutput.hpp>
-#include <KernelKit/PEF.hpp>
-#include <KernelKit/PEFSharedObject.hxx>
-#include <KernelKit/ProcessScheduler.hpp>
-#include <KernelKit/ThreadLocalStorage.hxx>
-#include <NewKit/Defines.hpp>
-
-/* -------------------------------------------
-
- Revision History:
-
- 01/02/24: Rework shared library ABI, except a rt_library_init and
- rt_library_free (amlel) 15/02/24: Breaking changes, changed the name of the
- routines. (amlel)
-
- ------------------------------------------- */
-
-using namespace NewOS;
-
-/***********************************************************************************/
-/// @file SharedObjectRT.cxx
-/// @brief Shared Object runtime.
-/***********************************************************************************/
-
-/***********************************************************************************/
-/* @brief Library runtime initializer. */
-/***********************************************************************************/
-
-EXTERN_C SharedObjectPtr rt_library_init(void)
-{
- SharedObjectPtr library = tls_new_class<SharedObject>();
-
- if (!library)
- {
- ProcessScheduler::Shared().Leak().GetCurrent().Leak().Crash();
-
- return nullptr;
- }
-
- library->Mount(tls_new_class<SharedObject::SharedObjectTrait>());
-
- if (!library->Get())
- {
- ProcessScheduler::Shared().Leak().GetCurrent().Leak().Crash();
-
- return nullptr;
- }
-
- library->Get()->fImageObject =
- ProcessScheduler::Shared().Leak().GetCurrent().Leak().Image;
-
- if (!library->Get()->fImageObject)
- {
- ProcessScheduler::Shared().Leak().GetCurrent().Leak().Crash();
-
- return nullptr;
- }
-
- library->Get()->fImageEntrypointOffset =
- library->Load<VoidPtr>(kPefStart, rt_string_len(kPefStart, 0), kPefCode);
-
- return library;
-}
-
-/***********************************************************************************/
-/* @brief Ends the library. */
-/* @note Please check if the lib got freed! */
-/* @param SharedObjectPtr the library to free. */
-/***********************************************************************************/
-
-EXTERN_C Void rt_library_free(SharedObjectPtr lib, bool* successful)
-{
- MUST_PASS(successful);
-
- // sanity check (will also trigger a bug check if this fails)
- if (lib == nullptr)
- {
- *successful = false;
- ProcessScheduler::Shared().Leak().GetCurrent().Leak().Crash();
- }
-
- delete lib->Get();
- delete lib;
-
- lib = nullptr;
-
- *successful = true;
-}
-
-/***********************************************************************************/
-
-/// @brief Unimplemented function (crashes by default)
-/// @param
-EXTERN_C void __mh_purecall(void)
-{
- ProcessScheduler::Shared().Leak().GetCurrent().Leak().Crash();
- return;
-}