From 14f26421cc6ebd678c2b5a2a04fe6cdc63ee5d38 Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Thu, 25 Apr 2024 13:44:36 +0200 Subject: MHR-16: Adding BDiskFormatFactory according to MHR-16, bug fixes and improvements as well. Signed-off-by: Amlal El Mahrouss --- Private/DriverKit/KernelCall.c | 24 ++++++++++++++++++++++++ Private/DriverKit/KernelDev.h | 4 ++++ Private/DriverKit/KernelDispatchCall.S | 2 +- Private/DriverKit/KernelStd.c | 24 ------------------------ 4 files changed, 29 insertions(+), 25 deletions(-) create mode 100644 Private/DriverKit/KernelCall.c delete mode 100644 Private/DriverKit/KernelStd.c (limited to 'Private/DriverKit') diff --git a/Private/DriverKit/KernelCall.c b/Private/DriverKit/KernelCall.c new file mode 100644 index 00000000..494ac0bc --- /dev/null +++ b/Private/DriverKit/KernelCall.c @@ -0,0 +1,24 @@ +/* ------------------------------------------- + + Copyright Mahrouss Logic + + Purpose: Kernel Definitions. + +------------------------------------------- */ + +#include +#include + +DK_EXTERN __attribute__((naked)) void __kernelDispatchCall(int32_t cnt, ...); + +DK_EXTERN void* kernelCall(const char* kernelRpcName, int32_t cnt, ...) { + if (!kernelRpcName || cnt == 0) return NIL; + + va_list arg; + va_start(arg, cnt); + + __kernelDispatchCall(cnt, arg); + + va_end(arg); + +} diff --git a/Private/DriverKit/KernelDev.h b/Private/DriverKit/KernelDev.h index daa60a7c..8b6888f0 100644 --- a/Private/DriverKit/KernelDev.h +++ b/Private/DriverKit/KernelDev.h @@ -10,7 +10,11 @@ #include +struct _kernelDevice; + +/// @brief Kernel Device driver. typedef struct _kernelDevice { + char name[255]; // the device name. Could be /./DEVICE_NAME/ int32_t(*read)(); // read from device. int32_t(*write)(); // write to device. struct _kernelDevice* (*open)(const char* path); // open device. diff --git a/Private/DriverKit/KernelDispatchCall.S b/Private/DriverKit/KernelDispatchCall.S index 4eec8ae0..64b6663e 100644 --- a/Private/DriverKit/KernelDispatchCall.S +++ b/Private/DriverKit/KernelDispatchCall.S @@ -14,7 +14,7 @@ __kernelDispatchCall: #elif defined(__powerpc64__) __kernelDispatchCall: - mflr 3 + /* There is no specific interrupt request id for a system call in POWER. */ sc blr diff --git a/Private/DriverKit/KernelStd.c b/Private/DriverKit/KernelStd.c deleted file mode 100644 index 494ac0bc..00000000 --- a/Private/DriverKit/KernelStd.c +++ /dev/null @@ -1,24 +0,0 @@ -/* ------------------------------------------- - - Copyright Mahrouss Logic - - Purpose: Kernel Definitions. - -------------------------------------------- */ - -#include -#include - -DK_EXTERN __attribute__((naked)) void __kernelDispatchCall(int32_t cnt, ...); - -DK_EXTERN void* kernelCall(const char* kernelRpcName, int32_t cnt, ...) { - if (!kernelRpcName || cnt == 0) return NIL; - - va_list arg; - va_start(arg, cnt); - - __kernelDispatchCall(cnt, arg); - - va_end(arg); - -} -- cgit v1.2.3