From 9db58da40cfcb6643412bfae25aefc0cd1077f9d Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Mon, 27 May 2024 20:45:46 +0200 Subject: MHR-23: Improve project structure, make it better. Signed-off-by: Amlal El Mahrouss --- Kernel/DriverKit/KernelCall.c | 25 ----------------------- Kernel/DriverKit/KernelDev.c | 37 ----------------------------------- Kernel/DriverKit/KernelDev.h | 33 ------------------------------- Kernel/DriverKit/KernelDispatchCall.S | 21 -------------------- Kernel/DriverKit/KernelPrint.c | 33 ------------------------------- Kernel/DriverKit/KernelPrint.h | 18 ----------------- Kernel/DriverKit/KernelStd.h | 22 --------------------- Kernel/DriverKit/KernelStdCxx.cc | 24 ----------------------- Kernel/DriverKit/KernelString.c | 34 -------------------------------- Kernel/DriverKit/KernelString.h | 16 --------------- 10 files changed, 263 deletions(-) delete mode 100644 Kernel/DriverKit/KernelCall.c delete mode 100644 Kernel/DriverKit/KernelDev.c delete mode 100644 Kernel/DriverKit/KernelDev.h delete mode 100644 Kernel/DriverKit/KernelDispatchCall.S delete mode 100644 Kernel/DriverKit/KernelPrint.c delete mode 100644 Kernel/DriverKit/KernelPrint.h delete mode 100644 Kernel/DriverKit/KernelStd.h delete mode 100644 Kernel/DriverKit/KernelStdCxx.cc delete mode 100644 Kernel/DriverKit/KernelString.c delete mode 100644 Kernel/DriverKit/KernelString.h (limited to 'Kernel/DriverKit') 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 -#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/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 - -/// @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 - -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 - -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 - -/// @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 -#include - -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 - -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 - -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 - -/// @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); -- cgit v1.2.3