From 8dd831a5bff24ba599c1ba8ff49e9d094756ea7c Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Mon, 26 May 2025 04:57:17 +0200 Subject: fix(HAL/AP): Fix task getter function inside AP system. why: - It used to modulo the index value, which will index an invalid index. - Also refactored the function name to mp_get_current_task. Signed-off-by: Amlal El Mahrouss --- dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc | 5 +++-- dev/kernel/HALKit/ARM64/HalApplicationProcessor.cc | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) (limited to 'dev/kernel/HALKit') diff --git a/dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc b/dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc index 2ce05e7c..1d298698 100644 --- a/dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc +++ b/dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc @@ -101,8 +101,9 @@ Void hal_send_ipi_msg(UInt32 target, UInt32 apic_id, UInt8 vector) { /// @param thrdid The thread ID. /***********************************************************************************/ -EXTERN_C HAL::StackFramePtr mp_get_current_context(Int64 thrdid) { - const auto process_index = thrdid % kSchedProcessLimitPerTeam; +EXTERN_C HAL::StackFramePtr mp_get_current_task(Int64 thrdid) { + const auto process_index = thrdid; + if (thrdid > kSMPCount) return nullptr; return kHWThread[process_index].mFramePtr; } diff --git a/dev/kernel/HALKit/ARM64/HalApplicationProcessor.cc b/dev/kernel/HALKit/ARM64/HalApplicationProcessor.cc index 70a5e2d9..02f09e23 100644 --- a/dev/kernel/HALKit/ARM64/HalApplicationProcessor.cc +++ b/dev/kernel/HALKit/ARM64/HalApplicationProcessor.cc @@ -103,7 +103,7 @@ namespace Detail { /// @param thrdid The thread ID. /***********************************************************************************/ -EXTERN_C HAL::StackFramePtr mp_get_current_context(ProcessID thrdid) { +EXTERN_C HAL::StackFramePtr mp_get_current_task(ProcessID thrdid) { return kHWThread[thrdid].mFramePtr; } -- cgit v1.2.3