RTEMS 6.3
Loading...
Searching...
No Matches

This source file contains static assertions to ensure the consistency of interfaces used in C and assembler and it contains the SPARC-specific implementation of _CPU_Initialize(), _CPU_ISR_Get_level(), and _CPU_Context_Initialize(). More...

Macros

#define SPARC_ASSERT_OFFSET(field, off)
#define SPARC_ASSERT_ISF_OFFSET(field, off)
#define SPARC_ASSERT_FP_OFFSET(field, off)
#define SPARC_ASSERT_REGISTER_WINDOW_OFFSET(member, off)
#define SPARC_ASSERT_EXCEPTION_OFFSET(member, off)

Functions

 SPARC_ASSERT_OFFSET (g5, G5)
 SPARC_ASSERT_OFFSET (g7, G7)
 RTEMS_STATIC_ASSERT (offsetof(Context_Control, l0_and_l1)==L0_OFFSET, Context_Control_offset_L0)
 RTEMS_STATIC_ASSERT (offsetof(Context_Control, l0_and_l1)+4==L1_OFFSET, Context_Control_offset_L1)
 SPARC_ASSERT_OFFSET (l2, L2)
 SPARC_ASSERT_OFFSET (l3, L3)
 SPARC_ASSERT_OFFSET (l4, L4)
 SPARC_ASSERT_OFFSET (l5, L5)
 SPARC_ASSERT_OFFSET (l6, L6)
 SPARC_ASSERT_OFFSET (l7, L7)
 SPARC_ASSERT_OFFSET (i0, I0)
 SPARC_ASSERT_OFFSET (i1, I1)
 SPARC_ASSERT_OFFSET (i2, I2)
 SPARC_ASSERT_OFFSET (i3, I3)
 SPARC_ASSERT_OFFSET (i4, I4)
 SPARC_ASSERT_OFFSET (i5, I5)
 SPARC_ASSERT_OFFSET (i6_fp, I6_FP)
 SPARC_ASSERT_OFFSET (i7, I7)
 SPARC_ASSERT_OFFSET (o6_sp, O6_SP)
 SPARC_ASSERT_OFFSET (o7, O7)
 SPARC_ASSERT_OFFSET (psr, PSR)
 SPARC_ASSERT_OFFSET (isr_dispatch_disable, ISR_DISPATCH_DISABLE_STACK)
 SPARC_ASSERT_ISF_OFFSET (psr, PSR)
 SPARC_ASSERT_ISF_OFFSET (pc, PC)
 SPARC_ASSERT_ISF_OFFSET (npc, NPC)
 SPARC_ASSERT_ISF_OFFSET (g1, G1)
 SPARC_ASSERT_ISF_OFFSET (g2, G2)
 SPARC_ASSERT_ISF_OFFSET (g3, G3)
 SPARC_ASSERT_ISF_OFFSET (g4, G4)
 SPARC_ASSERT_ISF_OFFSET (g5, G5)
 SPARC_ASSERT_ISF_OFFSET (g7, G7)
 SPARC_ASSERT_ISF_OFFSET (i0, I0)
 SPARC_ASSERT_ISF_OFFSET (i1, I1)
 SPARC_ASSERT_ISF_OFFSET (i2, I2)
 SPARC_ASSERT_ISF_OFFSET (i3, I3)
 SPARC_ASSERT_ISF_OFFSET (i4, I4)
 SPARC_ASSERT_ISF_OFFSET (i5, I5)
 SPARC_ASSERT_ISF_OFFSET (i6_fp, I6_FP)
 SPARC_ASSERT_ISF_OFFSET (i7, I7)
 SPARC_ASSERT_ISF_OFFSET (y, Y)
 SPARC_ASSERT_ISF_OFFSET (tpc, TPC)
 SPARC_ASSERT_FP_OFFSET (f0_f1, F0_F1)
 SPARC_ASSERT_FP_OFFSET (f2_f3, F2_F3)
 SPARC_ASSERT_FP_OFFSET (f4_f5, F4_F5)
 SPARC_ASSERT_FP_OFFSET (f6_f7, F6_F7)
 SPARC_ASSERT_FP_OFFSET (f8_f9, F8_F9)
 SPARC_ASSERT_FP_OFFSET (f10_f11, F10_F11)
 SPARC_ASSERT_FP_OFFSET (f12_f13, F12_F13)
 SPARC_ASSERT_FP_OFFSET (f14_f15, F14_F15)
 SPARC_ASSERT_FP_OFFSET (f16_f17, F16_F17)
 SPARC_ASSERT_FP_OFFSET (f18_f19, F18_F19)
 SPARC_ASSERT_FP_OFFSET (f20_f21, F20_F21)
 SPARC_ASSERT_FP_OFFSET (f22_f23, F22_F23)
 SPARC_ASSERT_FP_OFFSET (f24_f25, F24_F25)
 SPARC_ASSERT_FP_OFFSET (f26_f27, F26_F27)
 SPARC_ASSERT_FP_OFFSET (f28_f29, F28_F29)
 SPARC_ASSERT_FP_OFFSET (f30_f31, F30_F31)
 SPARC_ASSERT_FP_OFFSET (fsr, FSR)
 RTEMS_STATIC_ASSERT (sizeof(SPARC_Minimum_stack_frame)==SPARC_MINIMUM_STACK_FRAME_SIZE, SPARC_MINIMUM_STACK_FRAME_SIZE)
 RTEMS_STATIC_ASSERT (sizeof(CPU_Interrupt_frame) % CPU_ALIGNMENT==0, CPU_Interrupt_frame_alignment)
 SPARC_ASSERT_REGISTER_WINDOW_OFFSET (local[0], LOCAL(0))
 SPARC_ASSERT_REGISTER_WINDOW_OFFSET (local[1], LOCAL(1))
 SPARC_ASSERT_REGISTER_WINDOW_OFFSET (input[0], INPUT(0))
 SPARC_ASSERT_REGISTER_WINDOW_OFFSET (input[1], INPUT(1))
 RTEMS_STATIC_ASSERT (sizeof(SPARC_Register_window)==SPARC_REGISTER_WINDOW_SIZE, SPARC_REGISTER_WINDOW_SIZE)
 SPARC_ASSERT_EXCEPTION_OFFSET (psr, PSR)
 SPARC_ASSERT_EXCEPTION_OFFSET (pc, PC)
 SPARC_ASSERT_EXCEPTION_OFFSET (npc, NPC)
 SPARC_ASSERT_EXCEPTION_OFFSET (trap, TRAP)
 SPARC_ASSERT_EXCEPTION_OFFSET (wim, WIM)
 SPARC_ASSERT_EXCEPTION_OFFSET (y, Y)
 SPARC_ASSERT_EXCEPTION_OFFSET (global[0], GLOBAL(0))
 SPARC_ASSERT_EXCEPTION_OFFSET (global[1], GLOBAL(1))
 SPARC_ASSERT_EXCEPTION_OFFSET (output[0], OUTPUT(0))
 SPARC_ASSERT_EXCEPTION_OFFSET (output[1], OUTPUT(1))
 RTEMS_STATIC_ASSERT (sizeof(CPU_Exception_frame)==SPARC_EXCEPTION_FRAME_SIZE, SPARC_EXCEPTION_FRAME_SIZE)
 RTEMS_STATIC_ASSERT (sizeof(CPU_Exception_frame) % CPU_ALIGNMENT==0, CPU_Exception_frame_alignment)
void _CPU_Initialize (void)
 CPU initialization.
uint32_t _CPU_ISR_Get_level (void)
void _CPU_Context_Initialize (Context_Control *the_context, uint32_t *stack_base, uint32_t size, uint32_t new_level, void *entry_point, bool is_fp, void *tls_area)

Detailed Description

This source file contains static assertions to ensure the consistency of interfaces used in C and assembler and it contains the SPARC-specific implementation of _CPU_Initialize(), _CPU_ISR_Get_level(), and _CPU_Context_Initialize().

Macro Definition Documentation

◆ SPARC_ASSERT_EXCEPTION_OFFSET

#define SPARC_ASSERT_EXCEPTION_OFFSET ( member,
off )
Value:
offsetof( CPU_Exception_frame, member ) == \
RTEMS_XCONCAT( SPARC_EXCEPTION_OFFSET_, off ), \
CPU_Exception_frame_offset_ ## member \
)
#define RTEMS_STATIC_ASSERT(_cond, _msg)
It is defined if a static analysis run is performed.
Definition basedefs.h:841
#define RTEMS_XCONCAT(_x, _y)
Concatenates expansion of _x and expansion of _y.
Definition basedefs.h:466
The set of registers that specifies the complete processor state.
Definition cpu.h:446

◆ SPARC_ASSERT_FP_OFFSET

#define SPARC_ASSERT_FP_OFFSET ( field,
off )
Value:
offsetof(Context_Control_fp, field) == SPARC_FP_CONTEXT_OFFSET_ ## off, \
Context_Control_fp_offset_ ## field \
)
SPARC basic context.
Definition cpu.h:213

◆ SPARC_ASSERT_ISF_OFFSET

#define SPARC_ASSERT_ISF_OFFSET ( field,
off )
Value:
offsetof(CPU_Interrupt_frame, field) == ISF_ ## off ## _OFFSET, \
CPU_Interrupt_frame_offset_ ## field \
)
Interrupt stack frame (ISF).
Definition cpuimpl.h:64

◆ SPARC_ASSERT_OFFSET

#define SPARC_ASSERT_OFFSET ( field,
off )
Value:
offsetof(Context_Control, field) == off ## _OFFSET, \
Context_Control_offset_ ## field \
)
Thread register context.
Definition cpu.h:173

◆ SPARC_ASSERT_REGISTER_WINDOW_OFFSET

#define SPARC_ASSERT_REGISTER_WINDOW_OFFSET ( member,
off )
Value:
offsetof( SPARC_Register_window, member ) == \
RTEMS_XCONCAT( SPARC_REGISTER_WINDOW_OFFSET_, off ), \
)
This structure contains the local and input registers of a register window.
Definition cpu.h:1051