validation: GetValidInterruptVectorNumber()

Update #3269.
This commit is contained in:
Sebastian Huber
2021-07-06 08:18:57 +02:00
parent 1465e78a59
commit bfec448682
2 changed files with 31 additions and 0 deletions

View File

@@ -43,6 +43,32 @@
#include <rtems/irq-extension.h> #include <rtems/irq-extension.h>
#include <rtems/test.h> #include <rtems/test.h>
#include <bsp/irq-generic.h>
rtems_vector_number GetValidInterruptVectorNumber(
const rtems_interrupt_attributes *required
)
{
rtems_vector_number vector;
for ( vector = 0; vector < BSP_INTERRUPT_VECTOR_COUNT; ++vector ) {
rtems_status_code sc;
rtems_interrupt_attributes attr;
sc = rtems_interrupt_get_attributes( vector, &attr );
if (
sc == RTEMS_SUCCESSFUL &&
( required == NULL ||
!required->can_get_affinity || attr.can_get_affinity )
) {
break;
}
}
return vector;
}
static void HasInstalled( static void HasInstalled(
void *arg, void *arg,
const char *info, const char *info,

View File

@@ -38,6 +38,7 @@
#define _TX_SUPPORT_H #define _TX_SUPPORT_H
#include <rtems.h> #include <rtems.h>
#include <rtems/irq-extension.h>
#include <rtems/score/atomic.h> #include <rtems/score/atomic.h>
#ifdef __cplusplus #ifdef __cplusplus
@@ -113,6 +114,10 @@ void CallWithinISRSubmit( CallWithinISRRequest *request );
void CallWithinISRWait( const CallWithinISRRequest *request ); void CallWithinISRWait( const CallWithinISRRequest *request );
rtems_vector_number GetValidInterruptVectorNumber(
const rtems_interrupt_attributes *required
);
bool HasInterruptVectorEntriesInstalled( rtems_vector_number vector ); bool HasInterruptVectorEntriesInstalled( rtems_vector_number vector );
/** @} */ /** @} */