diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2012-11-14 13:59:27 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2012-11-15 15:33:13 +0100 |
commit | dd8df5941321b1bcd7c5b40f7442983b7a3cdc28 (patch) | |
tree | 8bfed6bb34fa010e6842b2cf9ad817b12dec43bc /c/src/lib/libbsp/shared/src/irq-generic.c | |
parent | score: Add RTEMS_FATAL_SOURCE_BSP_SPECIFIC (diff) | |
download | rtems-dd8df5941321b1bcd7c5b40f7442983b7a3cdc28.tar.bz2 |
bsps: Interrupt initialization error is fatal
Diffstat (limited to 'c/src/lib/libbsp/shared/src/irq-generic.c')
-rw-r--r-- | c/src/lib/libbsp/shared/src/irq-generic.c | 33 |
1 files changed, 13 insertions, 20 deletions
diff --git a/c/src/lib/libbsp/shared/src/irq-generic.c b/c/src/lib/libbsp/shared/src/irq-generic.c index d0d593281b..5cf9c91d77 100644 --- a/c/src/lib/libbsp/shared/src/irq-generic.c +++ b/c/src/lib/libbsp/shared/src/irq-generic.c @@ -9,12 +9,13 @@ /* * Based on concepts of Pavel Pisa, Till Straumann and Eric Valette. * - * Copyright (c) 2008, 2009 - * embedded brains GmbH - * Obere Lagerstr. 30 - * D-82178 Puchheim - * Germany - * <rtems@embedded-brains.de> + * Copyright (c) 2008-2012 embedded brains GmbH. + * + * embedded brains GmbH + * Obere Lagerstr. 30 + * 82178 Puchheim + * Germany + * <rtems@embedded-brains.de> * * The license and distribution terms for this file may be * found in the file LICENSE in this distribution or at @@ -22,6 +23,7 @@ */ #include <bsp/irq-generic.h> +#include <bsp/bootcard.h> #include <stdlib.h> @@ -155,18 +157,11 @@ static void bsp_interrupt_unlock(void) } } -rtems_status_code bsp_interrupt_initialize(void) +void bsp_interrupt_initialize(void) { rtems_status_code sc = RTEMS_SUCCESSFUL; size_t i = 0; - bsp_interrupt_lock(); - - if (bsp_interrupt_is_initialized()) { - bsp_interrupt_unlock(); - return RTEMS_INTERNAL_ERROR; - } - /* Initialize handler table */ for (i = 0; i < BSP_INTERRUPT_HANDLER_TABLE_SIZE; ++i) { bsp_interrupt_handler_table [i].handler = bsp_interrupt_handler_empty; @@ -175,15 +170,13 @@ rtems_status_code bsp_interrupt_initialize(void) sc = bsp_interrupt_facility_initialize(); if (sc != RTEMS_SUCCESSFUL) { - bsp_interrupt_unlock(); - return sc; + rtems_fatal( + RTEMS_FATAL_SOURCE_BSP_GENERIC, + BSP_GENERIC_FATAL_INTERRUPT_INITIALIZATION + ); } bsp_interrupt_set_initialized(); - - bsp_interrupt_unlock(); - - return RTEMS_SUCCESSFUL; } /** |