diff options
| author | Amlal <amlalelmahrouss@icloud.com> | 2024-05-11 06:43:54 +0000 |
|---|---|---|
| committer | Amlal <amlalelmahrouss@icloud.com> | 2024-05-11 06:43:54 +0000 |
| commit | ca675beb41dba8d7d16c5793b55d1672f38be3b4 (patch) | |
| tree | c995ada42729ac2059a0ed87a4539d1a7e10b14a /Private/DriverKit | |
| parent | 2b4a4792abf51487ab4a16106f9376f43acf381a (diff) | |
| parent | bc57a29a24b98b00ba17710ba84ec2188ab73504 (diff) | |
Merged in MHR-23 (pull request #12)
MHR-23: Merge work.
Diffstat (limited to 'Private/DriverKit')
| -rw-r--r-- | Private/DriverKit/KernelCall.c | 24 | ||||
| -rw-r--r-- | Private/DriverKit/KernelDev.c | 31 | ||||
| -rw-r--r-- | Private/DriverKit/KernelDev.h | 32 | ||||
| -rw-r--r-- | Private/DriverKit/KernelDispatchCall.S | 21 | ||||
| -rw-r--r-- | Private/DriverKit/KernelPrint.c | 28 | ||||
| -rw-r--r-- | Private/DriverKit/KernelPrint.h | 18 | ||||
| -rw-r--r-- | Private/DriverKit/KernelStd.h | 22 | ||||
| -rw-r--r-- | Private/DriverKit/KernelStdCxx.cc | 24 | ||||
| -rw-r--r-- | Private/DriverKit/KernelString.c | 30 | ||||
| -rw-r--r-- | Private/DriverKit/KernelString.h | 16 |
10 files changed, 0 insertions, 246 deletions
diff --git a/Private/DriverKit/KernelCall.c b/Private/DriverKit/KernelCall.c deleted file mode 100644 index 494ac0bc..00000000 --- a/Private/DriverKit/KernelCall.c +++ /dev/null @@ -1,24 +0,0 @@ -/* ------------------------------------------- - - Copyright Mahrouss Logic - - Purpose: Kernel Definitions. - -------------------------------------------- */ - -#include <DriverKit/KernelStd.h> -#include <stdarg.h> - -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.c b/Private/DriverKit/KernelDev.c deleted file mode 100644 index e8c041af..00000000 --- a/Private/DriverKit/KernelDev.c +++ /dev/null @@ -1,31 +0,0 @@ -/* ------------------------------------------- - - Copyright Mahrouss Logic - - Purpose: Kernel Text I/O. - -------------------------------------------- */ - -#include <DriverKit/KernelDev.h> - -/// @brief Open a new binary device from path. -DK_EXTERN kernelDeviceRef kernelOpenBinaryDevice(const char* devicePath) { - if (!devicePath) return NIL; - - return kernelCall("OpenBinaryDevice", 1, devicePath); -} - -/// @brief Open a new character device from path. -DK_EXTERN kernelDeviceRef kernelOpenCharDevice(const char* devicePath) { - if (!devicePath) return NIL; - - return kernelCall("OpenCharDevice", 1, devicePath); -} - -/// @brief Close any device. -/// @param device valid device. -DK_EXTERN void kernelCloseDevice(kernelDeviceRef device) { - if (!device) return; - - kernelCall("CloseDevice", 1, device); -} diff --git a/Private/DriverKit/KernelDev.h b/Private/DriverKit/KernelDev.h deleted file mode 100644 index 8b6888f0..00000000 --- a/Private/DriverKit/KernelDev.h +++ /dev/null @@ -1,32 +0,0 @@ -/* ------------------------------------------- - - Copyright Mahrouss Logic - - Purpose: Kernel Devices. - -------------------------------------------- */ - -#pragma once - -#include <DriverKit/KernelStd.h> - -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. - void (*close)(struct _kernelDevice* dev); // close device. -} kernelDevice,* kernelDeviceRef; - -/// @brief Open a new binary device from path. -DK_EXTERN kernelDeviceRef kernelOpenBinaryDevice(const char* devicePath); - -/// @brief Open a new character device from path. -DK_EXTERN kernelDeviceRef kernelOpenCharDevice(const char* devicePath); - -/// @brief Close any device. -/// @param device valid device. -DK_EXTERN void kernelCloseDevice(kernelDeviceRef device); diff --git a/Private/DriverKit/KernelDispatchCall.S b/Private/DriverKit/KernelDispatchCall.S deleted file mode 100644 index 64b6663e..00000000 --- a/Private/DriverKit/KernelDispatchCall.S +++ /dev/null @@ -1,21 +0,0 @@ -.globl __kernelDispatchCall - -.section .text - -/* Really simple function, takes our va-list, - and brings it to the trap handler in the kernel. */ - -#ifdef __x86_64__ - -__kernelDispatchCall: - int $0x33 - ret - -#elif defined(__powerpc64__) - -__kernelDispatchCall: - /* There is no specific interrupt request id for a system call in POWER. */ - sc - blr - -#endif diff --git a/Private/DriverKit/KernelPrint.c b/Private/DriverKit/KernelPrint.c deleted file mode 100644 index 5ca09ccf..00000000 --- a/Private/DriverKit/KernelPrint.c +++ /dev/null @@ -1,28 +0,0 @@ -/* ------------------------------------------- - - Copyright Mahrouss Logic - - Purpose: Kernel Text I/O. - -------------------------------------------- */ - -#include <DriverKit/KernelPrint.h> - -DK_EXTERN void kernelPrintChar(const char ch) { - kernelCall("WriteCharacter", 1, ch); -} - -/// @brief print string to UART. -/// @param message UART to transmit. -DK_EXTERN void kernelPrintStr(const char* message) { - if (!message) return; - if (*message == 0) return; - - size_t index = 0; - size_t len = kernelStringLength(message); - - while (index < len) { - kernelPrintChar(message[index]); - ++index; - } -} diff --git a/Private/DriverKit/KernelPrint.h b/Private/DriverKit/KernelPrint.h deleted file mode 100644 index 36e55442..00000000 --- a/Private/DriverKit/KernelPrint.h +++ /dev/null @@ -1,18 +0,0 @@ -/* ------------------------------------------- - - Copyright Mahrouss Logic - - Purpose: Kernel Text I/O. - -------------------------------------------- */ - -#pragma once - -#include <DriverKit/KernelString.h> - -/// @brief print character into UART. -DK_EXTERN void kernelPrintChar(const char ch); - -/// @brief print string to UART. -/// @param message UART to transmit. -DK_EXTERN void kernelPrintStr(const char* message); diff --git a/Private/DriverKit/KernelStd.h b/Private/DriverKit/KernelStd.h deleted file mode 100644 index 3344630e..00000000 --- a/Private/DriverKit/KernelStd.h +++ /dev/null @@ -1,22 +0,0 @@ -/* ------------------------------------------- - - Copyright Mahrouss Logic - - Purpose: Kernel Definitions. - -------------------------------------------- */ - -#pragma once - -#if defined(__cplusplus) -#define DK_EXTERN extern "C" -#define NIL nullptr -#else -#define DK_EXTERN extern -#define NIL NULL -#endif // defined(__cplusplus) - -#include <stdint.h> -#include <stddef.h> - -DK_EXTERN void* kernelCall(const char* kernelRpcName, int32_t cnt, ...); diff --git a/Private/DriverKit/KernelStdCxx.cc b/Private/DriverKit/KernelStdCxx.cc deleted file mode 100644 index 79d41a72..00000000 --- a/Private/DriverKit/KernelStdCxx.cc +++ /dev/null @@ -1,24 +0,0 @@ -/* ------------------------------------------- - - Copyright Mahrouss Logic - - Purpose: Driver C++ Definitions. - -------------------------------------------- */ - -#include <DriverKit/KernelStd.h> - -void* operator new(size_t sz) { - if (!sz) ++sz; - - auto ptr = kernelCall("NewKernelHeap", 1, sz); - kernelCall("KernelHeapProtect", 1, ptr); - - return ptr; -} - -void operator delete(void* ptr) noexcept { - if (!ptr) return; - - kernelCall("DeleteKernelHeap", 1,ptr); -} diff --git a/Private/DriverKit/KernelString.c b/Private/DriverKit/KernelString.c deleted file mode 100644 index 0bb45b16..00000000 --- a/Private/DriverKit/KernelString.c +++ /dev/null @@ -1,30 +0,0 @@ -/* ------------------------------------------- - - Copyright Mahrouss Logic - - Purpose: Kernel Strings. - -------------------------------------------- */ - -#include <DriverKit/KernelString.h> - -DK_EXTERN size_t kernelStringLength(const char* str) { - size_t index = 0; - - while (str[index] != 0) { - ++index; - } - - return index; -} - -DK_EXTERN int kernelStringCopy(char* dst, const char* src, size_t len) { - size_t index = 0; - - while (index != len) { - dst[index] = src[index]; - ++index; - } - - return index; -} diff --git a/Private/DriverKit/KernelString.h b/Private/DriverKit/KernelString.h deleted file mode 100644 index 8e189d26..00000000 --- a/Private/DriverKit/KernelString.h +++ /dev/null @@ -1,16 +0,0 @@ -/* ------------------------------------------- - - Copyright Mahrouss Logic - - Purpose: Kernel Strings. - -------------------------------------------- */ - -#pragma once - -#include <DriverKit/KernelStd.h> - -/// @brief DriverKit equivalent of POSIX's string.h. - -DK_EXTERN size_t kernelStringLength(const char* str); -DK_EXTERN int kernelStringCopy(char* dst, const char* src, size_t len); |
