source: rtems/cpukit/score/cpu/sparc64/include/rtems/score/cpuimpl.h @ 8b65b574

Last change on this file since 8b65b574 was 8b65b574, checked in by Sebastian Huber <sebastian.huber@…>, on 07/28/21 at 12:41:32

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().

  • Property mode set to 100644
File size: 1.1 KB
Line 
1/**
2 * @file
3 *
4 * @brief CPU Port Implementation API
5 */
6
7/*
8 * Copyright (c) 2013 embedded brains GmbH
9 *
10 * The license and distribution terms for this file may be
11 * found in the file LICENSE in this distribution or at
12 * http://www.rtems.org/license/LICENSE.
13 */
14
15#ifndef _RTEMS_SCORE_CPUIMPL_H
16#define _RTEMS_SCORE_CPUIMPL_H
17
18#include <rtems/score/cpu.h>
19
20/**
21 * @defgroup RTEMSScoreCPUSPARC64 SPARC64
22 *
23 * @ingroup RTEMSScoreCPU
24 *
25 * @brief SPARC64 Architecture Support
26 *
27 * @{
28 */
29
30#define CPU_PER_CPU_CONTROL_SIZE 0
31
32#ifndef ASM
33
34#ifdef __cplusplus
35extern "C" {
36#endif
37
38RTEMS_NO_RETURN void _CPU_Fatal_halt( uint32_t source, CPU_Uint32ptr error );
39
40RTEMS_INLINE_ROUTINE void _CPU_Context_volatile_clobber( uintptr_t pattern )
41{
42  /* TODO */
43}
44
45RTEMS_INLINE_ROUTINE void _CPU_Context_validate( uintptr_t pattern )
46{
47  while (1) {
48    /* TODO */
49  }
50}
51
52RTEMS_INLINE_ROUTINE void _CPU_Instruction_illegal( void )
53{
54  __asm__ volatile ( "unimp" );
55}
56
57RTEMS_INLINE_ROUTINE void _CPU_Instruction_no_operation( void )
58{
59  __asm__ volatile ( "nop" );
60}
61
62#ifdef __cplusplus
63}
64#endif
65
66#endif /* ASM */
67
68#endif /* _RTEMS_SCORE_CPUIMPL_H */
Note: See TracBrowser for help on using the repository browser.