diff options
| author | Amlal <amlalelmahrouss@icloud.com> | 2024-06-06 10:27:55 +0000 |
|---|---|---|
| committer | Amlal <amlalelmahrouss@icloud.com> | 2024-06-06 10:27:55 +0000 |
| commit | 4e75e05a20ddd0dbca982e8f3bc2ea8043ed3a3f (patch) | |
| tree | 95409c0e32b644578b94a5c230417da684d79dc9 /Kernel/Sources/ProcessScheduler.cxx | |
| parent | f5081a8f9a8537ad5be5d639955cd1d0e68a9e1d (diff) | |
| parent | 9994b8f3f88131f41be1061fb0947177e66dc7b0 (diff) | |
Merged in MHR-23 (pull request #14)
Draft: MHR-23
Diffstat (limited to 'Kernel/Sources/ProcessScheduler.cxx')
| -rw-r--r-- | Kernel/Sources/ProcessScheduler.cxx | 42 |
1 files changed, 21 insertions, 21 deletions
diff --git a/Kernel/Sources/ProcessScheduler.cxx b/Kernel/Sources/ProcessScheduler.cxx index 1e4537f1..bf088cc6 100644 --- a/Kernel/Sources/ProcessScheduler.cxx +++ b/Kernel/Sources/ProcessScheduler.cxx @@ -9,7 +9,7 @@ /// @brief MicroKernel process scheduler. /***********************************************************************************/ -#include <KernelKit/ProcessScheduler.hpp> +#include <KernelKit/ProcessScheduler.hxx> #include <KernelKit/SMPManager.hpp> #include <KernelKit/KernelHeap.hpp> #include <NewKit/String.hpp> @@ -42,7 +42,7 @@ namespace NewOS void ProcessHeader::Crash() { - kcout << this->Name << ": crashed. (id = " << number(39); + kcout << this->Name << ": crashed. (id = " << number(kErrorProcessFault); kcout << ")\r"; if (this->Ring != kRingUserKind) @@ -163,11 +163,11 @@ namespace NewOS void ProcessHeader::Exit(Int32 exit_code) { if (this->ProcessId != - ProcessScheduler::Shared().Leak().GetCurrent().Leak().ProcessId) + ProcessScheduler::The().Leak().GetCurrent().Leak().ProcessId) ke_stop(RUNTIME_CHECK_PROCESS); if (this->Ring == (Int32)ProcessSelector::kRingKernel && - ProcessScheduler::Shared().Leak().GetCurrent().Leak().Ring > 0) + ProcessScheduler::The().Leak().GetCurrent().Leak().Ring > 0) ke_stop(RUNTIME_CHECK_PROCESS); kLastExitCode = exit_code; @@ -193,7 +193,7 @@ namespace NewOS this->Image = nullptr; this->StackFrame = nullptr; - ProcessScheduler::Shared().Leak().Remove(this->ProcessId); + ProcessScheduler::The().Leak().Remove(this->ProcessId); } /// @brief Add process to list. @@ -206,7 +206,7 @@ namespace NewOS if (!process.Leak().Image) { - if (process.Leak().Kind != ProcessHeader::kLibKind) + if (process.Leak().Kind != ProcessHeader::kShLibKind) { return -kErrorNoEntrypoint; } @@ -223,7 +223,7 @@ namespace NewOS /// Create heap according to type of process. if (process.Leak().Kind == ProcessHeader::kAppKind) process.Leak().HeapPtr = rt_new_heap(kUserHeapUser | kUserHeapRw); - else if (process.Leak().Kind == ProcessHeader::kLibKind) + else if (process.Leak().Kind == ProcessHeader::kShLibKind) process.Leak().HeapPtr = rt_new_heap(kUserHeapUser | kUserHeapRw | kUserHeapShared); else process.Leak().HeapPtr = rt_new_heap(kUserHeapDriver | kUserHeapRw); @@ -301,7 +301,7 @@ namespace NewOS /// @brief Shared instance of the process scheduler. /// @return - Ref<ProcessScheduler&> ProcessScheduler::Shared() + Ref<ProcessScheduler&> ProcessScheduler::The() { static ProcessScheduler ref; return {ref}; @@ -319,7 +319,7 @@ namespace NewOS PID& ProcessHelper::GetCurrentPID() { kcout << "ProcessHelper::GetCurrentPID: Leaking ProcessId...\r"; - return ProcessScheduler::Shared().Leak().GetCurrent().Leak().ProcessId; + return ProcessScheduler::The().Leak().GetCurrent().Leak().ProcessId; } /// @brief Check if process can be schedulded. @@ -355,13 +355,13 @@ namespace NewOS bool ProcessHelper::StartScheduling() { if (ProcessHelper::CanBeScheduled( - ProcessScheduler::Shared().Leak().GetCurrent())) + ProcessScheduler::The().Leak().GetCurrent())) { - --ProcessScheduler::Shared().Leak().GetCurrent().Leak().PTime; + --ProcessScheduler::The().Leak().GetCurrent().Leak().PTime; return false; } - auto processRef = ProcessScheduler::Shared().Leak(); + auto processRef = ProcessScheduler::The().Leak(); if (!processRef) return false; // we have nothing to schedule. simply return. @@ -385,29 +385,29 @@ namespace NewOS if (!the_stack || new_pid < 0) return false; - for (SizeT index = 0UL; index < SMPManager::Shared().Leak().Count(); ++index) + for (SizeT index = 0UL; index < SMPManager::The().Leak().Count(); ++index) { - if (SMPManager::Shared().Leak()[index].Leak().Kind() == kInvalidHart) + if (SMPManager::The().Leak()[index].Leak().Kind() == kInvalidHart) continue; - if (SMPManager::Shared().Leak()[index].Leak().StackFrame() == the_stack) + if (SMPManager::The().Leak()[index].Leak().StackFrame() == the_stack) { - SMPManager::Shared().Leak()[index].Leak().Busy(false); + SMPManager::The().Leak()[index].Leak().Busy(false); continue; } - if (SMPManager::Shared().Leak()[index].Leak().IsBusy()) + if (SMPManager::The().Leak()[index].Leak().IsBusy()) continue; - if (SMPManager::Shared().Leak()[index].Leak().Kind() != + if (SMPManager::The().Leak()[index].Leak().Kind() != ThreadKind::kHartBoot && - SMPManager::Shared().Leak()[index].Leak().Kind() != + SMPManager::The().Leak()[index].Leak().Kind() != ThreadKind::kHartSystemReserved) { - SMPManager::Shared().Leak()[index].Leak().Busy(true); + SMPManager::The().Leak()[index].Leak().Busy(true); ProcessHelper::GetCurrentPID() = new_pid; - return SMPManager::Shared().Leak()[index].Leak().Switch(the_stack); + return SMPManager::The().Leak()[index].Leak().Switch(the_stack); } } |
