summaryrefslogtreecommitdiffstats
path: root/bsps/shared/irq
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2021-07-05 13:28:02 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2021-07-26 17:08:42 +0200
commitdeb5afb2f201d26cc618c2d56cd75de179341120 (patch)
treed377beba75dae8e28302cea3fb983ce47c3147df /bsps/shared/irq
parentbsps/irq: Add rtems_interrupt_get_attributes() (diff)
downloadrtems-deb5afb2f201d26cc618c2d56cd75de179341120.tar.bz2
bsps/irq: Add rtems_interrupt_is_pending()
Add a default implementation which just returns RTEMS_UNSATISFIED. Update #3269.
Diffstat (limited to 'bsps/shared/irq')
-rw-r--r--bsps/shared/irq/irq-default.c11
-rw-r--r--bsps/shared/irq/irq-raise-clear.c17
2 files changed, 27 insertions, 1 deletions
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 ) ) {