summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bsps/shared/irq-sources.am1
-rw-r--r--bsps/shared/irq/irq-generic.c16
-rw-r--r--bsps/shared/irq/irq-lock.c42
-rw-r--r--c/src/lib/libbsp/m68k/genmcf548x/Makefile.am6
4 files changed, 48 insertions, 17 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();
+ }
+}
diff --git a/c/src/lib/libbsp/m68k/genmcf548x/Makefile.am b/c/src/lib/libbsp/m68k/genmcf548x/Makefile.am
index 7cc1e39bb6..2a8229b866 100644
--- a/c/src/lib/libbsp/m68k/genmcf548x/Makefile.am
+++ b/c/src/lib/libbsp/m68k/genmcf548x/Makefile.am
@@ -39,6 +39,11 @@ librtemsbsp_a_SOURCES += ../../../../../../bsps/m68k/genmcf548x/btimer/btimer.c
# IRQ
librtemsbsp_a_SOURCES += ../../../../../../bsps/shared/irq/irq-default-handler.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
librtemsbsp_a_SOURCES += ../../../../../../bsps/m68k/genmcf548x/irq/irq.c
librtemsbsp_a_SOURCES += ../../../../../../bsps/m68k/genmcf548x/irq/intc-icr-init-values.c
@@ -55,6 +60,5 @@ librtemsbsp_a_SOURCES += ../../../../../../bsps/m68k/genmcf548x/net/network.c
endif
include $(top_srcdir)/../../../../automake/local.am
-include $(srcdir)/../../../../../../bsps/shared/irq-sources.am
include $(srcdir)/../../../../../../bsps/shared/shared-sources.am
include $(srcdir)/../../../../../../bsps/m68k/genmcf548x/headers.am