From 2b91067c894efde74e96fd9216598a5782699c7b Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Wed, 14 May 2025 12:56:18 +0200 Subject: feat(kernel): Set SubSystem according to TASK/PROCESS structure. also: - Introduce the KernelTaskScheduler soon. - Reintroduce ZXD binaries for signed drivers. - Made the arguments name inside kernel spawn function inside CodeMgr clearer. Signed-off-by: Amlal El Mahrouss --- dev/kernel/KernelKit/CodeMgr.h | 2 +- dev/kernel/KernelKit/CoreProcessScheduler.h | 3 ++- dev/kernel/KernelKit/KernelTaskScheduler.h | 2 +- dev/kernel/KernelKit/UserProcessScheduler.h | 8 ++++---- 4 files changed, 8 insertions(+), 7 deletions(-) (limited to 'dev/kernel/KernelKit') diff --git a/dev/kernel/KernelKit/CodeMgr.h b/dev/kernel/KernelKit/CodeMgr.h index bb287b24..ff70707b 100644 --- a/dev/kernel/KernelKit/CodeMgr.h +++ b/dev/kernel/KernelKit/CodeMgr.h @@ -33,7 +33,7 @@ typedef void (*rtl_dtor_kind)(void); /// accessible. /// @param main the start of the process. /// @return The team's process id. -ProcessID rtl_create_kernel_process(rtl_main_kind main, const Char* process_name) noexcept; +ProcessID rtl_create_kernel_process(rtl_main_kind main, const Char* task_name) noexcept; /// @brief Executes a new process from a function. User code only. /// @note This sets up a new stack, anything on the main function that calls the Kernel will not be diff --git a/dev/kernel/KernelKit/CoreProcessScheduler.h b/dev/kernel/KernelKit/CoreProcessScheduler.h index 4fd6321c..3f55c099 100644 --- a/dev/kernel/KernelKit/CoreProcessScheduler.h +++ b/dev/kernel/KernelKit/CoreProcessScheduler.h @@ -22,6 +22,7 @@ namespace Kernel { class USER_PROCESS; class KERNEL_TASK; +class KernelTaskScheduler; class UserProcessScheduler; class UserProcessTeam; @@ -96,7 +97,7 @@ struct PROCESS_FILE_TREE { enum class ProcessSubsystem : Int32 { kProcessSubsystemSecurity = 100, - kProcessSubsystemApplication, + kProcessSubsystemUser, kProcessSubsystemService, kProcessSubsystemDriver, kProcessSubsystemInvalid = 0xFFFFFFF, diff --git a/dev/kernel/KernelKit/KernelTaskScheduler.h b/dev/kernel/KernelKit/KernelTaskScheduler.h index ed33ceba..942cd8b4 100644 --- a/dev/kernel/KernelKit/KernelTaskScheduler.h +++ b/dev/kernel/KernelKit/KernelTaskScheduler.h @@ -19,7 +19,7 @@ struct KERNEL_TASK; struct KERNEL_TASK final { Char Name[kSchedNameLen] = {"KERNEL_TASK"}; - ProcessSubsystem SubSystem{ProcessSubsystem::kProcessSubsystemInvalid}; + ProcessSubsystem SubSystem{ProcessSubsystem::kProcessSubsystemDriver}; HAL::StackFramePtr StackFrame{nullptr}; UInt8* StackReserve{nullptr}; SizeT StackSize{kSchedMaxStackSz}; diff --git a/dev/kernel/KernelKit/UserProcessScheduler.h b/dev/kernel/KernelKit/UserProcessScheduler.h index f04f4a0a..a638f0dc 100644 --- a/dev/kernel/KernelKit/UserProcessScheduler.h +++ b/dev/kernel/KernelKit/UserProcessScheduler.h @@ -42,7 +42,7 @@ class USER_PROCESS final { public: Char Name[kSchedNameLen] = {"USER_PROCESS"}; - ProcessSubsystem SubSystem{ProcessSubsystem::kProcessSubsystemInvalid}; + ProcessSubsystem SubSystem{ProcessSubsystem::kProcessSubsystemUser}; User* Owner{nullptr}; HAL::StackFramePtr StackFrame{nullptr}; AffinityKind Affinity{AffinityKind::kStandard}; @@ -56,9 +56,9 @@ class USER_PROCESS final { SizeT UsedMemory{0UL}; struct USER_PROCESS_SIGNAL final { - UIntPtr SignalArg; - ProcessStatusKind Status; - UIntPtr SignalID; + UIntPtr SignalArg{0}; + ProcessStatusKind Status{ProcessStatusKind::kKilled}; + UIntPtr SignalID{0}; }; USER_PROCESS_SIGNAL Signal; -- cgit v1.2.3