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/powerpc/gen5200/irq/irq.c | |
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/powerpc/gen5200/irq/irq.c')
-rw-r--r-- | c/src/lib/libbsp/powerpc/gen5200/irq/irq.c | 32 |
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) |