summaryrefslogtreecommitdiffstats
path: root/bsps/shared
diff options
context:
space:
mode:
Diffstat (limited to 'bsps/shared')
-rw-r--r--bsps/shared/dev/irq/arm-gicv2.c11
-rw-r--r--bsps/shared/dev/irq/arm-gicv3.c11
-rw-r--r--bsps/shared/irq/irq-default.c11
-rw-r--r--bsps/shared/irq/irq-raise-clear.c17
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 ) ) {