diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2025-04-22 18:30:00 +0200 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@nekernel.org> | 2025-04-22 18:30:00 +0200 |
| commit | 5ba2b615e172d93d1ffb06f611b19a4388ed074e (patch) | |
| tree | 3d3ad0d7c195a2d01aaf03155e77499cd6788fcf /dev/kernel/src | |
| parent | 8434a141533891ebd7cb5369c0541cb9a9c07971 (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/src')
| -rw-r--r-- | dev/kernel/src/FS/HeFS.cc | 4 | ||||
| -rw-r--r-- | dev/kernel/src/UserProcessScheduler.cc | 27 |
2 files changed, 23 insertions, 8 deletions
diff --git a/dev/kernel/src/FS/HeFS.cc b/dev/kernel/src/FS/HeFS.cc index ccd808ad..b48512c8 100644 --- a/dev/kernel/src/FS/HeFS.cc +++ b/dev/kernel/src/FS/HeFS.cc @@ -253,7 +253,7 @@ namespace Kernel { if (KStringBuilder::Equals(dir_name, dir->fName)) { - for (SizeT inode_index = 0UL; inode_index < kHeFSBlockCount; ++inode_index) + for (SizeT inode_index = 0UL; inode_index < kHeFSBlockCount; inode_index += 2) { if (dir->fIndexNodeStart[inode_index] != 0 || dir->fIndexNodeEnd[inode_index] != 0) @@ -345,7 +345,7 @@ namespace Kernel if (KStringBuilder::Equals(dir->fName, parent_dir_name)) { - for (SizeT inode_index = 0UL; inode_index < kHeFSBlockCount; ++inode_index) + for (SizeT inode_index = 0UL; inode_index < kHeFSBlockCount; inode_index += 2) { if (dir->fIndexNodeStart[inode_index] != 0 || dir->fIndexNodeEnd[inode_index] != 0) diff --git a/dev/kernel/src/UserProcessScheduler.cc b/dev/kernel/src/UserProcessScheduler.cc index 77831082..d8d34010 100644 --- a/dev/kernel/src/UserProcessScheduler.cc +++ b/dev/kernel/src/UserProcessScheduler.cc @@ -35,7 +35,7 @@ namespace Kernel /// @brief External reference of the thread scheduler. /***********************************************************************************/ - STATIC UserProcessScheduler kProcessScheduler; + STATIC UserProcessScheduler kScheduler; Process::Process() = default; Process::~Process() = default; @@ -406,7 +406,7 @@ namespace Kernel UserProcessScheduler& UserProcessScheduler::The() { - return kProcessScheduler; + return kScheduler; } /***********************************************************************************/ @@ -512,7 +512,22 @@ namespace Kernel return mTeam; } - /// @internal + /***********************************************************************************/ + /// @brief Switches the current team. + /// @param team the new team to switch to. + /// @retval true team was switched. + /// @retval false team was not switched. + /***********************************************************************************/ + + BOOL UserProcessScheduler::SwitchTeam(ProcessTeam& team) + { + if (team.AsArray().Count() < 1) + return No; + + kScheduler.mTeam = team; + + return Yes; + } /// @brief Gets current running process. /// @return @@ -525,11 +540,11 @@ namespace Kernel /// @return Process ID integer. ErrorOr<PID> UserProcessHelper::TheCurrentPID() { - if (!kProcessScheduler.CurrentProcess()) + if (!kScheduler.CurrentProcess()) return ErrorOr<PID>{-kErrorProcessFault}; kout << "UserProcessHelper::TheCurrentPID: Leaking ProcessId...\r"; - return ErrorOr<PID>{kProcessScheduler.CurrentProcess().Leak().ProcessId}; + return ErrorOr<PID>{kScheduler.CurrentProcess().Leak().ProcessId}; } /// @brief Check if process can be schedulded. @@ -568,7 +583,7 @@ namespace Kernel SizeT UserProcessHelper::StartScheduling() { - return kProcessScheduler.Run(); + return kScheduler.Run(); } /***********************************************************************************/ |
