summaryrefslogtreecommitdiffstats
path: root/cpukit/score/cpu/aarch64/include/rtems
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2021-07-28 14:41:32 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2021-07-28 21:04:20 +0200
commit8b65b57472d5086f2c035a09fdb07a40285beb4a (patch)
treea59df32bffd218107602471a541c10d66e1b509a /cpukit/score/cpu/aarch64/include/rtems
parentscore: Move per-CPU jobs support (diff)
downloadrtems-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 'cpukit/score/cpu/aarch64/include/rtems')
-rw-r--r--cpukit/score/cpu/aarch64/include/rtems/score/cpu.h13
-rw-r--r--cpukit/score/cpu/aarch64/include/rtems/score/cpuimpl.h2
2 files changed, 2 insertions, 13 deletions
diff --git a/cpukit/score/cpu/aarch64/include/rtems/score/cpu.h b/cpukit/score/cpu/aarch64/include/rtems/score/cpu.h
index 595f6c7351..dacc18638e 100644
--- a/cpukit/score/cpu/aarch64/include/rtems/score/cpu.h
+++ b/cpukit/score/cpu/aarch64/include/rtems/score/cpu.h
@@ -295,19 +295,6 @@ void _CPU_Context_Initialize(
*(*(_destination)) = _CPU_Null_fp_context; \
} while (0)
-#define _CPU_Fatal_halt( _source, _err ) \
- do { \
- uint64_t _level; \
- uint32_t _error = _err; \
- _CPU_ISR_Disable( _level ); \
- (void) _level; \
- __asm__ volatile ("mov x0, %0\n" \
- : "=r" (_error) \
- : "0" (_error) \
- : "x0" ); \
- while (1); \
- } while (0);
-
/**
* @brief CPU initialization.
*/
diff --git a/cpukit/score/cpu/aarch64/include/rtems/score/cpuimpl.h b/cpukit/score/cpu/aarch64/include/rtems/score/cpuimpl.h
index 4c3da6794a..0536ecd860 100644
--- a/cpukit/score/cpu/aarch64/include/rtems/score/cpuimpl.h
+++ b/cpukit/score/cpu/aarch64/include/rtems/score/cpuimpl.h
@@ -58,6 +58,8 @@
extern "C" {
#endif
+RTEMS_NO_RETURN void _CPU_Fatal_halt( uint32_t source, CPU_Uint32ptr error );
+
void _CPU_Context_volatile_clobber( uintptr_t pattern );
void _CPU_Context_validate( uintptr_t pattern );