diff options
| author | Amlal EL Mahrouss <amlalelmahrouss@icloud.com> | 2024-08-02 11:00:13 +0200 |
|---|---|---|
| committer | Amlal EL Mahrouss <amlalelmahrouss@icloud.com> | 2024-08-02 11:00:13 +0200 |
| commit | 04572e7a4299ed9dc412db7c5baeec9eabe464a3 (patch) | |
| tree | a41e55a6dbd0a3c15e0a4006e935f9ac56c33c5c /Kernel/KernelKit/PEFSharedObject.hxx | |
| parent | ce84d4c8745e8e1f4534a544ed48876f959485d3 (diff) | |
[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 <amlalelmahrouss@icloud.com>
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__ */ |
