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/libcpu | |
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/libcpu')
-rw-r--r-- | c/src/lib/libcpu/arm/at91rm9200/irq/irq.c | 10 | ||||
-rw-r--r-- | c/src/lib/libcpu/arm/lpc22xx/irq/irq.c | 10 | ||||
-rw-r--r-- | c/src/lib/libcpu/arm/mc9328mxl/irq/irq.c | 20 | ||||
-rw-r--r-- | c/src/lib/libcpu/arm/pxa255/irq/irq.c | 10 | ||||
-rw-r--r-- | c/src/lib/libcpu/arm/s3c24xx/irq/irq.c | 8 | ||||
-rw-r--r-- | c/src/lib/libcpu/powerpc/mpc55xx/irq/irq.c | 18 |
6 files changed, 30 insertions, 46 deletions
diff --git a/c/src/lib/libcpu/arm/at91rm9200/irq/irq.c b/c/src/lib/libcpu/arm/at91rm9200/irq/irq.c index 9ecdacfbb7..95e93845b9 100644 --- a/c/src/lib/libcpu/arm/at91rm9200/irq/irq.c +++ b/c/src/lib/libcpu/arm/at91rm9200/irq/irq.c @@ -27,18 +27,16 @@ void bsp_interrupt_dispatch(void) AIC_CTL_REG(AIC_EOICR) = 0; } -rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector) +void bsp_interrupt_vector_enable(rtems_vector_number vector) { + bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector)); AIC_CTL_REG(AIC_IECR) = 1 << vector; - - return RTEMS_SUCCESSFUL; } -rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector) +void bsp_interrupt_vector_disable(rtems_vector_number vector) { + bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector)); AIC_CTL_REG(AIC_IDCR) = 1 << vector; - - return RTEMS_SUCCESSFUL; } rtems_status_code bsp_interrupt_facility_initialize(void) diff --git a/c/src/lib/libcpu/arm/lpc22xx/irq/irq.c b/c/src/lib/libcpu/arm/lpc22xx/irq/irq.c index 851705bee2..83e140bd7b 100644 --- a/c/src/lib/libcpu/arm/lpc22xx/irq/irq.c +++ b/c/src/lib/libcpu/arm/lpc22xx/irq/irq.c @@ -26,18 +26,16 @@ void bsp_interrupt_dispatch(void) VICVectAddr = 0; } -rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector) +void bsp_interrupt_vector_enable(rtems_vector_number vector) { + bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector)); VICIntEnable |= 1 << vector; - - return RTEMS_SUCCESSFUL; } -rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector) +void bsp_interrupt_vector_disable(rtems_vector_number vector) { + bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector)); VICIntEnClr = 1 << vector; - - return RTEMS_SUCCESSFUL; } rtems_status_code bsp_interrupt_facility_initialize(void) diff --git a/c/src/lib/libcpu/arm/mc9328mxl/irq/irq.c b/c/src/lib/libcpu/arm/mc9328mxl/irq/irq.c index 2d6e34d274..e5887b9717 100644 --- a/c/src/lib/libcpu/arm/mc9328mxl/irq/irq.c +++ b/c/src/lib/libcpu/arm/mc9328mxl/irq/irq.c @@ -26,24 +26,20 @@ void bsp_interrupt_dispatch(void) bsp_interrupt_handler_dispatch(vector); } -rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector) +void bsp_interrupt_vector_enable(rtems_vector_number vector) { - if (vector >= MC9328MXL_NUM_INTS) - return RTEMS_INVALID_ID; + bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector)); - MC9328MXL_AITC_INTENNUM = vector; - - return RTEMS_SUCCESSFUL; + if (vector < MC9328MXL_NUM_INTS) + MC9328MXL_AITC_INTENNUM = vector; } -rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector) +void bsp_interrupt_vector_disable(rtems_vector_number vector) { - if (vector >= MC9328MXL_NUM_INTS) - return RTEMS_INVALID_ID; + bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector)); - MC9328MXL_AITC_INTDISNUM = vector; - - return RTEMS_SUCCESSFUL; + if (vector < MC9328MXL_NUM_INTS) + MC9328MXL_AITC_INTDISNUM = vector; } rtems_status_code bsp_interrupt_facility_initialize(void) diff --git a/c/src/lib/libcpu/arm/pxa255/irq/irq.c b/c/src/lib/libcpu/arm/pxa255/irq/irq.c index 8b46ce149c..425795b165 100644 --- a/c/src/lib/libcpu/arm/pxa255/irq/irq.c +++ b/c/src/lib/libcpu/arm/pxa255/irq/irq.c @@ -24,18 +24,16 @@ void bsp_interrupt_dispatch(void) bsp_interrupt_handler_dispatch(vector); } -rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector) +void bsp_interrupt_vector_enable(rtems_vector_number vector) { + bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector)); XSCALE_INT_ICMR |= 1 << vector; - - return RTEMS_SUCCESSFUL; } -rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector) +void bsp_interrupt_vector_disable(rtems_vector_number vector) { + bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector)); XSCALE_INT_ICMR &= ~(1 << vector); - - return RTEMS_SUCCESSFUL; } rtems_status_code bsp_interrupt_facility_initialize(void) diff --git a/c/src/lib/libcpu/arm/s3c24xx/irq/irq.c b/c/src/lib/libcpu/arm/s3c24xx/irq/irq.c index dce6c383b9..ea8f610353 100644 --- a/c/src/lib/libcpu/arm/s3c24xx/irq/irq.c +++ b/c/src/lib/libcpu/arm/s3c24xx/irq/irq.c @@ -27,14 +27,14 @@ void bsp_interrupt_dispatch(void) bsp_interrupt_handler_dispatch(vector); } -rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector) +void bsp_interrupt_vector_enable(rtems_vector_number vector) { - return RTEMS_SUCCESSFUL; + bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector)); } -rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector) +void bsp_interrupt_vector_disable(rtems_vector_number vector) { - return RTEMS_SUCCESSFUL; + bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector)); } rtems_status_code bsp_interrupt_facility_initialize(void) diff --git a/c/src/lib/libcpu/powerpc/mpc55xx/irq/irq.c b/c/src/lib/libcpu/powerpc/mpc55xx/irq/irq.c index 59b2c39c59..789a19a490 100644 --- a/c/src/lib/libcpu/powerpc/mpc55xx/irq/irq.c +++ b/c/src/lib/libcpu/powerpc/mpc55xx/irq/irq.c @@ -180,20 +180,14 @@ rtems_status_code bsp_interrupt_facility_initialize(void) return RTEMS_SUCCESSFUL; } -rtems_status_code bsp_interrupt_vector_enable( rtems_vector_number vector) +void bsp_interrupt_vector_enable( rtems_vector_number vector) { - if (MPC55XX_IRQ_IS_VALID( vector)) { - return mpc55xx_intc_set_priority( vector, MPC55XX_INTC_DEFAULT_PRIORITY); - } else { - return RTEMS_SUCCESSFUL; - } + bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector)); + mpc55xx_intc_set_priority( vector, MPC55XX_INTC_DEFAULT_PRIORITY); } -rtems_status_code bsp_interrupt_vector_disable( rtems_vector_number vector) +void bsp_interrupt_vector_disable( rtems_vector_number vector) { - if (MPC55XX_IRQ_IS_VALID( vector)) { - return mpc55xx_intc_set_priority( vector, MPC55XX_INTC_DISABLED_PRIORITY); - } else { - return RTEMS_SUCCESSFUL; - } + bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector)); + mpc55xx_intc_set_priority( vector, MPC55XX_INTC_DISABLED_PRIORITY); } |