diff options
Diffstat (limited to 'bsps/shared')
-rw-r--r-- | bsps/shared/dev/irq/arm-gicv2.c | 11 | ||||
-rw-r--r-- | bsps/shared/dev/irq/arm-gicv3.c | 11 | ||||
-rw-r--r-- | bsps/shared/irq/irq-default.c | 11 | ||||
-rw-r--r-- | bsps/shared/irq/irq-raise-clear.c | 17 |
4 files changed, 49 insertions, 1 deletions
diff --git a/bsps/shared/dev/irq/arm-gicv2.c b/bsps/shared/dev/irq/arm-gicv2.c index 509449c47d..f53137c17b 100644 --- a/bsps/shared/dev/irq/arm-gicv2.c +++ b/bsps/shared/dev/irq/arm-gicv2.c @@ -72,6 +72,17 @@ rtems_status_code bsp_interrupt_get_attributes( return RTEMS_SUCCESSFUL; } +rtems_status_code bsp_interrupt_is_pending( + rtems_vector_number vector, + bool *pending +) +{ + bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector)); + bsp_interrupt_assert(pending != NULL); + *pending = false; + return RTEMS_UNSATISFIED; +} + rtems_status_code bsp_interrupt_raise(rtems_vector_number vector) { bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector)); diff --git a/bsps/shared/dev/irq/arm-gicv3.c b/bsps/shared/dev/irq/arm-gicv3.c index 7223ec1039..fc48f4349d 100644 --- a/bsps/shared/dev/irq/arm-gicv3.c +++ b/bsps/shared/dev/irq/arm-gicv3.c @@ -172,6 +172,17 @@ rtems_status_code bsp_interrupt_get_attributes( return RTEMS_SUCCESSFUL; } +rtems_status_code bsp_interrupt_is_pending( + rtems_vector_number vector, + bool *pending +) +{ + bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector)); + bsp_interrupt_assert(pending != NULL); + *pending = false; + return RTEMS_UNSATISFIED; +} + rtems_status_code bsp_interrupt_raise(rtems_vector_number vector) { bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector)); diff --git a/bsps/shared/irq/irq-default.c b/bsps/shared/irq/irq-default.c index 745e1eb139..09e0cec052 100644 --- a/bsps/shared/irq/irq-default.c +++ b/bsps/shared/irq/irq-default.c @@ -45,6 +45,17 @@ rtems_status_code bsp_interrupt_get_attributes( return RTEMS_SUCCESSFUL; } +rtems_status_code bsp_interrupt_is_pending( + rtems_vector_number vector, + bool *pending +) +{ + bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector)); + bsp_interrupt_assert(pending != NULL); + *pending = false; + return RTEMS_UNSATISFIED; +} + rtems_status_code bsp_interrupt_raise(rtems_vector_number vector) { bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector)); diff --git a/bsps/shared/irq/irq-raise-clear.c b/bsps/shared/irq/irq-raise-clear.c index a0569f5948..93e414b2d1 100644 --- a/bsps/shared/irq/irq-raise-clear.c +++ b/bsps/shared/irq/irq-raise-clear.c @@ -6,7 +6,6 @@ * @ingroup bsp_interrupt * * @brief This source file contains the implementation of - * rtems_interrupt_raise(), rtems_interrupt_raise_on() and * rtems_interrupt_clear(). */ @@ -41,6 +40,22 @@ #include <rtems/score/smpimpl.h> #include <rtems/config.h> +rtems_status_code rtems_interrupt_is_pending( + rtems_vector_number vector, + bool *pending +) +{ + if ( pending == NULL ) { + return RTEMS_INVALID_ADDRESS; + } + + if ( !bsp_interrupt_is_valid_vector( vector ) ) { + return RTEMS_INVALID_ID; + } + + return bsp_interrupt_is_pending( vector, pending ); +} + rtems_status_code rtems_interrupt_raise( rtems_vector_number vector ) { if ( !bsp_interrupt_is_valid_vector( vector ) ) { |