From f5e656424dc41ff93c67bcc8139a76d40f525efc Mon Sep 17 00:00:00 2001 From: Amlal Date: Sat, 2 Nov 2024 07:46:45 +0100 Subject: IMP: minOSKrnl commit 1039. - KernelKit: New allocation limit in Heap.cc - KernelKit: Add Matches method for password validation. - KernelKit: Scheduler and Thread have been improved with new validations on frame. - META: Ran format command. - NewKit: Add new Ptr8 type for UInt8* types. - MBCI: Fix codestyle. Signed-off-by: Amlal --- dev/ZKAKit/src/HardwareThreadScheduler.cc | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'dev/ZKAKit/src/HardwareThreadScheduler.cc') diff --git a/dev/ZKAKit/src/HardwareThreadScheduler.cc b/dev/ZKAKit/src/HardwareThreadScheduler.cc index 5c75853c..5c5b8f15 100644 --- a/dev/ZKAKit/src/HardwareThreadScheduler.cc +++ b/dev/ZKAKit/src/HardwareThreadScheduler.cc @@ -89,14 +89,14 @@ namespace Kernel /// @note Those symbols are needed in order to switch and validate the stack. - EXTERN Bool hal_check_stack(HAL::StackFramePtr stackPtr); - EXTERN_C Bool mp_register_process(VoidPtr image, UInt8* stack_ptr, HAL::StackFramePtr frame_ptr); + EXTERN Bool hal_check_stack(HAL::StackFramePtr frame_ptr); + EXTERN_C Bool mp_register_process(VoidPtr image, Ptr8 stack_ptr, HAL::StackFramePtr frame_ptr); /// @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, UInt8* stack_ptr, HAL::StackFramePtr frame) + Bool HardwareThread::Switch(VoidPtr image, Ptr8 stack_ptr, HAL::StackFramePtr frame) { if (!frame || !image || @@ -109,6 +109,9 @@ namespace Kernel if (this->IsBusy()) return No; + if (!hal_check_stack(frame)) + return No; + fStack = frame; Bool ret = mp_register_process(image, stack_ptr, fStack); -- cgit v1.2.3