[rtems commit] bsps: Fix the generic IRQ support

Sebastian Huber sebh at rtems.org
Fri Aug 3 12:15:28 UTC 2018


Module:    rtems
Branch:    master
Commit:    32ccc016d88afb315db537ca46c5ed293bc83b4b
Changeset: http://git.rtems.org/rtems/commit/?id=32ccc016d88afb315db537ca46c5ed293bc83b4b

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Fri Aug  3 14:03:39 2018 +0200

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.

---

 bsps/shared/irq-sources.am                   |  1 +
 bsps/shared/irq/irq-generic.c                | 16 -----------
 bsps/shared/irq/irq-lock.c                   | 42 ++++++++++++++++++++++++++++
 c/src/lib/libbsp/m68k/genmcf548x/Makefile.am |  6 +++-
 4 files changed, 48 insertions(+), 17 deletions(-)

diff --git a/bsps/shared/irq-sources.am b/bsps/shared/irq-sources.am
index b375918..a5e8e6f 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 ed77a78..10a9d18 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 0000000..1398aff
--- /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 at 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 7cc1e39..2a8229b 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



More information about the vc mailing list