no_cpu: Remove use of proc_ptr

Update #3585.
This commit is contained in:
Sebastian Huber
2018-11-09 07:54:31 +01:00
parent 3faa845984
commit d997aa1f0e
2 changed files with 35 additions and 24 deletions

View File

@@ -51,9 +51,9 @@ uint32_t _CPU_ISR_Get_level( void )
*/ */
void _CPU_ISR_install_raw_handler( void _CPU_ISR_install_raw_handler(
uint32_t vector, uint32_t vector,
proc_ptr new_handler, CPU_ISR_raw_handler new_handler,
proc_ptr *old_handler CPU_ISR_raw_handler *old_handler
) )
{ {
/* /*
@@ -63,27 +63,29 @@ void _CPU_ISR_install_raw_handler(
} }
void _CPU_ISR_install_vector( void _CPU_ISR_install_vector(
uint32_t vector, uint32_t vector,
proc_ptr new_handler, CPU_ISR_handler new_handler,
proc_ptr *old_handler CPU_ISR_handler *old_handler
) )
{ {
*old_handler = _ISR_Vector_table[ vector ]; CPU_ISR_raw_handler ignored;
/* *old_handler = _ISR_Vector_table[ vector ];
* 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, 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.
*/
_ISR_Vector_table[ vector ] = new_handler; /*
* 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;
} }
/* /*

View File

@@ -976,12 +976,16 @@ uint32_t _CPU_ISR_Get_level( void );
*/ */
void _CPU_Initialize(void); void _CPU_Initialize(void);
typedef void ( *CPU_ISR_raw_handler )( void );
/** /**
* @ingroup CPUInterrupt * @ingroup CPUInterrupt
* *
* This routine installs a "raw" interrupt handler directly into the * This routine installs a "raw" interrupt handler directly into the
* processor's vector table. * 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] vector is the vector number
* @param[in] new_handler is the raw ISR handler to install * @param[in] new_handler is the raw ISR handler to install
* @param[in] old_handler is the previously installed ISR Handler * @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 * XXX document implementation including references if appropriate
*/ */
void _CPU_ISR_install_raw_handler( void _CPU_ISR_install_raw_handler(
uint32_t vector, uint32_t vector,
proc_ptr new_handler, CPU_ISR_raw_handler new_handler,
proc_ptr *old_handler CPU_ISR_raw_handler *old_handler
); );
typedef void ( *CPU_ISR_handler )( uint32_t );
/** /**
* @ingroup CPUInterrupt * @ingroup CPUInterrupt
* *
* This routine installs an interrupt vector. * 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] vector is the vector number
* @param[in] new_handler is the RTEMS ISR handler to install * @param[in] new_handler is the RTEMS ISR handler to install
* @param[in] old_handler is the previously installed ISR Handler * @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 * XXX document implementation including references if appropriate
*/ */
void _CPU_ISR_install_vector( void _CPU_ISR_install_vector(
uint32_t vector, uint32_t vector,
proc_ptr new_handler, CPU_ISR_handler new_handler,
proc_ptr *old_handler CPU_ISR_handler *old_handler
); );
/** /**