summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2018-11-09 07:54:31 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2018-11-12 13:25:42 +0100
commitd997aa1f0e0e149bfffb3fd6d7ec0a605f25cc7c (patch)
tree74bfc316e39ab371bd5802cb7676a5648855bcce
parentrtems: Simplify rtems_interrupt_catch() (diff)
downloadrtems-d997aa1f0e0e149bfffb3fd6d7ec0a605f25cc7c.tar.bz2
no_cpu: Remove use of proc_ptr
Update #3585.
-rw-r--r--cpukit/score/cpu/no_cpu/cpu.c38
-rw-r--r--cpukit/score/cpu/no_cpu/include/rtems/score/cpu.h21
2 files changed, 35 insertions, 24 deletions
diff --git a/cpukit/score/cpu/no_cpu/cpu.c b/cpukit/score/cpu/no_cpu/cpu.c
index fe1e303320..62027089b8 100644
--- a/cpukit/score/cpu/no_cpu/cpu.c
+++ b/cpukit/score/cpu/no_cpu/cpu.c
@@ -51,9 +51,9 @@ uint32_t _CPU_ISR_Get_level( void )
*/
void _CPU_ISR_install_raw_handler(
- uint32_t vector,
- proc_ptr new_handler,
- proc_ptr *old_handler
+ uint32_t vector,
+ CPU_ISR_raw_handler new_handler,
+ CPU_ISR_raw_handler *old_handler
)
{
/*
@@ -63,27 +63,29 @@ void _CPU_ISR_install_raw_handler(
}
void _CPU_ISR_install_vector(
- uint32_t vector,
- proc_ptr new_handler,
- proc_ptr *old_handler
+ uint32_t vector,
+ CPU_ISR_handler new_handler,
+ CPU_ISR_handler *old_handler
)
{
- *old_handler = _ISR_Vector_table[ vector ];
+ CPU_ISR_raw_handler ignored;
- /*
- * If the interrupt vector table is a table of pointer to isr entry
- * points, then we need to install the appropriate RTEMS interrupt
- * handler for this vector number.
- */
+ *old_handler = _ISR_Vector_table[ vector ];
- _CPU_ISR_install_raw_handler( vector, new_handler, old_handler );
+ /*
+ * If the interrupt vector table is a table of pointer to isr entry
+ * points, then we need to install the appropriate RTEMS interrupt
+ * handler for this vector number.
+ */
+
+ _CPU_ISR_install_raw_handler( vector, _ISR_Handler, &ignored );
- /*
- * We put the actual user ISR address in '_ISR_vector_table'. This will
- * be used by the _ISR_Handler so the user gets control.
- */
+ /*
+ * We put the actual user ISR address in '_ISR_vector_table'. This will
+ * be used by the _ISR_Handler so the user gets control.
+ */
- _ISR_Vector_table[ vector ] = new_handler;
+ _ISR_Vector_table[ vector ] = new_handler;
}
/*
diff --git a/cpukit/score/cpu/no_cpu/include/rtems/score/cpu.h b/cpukit/score/cpu/no_cpu/include/rtems/score/cpu.h
index 8e66182bba..a9294d02a2 100644
--- a/cpukit/score/cpu/no_cpu/include/rtems/score/cpu.h
+++ b/cpukit/score/cpu/no_cpu/include/rtems/score/cpu.h
@@ -976,12 +976,16 @@ uint32_t _CPU_ISR_Get_level( void );
*/
void _CPU_Initialize(void);
+typedef void ( *CPU_ISR_raw_handler )( void );
+
/**
* @ingroup CPUInterrupt
*
* This routine installs a "raw" interrupt handler directly into the
* processor's vector table.
*
+ * This routine is not used by architecture-independent code and thus optional.
+ *
* @param[in] vector is the vector number
* @param[in] new_handler is the raw ISR handler to install
* @param[in] old_handler is the previously installed ISR Handler
@@ -991,16 +995,21 @@ void _CPU_Initialize(void);
* XXX document implementation including references if appropriate
*/
void _CPU_ISR_install_raw_handler(
- uint32_t vector,
- proc_ptr new_handler,
- proc_ptr *old_handler
+ uint32_t vector,
+ CPU_ISR_raw_handler new_handler,
+ CPU_ISR_raw_handler *old_handler
);
+typedef void ( *CPU_ISR_handler )( uint32_t );
+
/**
* @ingroup CPUInterrupt
*
* This routine installs an interrupt vector.
*
+ * This routine is only used by architecture-independent code if
+ * CPU_SIMPLE_VECTORED_INTERRUPTS == TRUE, otherwise it is optional.
+ *
* @param[in] vector is the vector number
* @param[in] new_handler is the RTEMS ISR handler to install
* @param[in] old_handler is the previously installed ISR Handler
@@ -1010,9 +1019,9 @@ void _CPU_ISR_install_raw_handler(
* XXX document implementation including references if appropriate
*/
void _CPU_ISR_install_vector(
- uint32_t vector,
- proc_ptr new_handler,
- proc_ptr *old_handler
+ uint32_t vector,
+ CPU_ISR_handler new_handler,
+ CPU_ISR_handler *old_handler
);
/**