From 04572e7a4299ed9dc412db7c5baeec9eabe464a3 Mon Sep 17 00:00:00 2001 From: Amlal EL Mahrouss Date: Fri, 2 Aug 2024 11:00:13 +0200 Subject: [IMP] New PROCESS_HEADER_BLOCK structure instead of ProcessHeader. [IMP] PEF_SHARED_OBJECT_TRAITS with IsValid() method. [IMP] HTTPS and ODBC for URLs support. Signed-off-by: Amlal EL Mahrouss --- Kernel/KernelKit/PEFSharedObject.hxx | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) (limited to 'Kernel/KernelKit/PEFSharedObject.hxx') 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__ */ -- cgit v1.2.3