summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/m68k
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/m68k
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/m68k')
-rw-r--r--c/src/lib/libbsp/m68k/genmcf548x/irq/irq.c44
1 files changed, 16 insertions, 28 deletions
diff --git a/c/src/lib/libbsp/m68k/genmcf548x/irq/irq.c b/c/src/lib/libbsp/m68k/genmcf548x/irq/irq.c
index 58e904426a..f02231b67c 100644
--- a/c/src/lib/libbsp/m68k/genmcf548x/irq/irq.c
+++ b/c/src/lib/libbsp/m68k/genmcf548x/irq/irq.c
@@ -59,42 +59,30 @@ static rtems_vector_number vector_to_exception_vector(
return vector + 64U;
}
-rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector)
+void bsp_interrupt_vector_enable(rtems_vector_number vector)
{
- rtems_status_code sc = RTEMS_SUCCESSFUL;
+ volatile uint32_t *imr = vector_to_imr(vector);
+ uint32_t bit = vector_to_bit(vector);
+ rtems_interrupt_level level;
- if (bsp_interrupt_is_valid_vector(vector)) {
- volatile uint32_t *imr = vector_to_imr(vector);
- uint32_t bit = vector_to_bit(vector);
- rtems_interrupt_level level;
-
- rtems_interrupt_disable(level);
- *imr &= ~bit;
- rtems_interrupt_enable(level);
- } else {
- sc = RTEMS_INVALID_ID;
- }
+ bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector));
- return sc;
+ rtems_interrupt_disable(level);
+ *imr &= ~bit;
+ rtems_interrupt_enable(level);
}
-rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
+void bsp_interrupt_vector_disable(rtems_vector_number vector)
{
- rtems_status_code sc = RTEMS_SUCCESSFUL;
+ volatile uint32_t *imr = vector_to_imr(vector);
+ uint32_t bit = vector_to_bit(vector);
+ rtems_interrupt_level level;
- if (bsp_interrupt_is_valid_vector(vector)) {
- volatile uint32_t *imr = vector_to_imr(vector);
- uint32_t bit = vector_to_bit(vector);
- rtems_interrupt_level level;
-
- rtems_interrupt_disable(level);
- *imr |= bit;
- rtems_interrupt_enable(level);
- } else {
- sc = RTEMS_INVALID_ID;
- }
+ bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector));
- return sc;
+ rtems_interrupt_disable(level);
+ *imr |= bit;
+ rtems_interrupt_enable(level);
}
static void_func get_exception_handler(rtems_vector_number vector)