summaryrefslogtreecommitdiffhomepage
path: root/dev/Kernel
diff options
context:
space:
mode:
authorAmlal <amlal.elmahrouss@icloud.com>2025-01-18 13:24:53 +0100
committerAmlal <amlal.elmahrouss@icloud.com>2025-01-18 13:24:53 +0100
commit1d81e061a71162e0de392c8fa600cec46e716fa3 (patch)
tree47fb739ab66cb9ca00bd10b88d82330ac0eab34e /dev/Kernel
parentd1596e3df96fe03acd76bfb3df07750092fd809f (diff)
ADD: Export hal_check_stack as C symbol, and zka_pure_call should have the UserProcess* on first argument register to crash program.
Signed-off-by: Amlal <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'dev/Kernel')
-rw-r--r--dev/Kernel/HALKit/AMD64/HalSchedulerCorePrimitivesAMD64.cc (renamed from dev/Kernel/HALKit/AMD64/HalAP.cc)7
-rw-r--r--dev/Kernel/HALKit/ARM64/HalSchedulerCorePrimitivesARM64.cc7
-rw-r--r--dev/Kernel/src/HardwareThreadScheduler.cc2
3 files changed, 9 insertions, 7 deletions
diff --git a/dev/Kernel/HALKit/AMD64/HalAP.cc b/dev/Kernel/HALKit/AMD64/HalSchedulerCorePrimitivesAMD64.cc
index e217b24f..5eee0245 100644
--- a/dev/Kernel/HALKit/AMD64/HalAP.cc
+++ b/dev/Kernel/HALKit/AMD64/HalSchedulerCorePrimitivesAMD64.cc
@@ -14,9 +14,10 @@ namespace Kernel
/// @param
/***********************************************************************************/
- EXTERN_C Void __zka_pure_call(void)
+ EXTERN_C Void __zka_pure_call(UserProcess* process)
{
- UserProcessScheduler::The().GetCurrentProcess().Leak().Crash();
+ if (process)
+ process->Crash();
}
/***********************************************************************************/
@@ -24,7 +25,7 @@ namespace Kernel
/// @param stack_ptr the frame pointer.
/***********************************************************************************/
- Bool hal_check_stack(HAL::StackFramePtr stack_ptr)
+ EXTERN_C Bool hal_check_stack(HAL::StackFramePtr stack_ptr)
{
if (!stack_ptr)
return No;
diff --git a/dev/Kernel/HALKit/ARM64/HalSchedulerCorePrimitivesARM64.cc b/dev/Kernel/HALKit/ARM64/HalSchedulerCorePrimitivesARM64.cc
index e6254fb7..e46c4b66 100644
--- a/dev/Kernel/HALKit/ARM64/HalSchedulerCorePrimitivesARM64.cc
+++ b/dev/Kernel/HALKit/ARM64/HalSchedulerCorePrimitivesARM64.cc
@@ -14,9 +14,10 @@ namespace Kernel
/// @param void
/***********************************************************************************/
- EXTERN_C Void __zka_pure_call(void)
+ EXTERN_C Void __zka_pure_call(UserProcess* process)
{
- UserProcessScheduler::The().GetCurrentProcess().Leak().Crash();
+ if (process)
+ process->Crash();
}
/***********************************************************************************/
@@ -24,7 +25,7 @@ namespace Kernel
/// @param stack_ptr the frame pointer.
/***********************************************************************************/
- Bool hal_check_stack(HAL::StackFramePtr stack_ptr)
+ EXTERN_C Bool hal_check_stack(HAL::StackFramePtr stack_ptr)
{
if (!stack_ptr)
return No;
diff --git a/dev/Kernel/src/HardwareThreadScheduler.cc b/dev/Kernel/src/HardwareThreadScheduler.cc
index a1312b34..2121a911 100644
--- a/dev/Kernel/src/HardwareThreadScheduler.cc
+++ b/dev/Kernel/src/HardwareThreadScheduler.cc
@@ -21,7 +21,7 @@ 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 hal_check_stack(HAL::StackFramePtr frame_ptr);
EXTERN_C Bool mp_register_process(HAL::StackFramePtr frame, ProcessID pid);
STATIC HardwareThreadScheduler kHardwareThreadScheduler;