diff options
Diffstat (limited to 'dev/ddk')
| -rw-r--r-- | dev/ddk/DDKKit/ddk.h | 46 | ||||
| -rw-r--r-- | dev/ddk/DDKKit/dev.h | 2 | ||||
| -rw-r--r-- | dev/ddk/DDKKit/macros.h | 48 |
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 |
