mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2025-12-26 06:08:20 +00:00
rtems: Simplify rtems_interrupt_catch()
Remove casts and superfluous inline functions. Update #3585.
This commit is contained in:
@@ -18,54 +18,26 @@
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include <rtems/system.h>
|
||||
#include <rtems/rtems/status.h>
|
||||
#include <rtems/score/isr.h>
|
||||
#include <rtems/rtems/intr.h>
|
||||
#include <rtems/score/isr.h>
|
||||
|
||||
#if (CPU_SIMPLE_VECTORED_INTERRUPTS == TRUE)
|
||||
|
||||
/**
|
||||
* This function returns true if the vector is a valid vector number
|
||||
* for this processor and false otherwise.
|
||||
*/
|
||||
|
||||
RTEMS_INLINE_ROUTINE bool _ISR_Is_vector_number_valid (
|
||||
uint32_t vector
|
||||
)
|
||||
{
|
||||
return ( vector <= CPU_INTERRUPT_MAXIMUM_VECTOR_NUMBER );
|
||||
}
|
||||
|
||||
/**
|
||||
* This function returns true if handler is the entry point of a valid
|
||||
* use interrupt service routine and false otherwise.
|
||||
*/
|
||||
|
||||
RTEMS_INLINE_ROUTINE bool _ISR_Is_valid_user_handler (
|
||||
void *handler
|
||||
)
|
||||
{
|
||||
return (handler != NULL);
|
||||
}
|
||||
|
||||
rtems_status_code rtems_interrupt_catch(
|
||||
rtems_isr_entry new_isr_handler,
|
||||
rtems_vector_number vector,
|
||||
rtems_isr_entry *old_isr_handler
|
||||
)
|
||||
{
|
||||
if ( !_ISR_Is_vector_number_valid( vector ) )
|
||||
if ( vector > CPU_INTERRUPT_MAXIMUM_VECTOR_NUMBER )
|
||||
return RTEMS_INVALID_NUMBER;
|
||||
|
||||
if ( !_ISR_Is_valid_user_handler( (void *) new_isr_handler ) )
|
||||
if ( new_isr_handler == NULL )
|
||||
return RTEMS_INVALID_ADDRESS;
|
||||
|
||||
if ( !_ISR_Is_valid_user_handler( (void *) old_isr_handler ) )
|
||||
if ( old_isr_handler == NULL )
|
||||
return RTEMS_INVALID_ADDRESS;
|
||||
|
||||
_ISR_Install_vector(
|
||||
vector, (proc_ptr)new_isr_handler, (proc_ptr *)old_isr_handler );
|
||||
_ISR_Install_vector( vector, new_isr_handler, old_isr_handler );
|
||||
|
||||
return RTEMS_SUCCESSFUL;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user