diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-06-28 08:20:53 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-07-26 07:54:25 +0200 |
commit | 781213f9ec5eb4f56c4df66253a8315ea513693e (patch) | |
tree | 49e43ebe53e539c654468bc9f44dd34c17055101 /bsps/shared | |
parent | rtems: Add RTEMS_FATAL_SOURCE_SPURIOUS_INTERRUPT (diff) | |
download | rtems-781213f9ec5eb4f56c4df66253a8315ea513693e.tar.bz2 |
bsps/irq: Add rtems_interrupt_vector_is_enabled()
Add a default implementation which just returns RTEMS_UNSATISFIED for
valid parameters.
Update #3269.
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-enable-disable.c | 19 |
4 files changed, 51 insertions, 1 deletions
diff --git a/bsps/shared/dev/irq/arm-gicv2.c b/bsps/shared/dev/irq/arm-gicv2.c index c29cae1d97..045b7822a8 100644 --- a/bsps/shared/dev/irq/arm-gicv2.c +++ b/bsps/shared/dev/irq/arm-gicv2.c @@ -64,6 +64,17 @@ void bsp_interrupt_dispatch(void) } } +rtems_status_code bsp_interrupt_vector_is_enabled( + rtems_vector_number vector, + bool *enabled +) +{ + bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector)); + bsp_interrupt_assert(enabled != NULL); + *enabled = false; + return RTEMS_UNSATISFIED; +} + void bsp_interrupt_vector_enable(rtems_vector_number vector) { volatile gic_dist *dist = ARM_GIC_DIST; diff --git a/bsps/shared/dev/irq/arm-gicv3.c b/bsps/shared/dev/irq/arm-gicv3.c index 75b089b6b5..0549b6bd72 100644 --- a/bsps/shared/dev/irq/arm-gicv3.c +++ b/bsps/shared/dev/irq/arm-gicv3.c @@ -164,6 +164,17 @@ void bsp_interrupt_dispatch(void) } } +rtems_status_code bsp_interrupt_vector_is_enabled( + rtems_vector_number vector, + bool *enabled +) +{ + bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector)); + bsp_interrupt_assert(enabled != NULL); + *enabled = false; + return RTEMS_UNSATISFIED; +} + void bsp_interrupt_vector_enable(rtems_vector_number vector) { diff --git a/bsps/shared/irq/irq-default.c b/bsps/shared/irq/irq-default.c index 943b4ea191..842cdd66e0 100644 --- a/bsps/shared/irq/irq-default.c +++ b/bsps/shared/irq/irq-default.c @@ -37,6 +37,17 @@ #include <bsp/irq-generic.h> +rtems_status_code bsp_interrupt_vector_is_enabled( + rtems_vector_number vector, + bool *enabled +) +{ + bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector)); + bsp_interrupt_assert(enabled != NULL); + *enabled = false; + return RTEMS_UNSATISFIED; +} + void bsp_interrupt_vector_enable(rtems_vector_number vector) { bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector)); diff --git a/bsps/shared/irq/irq-enable-disable.c b/bsps/shared/irq/irq-enable-disable.c index 792f5e60c6..6bf4620018 100644 --- a/bsps/shared/irq/irq-enable-disable.c +++ b/bsps/shared/irq/irq-enable-disable.c @@ -6,7 +6,8 @@ * @ingroup bsp_interrupt * * @brief This source file contains the implementation of - * rtems_interrupt_vector_enable() and rtems_interrupt_vector_disable(). + * rtems_interrupt_vector_is_enabled(), rtems_interrupt_vector_enable() and + * rtems_interrupt_vector_disable(). */ /* @@ -36,6 +37,22 @@ #include <bsp/irq-generic.h> +rtems_status_code rtems_interrupt_vector_is_enabled( + rtems_vector_number vector, + bool *enabled +) +{ + if ( enabled == NULL ) { + return RTEMS_INVALID_ADDRESS; + } + + if ( !bsp_interrupt_is_valid_vector( vector ) ) { + return RTEMS_INVALID_ID; + } + + return bsp_interrupt_vector_is_enabled( vector, enabled ); +} + rtems_status_code rtems_interrupt_vector_enable( rtems_vector_number vector ) { if ( !bsp_interrupt_is_valid_vector( vector ) ) { |