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/i386 | |
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/i386')
-rw-r--r-- | c/src/lib/libbsp/i386/pc386/timer/timer.c | 7 | ||||
-rw-r--r-- | c/src/lib/libbsp/i386/shared/comm/i386-stub-glue.c | 6 | ||||
-rw-r--r-- | c/src/lib/libbsp/i386/shared/irq/irq.c | 14 |
3 files changed, 7 insertions, 20 deletions
diff --git a/c/src/lib/libbsp/i386/pc386/timer/timer.c b/c/src/lib/libbsp/i386/pc386/timer/timer.c index 5bef139d38..16d3d66176 100644 --- a/c/src/lib/libbsp/i386/pc386/timer/timer.c +++ b/c/src/lib/libbsp/i386/pc386/timer/timer.c @@ -153,17 +153,12 @@ static void timerOn(const rtems_raw_irq_connect_data* used) bsp_interrupt_vector_enable(used->idtIndex - BSP_IRQ_VECTOR_BASE); } -static int timerIsOn(const rtems_raw_irq_connect_data *used) -{ - return bsp_interrupt_vector_enable(used->idtIndex - BSP_IRQ_VECTOR_BASE); -} - static rtems_raw_irq_connect_data timer_raw_irq_data = { BSP_PERIODIC_TIMER + BSP_IRQ_VECTOR_BASE, timerisr, timerOn, timerOff, - timerIsOn + NULL }; /* diff --git a/c/src/lib/libbsp/i386/shared/comm/i386-stub-glue.c b/c/src/lib/libbsp/i386/shared/comm/i386-stub-glue.c index 7802270140..d47d057860 100644 --- a/c/src/lib/libbsp/i386/shared/comm/i386-stub-glue.c +++ b/c/src/lib/libbsp/i386/shared/comm/i386-stub-glue.c @@ -173,11 +173,6 @@ static void BSP_uart_off(const rtems_raw_irq_connect_data* used) bsp_interrupt_vector_disable(used->idtIndex - BSP_IRQ_VECTOR_BASE); } -static int BSP_uart_isOn(const rtems_raw_irq_connect_data* used) -{ - return bsp_interrupt_vector_enable(used->idtIndex - BSP_IRQ_VECTOR_BASE); -} - /* * In order to have a possibility to break into * running program, one has to call this function @@ -210,7 +205,6 @@ void i386_stub_glue_init_breakin(void) uart_raw_irq_data.on = BSP_uart_on; uart_raw_irq_data.off = BSP_uart_off; - uart_raw_irq_data.isOn= BSP_uart_isOn; /* Install ISR */ uart_raw_irq_data.idtIndex = port_current->ulIntVector + BSP_IRQ_VECTOR_BASE; diff --git a/c/src/lib/libbsp/i386/shared/irq/irq.c b/c/src/lib/libbsp/i386/shared/irq/irq.c index f4ffd8c0e4..ac08f1f7be 100644 --- a/c/src/lib/libbsp/i386/shared/irq/irq.c +++ b/c/src/lib/libbsp/i386/shared/irq/irq.c @@ -270,18 +270,16 @@ static inline bool bsp_interrupt_vector_is_valid(rtems_vector_number vector) return BSP_i8259a_irq_valid((const rtems_irq_number) vector); } -rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector) +void bsp_interrupt_vector_enable(rtems_vector_number vector) { - if (bsp_interrupt_vector_is_valid(vector)) - BSP_irq_enable_at_i8259a(vector); - return RTEMS_SUCCESSFUL; + bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector)); + BSP_irq_enable_at_i8259a(vector); } -rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector) +void bsp_interrupt_vector_disable(rtems_vector_number vector) { - if (bsp_interrupt_vector_is_valid(vector)) - BSP_irq_disable_at_i8259a(vector); - return RTEMS_SUCCESSFUL; + bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector)); + BSP_irq_disable_at_i8259a(vector); } rtems_status_code bsp_interrupt_facility_initialize(void) |