diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-07-28 14:41:32 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-07-28 21:04:20 +0200 |
commit | 8b65b57472d5086f2c035a09fdb07a40285beb4a (patch) | |
tree | a59df32bffd218107602471a541c10d66e1b509a /bsps/sparc/shared/start/bsp_fatal_halt.c | |
parent | score: Move per-CPU jobs support (diff) | |
download | rtems-8b65b57472d5086f2c035a09fdb07a40285beb4a.tar.bz2 |
score: Canonicalize _CPU_Fatal_halt()
Move _CPU_Fatal_halt() declaration to <rtems/score/cpuimpl.h> and make sure it
is a proper declaration of a function which does not return. Fix the type of
the error code. If necessary, add the implementation to cpu.c. Implementing
_CPU_Fatal_halt() as a function makes it possible to wrap this function for
example to fully test _Terminate().
Diffstat (limited to 'bsps/sparc/shared/start/bsp_fatal_halt.c')
-rw-r--r-- | bsps/sparc/shared/start/bsp_fatal_halt.c | 23 |
1 files changed, 9 insertions, 14 deletions
diff --git a/bsps/sparc/shared/start/bsp_fatal_halt.c b/bsps/sparc/shared/start/bsp_fatal_halt.c index 3a82445ac1..f53275a073 100644 --- a/bsps/sparc/shared/start/bsp_fatal_halt.c +++ b/bsps/sparc/shared/start/bsp_fatal_halt.c @@ -12,27 +12,22 @@ */ #include <bsp.h> +#include <rtems/score/cpuimpl.h> -#ifdef BSP_POWER_DOWN_AT_FATAL_HALT - -/* Spin CPU on fatal error exit */ -void _CPU_Fatal_halt(uint32_t source, uint32_t error) +void _CPU_Fatal_halt( uint32_t source, CPU_Uint32ptr error ) { +#ifdef BSP_POWER_DOWN_AT_FATAL_HALT + /* Spin CPU on fatal error exit */ uint32_t level = sparc_disable_interrupts(); __asm__ volatile ( "mov %0, %%g1 " : "=r" (level) : "0" (level) ); while (1) ; /* loop forever */ -} - #else - -/* return to debugger, simulator, hypervisor or similar by exiting - * with an error code. g1=1, g2=FATAL_SOURCE, G3=error-code. - */ -void _CPU_Fatal_halt(uint32_t source, uint32_t error) -{ + /* + * Return to debugger, simulator, hypervisor or similar by exiting + * with an error code. g1=1, g2=FATAL_SOURCE, G3=error-code. + */ sparc_syscall_exit(source, error); -} - #endif +} |