summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libcpu
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2017-06-19 14:09:28 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2017-06-20 07:42:25 +0200
commitc6810c824c9445fdc44ae5c0092f9ae5355a1420 (patch)
tree72441065d38fefdef1008118d9bf51bebf71ad05 /c/src/lib/libcpu
parentbsps/powerpc: Fix warning (diff)
downloadrtems-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.c10
-rw-r--r--c/src/lib/libcpu/arm/lpc22xx/irq/irq.c10
-rw-r--r--c/src/lib/libcpu/arm/mc9328mxl/irq/irq.c20
-rw-r--r--c/src/lib/libcpu/arm/pxa255/irq/irq.c10
-rw-r--r--c/src/lib/libcpu/arm/s3c24xx/irq/irq.c8
-rw-r--r--c/src/lib/libcpu/powerpc/mpc55xx/irq/irq.c18
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);
}