summaryrefslogtreecommitdiffhomepage
path: root/dev/ZKA/KernelKit
diff options
context:
space:
mode:
Diffstat (limited to 'dev/ZKA/KernelKit')
-rw-r--r--dev/ZKA/KernelKit/HardwareThreadScheduler.hxx17
-rw-r--r--dev/ZKA/KernelKit/UserProcessScheduler.hxx17
2 files changed, 32 insertions, 2 deletions
diff --git a/dev/ZKA/KernelKit/HardwareThreadScheduler.hxx b/dev/ZKA/KernelKit/HardwareThreadScheduler.hxx
index 193f5bff..302724fa 100644
--- a/dev/ZKA/KernelKit/HardwareThreadScheduler.hxx
+++ b/dev/ZKA/KernelKit/HardwareThreadScheduler.hxx
@@ -87,7 +87,7 @@ namespace Kernel
/// \brief Class to manage the thread scheduling.
///
- class HardwareThreadScheduler final
+ class HardwareThreadScheduler final : public ISchedulerObject
{
private:
friend class UserProcessHelper;
@@ -105,6 +105,21 @@ namespace Kernel
bool operator!() noexcept;
operator bool() noexcept;
+ const Bool IsUser() override
+ {
+ return Yes;
+ }
+
+ const Bool IsKernel() override
+ {
+ return No;
+ }
+
+ const Bool HasMP() override
+ {
+ return kHandoverHeader->f_HardwareTables.f_MultiProcessingEnabled;
+ }
+
public:
/// @brief Shared instance of the MP Mgr.
/// @return the reference to the mp manager class.
diff --git a/dev/ZKA/KernelKit/UserProcessScheduler.hxx b/dev/ZKA/KernelKit/UserProcessScheduler.hxx
index 845c0081..3a6f03a1 100644
--- a/dev/ZKA/KernelKit/UserProcessScheduler.hxx
+++ b/dev/ZKA/KernelKit/UserProcessScheduler.hxx
@@ -257,7 +257,7 @@ namespace Kernel
/// @brief UserProcess scheduler class.
/// The main class which you call to schedule processes.
- class UserProcessScheduler final
+ class UserProcessScheduler final : public ISchedulerObject
{
friend class UserProcessHelper;
@@ -278,6 +278,21 @@ namespace Kernel
SizeT Add(UserProcess processRef);
Bool Remove(ProcessID processSlot);
+ const Bool IsUser() override
+ {
+ return Yes;
+ }
+
+ const Bool IsKernel() override
+ {
+ return No;
+ }
+
+ const Bool HasMP() override
+ {
+ return kHandoverHeader->f_HardwareTables.f_MultiProcessingEnabled;
+ }
+
public:
Ref<UserProcess>& CurrentProcess();
SizeT Run() noexcept;