diff options
| author | Amlal <amlalelmahrouss@icloud.com> | 2024-06-06 10:27:55 +0000 |
|---|---|---|
| committer | Amlal <amlalelmahrouss@icloud.com> | 2024-06-06 10:27:55 +0000 |
| commit | 4e75e05a20ddd0dbca982e8f3bc2ea8043ed3a3f (patch) | |
| tree | 95409c0e32b644578b94a5c230417da684d79dc9 /Kernel/DriverKit | |
| parent | f5081a8f9a8537ad5be5d639955cd1d0e68a9e1d (diff) | |
| parent | 9994b8f3f88131f41be1061fb0947177e66dc7b0 (diff) | |
Merged in MHR-23 (pull request #14)
Draft: MHR-23
Diffstat (limited to 'Kernel/DriverKit')
| -rw-r--r-- | Kernel/DriverKit/KernelCall.c | 25 | ||||
| -rw-r--r-- | Kernel/DriverKit/KernelDev.c | 37 | ||||
| -rw-r--r-- | Kernel/DriverKit/KernelDev.h | 33 | ||||
| -rw-r--r-- | Kernel/DriverKit/KernelDispatchCall.S | 21 | ||||
| -rw-r--r-- | Kernel/DriverKit/KernelPrint.c | 33 | ||||
| -rw-r--r-- | Kernel/DriverKit/KernelPrint.h | 18 | ||||
| -rw-r--r-- | Kernel/DriverKit/KernelStd.h | 22 | ||||
| -rw-r--r-- | Kernel/DriverKit/KernelStdCxx.cc | 24 | ||||
| -rw-r--r-- | Kernel/DriverKit/KernelString.c | 34 | ||||
| -rw-r--r-- | Kernel/DriverKit/KernelString.h | 16 |
10 files changed, 0 insertions, 263 deletions
diff --git a/Kernel/DriverKit/KernelCall.c b/Kernel/DriverKit/KernelCall.c deleted file mode 100644 index d61f8439..00000000 --- a/Kernel/DriverKit/KernelCall.c +++ /dev/null @@ -1,25 +0,0 @@ -/* ------------------------------------------- - - Copyright SoftwareLabs - - 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/Kernel/DriverKit/KernelDev.c b/Kernel/DriverKit/KernelDev.c deleted file mode 100644 index 704f17da..00000000 --- a/Kernel/DriverKit/KernelDev.c +++ /dev/null @@ -1,37 +0,0 @@ -/* ------------------------------------------- - - Copyright SoftwareLabs - - 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/Kernel/DriverKit/KernelDev.h b/Kernel/DriverKit/KernelDev.h deleted file mode 100644 index c3435e8d..00000000 --- a/Kernel/DriverKit/KernelDev.h +++ /dev/null @@ -1,33 +0,0 @@ -/* ------------------------------------------- - - Copyright SoftwareLabs - - 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/Kernel/DriverKit/KernelDispatchCall.S b/Kernel/DriverKit/KernelDispatchCall.S deleted file mode 100644 index 64b6663e..00000000 --- a/Kernel/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/Kernel/DriverKit/KernelPrint.c b/Kernel/DriverKit/KernelPrint.c deleted file mode 100644 index 533bf34a..00000000 --- a/Kernel/DriverKit/KernelPrint.c +++ /dev/null @@ -1,33 +0,0 @@ -/* ------------------------------------------- - - Copyright SoftwareLabs - - 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/Kernel/DriverKit/KernelPrint.h b/Kernel/DriverKit/KernelPrint.h deleted file mode 100644 index 7bf0dda9..00000000 --- a/Kernel/DriverKit/KernelPrint.h +++ /dev/null @@ -1,18 +0,0 @@ -/* ------------------------------------------- - - Copyright SoftwareLabs - - 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/Kernel/DriverKit/KernelStd.h b/Kernel/DriverKit/KernelStd.h deleted file mode 100644 index b0dba70e..00000000 --- a/Kernel/DriverKit/KernelStd.h +++ /dev/null @@ -1,22 +0,0 @@ -/* ------------------------------------------- - - Copyright SoftwareLabs - - 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/Kernel/DriverKit/KernelStdCxx.cc b/Kernel/DriverKit/KernelStdCxx.cc deleted file mode 100644 index 99bcc579..00000000 --- a/Kernel/DriverKit/KernelStdCxx.cc +++ /dev/null @@ -1,24 +0,0 @@ -/* ------------------------------------------- - - Copyright SoftwareLabs - - 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/Kernel/DriverKit/KernelString.c b/Kernel/DriverKit/KernelString.c deleted file mode 100644 index 6f28f4d8..00000000 --- a/Kernel/DriverKit/KernelString.c +++ /dev/null @@ -1,34 +0,0 @@ -/* ------------------------------------------- - - Copyright SoftwareLabs - - 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/Kernel/DriverKit/KernelString.h b/Kernel/DriverKit/KernelString.h deleted file mode 100644 index db063a1b..00000000 --- a/Kernel/DriverKit/KernelString.h +++ /dev/null @@ -1,16 +0,0 @@ -/* ------------------------------------------- - - Copyright SoftwareLabs - - 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); |
