summaryrefslogtreecommitdiffhomepage
path: root/dev/libDDK/DriverKit
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-09-28 17:01:48 +0200
committerGitHub <noreply@github.com>2025-09-28 17:01:48 +0200
commit2117a9b0f4b84f5bd6c99566bcf5849a64104467 (patch)
tree590b20056c62d04a496aa22f6bee0034a1430e4e /dev/libDDK/DriverKit
parent0f88e96c0cf7ffaccecae94794024164c510f735 (diff)
parentb1302067703566624390d780dffd621bb99bb439 (diff)
Merge pull request #64 from nekernel-org/dev
ver: `kernel` v0.0.6
Diffstat (limited to 'dev/libDDK/DriverKit')
-rw-r--r--dev/libDDK/DriverKit/ddk.h4
-rw-r--r--dev/libDDK/DriverKit/dki/contract.h32
2 files changed, 35 insertions, 1 deletions
diff --git a/dev/libDDK/DriverKit/ddk.h b/dev/libDDK/DriverKit/ddk.h
index 254137f9..2e2dddf0 100644
--- a/dev/libDDK/DriverKit/ddk.h
+++ b/dev/libDDK/DriverKit/ddk.h
@@ -1,6 +1,6 @@
/* -------------------------------------------
- Copyright Amlal El Mahrouss.
+ Copyright Amlal El Mahrouss 2025, all rights reserved.
FILE: ddk.h
PURPOSE: DDK Driver model base header.
@@ -29,6 +29,8 @@ struct DDK_STATUS_STRUCT DDK_FINAL {
struct DDK_OBJECT_MANIFEST* s_object;
};
+typedef void* ptr_t;
+
/// @brief Call Kernel procedure.
/// @param name the procedure name.
/// @param cnt number of elements in **dat**
diff --git a/dev/libDDK/DriverKit/dki/contract.h b/dev/libDDK/DriverKit/dki/contract.h
new file mode 100644
index 00000000..23884e02
--- /dev/null
+++ b/dev/libDDK/DriverKit/dki/contract.h
@@ -0,0 +1,32 @@
+/* -------------------------------------------
+
+ Copyright Amlal El Mahrouss 2025, all rights reserved.
+
+ FILE: ddk.h
+ PURPOSE: Driver Kernel Interface Model base header.
+
+ ------------------------------------------- */
+
+#pragma once
+
+#include <CompilerKit/CompilerKit.h>
+#include <DriverKit/macros.h>
+
+#define DKI_CONTRACT_IMPL : public ::Kernel::DKIContract
+
+/// @author Amlal El Mahrouss
+
+namespace Kernel::DKI {
+class DKIContract {
+ public:
+ explicit DKIContract() = default;
+ virtual ~DKIContract() = default;
+
+ NE_COPY_DEFAULT(DKIContract);
+
+ virtual BOOL IsCastable() { return false; }
+ virtual BOOL IsActive() { return false; }
+ virtual VoidPtr Leak() { return nullptr; }
+ virtual Int32 Type() { return 0; }
+};
+} // namespace Kernel::DKI