summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/i386
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/i386
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/i386')
-rw-r--r--c/src/lib/libbsp/i386/pc386/timer/timer.c7
-rw-r--r--c/src/lib/libbsp/i386/shared/comm/i386-stub-glue.c6
-rw-r--r--c/src/lib/libbsp/i386/shared/irq/irq.c14
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)