RTEMS 6.1-rc2
Loading...
Searching...
No Matches
Modules | Files | Data Structures | Macros | Functions

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)
 

Detailed Description

SPARC Architecture Support.

Macro Definition Documentation

◆ 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_MINIMUM_STACK_FRAME_SIZE

#define SPARC_MINIMUM_STACK_FRAME_SIZE   0x60

This defines the size of the minimum stack frame.

Function Documentation

◆ _CPU_Fatal_halt()

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:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

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.