RTEMS CPU Kit with SuperCore  4.11.3
Data Structures | Macros
SPARC Context Structures

Generally there are 2 types of context to save. More...

Collaboration diagram for SPARC Context Structures:

Data Structures

struct  CPU_Per_CPU_control
 The CPU specific per-CPU control. More...
 
struct  Context_Control
 This defines the minimal set of integer and processor state registers that must be saved during a voluntary context switch from one thread to another. More...
 
struct  Context_Control_fp
 This defines the complete set of floating point registers that must be saved during any context switch from one thread to another. More...
 

Macros

#define _CPU_Context_Get_SP(_context)   (_context)->o6_sp
 This macro provides a CPU independent way for RTEMS to access the stack pointer in a context structure. More...
 
#define G5_OFFSET   0x00
 This macro defines an offset into the context for use in assembly. More...
 
#define G7_OFFSET   0x04
 This macro defines an offset into the context for use in assembly. More...
 
#define L0_OFFSET   0x08
 This macro defines an offset into the context for use in assembly. More...
 
#define L1_OFFSET   0x0C
 This macro defines an offset into the context for use in assembly. More...
 
#define L2_OFFSET   0x10
 This macro defines an offset into the context for use in assembly. More...
 
#define L3_OFFSET   0x14
 This macro defines an offset into the context for use in assembly. More...
 
#define L4_OFFSET   0x18
 This macro defines an offset into the context for use in assembly. More...
 
#define L5_OFFSET   0x1C
 This macro defines an offset into the context for use in assembly. More...
 
#define L6_OFFSET   0x20
 This macro defines an offset into the context for use in assembly. More...
 
#define L7_OFFSET   0x24
 This macro defines an offset into the context for use in assembly. More...
 
#define I0_OFFSET   0x28
 This macro defines an offset into the context for use in assembly. More...
 
#define I1_OFFSET   0x2C
 This macro defines an offset into the context for use in assembly. More...
 
#define I2_OFFSET   0x30
 This macro defines an offset into the context for use in assembly. More...
 
#define I3_OFFSET   0x34
 This macro defines an offset into the context for use in assembly. More...
 
#define I4_OFFSET   0x38
 This macro defines an offset into the context for use in assembly. More...
 
#define I5_OFFSET   0x3C
 This macro defines an offset into the context for use in assembly. More...
 
#define I6_FP_OFFSET   0x40
 This macro defines an offset into the context for use in assembly. More...
 
#define I7_OFFSET   0x44
 This macro defines an offset into the context for use in assembly. More...
 
#define O6_SP_OFFSET   0x48
 This macro defines an offset into the context for use in assembly. More...
 
#define O7_OFFSET   0x4C
 This macro defines an offset into the context for use in assembly. More...
 
#define PSR_OFFSET   0x50
 This macro defines an offset into the context for use in assembly. More...
 
#define ISR_DISPATCH_DISABLE_STACK_OFFSET   0x54
 This macro defines an offset into the context for use in assembly. More...
 
#define FO_F1_OFFSET   0x00
 This macro defines an offset into the FPU context for use in assembly. More...
 
#define F2_F3_OFFSET   0x08
 This macro defines an offset into the FPU context for use in assembly. More...
 
#define F4_F5_OFFSET   0x10
 This macro defines an offset into the FPU context for use in assembly. More...
 
#define F6_F7_OFFSET   0x18
 This macro defines an offset into the FPU context for use in assembly. More...
 
#define F8_F9_OFFSET   0x20
 This macro defines an offset into the FPU context for use in assembly. More...
 
#define F1O_F11_OFFSET   0x28
 This macro defines an offset into the FPU context for use in assembly. More...
 
#define F12_F13_OFFSET   0x30
 This macro defines an offset into the FPU context for use in assembly. More...
 
#define F14_F15_OFFSET   0x38
 This macro defines an offset into the FPU context for use in assembly. More...
 
#define F16_F17_OFFSET   0x40
 This macro defines an offset into the FPU context for use in assembly. More...
 
#define F18_F19_OFFSET   0x48
 This macro defines an offset into the FPU context for use in assembly. More...
 
#define F2O_F21_OFFSET   0x50
 This macro defines an offset into the FPU context for use in assembly. More...
 
#define F22_F23_OFFSET   0x58
 This macro defines an offset into the FPU context for use in assembly. More...
 
#define F24_F25_OFFSET   0x60
 This macro defines an offset into the FPU context for use in assembly. More...
 
#define F26_F27_OFFSET   0x68
 This macro defines an offset into the FPU context for use in assembly. More...
 
#define F28_F29_OFFSET   0x70
 This macro defines an offset into the FPU context for use in assembly. More...
 
#define F3O_F31_OFFSET   0x78
 This macro defines an offset into the FPU context for use in assembly. More...
 
#define FSR_OFFSET   0x80
 This macro defines an offset into the FPU context for use in assembly. More...
 
#define CONTEXT_CONTROL_FP_SIZE   0x84
 This defines the size of the FPU context area for use in assembly. More...
 

Detailed Description

Generally there are 2 types of context to save.

This means we have the following 3 context items:

On the SPARC, we are relatively conservative in that we save most of the CPU state in the context area. The ET (enable trap) bit and the CWP (current window pointer) fields of the PSR are considered system wide resources and are not maintained on a per-thread basis.

Macro Definition Documentation

◆ _CPU_Context_Get_SP

#define _CPU_Context_Get_SP (   _context)    (_context)->o6_sp

This macro provides a CPU independent way for RTEMS to access the stack pointer in a context structure.

The actual name and offset is CPU architecture dependent.

◆ CONTEXT_CONTROL_FP_SIZE

#define CONTEXT_CONTROL_FP_SIZE   0x84

This defines the size of the FPU context area for use in assembly.

◆ F12_F13_OFFSET

#define F12_F13_OFFSET   0x30

This macro defines an offset into the FPU context for use in assembly.

◆ F14_F15_OFFSET

#define F14_F15_OFFSET   0x38

This macro defines an offset into the FPU context for use in assembly.

◆ F16_F17_OFFSET

#define F16_F17_OFFSET   0x40

This macro defines an offset into the FPU context for use in assembly.

◆ F18_F19_OFFSET

#define F18_F19_OFFSET   0x48

This macro defines an offset into the FPU context for use in assembly.

◆ F1O_F11_OFFSET

#define F1O_F11_OFFSET   0x28

This macro defines an offset into the FPU context for use in assembly.

◆ F22_F23_OFFSET

#define F22_F23_OFFSET   0x58

This macro defines an offset into the FPU context for use in assembly.

◆ F24_F25_OFFSET

#define F24_F25_OFFSET   0x60

This macro defines an offset into the FPU context for use in assembly.

◆ F26_F27_OFFSET

#define F26_F27_OFFSET   0x68

This macro defines an offset into the FPU context for use in assembly.

◆ F28_F29_OFFSET

#define F28_F29_OFFSET   0x70

This macro defines an offset into the FPU context for use in assembly.

◆ F2_F3_OFFSET

#define F2_F3_OFFSET   0x08

This macro defines an offset into the FPU context for use in assembly.

◆ F2O_F21_OFFSET

#define F2O_F21_OFFSET   0x50

This macro defines an offset into the FPU context for use in assembly.

◆ F3O_F31_OFFSET

#define F3O_F31_OFFSET   0x78

This macro defines an offset into the FPU context for use in assembly.

◆ F4_F5_OFFSET

#define F4_F5_OFFSET   0x10

This macro defines an offset into the FPU context for use in assembly.

◆ F6_F7_OFFSET

#define F6_F7_OFFSET   0x18

This macro defines an offset into the FPU context for use in assembly.

◆ F8_F9_OFFSET

#define F8_F9_OFFSET   0x20

This macro defines an offset into the FPU context for use in assembly.

◆ FO_F1_OFFSET

#define FO_F1_OFFSET   0x00

This macro defines an offset into the FPU context for use in assembly.

◆ FSR_OFFSET

#define FSR_OFFSET   0x80

This macro defines an offset into the FPU context for use in assembly.

◆ G5_OFFSET

#define G5_OFFSET   0x00

This macro defines an offset into the context for use in assembly.

◆ G7_OFFSET

#define G7_OFFSET   0x04

This macro defines an offset into the context for use in assembly.

◆ I0_OFFSET

#define I0_OFFSET   0x28

This macro defines an offset into the context for use in assembly.

◆ I1_OFFSET

#define I1_OFFSET   0x2C

This macro defines an offset into the context for use in assembly.

◆ I2_OFFSET

#define I2_OFFSET   0x30

This macro defines an offset into the context for use in assembly.

◆ I3_OFFSET

#define I3_OFFSET   0x34

This macro defines an offset into the context for use in assembly.

◆ I4_OFFSET

#define I4_OFFSET   0x38

This macro defines an offset into the context for use in assembly.

◆ I5_OFFSET

#define I5_OFFSET   0x3C

This macro defines an offset into the context for use in assembly.

◆ I6_FP_OFFSET

#define I6_FP_OFFSET   0x40

This macro defines an offset into the context for use in assembly.

◆ I7_OFFSET

#define I7_OFFSET   0x44

This macro defines an offset into the context for use in assembly.

◆ ISR_DISPATCH_DISABLE_STACK_OFFSET

#define ISR_DISPATCH_DISABLE_STACK_OFFSET   0x54

This macro defines an offset into the context for use in assembly.

◆ L0_OFFSET

#define L0_OFFSET   0x08

This macro defines an offset into the context for use in assembly.

◆ L1_OFFSET

#define L1_OFFSET   0x0C

This macro defines an offset into the context for use in assembly.

◆ L2_OFFSET

#define L2_OFFSET   0x10

This macro defines an offset into the context for use in assembly.

◆ L3_OFFSET

#define L3_OFFSET   0x14

This macro defines an offset into the context for use in assembly.

◆ L4_OFFSET

#define L4_OFFSET   0x18

This macro defines an offset into the context for use in assembly.

◆ L5_OFFSET

#define L5_OFFSET   0x1C

This macro defines an offset into the context for use in assembly.

◆ L6_OFFSET

#define L6_OFFSET   0x20

This macro defines an offset into the context for use in assembly.

◆ L7_OFFSET

#define L7_OFFSET   0x24

This macro defines an offset into the context for use in assembly.

◆ O6_SP_OFFSET

#define O6_SP_OFFSET   0x48

This macro defines an offset into the context for use in assembly.

◆ O7_OFFSET

#define O7_OFFSET   0x4C

This macro defines an offset into the context for use in assembly.

◆ PSR_OFFSET

#define PSR_OFFSET   0x50

This macro defines an offset into the context for use in assembly.