diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-06-19 14:09:28 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-06-20 07:42:25 +0200 |
commit | c6810c824c9445fdc44ae5c0092f9ae5355a1420 (patch) | |
tree | 72441065d38fefdef1008118d9bf51bebf71ad05 /c/src/lib/libbsp/arm/shared | |
parent | bsps/powerpc: Fix warning (diff) | |
download | rtems-c6810c824c9445fdc44ae5c0092f9ae5355a1420.tar.bz2 |
bsps: Improve interrupt vector enable/disable API
Change bsp_interrupt_vector_enable() and bsp_interrupt_vector_disable()
to not return a status code. Add bsp_interrupt_assert() and use it to
validate the vector number in the vector enable/disable implementations.
Diffstat (limited to 'c/src/lib/libbsp/arm/shared')
-rw-r--r-- | c/src/lib/libbsp/arm/shared/arm-gic-irq.c | 28 | ||||
-rw-r--r-- | c/src/lib/libbsp/arm/shared/armv7m/irq/armv7m-irq.c | 18 |
2 files changed, 14 insertions, 32 deletions
diff --git a/c/src/lib/libbsp/arm/shared/arm-gic-irq.c b/c/src/lib/libbsp/arm/shared/arm-gic-irq.c index 487ee16f72..5a4a998bfb 100644 --- a/c/src/lib/libbsp/arm/shared/arm-gic-irq.c +++ b/c/src/lib/libbsp/arm/shared/arm-gic-irq.c @@ -44,34 +44,22 @@ void bsp_interrupt_dispatch(void) } } -rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector) +void bsp_interrupt_vector_enable(rtems_vector_number vector) { - rtems_status_code sc = RTEMS_SUCCESSFUL; + volatile gic_dist *dist = ARM_GIC_DIST; - if (bsp_interrupt_is_valid_vector(vector)) { - volatile gic_dist *dist = ARM_GIC_DIST; + bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector)); - gic_id_enable(dist, vector); - } else { - sc = RTEMS_INVALID_ID; - } - - return sc; + gic_id_enable(dist, vector); } -rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector) +void bsp_interrupt_vector_disable(rtems_vector_number vector) { - rtems_status_code sc = RTEMS_SUCCESSFUL; + volatile gic_dist *dist = ARM_GIC_DIST; - if (bsp_interrupt_is_valid_vector(vector)) { - volatile gic_dist *dist = ARM_GIC_DIST; + bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector)); - gic_id_disable(dist, vector); - } else { - sc = RTEMS_INVALID_ID; - } - - return sc; + gic_id_disable(dist, vector); } static inline uint32_t get_id_count(volatile gic_dist *dist) diff --git a/c/src/lib/libbsp/arm/shared/armv7m/irq/armv7m-irq.c b/c/src/lib/libbsp/arm/shared/armv7m/irq/armv7m-irq.c index df17c26cdd..1d930a4591 100644 --- a/c/src/lib/libbsp/arm/shared/armv7m/irq/armv7m-irq.c +++ b/c/src/lib/libbsp/arm/shared/armv7m/irq/armv7m-irq.c @@ -22,22 +22,16 @@ #ifdef ARM_MULTILIB_ARCH_V7M -rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector) +void bsp_interrupt_vector_enable(rtems_vector_number vector) { - if (bsp_interrupt_is_valid_vector(vector)) { - _ARMV7M_NVIC_Set_enable((int) vector); - } - - return RTEMS_SUCCESSFUL; + bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector)); + _ARMV7M_NVIC_Set_enable((int) vector); } -rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector) +void bsp_interrupt_vector_disable(rtems_vector_number vector) { - if (bsp_interrupt_is_valid_vector(vector)) { - _ARMV7M_NVIC_Clear_enable((int) vector); - } - - return RTEMS_SUCCESSFUL; + bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector)); + _ARMV7M_NVIC_Clear_enable((int) vector); } rtems_status_code bsp_interrupt_facility_initialize(void) |