From 8a54e46bc4b070930e96d316ab062bb9a35879da Mon Sep 17 00:00:00 2001 From: Amlal EL Mahrouss Date: Sat, 3 Aug 2024 14:34:31 +0200 Subject: [IMP] [unstable] [sched] ProcessLevelRing enum and other refactors. [WIP] [LATER] Subsystems (created folder). Signed-off-by: Amlal EL Mahrouss --- Kernel/KernelKit/ProcessScheduler.hxx | 17 +++++++++-------- Subsystems/.keepme | 0 2 files changed, 9 insertions(+), 8 deletions(-) create mode 100644 Subsystems/.keepme diff --git a/Kernel/KernelKit/ProcessScheduler.hxx b/Kernel/KernelKit/ProcessScheduler.hxx index afb3c89d..a6d55c24 100644 --- a/Kernel/KernelKit/ProcessScheduler.hxx +++ b/Kernel/KernelKit/ProcessScheduler.hxx @@ -101,7 +101,7 @@ namespace Kernel enum ProcessSubsystemEnum { - eProcessSubsystemLogin, + eProcessSubsystemSecurity, eProcessSubsystemNative, eProcessSubsystemInvalid, eProcessSubsystemCount, @@ -112,11 +112,12 @@ namespace Kernel using PID = Int64; // for permission manager, tells where we run the code. - enum class ProcessSelector : Int + enum class ProcessLevelRing : Int32 { - kRingUser, /* user ring (or ring 3 in x86) */ - kRingDriver, /* ring 2 in x86, hypervisor privileges in other archs */ - kRingKernel, /* machine privileges */ + kRingStdUser = 1, + kRingSuperUser = 2, + kRingGuestUser = 5, + kRingCount = 5, }; // Helper types. @@ -144,7 +145,7 @@ namespace Kernel public: Char Name[kProcessLen] = {"Unknown Process"}; ProcessSubsystem SubSystem{ProcessSubsystem::eProcessSubsystemInvalid}; - ProcessSelector Selector{ProcessSelector::kRingUser}; + ProcessLevelRing Selector{ProcessLevelRing::kRingStdUser}; HAL::StackFramePtr StackFrame{nullptr}; AffinityKind Affinity; ProcessStatus Status; @@ -154,7 +155,7 @@ namespace Kernel ImagePtr Image{nullptr}; HeapPtrKind HeapPtr{nullptr}; - // shared library handle, reserved for .lib only. + // shared library handle, reserved for kSharedLib only. PEFSharedObjectInterface* SharedObjectPEF{nullptr}; // Memory usage. @@ -207,7 +208,7 @@ namespace Kernel //! @return Int32 local error code. Int32& GetLocalCode() noexcept; - const ProcessSelector& GetSelector() noexcept; + const ProcessLevelRing& GetSelector() noexcept; const ProcessStatus& GetStatus() noexcept; const AffinityKind& GetAffinity() noexcept; diff --git a/Subsystems/.keepme b/Subsystems/.keepme new file mode 100644 index 00000000..e69de29b -- cgit v1.2.3