summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel/ArchKit
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-06-22 12:07:42 +0200
committerAmlal El Mahrouss <amlal@nekernel.org>2025-06-22 12:08:06 +0200
commitf153886c81c7d11b8e249fa769265646216d5584 (patch)
tree7007822bed34b11cb6f450e39e867063a56404f5 /dev/kernel/ArchKit
parentc50ae11abc23c0ea5d79fd7044273685c73990d1 (diff)
feat: kernel: HAL: reworked `kerncall` system.
how: - By taking additional arguments according to DDKKit. - Adding a `HAL_KERNEL_DISPATCH_ENTRY` and `rt_kerncall_proc` Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'dev/kernel/ArchKit')
-rw-r--r--dev/kernel/ArchKit/ArchKit.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/dev/kernel/ArchKit/ArchKit.h b/dev/kernel/ArchKit/ArchKit.h
index a9dca240..04af0918 100644
--- a/dev/kernel/ArchKit/ArchKit.h
+++ b/dev/kernel/ArchKit/ArchKit.h
@@ -77,9 +77,20 @@ struct HAL_DISPATCH_ENTRY final {
operator bool() { return fHooked; }
};
+
+typedef Kernel::Void (*rt_kerncall_proc)(Kernel::SizeT, Kernel::VoidPtr, Kernel::SizeT);
+
+struct HAL_KERNEL_DISPATCH_ENTRY final {
+ Kernel::UInt64 fHash;
+ Kernel::Bool fHooked;
+ rt_kerncall_proc fProc;
+
+ operator bool() { return fHooked; }
+};
+
inline Kernel::Array<HAL_DISPATCH_ENTRY, kMaxDispatchCallCount> kSysCalls;
-inline Kernel::Array<HAL_DISPATCH_ENTRY, kMaxDispatchCallCount> kKernCalls;
+inline Kernel::Array<HAL_KERNEL_DISPATCH_ENTRY, kMaxDispatchCallCount> kKernCalls;
#ifdef __NE_VIRTUAL_MEMORY_SUPPORT__