RTEMS 6.1-rc4
|
SPARC Architecture Support. More...
Modules | |
SPARC Assembler Support | |
SPARC Assembler Support. | |
SPARC Context Structures | |
Files | |
file | 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 | grlib-tn-0018.h |
This header file provides interfaces of the GRLIB-TN-0018 LEON3FT RETT Restart Errata fixes. | |
file | cpu.h |
This header file defines interfaces pertaining to the port of the executive to the SPARC processor. | |
file | cpuimpl.h |
This header file defines implementation interfaces pertaining to the port of the executive to the SPARC processor. | |
file | sparc.h |
This header file provides information required to build RTEMS for a particular member of the SPARC family. | |
file | sparc-exception-frame-print.c |
This source file contains the SPARC-specific implementation of _CPU_Exception_frame_print(). | |
file | sparc-isr-install.c |
This source file contains the SPARC-specific implementation of _CPU_ISR_install_raw_handler() and _CPU_ISR_install_vector(). | |
file | 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) ( ( i ) * 4 ) |
#define | SPARC_REGISTER_WINDOW_OFFSET_INPUT(i) ( ( i ) * 4 + 32 ) |
#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) ( ( i ) * 4 + 24 ) |
#define | SPARC_EXCEPTION_OFFSET_OUTPUT(i) ( ( i ) * 4 + 56 ) |
#define | SPARC_EXCEPTION_OFFSET_WINDOWS(i) ( ( i ) * 64 + 88 ) |
#define | SPARC_EXCEPTION_FRAME_SIZE 536 |
#define | _CPU_Get_current_per_CPU_control() _SPARC_Per_CPU_current |
#define | _CPU_Get_thread_executing() ( _SPARC_Per_CPU_current->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) |
SPARC Architecture Support.
#define CPU_INTERRUPT_FRAME_SIZE SPARC_MINIMUM_STACK_FRAME_SIZE + 0x50 |
This defines the size of the ISF area for use in assembly.
#define ISF_G1_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x0c |
This macro defines an offset into the ISF for use in assembly.
#define ISF_G2_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x10 |
This macro defines an offset into the ISF for use in assembly.
#define ISF_G3_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x14 |
This macro defines an offset into the ISF for use in assembly.
#define ISF_G4_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x18 |
This macro defines an offset into the ISF for use in assembly.
#define ISF_G5_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x1c |
This macro defines an offset into the ISF for use in assembly.
#define ISF_G7_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x24 |
This macro defines an offset into the ISF for use in assembly.
#define ISF_I0_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x28 |
This macro defines an offset into the ISF for use in assembly.
#define ISF_I1_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x2c |
This macro defines an offset into the ISF for use in assembly.
#define ISF_I2_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x30 |
This macro defines an offset into the ISF for use in assembly.
#define ISF_I3_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x34 |
This macro defines an offset into the ISF for use in assembly.
#define ISF_I4_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x38 |
This macro defines an offset into the ISF for use in assembly.
#define ISF_I5_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x3c |
This macro defines an offset into the ISF for use in assembly.
#define ISF_I6_FP_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x40 |
This macro defines an offset into the ISF for use in assembly.
#define ISF_I7_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x44 |
This macro defines an offset into the ISF for use in assembly.
#define ISF_NPC_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x08 |
This macro defines an offset into the ISF for use in assembly.
#define ISF_PC_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x04 |
This macro defines an offset into the ISF for use in assembly.
#define ISF_PSR_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x00 |
This macro defines an offset into the ISF for use in assembly.
#define ISF_TPC_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x4c |
This macro defines an offset into the ISF for use in assembly.
#define ISF_Y_OFFSET SPARC_MINIMUM_STACK_FRAME_SIZE + 0x48 |
This macro defines an offset into the ISF for use in assembly.
#define SPARC_MINIMUM_STACK_FRAME_SIZE 0x60 |
This defines the size of the minimum stack frame.