summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel/KernelKit/UserProcessScheduler.h
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-04-22 18:30:00 +0200
committerAmlal El Mahrouss <amlal@nekernel.org>2025-04-22 18:30:00 +0200
commit5ba2b615e172d93d1ffb06f611b19a4388ed074e (patch)
tree3d3ad0d7c195a2d01aaf03155e77499cd6788fcf /dev/kernel/KernelKit/UserProcessScheduler.h
parent8434a141533891ebd7cb5369c0541cb9a9c07971 (diff)
dev, kernel: Milestone towards 0.0.2, see details.
Details: - Added support for 512 process teams (kTeams array). - New SwitchTeam() API in UserProcessScheduler. - Kernel main loop rotates active team every 200ms. - Renamed syscall tables for clarity (kSyscalls → kSysCalls, etc.). - Replaced kKernelMaxSystemCalls with kMaxDispatchCallCount. - Updated call sites to match new naming. - Bumped format version to 0x0101. - Added reserved fields to HEFS_BOOT_NODE for future use. - Changed inode indexing logic to operate on (start, size) pairs. Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'dev/kernel/KernelKit/UserProcessScheduler.h')
-rw-r--r--dev/kernel/KernelKit/UserProcessScheduler.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/dev/kernel/KernelKit/UserProcessScheduler.h b/dev/kernel/KernelKit/UserProcessScheduler.h
index 881f3957..d8c1dff8 100644
--- a/dev/kernel/KernelKit/UserProcessScheduler.h
+++ b/dev/kernel/KernelKit/UserProcessScheduler.h
@@ -19,6 +19,7 @@
#define kSchedMinMicroTime (AffinityKind::kStandard)
#define kSchedInvalidPID (-1)
#define kSchedProcessLimitPerTeam (32U)
+#define kSchedTeamCount (512)
#define kSchedMaxMemoryLimit gib_cast(128) /* max physical memory limit */
#define kSchedMaxStackSz mib_cast(8) /* maximum stack size */
@@ -328,13 +329,15 @@ namespace Kernel
explicit UserProcessScheduler() = default;
~UserProcessScheduler() override = default;
- NE_COPY_DEFAULT(UserProcessScheduler)
+ NE_COPY_DELETE(UserProcessScheduler)
+ NE_MOVE_DELETE(UserProcessScheduler)
operator bool();
bool operator!();
public:
ProcessTeam& CurrentTeam();
+ BOOL SwitchTeam(ProcessTeam& team);
public:
ProcessID Spawn(const Char* name, VoidPtr code, VoidPtr image);
@@ -371,6 +374,10 @@ namespace Kernel
};
const UInt32& sched_get_exit_code(void) noexcept;
+
+ inline Kernel::Array<ProcessTeam,
+ kSchedTeamCount>
+ kTeams;
} // namespace Kernel
#include <KernelKit/ThreadLocalStorage.h>