NeKernel dev
Loading...
Searching...
No Matches
IDylibObject.h
Go to the documentation of this file.
1/*
2 * ========================================================
3 *
4 * Kernel
5 * Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license.
6 *
7 * ========================================================
8 */
9
10#pragma once
11
13#include <NeKit/Config.h>
14
15#define NE_DYLIB_OBJECT : public IDylibObject
16
17namespace Kernel {
18class IDylibObject;
19
22 public:
23 explicit IDylibObject() = default;
24 virtual ~IDylibObject() = default;
25
26 struct DylibTraits final {
29
30 VoidPtr Image() const { return ImageObject; }
32 };
33
35
36 virtual DylibTraits** GetAddressOf() = 0;
37 virtual DylibTraits* Get() = 0;
38
39 virtual Void Mount(DylibTraits* to_mount) = 0;
40 virtual Void Unmount() = 0;
41};
42
45} // namespace Kernel
#define NE_COPY_DEFAULT(KLASS)
Definition Detail.h:17
#define EXTERN_C
Dylib class object. A handle to a shared library.
Definition IDylibObject.h:21
virtual Void Unmount()=0
virtual ~IDylibObject()=default
virtual DylibTraits ** GetAddressOf()=0
virtual Void Mount(DylibTraits *to_mount)=0
virtual DylibTraits * Get()=0
UPS inline definitions.
Definition Device.h:12
void Void
Definition Config.h:87
void * VoidPtr
Definition Config.h:33
EXTERN_C Void __ne_pure_call(USER_PROCESS *process)
Unimplemented function (crashes by default).
Definition HalSchedulerCorePrimitives.cc:16
bool Bool
Definition Config.h:50
Definition IDylibObject.h:26
VoidPtr ImageObject
Definition IDylibObject.h:27
VoidPtr Image() const
Definition IDylibObject.h:30
Bool IsValid() const
Definition IDylibObject.h:31
VoidPtr ImageEntrypointOffset
Definition IDylibObject.h:28