summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel/KernelKit/ProcessSchedulerCore.h
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-04-23 22:27:47 +0200
committerAmlal El Mahrouss <amlal@nekernel.org>2025-04-23 22:27:47 +0200
commitb55d3ac738b40677c579221b4f0dbf294dc3b017 (patch)
tree2ce2089d58f1d5d1bfca642442e20c2b4ad8255c /dev/kernel/KernelKit/ProcessSchedulerCore.h
parent46d60a746e86270e0f2a66f724e809fca32679c0 (diff)
dev, kernel: necessary refactors regarding future changes.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'dev/kernel/KernelKit/ProcessSchedulerCore.h')
-rw-r--r--dev/kernel/KernelKit/ProcessSchedulerCore.h161
1 files changed, 0 insertions, 161 deletions
diff --git a/dev/kernel/KernelKit/ProcessSchedulerCore.h b/dev/kernel/KernelKit/ProcessSchedulerCore.h
deleted file mode 100644
index bd493140..00000000
--- a/dev/kernel/KernelKit/ProcessSchedulerCore.h
+++ /dev/null
@@ -1,161 +0,0 @@
-/* -------------------------------------------
-
- Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved.
-
-------------------------------------------- */
-
-#pragma once
-
-#include <NewKit/Defines.h>
-#include <NewKit/ErrorOr.h>
-
-namespace Kernel
-{
- class USER_PROCESS;
- class KERNEL_PROCESS;
- class UserProcessTeam;
-
- /***********************************************************************************/
- /// @brief Subsystem enum type.
- /***********************************************************************************/
-
- enum class ProcessSubsystem : Int32
- {
- kProcessSubsystemSecurity = 100,
- kProcessSubsystemApplication,
- kProcessSubsystemService,
- kProcessSubsystemDriver,
- kProcessSubsystemInvalid = 256U,
- kProcessSubsystemCount = 4,
- };
-
- typedef UInt64 PTime;
-
- /***********************************************************************************/
- //! @brief Local Process identifier.
- /***********************************************************************************/
- typedef Int64 ProcessID;
-
- /***********************************************************************************/
- //! @brief Local Process status enum.
- /***********************************************************************************/
- enum class ProcessStatusKind : Int32
- {
- kInvalid,
- kStarting,
- kRunning,
- kKilled,
- kFrozen,
- kFinished,
- kCount,
- };
-
- /***********************************************************************************/
- //! @brief Affinity is the amount of nano-seconds this process is going to run.
- /***********************************************************************************/
- enum class AffinityKind : Int32
- {
- kRealTime = 500,
- kVeryHigh = 250,
- kHigh = 200,
- kStandard = 1000,
- kLowUsage = 1500,
- kVeryLowUsage = 2000,
- };
-
- /***********************************************************************************/
- //! Operators for AffinityKind
- /***********************************************************************************/
-
- inline bool operator<(AffinityKind lhs, AffinityKind rhs)
- {
- Int32 lhs_int = static_cast<Int>(lhs);
- Int32 rhs_int = static_cast<Int>(rhs);
-
- return lhs_int < rhs_int;
- }
-
- inline bool operator>(AffinityKind lhs, AffinityKind rhs)
- {
- Int32 lhs_int = static_cast<Int>(lhs);
- Int32 rhs_int = static_cast<Int>(rhs);
-
- return lhs_int > rhs_int;
- }
-
- inline bool operator<=(AffinityKind lhs, AffinityKind rhs)
- {
- Int32 lhs_int = static_cast<Int>(lhs);
- Int32 rhs_int = static_cast<Int>(rhs);
-
- return lhs_int <= rhs_int;
- }
-
- inline bool operator>=(AffinityKind lhs, AffinityKind rhs)
- {
- Int32 lhs_int = static_cast<Int>(lhs);
- Int32 rhs_int = static_cast<Int>(rhs);
-
- return lhs_int >= rhs_int;
- }
-
- using ProcessTime = UInt64;
- using PID = Int64;
-
- /***********************************************************************************/
- /// @note For User manager, tells where we run the code.
- /***********************************************************************************/
- enum class ProcessLevelRing : Int32
- {
- kRingStdUser = 1,
- kRingSuperUser = 2,
- kRingGuestUser = 5,
- kRingCount = 5,
- };
-
- /***********************************************************************************/
- /// @brief Helper type to describe a code image.
- /***********************************************************************************/
- using ImagePtr = VoidPtr;
-
- /***********************************************************************************/
- /// @brief Helper class to contain a process's image and blob.
- /***********************************************************************************/
- struct PROCESS_IMAGE final
- {
- explicit PROCESS_IMAGE() = default;
-
- ImagePtr fCode;
- ImagePtr fBlob;
-
- Bool HasCode()
- {
- return this->fCode != nullptr;
- }
-
- Bool HasImage()
- {
- return this->fBlob != nullptr;
- }
-
- ErrorOr<ImagePtr> Leak()
- {
- if (this->fCode)
- {
- return ErrorOr<ImagePtr>{this->fCode};
- }
-
- return ErrorOr<ImagePtr>{kErrorInvalidData};
- }
-
- ErrorOr<ImagePtr> LeakBlob()
- {
- if (this->fBlob)
- {
- return ErrorOr<ImagePtr>{this->fBlob};
- }
-
- return ErrorOr<ImagePtr>{kErrorInvalidData};
- }
- };
-} // namespace Kernel