forked from Imagelibrary/rtems
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -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
|
||||||
);
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user