arm: Provide CPU_Interrupt_frame for ARMv4

Update #2809.
This commit is contained in:
Sebastian Huber
2016-11-18 07:30:33 +01:00
parent 2599c8e63e
commit dbeccf0ec0
2 changed files with 55 additions and 3 deletions
-2
View File
@@ -687,8 +687,6 @@ typedef struct {
uint32_t reserved_for_stack_alignment;
} CPU_Exception_frame;
typedef CPU_Exception_frame CPU_Interrupt_frame;
void _CPU_Exception_frame_print( const CPU_Exception_frame *frame );
void _ARM_Exception_default( CPU_Exception_frame *frame );
+55 -1
View File
@@ -5,7 +5,7 @@
*/
/*
* Copyright (c) 2013 embedded brains GmbH
* Copyright (c) 2013, 2016 embedded brains GmbH
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
@@ -19,6 +19,18 @@
#define CPU_PER_CPU_CONTROL_SIZE 0
#ifdef ARM_MULTILIB_ARCH_V4
#if defined(ARM_MULTILIB_VFP_D32)
#define CPU_INTERRUPT_FRAME_SIZE 240
#elif defined(ARM_MULTILIB_VFP)
#define CPU_INTERRUPT_FRAME_SIZE 112
#else
#define CPU_INTERRUPT_FRAME_SIZE 40
#endif
#endif /* ARM_MULTILIB_ARCH_V4 */
#ifndef ASM
#ifdef __cplusplus
@@ -27,6 +39,48 @@ extern "C" {
#ifdef ARM_MULTILIB_ARCH_V4
typedef struct {
#ifdef ARM_MULTILIB_VFP
uint32_t fpscr;
#ifdef ARM_MULTILIB_VFP_D32
double d16;
double d17;
double d18;
double d19;
double d20;
double d21;
double d22;
double d23;
double d24;
double d25;
double d26;
double d27;
double d28;
double d29;
double d30;
double d31;
#endif /* ARM_MULTILIB_VFP_D32 */
double d0;
double d1;
double d2;
double d3;
double d4;
double d5;
double d6;
double d7;
#endif /* ARM_MULTILIB_VFP */
uint32_t r9;
uint32_t lr;
uint32_t r0;
uint32_t r1;
uint32_t r2;
uint32_t r3;
uint32_t return_pc;
uint32_t return_cpsr;
uint32_t r7;
uint32_t r12;
} CPU_Interrupt_frame;
#ifdef RTEMS_SMP
static inline struct Per_CPU_Control *_ARM_Get_current_per_CPU_control( void )