From 7327f305efb1c6678722308cc5f9645dd39f451e Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Thu, 13 Jun 2024 19:38:29 +0200 Subject: MHR-31: Lots of fixes and improvements regarding the kernel. Signed-off-by: Amlal El Mahrouss --- Kernel/KernelKit/ProcessScheduler.hxx | 19 +++++-------------- Kernel/KernelKit/SMPManager.hpp | 6 +++--- 2 files changed, 8 insertions(+), 17 deletions(-) (limited to 'Kernel/KernelKit') diff --git a/Kernel/KernelKit/ProcessScheduler.hxx b/Kernel/KernelKit/ProcessScheduler.hxx index c6e090e4..8c1971b0 100644 --- a/Kernel/KernelKit/ProcessScheduler.hxx +++ b/Kernel/KernelKit/ProcessScheduler.hxx @@ -17,7 +17,7 @@ #define kSchedMinMicroTime (AffinityKind::kHartStandard) #define kSchedInvalidPID (-1) -#define kSchedProcessLimitPerTeam (100U) +#define kSchedProcessLimitPerTeam (16U) //////////////////////////////////////////////////// @@ -134,7 +134,6 @@ namespace NewOS explicit ProcessHeader(VoidPtr startImage = nullptr) : Image(startImage) { - MUST_PASS(startImage); } ~ProcessHeader() = default; @@ -145,7 +144,7 @@ namespace NewOS void SetEntrypoint(UIntPtr& imageStart) noexcept; public: - Char Name[kProcessLen] = {"NewOS Process"}; + Char Name[kProcessLen] = {"Process"}; ProcessSubsystem SubSystem{ProcessSubsystem::eProcessSubsystemInvalid}; ProcessSelector Selector{ProcessSelector::kRingUser}; HAL::StackFramePtr StackFrame{nullptr}; @@ -240,23 +239,15 @@ namespace NewOS /// The main class which you call to schedule an app. class ProcessScheduler final { - private: - explicit ProcessScheduler() = default; + explicit ProcessScheduler() = default; public: ~ProcessScheduler() = default; NEWOS_COPY_DEFAULT(ProcessScheduler) - operator bool() - { - return mTeam.AsArray().Count() > 0; - } - - bool operator!() - { - return mTeam.AsArray().Count() == 0; - } + operator bool(); + bool operator!(); public: ProcessTeam& CurrentTeam(); diff --git a/Kernel/KernelKit/SMPManager.hpp b/Kernel/KernelKit/SMPManager.hpp index 985050f1..ba706cf6 100644 --- a/Kernel/KernelKit/SMPManager.hpp +++ b/Kernel/KernelKit/SMPManager.hpp @@ -94,11 +94,11 @@ namespace NewOS NEWOS_COPY_DEFAULT(SMPManager); public: - bool Switch(HAL::StackFrame* the); - HAL::StackFramePtr GetStackFrame() noexcept; + bool Switch(HAL::StackFramePtr the); + HAL::StackFramePtr Leak() noexcept; public: - Ref operator[](const SizeT& idx); + Ref operator[](const SizeT& idx); bool operator!() noexcept; operator bool() noexcept; -- cgit v1.2.3