RTEMS: Example

| RTEMS 5.4-rc2

Loading...
Searching...
No Matches
Modules | Data Structures | Macros | Functions
Example
Internal » SuperCore » CPU Architecture Support

Example CPU Architecture Support. More...

## Modules
| CPUEndian
| CPUEndian.
| Example Assembler Support
| Management
| Management.
| Processor Dependent Bitfield Manipulation
| Processor Dependent Context Management
| Destroys the context of the thread.
| Processor Dependent Interrupt Management

## Data Structures
struct | CPU_Per_CPU_control
| The CPU specific per-CPU control. More...

## Macros
#define | CPU_PER_CPU_CONTROL_SIZE 0
| The size of the CPU specific per-CPU control.
#define | _CPU_Get_current_per_CPU_control() ( _CPU_Per_CPU_current )
| Optional method to obtain the per-CPU control of the current processor.
#define | _CPU_Get_thread_executing() ( _CPU_Per_CPU_current->executing )
| Optional method to get the executing thread.

## Functions
register struct Per_CPU_Control *_CPU_Per_CPU_current | asm ("rX")
| Special register pointing to the per-CPU control of the current processor.
void | _CPU_Context_volatile_clobber (uintptr_t pattern)
void | _CPU_Context_validate (uintptr_t pattern)
RTEMS_INLINE_ROUTINE void | _CPU_Instruction_illegal (void)
| Emits an illegal instruction.
RTEMS_INLINE_ROUTINE void | _CPU_Instruction_no_operation (void)
| Emits a no operation instruction (nop).

## Detailed Description

Example CPU Architecture Support.

## Macro Definition Documentation

## ◆ _CPU_Get_current_per_CPU_control

#define _CPU_Get_current_per_CPU_control | ( |  | ) | ( _CPU_Per_CPU_current )

Optional method to obtain the per-CPU control of the current processor.

This is optional. Not every CPU port needs this. It is only an optional optimization variant. In case this macro is undefined, the default implementation using the current processor index will be used.

## ◆ _CPU_Get_thread_executing

#define _CPU_Get_thread_executing | ( |  | ) | ( _CPU_Per_CPU_current->executing )

Optional method to get the executing thread.

This is optional. Not every CPU port needs this. It is only an optional optimization variant. In case this macro is undefined, the default implementation uses the per-CPU information and the current processor index to get the executing thread.

## ◆ CPU_PER_CPU_CONTROL_SIZE

#define CPU_PER_CPU_CONTROL_SIZE 0

The size of the CPU specific per-CPU control.

This define must be visible to assember files since it is used to derive structure offsets.

## Function Documentation

## ◆ _CPU_Instruction_illegal()

RTEMS_INLINE_ROUTINE void _CPU_Instruction_illegal | ( | void |  | ) |

Emits an illegal instruction.

This function is used only in test sptests/spfatal26.

## ◆ _CPU_Instruction_no_operation()

RTEMS_INLINE_ROUTINE void _CPU_Instruction_no_operation | ( | void |  | ) |

Emits a no operation instruction (nop).

This function is used only in test sptests/spcache01.

## ◆ asm()

register struct Per_CPU_Control *_CPU_Per_CPU_current asm | ( | "rX" |  | ) |

Special register pointing to the per-CPU control of the current processor.

This is optional. Not every CPU port needs this. It is only an optional optimization variant.