diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-06-28 09:36:29 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-07-26 17:08:42 +0200 |
commit | eebecd09fad576f9d5fbc57fceefc2147910dae4 (patch) | |
tree | 3dd2a145d07e8215e4533d7d7064411c204a740a /bsps/shared | |
parent | bsps/irq: Add rtems_interrupt_raise() (diff) | |
download | rtems-eebecd09fad576f9d5fbc57fceefc2147910dae4.tar.bz2 |
bsps/irq: Add rtems_interrupt_get_attributes()
Add a default implementation which clears the attributes to zero and
just returns RTEMS_SUCCESSFUL for valid parameters.
Update #3269.
Diffstat (limited to 'bsps/shared')
-rw-r--r-- | bsps/shared/dev/irq/arm-gicv2.c | 8 | ||||
-rw-r--r-- | bsps/shared/dev/irq/arm-gicv3.c | 8 | ||||
-rw-r--r-- | bsps/shared/irq/irq-default.c | 8 | ||||
-rw-r--r-- | bsps/shared/irq/irq-enable-disable.c | 33 |
4 files changed, 55 insertions, 2 deletions
diff --git a/bsps/shared/dev/irq/arm-gicv2.c b/bsps/shared/dev/irq/arm-gicv2.c index 299ed5a089..509449c47d 100644 --- a/bsps/shared/dev/irq/arm-gicv2.c +++ b/bsps/shared/dev/irq/arm-gicv2.c @@ -64,6 +64,14 @@ void bsp_interrupt_dispatch(void) } } +rtems_status_code bsp_interrupt_get_attributes( + rtems_vector_number vector, + rtems_interrupt_attributes *attributes +) +{ + return RTEMS_SUCCESSFUL; +} + 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 82f3d3730d..7223ec1039 100644 --- a/bsps/shared/dev/irq/arm-gicv3.c +++ b/bsps/shared/dev/irq/arm-gicv3.c @@ -164,6 +164,14 @@ void bsp_interrupt_dispatch(void) } } +rtems_status_code bsp_interrupt_get_attributes( + rtems_vector_number vector, + rtems_interrupt_attributes *attributes +) +{ + return RTEMS_SUCCESSFUL; +} + 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 63ba0c37ee..745e1eb139 100644 --- a/bsps/shared/irq/irq-default.c +++ b/bsps/shared/irq/irq-default.c @@ -37,6 +37,14 @@ #include <bsp/irq-generic.h> +rtems_status_code bsp_interrupt_get_attributes( + rtems_vector_number vector, + rtems_interrupt_attributes *attributes +) +{ + return RTEMS_SUCCESSFUL; +} + 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-enable-disable.c b/bsps/shared/irq/irq-enable-disable.c index 6bf4620018..1d46203d90 100644 --- a/bsps/shared/irq/irq-enable-disable.c +++ b/bsps/shared/irq/irq-enable-disable.c @@ -6,8 +6,8 @@ * @ingroup bsp_interrupt * * @brief This source file contains the implementation of - * rtems_interrupt_vector_is_enabled(), rtems_interrupt_vector_enable() and - * rtems_interrupt_vector_disable(). + * rtems_interrupt_get_attributes(), rtems_interrupt_vector_is_enabled(), + * rtems_interrupt_vector_enable() and rtems_interrupt_vector_disable(). */ /* @@ -37,6 +37,35 @@ #include <bsp/irq-generic.h> +#include <string.h> + +rtems_status_code rtems_interrupt_get_attributes( + rtems_vector_number vector, + rtems_interrupt_attributes *attributes +) +{ + rtems_status_code sc; + + if ( attributes == NULL ) { + return RTEMS_INVALID_ADDRESS; + } + + memset( attributes, 0, sizeof( *attributes ) ); + + if ( !bsp_interrupt_is_valid_vector( vector ) ) { + return RTEMS_INVALID_ID; + } + + sc = bsp_interrupt_get_attributes( vector, attributes ); +#if !defined(RTEMS_SMP) + attributes->can_raise_on = attributes->can_raise; + attributes->can_get_affinity = true; + attributes->can_set_affinity = true; +#endif + + return sc; +} + rtems_status_code rtems_interrupt_vector_is_enabled( rtems_vector_number vector, bool *enabled |