summaryrefslogtreecommitdiffhomepage
path: root/dev/ddk
diff options
context:
space:
mode:
Diffstat (limited to 'dev/ddk')
-rw-r--r--dev/ddk/DDKKit/ddk.h46
-rw-r--r--dev/ddk/DDKKit/dev.h2
-rw-r--r--dev/ddk/DDKKit/macros.h48
3 files changed, 55 insertions, 41 deletions
diff --git a/dev/ddk/DDKKit/ddk.h b/dev/ddk/DDKKit/ddk.h
index b7bcd52c..888219c6 100644
--- a/dev/ddk/DDKKit/ddk.h
+++ b/dev/ddk/DDKKit/ddk.h
@@ -9,43 +9,7 @@
#pragma once
-#include <stddef.h>
-#include <stdint.h>
-
-#if defined(__cplusplus)
-#define BOOL bool
-#define YES true
-#define NO false
-#define DDK_EXTERN extern "C" __declspec(dllexport)
-#define nil nullptr
-#undef NULL
-#define NULL 0
-#define DDK_FINAL final
-#else
-#define BOOL char
-#define YES 1
-#define NO 0
-#define DDK_EXTERN extern __declspec(dllexport)
-#define nil ((void*) 0)
-#undef NULL
-#define NULL ((void*) 0)
-#define DDK_FINAL
-#endif // defined(__cplusplus)
-
-#ifndef __DDK__
-#undef DDK_EXTERN
-#if defined(__cplusplus)
-#define DDK_EXTERN extern "C" __declspec(dllimport)
-#else
-#define DDK_EXTERN __declspec(dllimport)
-#endif
-#endif
-
-#define ATTRIBUTE(X) __attribute__((X))
-
-#ifndef __NEOSKRNL__
-#error !!! Do not include header in EL0/Ring 3 mode !!!
-#endif // __MINOSKRNL__
+#include <DDKKit/macros.h>
struct DDK_STATUS_STRUCT;
struct DDK_OBJECT_MANIFEST;
@@ -59,10 +23,10 @@ struct DDK_OBJECT_MANIFEST DDK_FINAL {
/// \brief DDK status ping structure.
struct DDK_STATUS_STRUCT DDK_FINAL {
- int32_t s_action_id;
- int32_t s_issuer_id;
- int32_t s_group_id;
- void* s_object;
+ int32_t s_action_id;
+ int32_t s_issuer_id;
+ int32_t s_group_id;
+ struct DDK_OBJECT_MANIFEST* s_object;
};
/// @brief Call Kernel procedure.
diff --git a/dev/ddk/DDKKit/dev.h b/dev/ddk/DDKKit/dev.h
index 6c8a828e..59fb48b5 100644
--- a/dev/ddk/DDKKit/dev.h
+++ b/dev/ddk/DDKKit/dev.h
@@ -23,6 +23,8 @@ typedef struct _DDK_DEVICE DDK_FINAL {
void (*d_wait)(void); // write to device.
struct _DDK_DEVICE* (*d_open)(const char* path); // open device.
void (*d_close)(struct _DDK_DEVICE* dev); // close device.
+ void (*d_seek)(struct _DDK_DEVICE* dev, size_t off);
+ size_t (*d_tell)(struct _DDK_DEVICE* dev);
} DDK_DEVICE, *DDK_DEVICE_PTR;
/// @brief Open a new device from path.
diff --git a/dev/ddk/DDKKit/macros.h b/dev/ddk/DDKKit/macros.h
new file mode 100644
index 00000000..6de03ae0
--- /dev/null
+++ b/dev/ddk/DDKKit/macros.h
@@ -0,0 +1,48 @@
+/* -------------------------------------------
+
+ Copyright 2025 Amlal El Mahrouss.
+
+ FILE: ddk.h
+ PURPOSE: DDK Driver model base header.
+
+------------------------------------------- */
+
+#pragma once
+
+#include <stddef.h>
+#include <stdint.h>
+
+#if defined(__cplusplus)
+#define BOOL bool
+#define YES true
+#define NO false
+#define DDK_EXTERN extern "C" __declspec(dllexport)
+#define nil nullptr
+#undef NULL
+#define NULL 0
+#define DDK_FINAL final
+#else
+#define BOOL char
+#define YES 1
+#define NO 0
+#define DDK_EXTERN extern __declspec(dllexport)
+#define nil ((void*) 0)
+#undef NULL
+#define NULL ((void*) 0)
+#define DDK_FINAL
+#endif // defined(__cplusplus)
+
+#ifndef __DDK__
+#undef DDK_EXTERN
+#if defined(__cplusplus)
+#define DDK_EXTERN extern "C" __declspec(dllimport)
+#else
+#define DDK_EXTERN __declspec(dllimport)
+#endif
+#endif
+
+#define ATTRIBUTE(X) __attribute__((X))
+
+#ifndef __NEOSKRNL__
+#error !!! Do not include header in EL0/Ring 3 mode !!!
+#endif // __MINOSKRNL__ \ No newline at end of file