source: rtems/cpukit/score/cpu/x86_64/include/rtems/score/cpuimpl.h @ a660e9dc

Last change on this file since a660e9dc was a660e9dc, checked in by Sebastian Huber <sebastian.huber@…>, on 09/08/22 at 08:37:05

Do not use RTEMS_INLINE_ROUTINE

Directly use "static inline" which is available in C99 and later. This brings
the RTEMS implementation closer to standard C.

Close #3935.

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