diff options
Diffstat (limited to 'Kernel/KernelKit/PEFSharedObject.hxx')
| -rw-r--r-- | Kernel/KernelKit/PEFSharedObject.hxx | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/Kernel/KernelKit/PEFSharedObject.hxx b/Kernel/KernelKit/PEFSharedObject.hxx index d490c567..7b85937c 100644 --- a/Kernel/KernelKit/PEFSharedObject.hxx +++ b/Kernel/KernelKit/PEFSharedObject.hxx @@ -24,38 +24,40 @@ namespace Kernel * @brief Shared Library class * Load library from this class */ - class SharedObject final + class PEFSharedObjectInterface final { public: - struct SharedObjectTrait final + struct PEF_SHARED_OBJECT_TRAITS final { - VoidPtr fImageObject; - VoidPtr fImageEntrypointOffset; + VoidPtr fImageObject{nullptr}; + VoidPtr fImageEntrypointOffset{nullptr}; + + Bool IsValid() { return fImageObject && fImageEntrypointOffset; } }; public: - explicit SharedObject() = default; - ~SharedObject() = default; + explicit PEFSharedObjectInterface() = default; + ~PEFSharedObjectInterface() = default; public: - NEWOS_COPY_DEFAULT(SharedObject); + NEWOS_COPY_DEFAULT(PEFSharedObjectInterface); private: - SharedObjectTrait* fMounted{nullptr}; + PEF_SHARED_OBJECT_TRAITS* fMounted{nullptr}; public: - SharedObjectTrait** GetAddressOf() + PEF_SHARED_OBJECT_TRAITS** GetAddressOf() { return &fMounted; } - SharedObjectTrait* Get() + PEF_SHARED_OBJECT_TRAITS* Get() { return fMounted; } public: - void Mount(SharedObjectTrait* to_mount) + void Mount(PEF_SHARED_OBJECT_TRAITS* to_mount) { if (!to_mount || !to_mount->fImageObject) return; @@ -106,10 +108,10 @@ namespace Kernel PEFLoader* fLoader{nullptr}; }; - typedef SharedObject* SharedObjectPtr; + typedef PEFSharedObjectInterface* SharedObjectPtr; - EXTERN_C SharedObjectPtr rtl_init_shared_object(ProcessHeader* header); - EXTERN_C Void rtl_fini_shared_object(ProcessHeader* header, SharedObjectPtr lib, Bool* successful); + EXTERN_C SharedObjectPtr rtl_init_shared_object(PROCESS_HEADER_BLOCK* header); + EXTERN_C Void rtl_fini_shared_object(PROCESS_HEADER_BLOCK* header, SharedObjectPtr lib, Bool* successful); } // namespace Kernel #endif /* ifndef __KERNELKIT_SHARED_OBJECT_HXX__ */ |
