diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2018-08-03 14:03:39 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2018-08-03 14:14:19 +0200 |
commit | 32ccc016d88afb315db537ca46c5ed293bc83b4b (patch) | |
tree | b6b3fb25fcae2e5e2e1c79bd9ec5bd95a99c2390 /bsps/shared | |
parent | score: Remove superfluous semicolon (diff) | |
download | rtems-32ccc016d88afb315db537ca46c5ed293bc83b4b.tar.bz2 |
bsps: Fix the generic IRQ support
The genmcf548x partly uses is own implementation of the interrupt
extension API for libbsd support.
This patch is a part of the BSP source reorganization.
Update #3285.
Diffstat (limited to 'bsps/shared')
-rw-r--r-- | bsps/shared/irq-sources.am | 1 | ||||
-rw-r--r-- | bsps/shared/irq/irq-generic.c | 16 | ||||
-rw-r--r-- | bsps/shared/irq/irq-lock.c | 42 |
3 files changed, 43 insertions, 16 deletions
diff --git a/bsps/shared/irq-sources.am b/bsps/shared/irq-sources.am index b37591851e..a5e8e6ffdf 100644 --- a/bsps/shared/irq-sources.am +++ b/bsps/shared/irq-sources.am @@ -1,5 +1,6 @@ librtemsbsp_a_SOURCES += ../../../../../../bsps/shared/irq/irq-generic.c librtemsbsp_a_SOURCES += ../../../../../../bsps/shared/irq/irq-info.c librtemsbsp_a_SOURCES += ../../../../../../bsps/shared/irq/irq-legacy.c +librtemsbsp_a_SOURCES += ../../../../../../bsps/shared/irq/irq-lock.c librtemsbsp_a_SOURCES += ../../../../../../bsps/shared/irq/irq-server.c librtemsbsp_a_SOURCES += ../../../../../../bsps/shared/irq/irq-shell.c diff --git a/bsps/shared/irq/irq-generic.c b/bsps/shared/irq/irq-generic.c index ed77a78ed9..10a9d184d6 100644 --- a/bsps/shared/irq/irq-generic.c +++ b/bsps/shared/irq/irq-generic.c @@ -27,9 +27,7 @@ #include <stdlib.h> -#include <rtems/score/apimutex.h> #include <rtems/score/processormask.h> -#include <rtems/score/sysstate.h> #include <rtems/malloc.h> #ifdef BSP_INTERRUPT_USE_INDEX_TABLE @@ -155,20 +153,6 @@ static void bsp_interrupt_free_handler_entry(bsp_interrupt_handler_entry *e) #endif } -void bsp_interrupt_lock(void) -{ - if (_System_state_Is_up(_System_state_Get())) { - _RTEMS_Lock_allocator(); - } -} - -void bsp_interrupt_unlock(void) -{ - if (_System_state_Is_up(_System_state_Get())) { - _RTEMS_Unlock_allocator(); - } -} - void bsp_interrupt_initialize(void) { rtems_status_code sc = RTEMS_SUCCESSFUL; diff --git a/bsps/shared/irq/irq-lock.c b/bsps/shared/irq/irq-lock.c new file mode 100644 index 0000000000..1398aff3eb --- /dev/null +++ b/bsps/shared/irq/irq-lock.c @@ -0,0 +1,42 @@ +/** + * @file + * + * @ingroup bsp_interrupt + * + * @brief BSP interrupt support lock implementation. + */ + +/* + * Based on concepts of Pavel Pisa, Till Straumann and Eric Valette. + * + * Copyright (c) 2008, 2018 embedded brains GmbH. + * + * embedded brains GmbH + * Dornierstr. 4 + * 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 + * http://www.rtems.org/license/LICENSE. + */ + +#include <bsp/irq-generic.h> + +#include <rtems/score/apimutex.h> +#include <rtems/score/sysstate.h> + +void bsp_interrupt_lock(void) +{ + if (_System_state_Is_up(_System_state_Get())) { + _RTEMS_Lock_allocator(); + } +} + +void bsp_interrupt_unlock(void) +{ + if (_System_state_Is_up(_System_state_Get())) { + _RTEMS_Unlock_allocator(); + } +} |