RTEMS
Classes | Macros | Typedefs | Functions
SPARC Context Structures

Classes

struct  Context_Control
 SPARC basic 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 SPARC_CONTEXT_CONTROL_IS_EXECUTING_OFFSET   0x58
 
#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
 

Functions

static bool _CPU_Context_Get_is_executing (const Context_Control *context)
 
static void _CPU_Context_Set_is_executing (Context_Control *context, bool is_executing)
 

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.

Definition at line 393 of file cpu.h.

◆ CONTEXT_CONTROL_FP_SIZE

#define CONTEXT_CONTROL_FP_SIZE   0x84

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

Definition at line 557 of file cpu.h.

◆ F12_F13_OFFSET

#define F12_F13_OFFSET   0x30

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

Definition at line 534 of file cpu.h.

◆ F14_F15_OFFSET

#define F14_F15_OFFSET   0x38

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

Definition at line 536 of file cpu.h.

◆ F16_F17_OFFSET

#define F16_F17_OFFSET   0x40

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

Definition at line 538 of file cpu.h.

◆ F18_F19_OFFSET

#define F18_F19_OFFSET   0x48

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

Definition at line 540 of file cpu.h.

◆ F1O_F11_OFFSET

#define F1O_F11_OFFSET   0x28

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

Definition at line 532 of file cpu.h.

◆ F22_F23_OFFSET

#define F22_F23_OFFSET   0x58

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

Definition at line 544 of file cpu.h.

◆ F24_F25_OFFSET

#define F24_F25_OFFSET   0x60

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

Definition at line 546 of file cpu.h.

◆ F26_F27_OFFSET

#define F26_F27_OFFSET   0x68

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

Definition at line 548 of file cpu.h.

◆ F28_F29_OFFSET

#define F28_F29_OFFSET   0x70

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

Definition at line 550 of file cpu.h.

◆ F2_F3_OFFSET

#define F2_F3_OFFSET   0x08

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

Definition at line 524 of file cpu.h.

◆ F2O_F21_OFFSET

#define F2O_F21_OFFSET   0x50

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

Definition at line 542 of file cpu.h.

◆ F3O_F31_OFFSET

#define F3O_F31_OFFSET   0x78

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

Definition at line 552 of file cpu.h.

◆ F4_F5_OFFSET

#define F4_F5_OFFSET   0x10

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

Definition at line 526 of file cpu.h.

◆ F6_F7_OFFSET

#define F6_F7_OFFSET   0x18

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

Definition at line 528 of file cpu.h.

◆ F8_F9_OFFSET

#define F8_F9_OFFSET   0x20

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

Definition at line 530 of file cpu.h.

◆ FO_F1_OFFSET

#define FO_F1_OFFSET   0x00

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

Definition at line 522 of file cpu.h.

◆ FSR_OFFSET

#define FSR_OFFSET   0x80

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

Definition at line 554 of file cpu.h.

◆ G5_OFFSET

#define G5_OFFSET   0x00

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

Definition at line 420 of file cpu.h.

◆ G7_OFFSET

#define G7_OFFSET   0x04

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

Definition at line 422 of file cpu.h.

◆ I0_OFFSET

#define I0_OFFSET   0x28

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

Definition at line 442 of file cpu.h.

◆ I1_OFFSET

#define I1_OFFSET   0x2C

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

Definition at line 444 of file cpu.h.

◆ I2_OFFSET

#define I2_OFFSET   0x30

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

Definition at line 446 of file cpu.h.

◆ I3_OFFSET

#define I3_OFFSET   0x34

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

Definition at line 448 of file cpu.h.

◆ I4_OFFSET

#define I4_OFFSET   0x38

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

Definition at line 450 of file cpu.h.

◆ I5_OFFSET

#define I5_OFFSET   0x3C

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

Definition at line 452 of file cpu.h.

◆ I6_FP_OFFSET

#define I6_FP_OFFSET   0x40

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

Definition at line 454 of file cpu.h.

◆ I7_OFFSET

#define I7_OFFSET   0x44

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

Definition at line 456 of file cpu.h.

◆ ISR_DISPATCH_DISABLE_STACK_OFFSET

#define ISR_DISPATCH_DISABLE_STACK_OFFSET   0x54

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

Definition at line 466 of file cpu.h.

◆ L0_OFFSET

#define L0_OFFSET   0x08

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

Definition at line 425 of file cpu.h.

◆ L1_OFFSET

#define L1_OFFSET   0x0C

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

Definition at line 427 of file cpu.h.

◆ L2_OFFSET

#define L2_OFFSET   0x10

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

Definition at line 429 of file cpu.h.

◆ L3_OFFSET

#define L3_OFFSET   0x14

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

Definition at line 431 of file cpu.h.

◆ L4_OFFSET

#define L4_OFFSET   0x18

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

Definition at line 433 of file cpu.h.

◆ L5_OFFSET

#define L5_OFFSET   0x1C

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

Definition at line 435 of file cpu.h.

◆ L6_OFFSET

#define L6_OFFSET   0x20

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

Definition at line 437 of file cpu.h.

◆ L7_OFFSET

#define L7_OFFSET   0x24

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

Definition at line 439 of file cpu.h.

◆ O6_SP_OFFSET

#define O6_SP_OFFSET   0x48

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

Definition at line 459 of file cpu.h.

◆ O7_OFFSET

#define O7_OFFSET   0x4C

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

Definition at line 461 of file cpu.h.

◆ PSR_OFFSET

#define PSR_OFFSET   0x50

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

Definition at line 464 of file cpu.h.