From b456c928fecf78157270b052e441a427f06afdda Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Sat, 29 Nov 2025 21:38:33 -0500 Subject: feat: kernel: Introduce Vet.h, better Ref.h, and more improved containers for better kernel code. Signed-off-by: Amlal El Mahrouss --- src/kernel/KernelKit/BinaryMutex.h | 2 +- src/kernel/KernelKit/Config.h | 19 +++++++++++++++++++ src/kernel/KernelKit/CoreProcessScheduler.h | 2 +- src/kernel/KernelKit/Defines.h | 19 ------------------- src/kernel/KernelKit/DriveMgr.h | 2 +- src/kernel/KernelKit/IDylibObject.h | 2 +- src/kernel/KernelKit/ILoader.h | 2 +- src/kernel/KernelKit/IPEFDylibObject.h | 2 +- src/kernel/KernelKit/KPC.h | 2 +- src/kernel/KernelKit/LockDelegate.h | 2 +- src/kernel/KernelKit/MSDOS.h | 2 +- src/kernel/KernelKit/PCI/Database.h | 2 +- src/kernel/KernelKit/PCI/Device.h | 2 +- src/kernel/KernelKit/PCI/Express.h | 2 +- src/kernel/KernelKit/PCI/IO.h | 2 +- src/kernel/KernelKit/PCI/Iterator.h | 2 +- src/kernel/KernelKit/PCI/PCI.h | 2 +- src/kernel/KernelKit/PE.h | 2 +- src/kernel/KernelKit/PEF.h | 2 +- src/kernel/KernelKit/Semaphore.h | 2 +- src/kernel/KernelKit/ThreadLocalStorage.h | 2 +- src/kernel/KernelKit/UserMgr.h | 2 +- src/kernel/KernelKit/UserProcessScheduler.h | 8 +++++--- src/kernel/KernelKit/XCOFF.h | 2 +- src/kernel/KernelKit/ZXD.h | 2 +- 25 files changed, 46 insertions(+), 44 deletions(-) create mode 100644 src/kernel/KernelKit/Config.h delete mode 100644 src/kernel/KernelKit/Defines.h (limited to 'src/kernel/KernelKit') diff --git a/src/kernel/KernelKit/BinaryMutex.h b/src/kernel/KernelKit/BinaryMutex.h index 46d11b8d..8e29c834 100644 --- a/src/kernel/KernelKit/BinaryMutex.h +++ b/src/kernel/KernelKit/BinaryMutex.h @@ -8,7 +8,7 @@ #include #include -#include +#include namespace Kernel { class USER_PROCESS; diff --git a/src/kernel/KernelKit/Config.h b/src/kernel/KernelKit/Config.h new file mode 100644 index 00000000..2cde32b6 --- /dev/null +++ b/src/kernel/KernelKit/Config.h @@ -0,0 +1,19 @@ +/* ======================================== + + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. + +======================================== */ + +#pragma once + +#include + +#define KERNELKIT_VERSION "0.0.1-kernelkit" +#define KERNELKIT_VERSION_BCD 0x0001 + +namespace Kernel { +class UserProcessScheduler; +class IDylibObject; +class USER_PROCESS; +class KERNEL_TASK; +} // namespace Kernel \ No newline at end of file diff --git a/src/kernel/KernelKit/CoreProcessScheduler.h b/src/kernel/KernelKit/CoreProcessScheduler.h index 54a0614a..7a53f94c 100644 --- a/src/kernel/KernelKit/CoreProcessScheduler.h +++ b/src/kernel/KernelKit/CoreProcessScheduler.h @@ -6,7 +6,7 @@ #pragma once -#include +#include #include /// @file CoreProcessScheduler.h diff --git a/src/kernel/KernelKit/Defines.h b/src/kernel/KernelKit/Defines.h deleted file mode 100644 index e88441d2..00000000 --- a/src/kernel/KernelKit/Defines.h +++ /dev/null @@ -1,19 +0,0 @@ -/* ======================================== - - Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. - -======================================== */ - -#pragma once - -#include - -#define KERNELKIT_VERSION "0.0.1-kernelkit" -#define KERNELKIT_VERSION_BCD 0x0001 - -namespace Kernel { -class UserProcessScheduler; -class IDylibObject; -class USER_PROCESS; -class KERNEL_TASK; -} // namespace Kernel \ No newline at end of file diff --git a/src/kernel/KernelKit/DriveMgr.h b/src/kernel/KernelKit/DriveMgr.h index 9f66e31c..21194b9a 100644 --- a/src/kernel/KernelKit/DriveMgr.h +++ b/src/kernel/KernelKit/DriveMgr.h @@ -16,7 +16,7 @@ #include #include #include -#include +#include #include #include diff --git a/src/kernel/KernelKit/IDylibObject.h b/src/kernel/KernelKit/IDylibObject.h index ef6b96db..39431305 100644 --- a/src/kernel/KernelKit/IDylibObject.h +++ b/src/kernel/KernelKit/IDylibObject.h @@ -10,7 +10,7 @@ #pragma once #include -#include +#include #define NE_DYLIB_OBJECT : public IDylibObject diff --git a/src/kernel/KernelKit/ILoader.h b/src/kernel/KernelKit/ILoader.h index c6c87411..77f49451 100644 --- a/src/kernel/KernelKit/ILoader.h +++ b/src/kernel/KernelKit/ILoader.h @@ -7,7 +7,7 @@ #pragma once #include -#include +#include #include #include diff --git a/src/kernel/KernelKit/IPEFDylibObject.h b/src/kernel/KernelKit/IPEFDylibObject.h index 54cfdcb1..fb386526 100644 --- a/src/kernel/KernelKit/IPEFDylibObject.h +++ b/src/kernel/KernelKit/IPEFDylibObject.h @@ -14,7 +14,7 @@ #include #include #include -#include +#include namespace Kernel { /** diff --git a/src/kernel/KernelKit/KPC.h b/src/kernel/KernelKit/KPC.h index c712ac98..ff329d1e 100644 --- a/src/kernel/KernelKit/KPC.h +++ b/src/kernel/KernelKit/KPC.h @@ -6,7 +6,7 @@ #pragma once -#include +#include /// @file KPC.h /// @brief Kernel Procedure Code. diff --git a/src/kernel/KernelKit/LockDelegate.h b/src/kernel/KernelKit/LockDelegate.h index 8ff67f19..51f86780 100644 --- a/src/kernel/KernelKit/LockDelegate.h +++ b/src/kernel/KernelKit/LockDelegate.h @@ -7,7 +7,7 @@ #pragma once #include -#include +#include namespace Kernel { enum { diff --git a/src/kernel/KernelKit/MSDOS.h b/src/kernel/KernelKit/MSDOS.h index 8c58b65b..4413eb3e 100644 --- a/src/kernel/KernelKit/MSDOS.h +++ b/src/kernel/KernelKit/MSDOS.h @@ -15,7 +15,7 @@ #define __MSDOS_EXEC__ #include -#include +#include // Last Rev // Sat Feb 24 CET 2024 diff --git a/src/kernel/KernelKit/PCI/Database.h b/src/kernel/KernelKit/PCI/Database.h index 463fde38..73013c74 100644 --- a/src/kernel/KernelKit/PCI/Database.h +++ b/src/kernel/KernelKit/PCI/Database.h @@ -6,7 +6,7 @@ #pragma once #include -#include +#include namespace Kernel { namespace Types { diff --git a/src/kernel/KernelKit/PCI/Device.h b/src/kernel/KernelKit/PCI/Device.h index f2111e40..c8caf67c 100644 --- a/src/kernel/KernelKit/PCI/Device.h +++ b/src/kernel/KernelKit/PCI/Device.h @@ -5,7 +5,7 @@ ======================================== */ #pragma once -#include +#include namespace Kernel::PCI { enum class PciConfigKind : UShort { diff --git a/src/kernel/KernelKit/PCI/Express.h b/src/kernel/KernelKit/PCI/Express.h index 484739ec..b3411938 100644 --- a/src/kernel/KernelKit/PCI/Express.h +++ b/src/kernel/KernelKit/PCI/Express.h @@ -7,6 +7,6 @@ #pragma once #include -#include +#include #define PCI_EXPRESS_BUS_COUNT (4096) diff --git a/src/kernel/KernelKit/PCI/IO.h b/src/kernel/KernelKit/PCI/IO.h index 2ab72269..dc9f9aa1 100644 --- a/src/kernel/KernelKit/PCI/IO.h +++ b/src/kernel/KernelKit/PCI/IO.h @@ -8,7 +8,7 @@ #include #include -#include +#include #include namespace Kernel { diff --git a/src/kernel/KernelKit/PCI/Iterator.h b/src/kernel/KernelKit/PCI/Iterator.h index 5926049b..996135c2 100644 --- a/src/kernel/KernelKit/PCI/Iterator.h +++ b/src/kernel/KernelKit/PCI/Iterator.h @@ -10,7 +10,7 @@ #include #include #include -#include +#include #include #define NE_BUS_COUNT (256) diff --git a/src/kernel/KernelKit/PCI/PCI.h b/src/kernel/KernelKit/PCI/PCI.h index f76270da..a60145fd 100644 --- a/src/kernel/KernelKit/PCI/PCI.h +++ b/src/kernel/KernelKit/PCI/PCI.h @@ -6,7 +6,7 @@ #pragma once -#include +#include #define kPCIConfigAddressPort (0xCF8) #define kPCIConfigDataPort (0xCFC) diff --git a/src/kernel/KernelKit/PE.h b/src/kernel/KernelKit/PE.h index b4b4576e..c38d1138 100644 --- a/src/kernel/KernelKit/PE.h +++ b/src/kernel/KernelKit/PE.h @@ -14,7 +14,7 @@ #ifndef __KERNELKIT_INC_PE_H__ #define __KERNELKIT_INC_PE_H__ -#include +#include #define kPeSignature (0x00004550) diff --git a/src/kernel/KernelKit/PEF.h b/src/kernel/KernelKit/PEF.h index 94284c98..5c0d4b75 100644 --- a/src/kernel/KernelKit/PEF.h +++ b/src/kernel/KernelKit/PEF.h @@ -16,7 +16,7 @@ #include #include -#include +#include #define kPefMagic "Open" #define kPefMagicFat "nepO" diff --git a/src/kernel/KernelKit/Semaphore.h b/src/kernel/KernelKit/Semaphore.h index 831774a5..e10c1c2e 100644 --- a/src/kernel/KernelKit/Semaphore.h +++ b/src/kernel/KernelKit/Semaphore.h @@ -12,7 +12,7 @@ #include #include -#include +#include #define kSemaphoreOwnerIndex (0U) #define kSemaphoreCountIndex (1U) diff --git a/src/kernel/KernelKit/ThreadLocalStorage.h b/src/kernel/KernelKit/ThreadLocalStorage.h index 7ee3572b..38bcb54e 100644 --- a/src/kernel/KernelKit/ThreadLocalStorage.h +++ b/src/kernel/KernelKit/ThreadLocalStorage.h @@ -7,7 +7,7 @@ #ifndef KERNELKIT_TLS_H #define KERNELKIT_TLS_H -#include +#include #include ///! @brief Thread Local Storage for NeKernel. diff --git a/src/kernel/KernelKit/UserMgr.h b/src/kernel/KernelKit/UserMgr.h index 4f41ecdb..3f36f240 100644 --- a/src/kernel/KernelKit/UserMgr.h +++ b/src/kernel/KernelKit/UserMgr.h @@ -17,7 +17,7 @@ #include #include -#include +#include #include ///! We got the MGMT, STD (%s format) and GUEST users, diff --git a/src/kernel/KernelKit/UserProcessScheduler.h b/src/kernel/KernelKit/UserProcessScheduler.h index fa34b966..d67d54c2 100644 --- a/src/kernel/KernelKit/UserProcessScheduler.h +++ b/src/kernel/KernelKit/UserProcessScheduler.h @@ -32,7 +32,7 @@ class UserProcessHelper; /// @name USER_PROCESS /// @brief USER_PROCESS class, holds information about the running process/thread. /***********************************************************************************/ -class USER_PROCESS final { +class USER_PROCESS final NE_VETTABLE { public: explicit USER_PROCESS(); ~USER_PROCESS(); @@ -142,9 +142,11 @@ class USER_PROCESS final { /***********************************************************************************/ KPCError& GetLocalCode(); - const User* GetOwner(); + const User* GetOwner(); + const ProcessStatusKind& GetStatus(); - const AffinityKind& GetAffinity(); + + const AffinityKind& GetAffinity(); private: KPCError LastExitCode{0}; diff --git a/src/kernel/KernelKit/XCOFF.h b/src/kernel/KernelKit/XCOFF.h index cbee6100..076080eb 100644 --- a/src/kernel/KernelKit/XCOFF.h +++ b/src/kernel/KernelKit/XCOFF.h @@ -14,7 +14,7 @@ #ifndef INC_XOCFF_H #define INC_XOCFF_H -#include +#include #define kXCOFF64Magic (0x01F7) #define kXCOFF64ForkNameLen (256U) diff --git a/src/kernel/KernelKit/ZXD.h b/src/kernel/KernelKit/ZXD.h index 88094d4b..5bb4665b 100644 --- a/src/kernel/KernelKit/ZXD.h +++ b/src/kernel/KernelKit/ZXD.h @@ -6,7 +6,7 @@ #pragma once -#include +#include #define kZXDMagicNumber (0x2010AF) #define kZXDVersion (0x0001) -- cgit v1.2.3