diff options
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 +} |