RTEMS 6.1-rc2
|
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. | |
RTEMS_NO_RETURN void | _CPU_Fatal_halt (uint32_t source, CPU_Uint32ptr error) |
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.
RTEMS_NO_RETURN void _CPU_Fatal_halt | ( | uint32_t | source, |
CPU_Uint32ptr | error | ||
) |
COPYRIGHT (c) 2016. On-Line Applications Research Corporation (OAR).
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.