RTEMS  5.0.0
Data Structures | Macros | Typedefs
SPARC Context Structures

Data Structures

struct  Context_Control
 Thread register context. More...
 
struct  Context_Control_fp
 SPARC basic context. More...
 

Macros

#define _CPU_Context_Get_SP(_context)   (_context)->o6_sp
 
#define G5_OFFSET   0x00
 
#define G7_OFFSET   0x04
 
#define L0_OFFSET   0x08
 
#define L1_OFFSET   0x0C
 
#define L2_OFFSET   0x10
 
#define L3_OFFSET   0x14
 
#define L4_OFFSET   0x18
 
#define L5_OFFSET   0x1C
 
#define L6_OFFSET   0x20
 
#define L7_OFFSET   0x24
 
#define I0_OFFSET   0x28
 
#define I1_OFFSET   0x2C
 
#define I2_OFFSET   0x30
 
#define I3_OFFSET   0x34
 
#define I4_OFFSET   0x38
 
#define I5_OFFSET   0x3C
 
#define I6_FP_OFFSET   0x40
 
#define I7_OFFSET   0x44
 
#define O6_SP_OFFSET   0x48
 
#define O7_OFFSET   0x4C
 
#define PSR_OFFSET   0x50
 
#define ISR_DISPATCH_DISABLE_STACK_OFFSET   0x54
 
#define FO_F1_OFFSET   0x00
 
#define F2_F3_OFFSET   0x08
 
#define F4_F5_OFFSET   0x10
 
#define F6_F7_OFFSET   0x18
 
#define F8_F9_OFFSET   0x20
 
#define F1O_F11_OFFSET   0x28
 
#define F12_F13_OFFSET   0x30
 
#define F14_F15_OFFSET   0x38
 
#define F16_F17_OFFSET   0x40
 
#define F18_F19_OFFSET   0x48
 
#define F2O_F21_OFFSET   0x50
 
#define F22_F23_OFFSET   0x58
 
#define F24_F25_OFFSET   0x60
 
#define F26_F27_OFFSET   0x68
 
#define F28_F29_OFFSET   0x70
 
#define F3O_F31_OFFSET   0x78
 
#define FSR_OFFSET   0x80
 
#define CONTEXT_CONTROL_FP_SIZE   0x84
 

Typedefs

typedef struct Context_Control_fp Context_Control_fp
 

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.