diff options
| author | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2024-11-07 16:30:10 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2024-11-07 16:30:10 +0100 |
| commit | 516efdab62108ff03af7f1d91e6dcba02f6aad47 (patch) | |
| tree | 5301fd170496f7562d0872c950cda0ec9d1f5db0 /dev/ZKAKit/src/HardwareThreadScheduler.cc | |
| parent | 3bb0b718b3fde156b6f30b7f05fa34a4937befaf (diff) | |
Kernel: lots of fixes and improvements.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'dev/ZKAKit/src/HardwareThreadScheduler.cc')
| -rw-r--r-- | dev/ZKAKit/src/HardwareThreadScheduler.cc | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/dev/ZKAKit/src/HardwareThreadScheduler.cc b/dev/ZKAKit/src/HardwareThreadScheduler.cc index 7651185d..48fcd5b4 100644 --- a/dev/ZKAKit/src/HardwareThreadScheduler.cc +++ b/dev/ZKAKit/src/HardwareThreadScheduler.cc @@ -90,13 +90,13 @@ namespace Kernel /// @note Those symbols are needed in order to switch and validate the stack. EXTERN Bool hal_check_stack(HAL::StackFramePtr frame_ptr); - EXTERN_C Bool mp_register_process(VoidPtr image, Ptr8 stack_ptr, HAL::StackFramePtr frame_ptr); + EXTERN_C Bool mp_register_process(VoidPtr image, Ptr8 stack_ptr, HAL::StackFramePtr frame, ProcessID pid); /// @brief Switch to hardware thread. /// @param stack the new hardware thread. /// @retval true stack was changed, code is running. /// @retval false stack is invalid, previous code is running. - Bool HardwareThread::Switch(VoidPtr image, Ptr8 stack_ptr, HAL::StackFramePtr frame) + Bool HardwareThread::Switch(VoidPtr image, Ptr8 stack_ptr, HAL::StackFramePtr frame, const ProcessID& pid) { if (!frame || !image || @@ -112,9 +112,11 @@ namespace Kernel if (!hal_check_stack(frame)) return No; - fStack = frame; + this->fStack = frame; + this->fSourcePID = pid; - Bool ret = mp_register_process(image, stack_ptr, fStack); + + Bool ret = mp_register_process(image, stack_ptr, fStack, this->fSourcePID); if (ret) this->Busy(true); |
