diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2025-05-12 17:19:50 +0200 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@nekernel.org> | 2025-05-12 17:20:29 +0200 |
| commit | 609698e032f4d110004908d4eefcc77c43553258 (patch) | |
| tree | 5a9168d74b6af783254b79ac1ff8987c4a52969d /dev/kernel | |
| parent | 911ebf833f04338c8307c598433e3d75053794c9 (diff) | |
feat: sched, tooling: improving and laying foundations for the future
milestones and objectives, such as: driver loading (ifs.sys, ddk.sys,
user.sys), and better tooling for application development.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'dev/kernel')
| -rw-r--r-- | dev/kernel/KernelKit/CoreProcessScheduler.h | 15 | ||||
| -rw-r--r-- | dev/kernel/KernelKit/KernelTaskScheduler.h | 15 | ||||
| -rw-r--r-- | dev/kernel/KernelKit/UserProcessScheduler.h | 10 | ||||
| -rw-r--r-- | dev/kernel/src/Network/IPCMsg.cc | 1 |
4 files changed, 27 insertions, 14 deletions
diff --git a/dev/kernel/KernelKit/CoreProcessScheduler.h b/dev/kernel/KernelKit/CoreProcessScheduler.h index b3bc3e65..643c5479 100644 --- a/dev/kernel/KernelKit/CoreProcessScheduler.h +++ b/dev/kernel/KernelKit/CoreProcessScheduler.h @@ -9,9 +9,19 @@ #include <NewKit/Defines.h> #include <NewKit/ErrorOr.h> +#define kSchedMinMicroTime (AffinityKind::kStandard) +#define kSchedInvalidPID (-1) +#define kSchedProcessLimitPerTeam (32U) +#define kSchedTeamCount (256U) + +#define kSchedMaxMemoryLimit gib_cast(128) /* max physical memory limit */ +#define kSchedMaxStackSz mib_cast(8) /* maximum stack size */ + +#define kSchedNameLen (128U) + namespace Kernel { class USER_PROCESS; -class KERNEL_PROCESS; +class KERNEL_TASK; class UserProcessTeam; /***********************************************************************************/ @@ -117,7 +127,8 @@ struct PROCESS_IMAGE final { private: friend USER_PROCESS; - friend KERNEL_PROCESS; + friend KERNEL_TASK; + friend class UserProcessScheduler; ImagePtr fCode; diff --git a/dev/kernel/KernelKit/KernelTaskScheduler.h b/dev/kernel/KernelKit/KernelTaskScheduler.h index ca10003f..ed33ceba 100644 --- a/dev/kernel/KernelKit/KernelTaskScheduler.h +++ b/dev/kernel/KernelKit/KernelTaskScheduler.h @@ -12,4 +12,17 @@ #include <ArchKit/ArchKit.h> #include <KernelKit/CoreProcessScheduler.h> -#include <KernelKit/LockDelegate.h>
\ No newline at end of file +#include <KernelKit/LockDelegate.h> + +namespace Kernel { +struct KERNEL_TASK; + +struct KERNEL_TASK final { + Char Name[kSchedNameLen] = {"KERNEL_TASK"}; + ProcessSubsystem SubSystem{ProcessSubsystem::kProcessSubsystemInvalid}; + HAL::StackFramePtr StackFrame{nullptr}; + UInt8* StackReserve{nullptr}; + SizeT StackSize{kSchedMaxStackSz}; + PROCESS_IMAGE Image{}; +}; +} // namespace Kernel
\ No newline at end of file diff --git a/dev/kernel/KernelKit/UserProcessScheduler.h b/dev/kernel/KernelKit/UserProcessScheduler.h index 3ed3cbfe..42855e11 100644 --- a/dev/kernel/KernelKit/UserProcessScheduler.h +++ b/dev/kernel/KernelKit/UserProcessScheduler.h @@ -17,16 +17,6 @@ #include <KernelKit/User.h> #include <NewKit/MutableArray.h> -#define kSchedMinMicroTime (AffinityKind::kStandard) -#define kSchedInvalidPID (-1) -#define kSchedProcessLimitPerTeam (32U) -#define kSchedTeamCount (256U) - -#define kSchedMaxMemoryLimit gib_cast(128) /* max physical memory limit */ -#define kSchedMaxStackSz mib_cast(8) /* maximum stack size */ - -#define kSchedNameLen (128U) - //////////////////////////////////////////////////// // Last revision date is: Fri Mar 28 2025 // //////////////////////////////////////////////////// diff --git a/dev/kernel/src/Network/IPCMsg.cc b/dev/kernel/src/Network/IPCMsg.cc index e89e7c1b..cff19cfa 100644 --- a/dev/kernel/src/Network/IPCMsg.cc +++ b/dev/kernel/src/Network/IPCMsg.cc @@ -101,7 +101,6 @@ Bool ipc_construct_packet(_Output IPC_MSG** pckt_in) { Bool IPC_MSG::Pass(IPC_MSG* src, IPC_MSG* target) noexcept { if (src && target && (target != src)) { if (src->IpcMsgSz > target->IpcMsgSz) return No; - if (target->IpcMsgSz > src->IpcMsgSz) return No; rt_copy_memory(src->IpcData, target->IpcData, src->IpcMsgSz); |
