[PATCH 13/26] powerpc: Move legacy CPU_Interrupt_frame
Sebastian Huber
sebastian.huber at embedded-brains.de
Tue Nov 15 13:51:45 UTC 2016
The only remaining user of CPU_Interrupt_frame on PowerPC is the mpc5xx
support. Move it to here.
Update #2809.
---
c/src/lib/libbsp/powerpc/ss555/irq/irq.h | 1 -
c/src/lib/libcpu/powerpc/mpc5xx/irq/irq.h | 33 ++++++++++++++++++++++++++++++
cpukit/score/cpu/powerpc/rtems/score/cpu.h | 31 ----------------------------
3 files changed, 33 insertions(+), 32 deletions(-)
diff --git a/c/src/lib/libbsp/powerpc/ss555/irq/irq.h b/c/src/lib/libbsp/powerpc/ss555/irq/irq.h
index 31c4be9..44e3960 100644
--- a/c/src/lib/libbsp/powerpc/ss555/irq/irq.h
+++ b/c/src/lib/libbsp/powerpc/ss555/irq/irq.h
@@ -44,7 +44,6 @@ int CPU_get_current_rtems_irq_handler(rtems_irq_connect_data* irq);
int CPU_remove_rtems_irq_handler(const rtems_irq_connect_data* irq);
int CPU_rtems_irq_mngt_set(rtems_irq_global_settings* config);
int CPU_rtems_irq_mngt_get(rtems_irq_global_settings** config);
-void C_dispatch_irq_handler(CPU_Interrupt_frame *frame, unsigned int excNum);
void C_default_exception_handler(CPU_Exception_frame* excPtr);
/*
diff --git a/c/src/lib/libcpu/powerpc/mpc5xx/irq/irq.h b/c/src/lib/libcpu/powerpc/mpc5xx/irq/irq.h
index c1ec403..8e634d1 100644
--- a/c/src/lib/libcpu/powerpc/mpc5xx/irq/irq.h
+++ b/c/src/lib/libcpu/powerpc/mpc5xx/irq/irq.h
@@ -161,6 +161,39 @@ int CPU_irq_level_from_symbolic_name(const rtems_irq_number name);
extern void CPU_rtems_irq_mng_init(unsigned cpuId);
+typedef struct CPU_Interrupt_frame {
+ uint32_t stacklink; /* Ensure this is a real frame (also reg1 save) */
+ uint32_t calleeLr; /* link register used by callees: SVR4/EABI */
+
+ /* This is what is left out of the primary contexts */
+ uint32_t gpr0;
+ uint32_t gpr2; /* play safe */
+ uint32_t gpr3;
+ uint32_t gpr4;
+ uint32_t gpr5;
+ uint32_t gpr6;
+ uint32_t gpr7;
+ uint32_t gpr8;
+ uint32_t gpr9;
+ uint32_t gpr10;
+ uint32_t gpr11;
+ uint32_t gpr12;
+ uint32_t gpr13; /* Play safe */
+ uint32_t gpr28; /* For internal use by the IRQ handler */
+ uint32_t gpr29; /* For internal use by the IRQ handler */
+ uint32_t gpr30; /* For internal use by the IRQ handler */
+ uint32_t gpr31; /* For internal use by the IRQ handler */
+ uint32_t cr; /* Bits of this are volatile, so no-one may save */
+ uint32_t ctr;
+ uint32_t xer;
+ uint32_t lr;
+ uint32_t pc;
+ uint32_t msr;
+ uint32_t pad[3];
+} CPU_Interrupt_frame;
+
+void C_dispatch_irq_handler(CPU_Interrupt_frame *frame, unsigned int excNum);
+
#endif
#endif
diff --git a/cpukit/score/cpu/powerpc/rtems/score/cpu.h b/cpukit/score/cpu/powerpc/rtems/score/cpu.h
index bd729c0..dc42d99 100644
--- a/cpukit/score/cpu/powerpc/rtems/score/cpu.h
+++ b/cpukit/score/cpu/powerpc/rtems/score/cpu.h
@@ -437,37 +437,6 @@ typedef struct {
#endif /* (PPC_HAS_FPU == 1) */
} Context_Control_fp;
-typedef struct CPU_Interrupt_frame {
- uint32_t stacklink; /* Ensure this is a real frame (also reg1 save) */
- uint32_t calleeLr; /* link register used by callees: SVR4/EABI */
-
- /* This is what is left out of the primary contexts */
- uint32_t gpr0;
- uint32_t gpr2; /* play safe */
- uint32_t gpr3;
- uint32_t gpr4;
- uint32_t gpr5;
- uint32_t gpr6;
- uint32_t gpr7;
- uint32_t gpr8;
- uint32_t gpr9;
- uint32_t gpr10;
- uint32_t gpr11;
- uint32_t gpr12;
- uint32_t gpr13; /* Play safe */
- uint32_t gpr28; /* For internal use by the IRQ handler */
- uint32_t gpr29; /* For internal use by the IRQ handler */
- uint32_t gpr30; /* For internal use by the IRQ handler */
- uint32_t gpr31; /* For internal use by the IRQ handler */
- uint32_t cr; /* Bits of this are volatile, so no-one may save */
- uint32_t ctr;
- uint32_t xer;
- uint32_t lr;
- uint32_t pc;
- uint32_t msr;
- uint32_t pad[3];
-} CPU_Interrupt_frame;
-
#endif /* ASM */
/*
--
1.8.4.5
More information about the devel
mailing list