rtems: Simplify rtems_interrupt_catch()

Remove casts and superfluous inline functions.

Update #3585.
This commit is contained in:
Sebastian Huber
2018-11-08 06:25:32 +01:00
parent b15b288179
commit 3faa845984

View File

@@ -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;
}