summaryrefslogtreecommitdiffhomepage
path: root/Kernel
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@el-mahrouss-logic.com>2024-05-27 20:45:46 +0200
committerAmlal El Mahrouss <amlal@el-mahrouss-logic.com>2024-05-27 20:45:46 +0200
commit9db58da40cfcb6643412bfae25aefc0cd1077f9d (patch)
treec6664fc649968ca1be7ddc59dfe3e9a7dd0f3ebc /Kernel
parentce84bea215424ff36a2c18cab67835edfa8f71b5 (diff)
MHR-23: Improve project structure, make it better.
Signed-off-by: Amlal El Mahrouss <amlal@el-mahrouss-logic.com>
Diffstat (limited to 'Kernel')
-rw-r--r--Kernel/DriverKit/KernelCall.c25
-rw-r--r--Kernel/DriverKit/KernelDev.c37
-rw-r--r--Kernel/DriverKit/KernelDev.h33
-rw-r--r--Kernel/DriverKit/KernelDispatchCall.S21
-rw-r--r--Kernel/DriverKit/KernelPrint.c33
-rw-r--r--Kernel/DriverKit/KernelPrint.h18
-rw-r--r--Kernel/DriverKit/KernelStd.h22
-rw-r--r--Kernel/DriverKit/KernelStdCxx.cc24
-rw-r--r--Kernel/DriverKit/KernelString.c34
-rw-r--r--Kernel/DriverKit/KernelString.h16
-rw-r--r--Kernel/Drivers/.gitkeep0
-rw-r--r--Kernel/Drivers/Bonjour/Bonjour.c20
-rw-r--r--Kernel/Drivers/Bonjour/DriverRsrc.rsrc25
-rw-r--r--Kernel/Drivers/Bonjour/x86_64.mk52
-rw-r--r--Kernel/Drivers/MahroussUpdate/DriverRsrc.rsrc25
-rw-r--r--Kernel/Drivers/MahroussUpdate/MahroussUpdate.cc24
-rw-r--r--Kernel/Drivers/MahroussUpdate/MahroussUpdate.hxx37
-rw-r--r--Kernel/Drivers/MahroussUpdate/x86_64.mk53
-rw-r--r--Kernel/Drivers/SampleDriver/DriverRsrc.rsrc25
-rw-r--r--Kernel/Drivers/SampleDriver/SampleDriver.c25
-rw-r--r--Kernel/Drivers/SampleDriver/x86_64.mk52
-rw-r--r--Kernel/KernelKit/DeviceManager.hpp4
-rw-r--r--Kernel/KernelKit/DriveManager.hxx6
-rw-r--r--Kernel/KernelKit/Framebuffer.hpp1
-rw-r--r--Kernel/KernelKit/XCOFF.hxx24
-rw-r--r--Kernel/KernelRsrc.rsrc6
26 files changed, 27 insertions, 615 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);
diff --git a/Kernel/Drivers/.gitkeep b/Kernel/Drivers/.gitkeep
deleted file mode 100644
index e69de29b..00000000
--- a/Kernel/Drivers/.gitkeep
+++ /dev/null
diff --git a/Kernel/Drivers/Bonjour/Bonjour.c b/Kernel/Drivers/Bonjour/Bonjour.c
deleted file mode 100644
index 52187ac1..00000000
--- a/Kernel/Drivers/Bonjour/Bonjour.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* -------------------------------------------
-
- Copyright SoftwareLabs
-
-------------------------------------------- */
-
-#include <DriverKit/KernelString.h>
-#include <DriverKit/KernelPrint.h>
-
-int __ImageStart(void)
-{
- kernelPrintStr("Bonjour: Starting up zeroconf...\r");
- return 0;
-}
-
-int __ImageEnd(void)
-{
- kernelPrintStr("Bonjour: Shutting down zeroconf...\r");
- return 0;
-}
diff --git a/Kernel/Drivers/Bonjour/DriverRsrc.rsrc b/Kernel/Drivers/Bonjour/DriverRsrc.rsrc
deleted file mode 100644
index 494e85ee..00000000
--- a/Kernel/Drivers/Bonjour/DriverRsrc.rsrc
+++ /dev/null
@@ -1,25 +0,0 @@
-1 ICON "../../Root/Boot/Icons/bonjour-logo.ico"
-
-1 VERSIONINFO
-FILEVERSION 1,0,0,0
-PRODUCTVERSION 1,0,0,0
-BEGIN
- BLOCK "StringFileInfo"
- BEGIN
- BLOCK "080904E4"
- BEGIN
- VALUE "CompanyName", "SoftwareLabs"
- VALUE "FileDescription", "New OS Bonjour driver."
- VALUE "FileVersion", "1.00"
- VALUE "InternalName", "Bonjour."
- VALUE "LegalCopyright", "Copyright SoftwareLabs, all rights reserved."
- VALUE "OriginalFilename", "Bonjour.exe"
- VALUE "ProductName", "Bonjour."
- VALUE "ProductVersion", "1.00"
- END
- END
- BLOCK "VarFileInfo"
- BEGIN
- VALUE "Translation", 0x809, 1252
- END
-END
diff --git a/Kernel/Drivers/Bonjour/x86_64.mk b/Kernel/Drivers/Bonjour/x86_64.mk
deleted file mode 100644
index b2493edf..00000000
--- a/Kernel/Drivers/Bonjour/x86_64.mk
+++ /dev/null
@@ -1,52 +0,0 @@
-##################################################
-# (C) SoftwareLabs, all rights reserved.
-# This is the sample driver makefile.
-##################################################
-
-CC_GNU=x86_64-w64-mingw32-gcc
-LD_GNU=x86_64-w64-mingw32-ld
-
-WINDRES=x86_64-w64-mingw32-windres
-
-ADD_FILE=touch
-COPY=cp
-HTTP_GET=wget
-
-LD_FLAGS=-e __ImageStart --subsystem=17
-
-OBJ=*.o
-
-
-REM=rm
-REM_FLAG=-f
-
-FLAG_ASM=-f win64
-FLAG_GNU=-fshort-wchar -D__EFI_x86_64__ -mgeneral-regs-only -mno-red-zone -D__KERNEL__ -DEFI_FUNCTION_WRAPPER -I../ -I../../ -I./ -c -ffreestanding -std=c17 -D__HAVE_MAHROUSS_APIS__ -D__MAHROUSS__ -D__BOOTLOADER__ -I./
-
-.PHONY: invalid-recipe
-invalid-recipe:
- @echo "invalid-recipe: Use make all instead."
-
-.PHONY: all
-all: compile-amd64
- $(LD_GNU) $(OBJ) $(LD_FLAGS) -o Bonjour.exe
- cp Bonjour.exe ../../Root/Boot/Bonjour.exe
-
-ifneq ($(DEBUG_SUPPORT), )
-DEBUG = -D__DEBUG__
-endif
-
-.PHONY: compile-amd64
-compile-amd64:
- $(WINDRES) DriverRsrc.rsrc -O coff -o DriverRsrc.o
- $(CC_GNU) $(FLAG_GNU) $(DEBUG) $(wildcard *.c) $(wildcard ../../DriverKit/*.c) $(wildcard ../../DriverKit/*.S)
-
-.PHONY: clean
-clean:
- $(REM) $(REM_FLAG) $(OBJ) Bonjour.exe
-
-.PHONY: help
-help:
- @echo "=== HELP ==="
- @echo "clean: Clean driver."
- @echo "compile-amd64: Build driver."
diff --git a/Kernel/Drivers/MahroussUpdate/DriverRsrc.rsrc b/Kernel/Drivers/MahroussUpdate/DriverRsrc.rsrc
deleted file mode 100644
index 88261a47..00000000
--- a/Kernel/Drivers/MahroussUpdate/DriverRsrc.rsrc
+++ /dev/null
@@ -1,25 +0,0 @@
-1 ICON "../../Root/Boot/Icons/update-logo.ico"
-
-1 VERSIONINFO
-FILEVERSION 1,0,0,0
-PRODUCTVERSION 1,0,0,0
-BEGIN
- BLOCK "StringFileInfo"
- BEGIN
- BLOCK "080904E4"
- BEGIN
- VALUE "CompanyName", "SoftwareLabs"
- VALUE "FileDescription", "New OS Mahrouss Update driver."
- VALUE "FileVersion", "1.00"
- VALUE "InternalName", "Mahrouss Update."
- VALUE "LegalCopyright", "Copyright SoftwareLabs, all rights reserved."
- VALUE "OriginalFilename", "MahroussUpdate.exe"
- VALUE "ProductName", "MahroussUpdate."
- VALUE "ProductVersion", "1.00"
- END
- END
- BLOCK "VarFileInfo"
- BEGIN
- VALUE "Translation", 0x809, 1252
- END
-END
diff --git a/Kernel/Drivers/MahroussUpdate/MahroussUpdate.cc b/Kernel/Drivers/MahroussUpdate/MahroussUpdate.cc
deleted file mode 100644
index eb8d03c7..00000000
--- a/Kernel/Drivers/MahroussUpdate/MahroussUpdate.cc
+++ /dev/null
@@ -1,24 +0,0 @@
-/* -------------------------------------------
-
- Copyright SoftwareLabs
-
-------------------------------------------- */
-
-#include <DriverKit/KernelString.h>
-#include <DriverKit/KernelPrint.h>
-
-#include <Drivers/MahroussUpdate/MahroussUpdate.hxx>
-
-DK_EXTERN int __ImageStart(void) {
- kernelPrintStr("Mahrouss Update: Looking for updates...\r");
- UpdateRequest req("mup://release-mahrouss.logic/newos/");
-
- return 0;
-}
-
-DK_EXTERN int __ImageEnd(void) {
- return 0;
-}
-
-///! @brief Use this to check your stack, if using MinGW/MSVC.
-DK_EXTERN void ___chkstk_ms(void) {}
diff --git a/Kernel/Drivers/MahroussUpdate/MahroussUpdate.hxx b/Kernel/Drivers/MahroussUpdate/MahroussUpdate.hxx
deleted file mode 100644
index dbcaed43..00000000
--- a/Kernel/Drivers/MahroussUpdate/MahroussUpdate.hxx
+++ /dev/null
@@ -1,37 +0,0 @@
-/* -------------------------------------------
-
- Copyright SoftwareLabs
-
-------------------------------------------- */
-
-#pragma once
-
-#include <DriverKit/KernelString.h>
-
-#include "DriverKit/KernelPrint.h"
-
-/// @file Software update job driver.
-
-class UpdateRequest;
-class UpdateRequestObserver;
-
-class UpdateRequest
-{
-public:
- explicit UpdateRequest(const char* patchUrl = "mup://invalid-url-scheme/")
- {
- kernelStringCopy(this->fPatchUrl, patchUrl, kernelStringLength(patchUrl));
-
- kernelPrintStr("Mahrouss Update, Looking at: ");
- kernelPrintStr(patchUrl);
- kernelPrintChar('\r');
- kernelPrintChar('\n');
- }
-
- ~UpdateRequest()
- {
- }
-
-private:
- char fPatchUrl[4096] = {0};
-};
diff --git a/Kernel/Drivers/MahroussUpdate/x86_64.mk b/Kernel/Drivers/MahroussUpdate/x86_64.mk
deleted file mode 100644
index 13b30d59..00000000
--- a/Kernel/Drivers/MahroussUpdate/x86_64.mk
+++ /dev/null
@@ -1,53 +0,0 @@
-##################################################
-# (C) SoftwareLabs, all rights reserved.
-# This is the sample driver makefile.
-##################################################
-
-CC_GNU=x86_64-w64-mingw32-gcc
-LD_GNU=x86_64-w64-mingw32-ld
-
-WINDRES=x86_64-w64-mingw32-windres
-
-ADD_FILE=touch
-COPY=cp
-HTTP_GET=wget
-
-LD_FLAGS=-e __ImageStart --subsystem=17
-
-OBJ=*.o
-
-
-REM=rm
-REM_FLAG=-f
-
-FLAG_ASM=-f win64
-FLAG_GNU=-fshort-wchar -D__EFI_x86_64__ -mgeneral-regs-only -mno-red-zone -D__KERNEL__ -DEFI_FUNCTION_WRAPPER -I../ -I../../ -I./ -c -ffreestanding -D__HAVE_MAHROUSS_APIS__ -D__MAHROUSS__ -D__BOOTLOADER__ -I./
-
-.PHONY: invalid-recipe
-invalid-recipe:
- @echo "invalid-recipe: Use make all instead."
-
-.PHONY: all
-all: compile-amd64
- $(LD_GNU) $(OBJ) $(LD_FLAGS) -o MahroussUpdate.exe
- cp MahroussUpdate.exe ../../Root/Boot/MahroussUpdate.exe
-
-ifneq ($(DEBUG_SUPPORT), )
-DEBUG = -D__DEBUG__
-endif
-
-.PHONY: compile-amd64
-compile-amd64:
- $(WINDRES) DriverRsrc.rsrc -O coff -o DriverRsrc.o
- $(CC_GNU) $(FLAG_GNU) -std=c17 $(DEBUG) $(wildcard *.c) $(wildcard ../../DriverKit/*.c) $(wildcard ../../DriverKit/*.S)
- $(CC_GNU) $(FLAG_GNU) -std=c++17 -fno-rtti -fno-exceptions $(DEBUG) $(wildcard *.cc) $(wildcard ../../DriverKit/*.cc)
-
-.PHONY: clean
-clean:
- $(REM) $(REM_FLAG) $(OBJ) MahroussUpdate.exe
-
-.PHONY: help
-help:
- @echo "=== HELP ==="
- @echo "clean: Clean driver."
- @echo "compile-amd64: Build driver."
diff --git a/Kernel/Drivers/SampleDriver/DriverRsrc.rsrc b/Kernel/Drivers/SampleDriver/DriverRsrc.rsrc
deleted file mode 100644
index 3a3b8774..00000000
--- a/Kernel/Drivers/SampleDriver/DriverRsrc.rsrc
+++ /dev/null
@@ -1,25 +0,0 @@
-1 ICON "../../Root/Boot/Icons/driver-logo.ico"
-
-1 VERSIONINFO
-FILEVERSION 1,0,0,0
-PRODUCTVERSION 1,0,0,0
-BEGIN
- BLOCK "StringFileInfo"
- BEGIN
- BLOCK "080904E4"
- BEGIN
- VALUE "CompanyName", "SoftwareLabs"
- VALUE "FileDescription", "New OS driver."
- VALUE "FileVersion", "1.00"
- VALUE "InternalName", "SampleDriver"
- VALUE "LegalCopyright", "Copyright SoftwareLabs, all rights reserved."
- VALUE "OriginalFilename", "SampleDriver.exe"
- VALUE "ProductName", "SampleDriver"
- VALUE "ProductVersion", "1.00"
- END
- END
- BLOCK "VarFileInfo"
- BEGIN
- VALUE "Translation", 0x809, 1252
- END
-END
diff --git a/Kernel/Drivers/SampleDriver/SampleDriver.c b/Kernel/Drivers/SampleDriver/SampleDriver.c
deleted file mode 100644
index b92b1ef8..00000000
--- a/Kernel/Drivers/SampleDriver/SampleDriver.c
+++ /dev/null
@@ -1,25 +0,0 @@
-/* -------------------------------------------
-
- Copyright SoftwareLabs
-
-------------------------------------------- */
-
-#include <DriverKit/KernelString.h>
-#include <DriverKit/KernelPrint.h>
-
-int __ImageStart(void)
-{
- kernelPrintStr("SampleDriver: Starting up...\r");
- return 0;
-}
-
-int __ImageEnd(void)
-{
- kernelPrintStr("SampleDriver: Shutting down...\r");
- return 0;
-}
-
-///! @brief Use this to check your stack, if using MinGW/MSVC.
-void ___chkstk_ms(void)
-{
-}
diff --git a/Kernel/Drivers/SampleDriver/x86_64.mk b/Kernel/Drivers/SampleDriver/x86_64.mk
deleted file mode 100644
index 5bdf0331..00000000
--- a/Kernel/Drivers/SampleDriver/x86_64.mk
+++ /dev/null
@@ -1,52 +0,0 @@
-##################################################
-# (C) SoftwareLabs, all rights reserved.
-# This is the sample driver makefile.
-##################################################
-
-CC_GNU=x86_64-w64-mingw32-gcc
-LD_GNU=x86_64-w64-mingw32-ld
-
-WINDRES=x86_64-w64-mingw32-windres
-
-ADD_FILE=touch
-COPY=cp
-HTTP_GET=wget
-
-LD_FLAGS=-e __ImageStart --subsystem=17
-
-OBJ=*.o
-
-
-REM=rm
-REM_FLAG=-f
-
-FLAG_ASM=-f win64
-FLAG_GNU=-fshort-wchar -D__EFI_x86_64__ -mgeneral-regs-only -mno-red-zone -D__KERNEL__ -DEFI_FUNCTION_WRAPPER -I../ -I../../ -I./ -c -ffreestanding -std=c17 -D__HAVE_MAHROUSS_APIS__ -D__MAHROUSS__ -D__BOOTLOADER__ -I./
-
-.PHONY: invalid-recipe
-invalid-recipe:
- @echo "invalid-recipe: Use make all instead."
-
-.PHONY: all
-all: compile-amd64
- $(LD_GNU) $(OBJ) $(LD_FLAGS) -o SampleDriver.exe
- cp SampleDriver.exe ../../Root/Boot/SampleDriver.exe
-
-ifneq ($(DEBUG_SUPPORT), )
-DEBUG = -D__DEBUG__
-endif
-
-.PHONY: compile-amd64
-compile-amd64:
- $(WINDRES) DriverRsrc.rsrc -O coff -o DriverRsrc.o
- $(CC_GNU) $(FLAG_GNU) $(DEBUG) $(wildcard *.c) $(wildcard ../../DriverKit/*.c) $(wildcard ../../DriverKit/*.S)
-
-.PHONY: clean
-clean:
- $(REM) $(REM_FLAG) $(OBJ) SampleDriver.exe
-
-.PHONY: help
-help:
- @echo "=== HELP ==="
- @echo "clean: Clean driver."
- @echo "compile-amd64: Build driver."
diff --git a/Kernel/KernelKit/DeviceManager.hpp b/Kernel/KernelKit/DeviceManager.hpp
index 6e2a803f..dc53fed5 100644
--- a/Kernel/KernelKit/DeviceManager.hpp
+++ b/Kernel/KernelKit/DeviceManager.hpp
@@ -21,8 +21,6 @@
#include <NewKit/ErrorOr.hpp>
#include <NewKit/Ref.hpp>
-#define kDriveManagerCount 4U
-
// Last Rev
// Wed, Apr 3, 2024 9:09:41 AM
@@ -70,7 +68,7 @@ namespace NewOS
}
bool operator!()
{
- return !fOut && !fIn;
+ return !fOut || !fIn;
}
private:
diff --git a/Kernel/KernelKit/DriveManager.hxx b/Kernel/KernelKit/DriveManager.hxx
index 7978221a..019812a3 100644
--- a/Kernel/KernelKit/DriveManager.hxx
+++ b/Kernel/KernelKit/DriveManager.hxx
@@ -14,8 +14,10 @@
#include <NewKit/Defines.hpp>
#include <NewKit/String.hpp>
-#define kDriveInvalidID -1
-#define kDriveNameLen 32
+#define kDriveManagerCount (4U)
+
+#define kDriveInvalidID (-1)
+#define kDriveNameLen (32)
namespace NewOS
{
diff --git a/Kernel/KernelKit/Framebuffer.hpp b/Kernel/KernelKit/Framebuffer.hpp
index fd4eff04..1f189e77 100644
--- a/Kernel/KernelKit/Framebuffer.hpp
+++ b/Kernel/KernelKit/Framebuffer.hpp
@@ -39,6 +39,7 @@ namespace NewOS
: fFrameBufferAddr(addr)
{
}
+
~Framebuffer()
{
}
diff --git a/Kernel/KernelKit/XCOFF.hxx b/Kernel/KernelKit/XCOFF.hxx
index f2e49c4c..55e37bfd 100644
--- a/Kernel/KernelKit/XCOFF.hxx
+++ b/Kernel/KernelKit/XCOFF.hxx
@@ -16,12 +16,15 @@
#include <NewKit/Defines.hpp>
-#define kXCOFF64Magic (0x01F7)
+#define cXCOFF64Magic (0x01F7)
-#define kXCOFFRelFlg (0x0001)
-#define kXCOFFExecutable (0x0002)
-#define kXCOFFLnno (0x0004)
-#define kXCOFFLSyms (0x0008)
+#define cXCOFFRelFlg (0x0001)
+#define cXCOFFExecutable (0x0002)
+#define cXCOFFLnno (0x0004)
+#define cXCOFFLSyms (0x0008)
+
+struct XCoffFileHeader;
+struct XCoffForkHeader;
/// @brief XCoff file header, meant for POWER apps.
typedef struct XCoffFileHeader
@@ -33,6 +36,15 @@ typedef struct XCoffFileHeader
NewOS::UIntPtr fSymPtr;
NewOS::UInt32 fNumSyms;
NewOS::UInt16 fOptHdr; // ?: Number of bytes in optional header
-} XCoffFileHeader;
+} XCoffFileHeader32, XCoffFileHeader64;
+
+#define cForkNameLen (255)
+
+/// @brief This the executable manifest fork.
+typedef struct XCoffForkHeader {
+ NewOS::Char fPropertiesXMLFork[cForkNameLen];
+ NewOS::Char fDynamicLoaderFork[cForkNameLen];
+ NewOS::Char fCodeSignFork[cForkNameLen];
+} XCoffForkHeader;
#endif // ifndef __XCOFF__
diff --git a/Kernel/KernelRsrc.rsrc b/Kernel/KernelRsrc.rsrc
index 6689d10c..91699b63 100644
--- a/Kernel/KernelRsrc.rsrc
+++ b/Kernel/KernelRsrc.rsrc
@@ -11,12 +11,12 @@ BEGIN
BLOCK "080904E4"
BEGIN
VALUE "CompanyName", "SoftwareLabs"
- VALUE "FileDescription", "New OS multiplatform kernel."
+ VALUE "FileDescription", "NuX/OS kernel."
VALUE "FileVersion", KERNEL_VERSION
- VALUE "InternalName", "NewKernel"
+ VALUE "InternalName", "NeXUS"
VALUE "LegalCopyright", "SoftwareLabs"
VALUE "OriginalFilename", "NewOSKrnl.exe"
- VALUE "ProductName", "NewKernel"
+ VALUE "ProductName", "NewOSKrnl"
VALUE "ProductVersion", KERNEL_VERSION
END
END