summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/powerpc/gen5200/irq/irq.c
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/libbsp/powerpc/gen5200/irq/irq.c
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/libbsp/powerpc/gen5200/irq/irq.c')
-rw-r--r--c/src/lib/libbsp/powerpc/gen5200/irq/irq.c32
1 files changed, 16 insertions, 16 deletions
diff --git a/c/src/lib/libbsp/powerpc/gen5200/irq/irq.c b/c/src/lib/libbsp/powerpc/gen5200/irq/irq.c
index 029ed3182e..58e2f2a987 100644
--- a/c/src/lib/libbsp/powerpc/gen5200/irq/irq.c
+++ b/c/src/lib/libbsp/powerpc/gen5200/irq/irq.c
@@ -359,24 +359,26 @@ static inline void BSP_disable_crit_irq_at_siu( rtems_vector_number
/*
* This function enables a given siu interrupt
*/
-rtems_status_code bsp_interrupt_vector_enable( rtems_vector_number irqLine)
+void bsp_interrupt_vector_enable( rtems_vector_number vector)
{
- int base_index = get_siu_irq_base_index( irqLine);
+ int base_index = get_siu_irq_base_index( vector);
- if (is_siu_irq( irqLine)) {
+ bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector));
+
+ if (is_siu_irq( vector)) {
rtems_interrupt_level level;
rtems_interrupt_disable( level);
switch (base_index) {
case BSP_PER_IRQ_LOWEST_OFFSET:
- BSP_enable_per_irq_at_siu( irqLine);
+ BSP_enable_per_irq_at_siu( vector);
break;
case BSP_MAIN_IRQ_LOWEST_OFFSET:
- BSP_enable_main_irq_at_siu( irqLine);
+ BSP_enable_main_irq_at_siu( vector);
break;
case BSP_CRIT_IRQ_LOWEST_OFFSET:
- BSP_enable_crit_irq_at_siu( irqLine);
+ BSP_enable_crit_irq_at_siu( vector);
break;
default:
rtems_interrupt_enable( level);
@@ -386,31 +388,31 @@ rtems_status_code bsp_interrupt_vector_enable( rtems_vector_number irqLine)
rtems_interrupt_enable( level);
}
-
- return RTEMS_SUCCESSFUL;
}
/*
* This function disables a given siu interrupt
*/
-rtems_status_code bsp_interrupt_vector_disable( rtems_vector_number irqLine)
+void bsp_interrupt_vector_disable( rtems_vector_number vector)
{
- int base_index = get_siu_irq_base_index( irqLine);
+ int base_index = get_siu_irq_base_index( vector);
- if (is_siu_irq( irqLine)) {
+ bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector));
+
+ if (is_siu_irq( vector)) {
rtems_interrupt_level level;
rtems_interrupt_disable( level);
switch (base_index) {
case BSP_PER_IRQ_LOWEST_OFFSET:
- BSP_disable_per_irq_at_siu( irqLine);
+ BSP_disable_per_irq_at_siu( vector);
break;
case BSP_MAIN_IRQ_LOWEST_OFFSET:
- BSP_disable_main_irq_at_siu( irqLine);
+ BSP_disable_main_irq_at_siu( vector);
break;
case BSP_CRIT_IRQ_LOWEST_OFFSET:
- BSP_disable_crit_irq_at_siu( irqLine);
+ BSP_disable_crit_irq_at_siu( vector);
break;
default:
rtems_interrupt_enable( level);
@@ -420,8 +422,6 @@ rtems_status_code bsp_interrupt_vector_disable( rtems_vector_number irqLine)
rtems_interrupt_enable( level);
}
-
- return RTEMS_SUCCESSFUL;
}
#if (BENCHMARK_IRQ_PROCESSING == 0)