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

SPARC Architecture Support. More...

Topics

 SPARC Assembler Support
 SPARC Assembler Support.
 SPARC Context Structures

Files

file  cpukit/score/cpu/sparc/cpu.c
 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().
file  cpukit/score/cpu/sparc/include/libcpu/grlib-tn-0018.h
 This header file provides interfaces of the GRLIB-TN-0018 LEON3FT RETT Restart Errata fixes.
file  cpukit/score/cpu/sparc/include/rtems/score/cpu.h
 This header file defines interfaces pertaining to the port of the executive to the SPARC processor.
file  cpukit/score/cpu/sparc/include/rtems/score/cpuimpl.h
 This header file defines implementation interfaces pertaining to the port of the executive to the SPARC processor.
file  cpukit/score/cpu/sparc/include/rtems/score/sparc.h
 This header file provides information required to build RTEMS for a particular member of the SPARC family.
file  cpukit/score/cpu/sparc/sparc-exception-frame-print.c
 This source file contains the SPARC-specific implementation of _CPU_Exception_frame_print().
file  cpukit/score/cpu/sparc/sparc-isr-install.c
 This source file contains the SPARC-specific implementation of _CPU_ISR_install_raw_handler() and _CPU_ISR_install_vector().
file  cpukit/score/cpu/sparc/syscall.h
 This header file provides system call interfaces.

Data Structures

struct  CPU_Per_CPU_control
 The CPU specific per-CPU control. More...

Macros

#define SPARC_MINIMUM_STACK_FRAME_SIZE   0x60
#define ISF_PSR_OFFSET   SPARC_MINIMUM_STACK_FRAME_SIZE + 0x00
#define ISF_PC_OFFSET   SPARC_MINIMUM_STACK_FRAME_SIZE + 0x04
#define ISF_NPC_OFFSET   SPARC_MINIMUM_STACK_FRAME_SIZE + 0x08
#define ISF_G1_OFFSET   SPARC_MINIMUM_STACK_FRAME_SIZE + 0x0c
#define ISF_G2_OFFSET   SPARC_MINIMUM_STACK_FRAME_SIZE + 0x10
#define ISF_G3_OFFSET   SPARC_MINIMUM_STACK_FRAME_SIZE + 0x14
#define ISF_G4_OFFSET   SPARC_MINIMUM_STACK_FRAME_SIZE + 0x18
#define ISF_G5_OFFSET   SPARC_MINIMUM_STACK_FRAME_SIZE + 0x1c
#define ISF_G7_OFFSET   SPARC_MINIMUM_STACK_FRAME_SIZE + 0x24
#define ISF_I0_OFFSET   SPARC_MINIMUM_STACK_FRAME_SIZE + 0x28
#define ISF_I1_OFFSET   SPARC_MINIMUM_STACK_FRAME_SIZE + 0x2c
#define ISF_I2_OFFSET   SPARC_MINIMUM_STACK_FRAME_SIZE + 0x30
#define ISF_I3_OFFSET   SPARC_MINIMUM_STACK_FRAME_SIZE + 0x34
#define ISF_I4_OFFSET   SPARC_MINIMUM_STACK_FRAME_SIZE + 0x38
#define ISF_I5_OFFSET   SPARC_MINIMUM_STACK_FRAME_SIZE + 0x3c
#define ISF_I6_FP_OFFSET   SPARC_MINIMUM_STACK_FRAME_SIZE + 0x40
#define ISF_I7_OFFSET   SPARC_MINIMUM_STACK_FRAME_SIZE + 0x44
#define ISF_Y_OFFSET   SPARC_MINIMUM_STACK_FRAME_SIZE + 0x48
#define ISF_TPC_OFFSET   SPARC_MINIMUM_STACK_FRAME_SIZE + 0x4c
#define CPU_INTERRUPT_FRAME_SIZE   SPARC_MINIMUM_STACK_FRAME_SIZE + 0x50
#define SPARC_FP_CONTEXT_OFFSET_F0_F1   0
#define SPARC_FP_CONTEXT_OFFSET_F2_F3   8
#define SPARC_FP_CONTEXT_OFFSET_F4_F5   16
#define SPARC_FP_CONTEXT_OFFSET_F6_F7   24
#define SPARC_FP_CONTEXT_OFFSET_F8_F9   32
#define SPARC_FP_CONTEXT_OFFSET_F10_F11   40
#define SPARC_FP_CONTEXT_OFFSET_F12_F13   48
#define SPARC_FP_CONTEXT_OFFSET_F14_F15   56
#define SPARC_FP_CONTEXT_OFFSET_F16_F17   64
#define SPARC_FP_CONTEXT_OFFSET_F18_F19   72
#define SPARC_FP_CONTEXT_OFFSET_F20_F21   80
#define SPARC_FP_CONTEXT_OFFSET_F22_F23   88
#define SPARC_FP_CONTEXT_OFFSET_F24_F25   96
#define SPARC_FP_CONTEXT_OFFSET_F26_F27   104
#define SPARC_FP_CONTEXT_OFFSET_F28_F29   112
#define SPARC_FP_CONTEXT_OFFSET_F30_F31   120
#define SPARC_FP_CONTEXT_OFFSET_FSR   128
#define CPU_PER_CPU_CONTROL_SIZE   0
#define CPU_THREAD_LOCAL_STORAGE_VARIANT   20
#define SPARC_REGISTER_WINDOW_OFFSET_LOCAL(i)
#define SPARC_REGISTER_WINDOW_OFFSET_INPUT(i)
#define SPARC_REGISTER_WINDOW_SIZE   64
#define SPARC_EXCEPTION_OFFSET_PSR   0
#define SPARC_EXCEPTION_OFFSET_PC   4
#define SPARC_EXCEPTION_OFFSET_NPC   8
#define SPARC_EXCEPTION_OFFSET_TRAP   12
#define SPARC_EXCEPTION_OFFSET_WIM   16
#define SPARC_EXCEPTION_OFFSET_Y   20
#define SPARC_EXCEPTION_OFFSET_GLOBAL(i)
#define SPARC_EXCEPTION_OFFSET_OUTPUT(i)
#define SPARC_EXCEPTION_OFFSET_WINDOWS(i)
#define SPARC_EXCEPTION_FRAME_SIZE   536
#define _CPU_Get_current_per_CPU_control()
#define _CPU_Get_thread_executing()

Functions

register struct Per_CPU_Control *_SPARC_Per_CPU_current __asm__ ("g6")
 The pointer to the current per-CPU control is available via register g6.
void _CPU_Context_volatile_clobber (uintptr_t pattern)
void _CPU_Context_validate (uintptr_t pattern)

Detailed Description

SPARC Architecture Support.

Macro Definition Documentation

◆ _CPU_Get_current_per_CPU_control

#define _CPU_Get_current_per_CPU_control ( )
Value:
_SPARC_Per_CPU_current

◆ _CPU_Get_thread_executing

#define _CPU_Get_thread_executing ( )
Value:
( _SPARC_Per_CPU_current->executing )

◆ CPU_INTERRUPT_FRAME_SIZE

#define CPU_INTERRUPT_FRAME_SIZE   SPARC_MINIMUM_STACK_FRAME_SIZE + 0x50

This defines the size of the ISF area for use in assembly.

◆ ISF_G1_OFFSET

#define ISF_G1_OFFSET   SPARC_MINIMUM_STACK_FRAME_SIZE + 0x0c

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

◆ ISF_G2_OFFSET

#define ISF_G2_OFFSET   SPARC_MINIMUM_STACK_FRAME_SIZE + 0x10

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

◆ ISF_G3_OFFSET

#define ISF_G3_OFFSET   SPARC_MINIMUM_STACK_FRAME_SIZE + 0x14

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

◆ ISF_G4_OFFSET

#define ISF_G4_OFFSET   SPARC_MINIMUM_STACK_FRAME_SIZE + 0x18

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

◆ ISF_G5_OFFSET

#define ISF_G5_OFFSET   SPARC_MINIMUM_STACK_FRAME_SIZE + 0x1c

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

◆ ISF_G7_OFFSET

#define ISF_G7_OFFSET   SPARC_MINIMUM_STACK_FRAME_SIZE + 0x24

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

◆ ISF_I0_OFFSET

#define ISF_I0_OFFSET   SPARC_MINIMUM_STACK_FRAME_SIZE + 0x28

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

◆ ISF_I1_OFFSET

#define ISF_I1_OFFSET   SPARC_MINIMUM_STACK_FRAME_SIZE + 0x2c

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

◆ ISF_I2_OFFSET

#define ISF_I2_OFFSET   SPARC_MINIMUM_STACK_FRAME_SIZE + 0x30

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

◆ ISF_I3_OFFSET

#define ISF_I3_OFFSET   SPARC_MINIMUM_STACK_FRAME_SIZE + 0x34

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

◆ ISF_I4_OFFSET

#define ISF_I4_OFFSET   SPARC_MINIMUM_STACK_FRAME_SIZE + 0x38

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

◆ ISF_I5_OFFSET

#define ISF_I5_OFFSET   SPARC_MINIMUM_STACK_FRAME_SIZE + 0x3c

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

◆ ISF_I6_FP_OFFSET

#define ISF_I6_FP_OFFSET   SPARC_MINIMUM_STACK_FRAME_SIZE + 0x40

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

◆ ISF_I7_OFFSET

#define ISF_I7_OFFSET   SPARC_MINIMUM_STACK_FRAME_SIZE + 0x44

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

◆ ISF_NPC_OFFSET

#define ISF_NPC_OFFSET   SPARC_MINIMUM_STACK_FRAME_SIZE + 0x08

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

◆ ISF_PC_OFFSET

#define ISF_PC_OFFSET   SPARC_MINIMUM_STACK_FRAME_SIZE + 0x04

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

◆ ISF_PSR_OFFSET

#define ISF_PSR_OFFSET   SPARC_MINIMUM_STACK_FRAME_SIZE + 0x00

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

◆ ISF_TPC_OFFSET

#define ISF_TPC_OFFSET   SPARC_MINIMUM_STACK_FRAME_SIZE + 0x4c

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

◆ ISF_Y_OFFSET

#define ISF_Y_OFFSET   SPARC_MINIMUM_STACK_FRAME_SIZE + 0x48

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

◆ SPARC_EXCEPTION_OFFSET_GLOBAL

#define SPARC_EXCEPTION_OFFSET_GLOBAL ( i)
Value:
( ( i ) * 4 + 24 )

◆ SPARC_EXCEPTION_OFFSET_OUTPUT

#define SPARC_EXCEPTION_OFFSET_OUTPUT ( i)
Value:
( ( i ) * 4 + 56 )

◆ SPARC_EXCEPTION_OFFSET_WINDOWS

#define SPARC_EXCEPTION_OFFSET_WINDOWS ( i)
Value:
( ( i ) * 64 + 88 )

◆ SPARC_MINIMUM_STACK_FRAME_SIZE

#define SPARC_MINIMUM_STACK_FRAME_SIZE   0x60

This defines the size of the minimum stack frame.

◆ SPARC_REGISTER_WINDOW_OFFSET_INPUT

#define SPARC_REGISTER_WINDOW_OFFSET_INPUT ( i)
Value:
( ( i ) * 4 + 32 )

◆ SPARC_REGISTER_WINDOW_OFFSET_LOCAL

#define SPARC_REGISTER_WINDOW_OFFSET_LOCAL ( i)
Value:
( ( i ) * 4 )