summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArnie Reynoso <ariner@ti.com>2013-09-25 13:44:00 -0700
committerChris Ring <cring@ti.com>2013-09-25 16:55:49 -0700
commitbebbebbd6c294f81ca89bad9131d5f93e187c3c7 (patch)
treeda31ada8f34437396423360ee997ee1f65b84536
parent94165d1f5268804ffaf1baf532f6f4747c6d50de (diff)
downloadipc-bebbebbd6c294f81ca89bad9131d5f93e187c3c7.tar.gz
Linux: Removed circular dependencies from ipc libs
The circular dependencies between libtiipc and libtiipcutils has been removed by moving the assignment of the user side application's MultiProc config structure to the libtiipcutils library via a new function (_MultiProc_initCfg). This also forces the creation of a LAD specific libtiipcutils library (libtiipcutils_lad), which the daemon needs to link against.
-rw-r--r--linux/include/_MultiProc.h11
-rw-r--r--linux/src/api/Ipc.c10
-rw-r--r--linux/src/daemon/Makefile.am4
-rw-r--r--linux/src/daemon/Makefile.in8
-rw-r--r--linux/src/utils/Makefile.am19
-rw-r--r--linux/src/utils/Makefile.in79
-rw-r--r--linux/src/utils/MultiProc_app.c51
7 files changed, 155 insertions, 27 deletions
diff --git a/linux/include/_MultiProc.h b/linux/include/_MultiProc.h
index a93f36e..4d3a031 100644
--- a/linux/include/_MultiProc.h
+++ b/linux/include/_MultiProc.h
@@ -87,6 +87,17 @@ typedef struct MultiProc_Config_tag {
*/
Void MultiProc_getConfig (MultiProc_Config * cfg);
+/*!
+ * @brief Initialize the configuration for the MultiProc module.
+ *
+ * This function is called to initialize the configuration for
+ * MultiProc.
+ *
+ * @param cfg Pointer to a populated MultiProc configuration
+ * structure.
+ */
+Void _MultiProc_initCfg(MultiProc_Config * cfg);
+
/* This exported from daemon/MultiProcCfg_<PLATFORM>.c: */
extern MultiProc_Config _MultiProc_cfg;
diff --git a/linux/src/api/Ipc.c b/linux/src/api/Ipc.c
index 46db4ae..214c626 100644
--- a/linux/src/api/Ipc.c
+++ b/linux/src/api/Ipc.c
@@ -55,11 +55,10 @@
/* IPC startup/shutdown stuff: */
#include <ti/ipc/MultiProc.h>
+#include <_MultiProc.h>
#include <_MessageQ.h>
#include <_NameServer.h>
-MultiProc_Config _MultiProc_cfg;
-
static LAD_ClientHandle ladHandle;
static void cleanup(int arg);
@@ -88,9 +87,12 @@ Int Ipc_start (Void)
goto exit;
}
- /* Setup and get MultiProc configuration from LAD */
+ /*
+ * Get MultiProc configuration from LAD and initialize local MultiProc
+ * config structure.
+ */
MultiProc_getConfig(&mpCfg);
- _MultiProc_cfg = mpCfg;
+ _MultiProc_initCfg(&mpCfg);
status = NameServer_setup();
if (status >= 0) {
diff --git a/linux/src/daemon/Makefile.am b/linux/src/daemon/Makefile.am
index c907b40..32af0a0 100644
--- a/linux/src/daemon/Makefile.am
+++ b/linux/src/daemon/Makefile.am
@@ -97,8 +97,8 @@ lad_tci6614_SOURCES = $(common_sources) MultiProcCfg_tci6614.c
lad_tci6636_SOURCES = $(common_sources) MultiProcCfg_tci6638.c
lad_tci6638_SOURCES = $(common_sources) MultiProcCfg_tci6638.c
-common_libraries = -lpthread $(top_builddir)/linux/src/api/libtiipc.la \
- $(top_builddir)/linux/src/utils/libtiipcutils.la
+common_libraries = -lpthread \
+ $(top_builddir)/linux/src/utils/libtiipcutils_lad.la
# the additional libraries needed to link program
lad_omap54xx_smp_LDADD = $(common_libraries) \
diff --git a/linux/src/daemon/Makefile.in b/linux/src/daemon/Makefile.in
index 85051bd..169d63b 100644
--- a/linux/src/daemon/Makefile.in
+++ b/linux/src/daemon/Makefile.in
@@ -73,8 +73,8 @@ am__objects_1 = lad.$(OBJEXT) MessageQ_daemon.$(OBJEXT) \
MultiProc_daemon.$(OBJEXT) NameServer_daemon.$(OBJEXT)
am_lad_dra7xx_OBJECTS = $(am__objects_1) MultiProcCfg_dra7xx.$(OBJEXT)
lad_dra7xx_OBJECTS = $(am_lad_dra7xx_OBJECTS)
-am__DEPENDENCIES_1 = $(top_builddir)/linux/src/api/libtiipc.la \
- $(top_builddir)/linux/src/utils/libtiipcutils.la
+am__DEPENDENCIES_1 = \
+ $(top_builddir)/linux/src/utils/libtiipcutils_lad.la
am__DEPENDENCIES_2 =
lad_dra7xx_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
am_lad_omap54xx_smp_OBJECTS = $(am__objects_1) \
@@ -272,8 +272,8 @@ lad_omapl138_SOURCES = $(common_sources) MultiProcCfg_omapl138.c
lad_tci6614_SOURCES = $(common_sources) MultiProcCfg_tci6614.c
lad_tci6636_SOURCES = $(common_sources) MultiProcCfg_tci6638.c
lad_tci6638_SOURCES = $(common_sources) MultiProcCfg_tci6638.c
-common_libraries = -lpthread $(top_builddir)/linux/src/api/libtiipc.la \
- $(top_builddir)/linux/src/utils/libtiipcutils.la
+common_libraries = -lpthread \
+ $(top_builddir)/linux/src/utils/libtiipcutils_lad.la
# the additional libraries needed to link program
diff --git a/linux/src/utils/Makefile.am b/linux/src/utils/Makefile.am
index 938c44e..6fdf887 100644
--- a/linux/src/utils/Makefile.am
+++ b/linux/src/utils/Makefile.am
@@ -40,13 +40,15 @@ AM_CFLAGS = -I$(top_srcdir)/linux/include -I$(top_srcdir)/hlos_common/include \
###############################################################################
# the library names to build (note we are building shared libs)
-lib_LTLIBRARIES = libtiipcutils.la
+lib_LTLIBRARIES = libtiipcutils.la libtiipcutils_lad.la
# where to install the headers on the system
libtiipcutils_ladir = $(includedir)
+libtiipcutils_lad_ladir = $(includedir)
# the list of header files that belong to the library (to be installed later)
libtiipcutils_la_HEADERS =
+libtiipcutils_lad_la_HEADERS =
# the sources to add to the library and to add to the source distribution
libtiipcutils_la_SOURCES = \
@@ -59,9 +61,24 @@ libtiipcutils_la_SOURCES = \
$(top_srcdir)/packages/ti/ipc/MultiProc.h \
LAD_client.c \
$(top_srcdir)/hlos_common/src/utils/MultiProc.c \
+ MultiProc_app.c \
SocketFxns.c
+libtiipcutils_lad_la_SOURCES = \
+ $(libtiipcutils_la_HEADERS) \
+ $(top_srcdir)/linux/include/ladclient.h \
+ $(top_srcdir)/linux/include/_lad.h \
+ $(top_srcdir)/linux/include/_MultiProc.h \
+ $(top_srcdir)/linux/include/net/rpmsg.h \
+ $(top_srcdir)/linux/include/ti/ipc/Std.h \
+ $(top_srcdir)/packages/ti/ipc/MultiProc.h \
+ LAD_client.c \
+ $(top_srcdir)/hlos_common/src/utils/MultiProc.c \
+ SocketFxns.c
+
+
# Add version info to the shared library
libtiipcutils_la_LDFLAGS = -version-info 1:0:0
+libtiipcutils_lad_la_LDFLAGS = -version-info 1:0:0
###############################################################################
diff --git a/linux/src/utils/Makefile.in b/linux/src/utils/Makefile.in
index ef61564..575707a 100644
--- a/linux/src/utils/Makefile.in
+++ b/linux/src/utils/Makefile.in
@@ -38,7 +38,8 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = linux/src/utils
-DIST_COMMON = $(libtiipcutils_la_HEADERS) $(srcdir)/Makefile.am \
+DIST_COMMON = $(libtiipcutils_la_HEADERS) \
+ $(libtiipcutils_lad_la_HEADERS) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
@@ -53,14 +54,19 @@ am__vpath_adj = case $$p in \
esac;
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
am__installdirs = "$(DESTDIR)$(libdir)" \
- "$(DESTDIR)$(libtiipcutils_ladir)"
+ "$(DESTDIR)$(libtiipcutils_ladir)" \
+ "$(DESTDIR)$(libtiipcutils_lad_ladir)"
libLTLIBRARIES_INSTALL = $(INSTALL)
LTLIBRARIES = $(lib_LTLIBRARIES)
libtiipcutils_la_LIBADD =
am__objects_1 =
am_libtiipcutils_la_OBJECTS = $(am__objects_1) LAD_client.lo \
- MultiProc.lo SocketFxns.lo
+ MultiProc.lo MultiProc_app.lo SocketFxns.lo
libtiipcutils_la_OBJECTS = $(am_libtiipcutils_la_OBJECTS)
+libtiipcutils_lad_la_LIBADD =
+am_libtiipcutils_lad_la_OBJECTS = $(am__objects_1) LAD_client.lo \
+ MultiProc.lo SocketFxns.lo
+libtiipcutils_lad_la_OBJECTS = $(am_libtiipcutils_lad_la_OBJECTS)
DEFAULT_INCLUDES = -I. -I$(srcdir)
depcomp = $(SHELL) $(top_srcdir)/linux/build-aux/depcomp
am__depfiles_maybe = depfiles
@@ -72,10 +78,12 @@ LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \
CCLD = $(CC)
LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(AM_LDFLAGS) $(LDFLAGS) -o $@
-SOURCES = $(libtiipcutils_la_SOURCES)
-DIST_SOURCES = $(libtiipcutils_la_SOURCES)
+SOURCES = $(libtiipcutils_la_SOURCES) $(libtiipcutils_lad_la_SOURCES)
+DIST_SOURCES = $(libtiipcutils_la_SOURCES) \
+ $(libtiipcutils_lad_la_SOURCES)
libtiipcutils_laHEADERS_INSTALL = $(INSTALL_HEADER)
-HEADERS = $(libtiipcutils_la_HEADERS)
+libtiipcutils_lad_laHEADERS_INSTALL = $(INSTALL_HEADER)
+HEADERS = $(libtiipcutils_la_HEADERS) $(libtiipcutils_lad_la_HEADERS)
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -209,13 +217,15 @@ target_alias = @target_alias@
###############################################################################
# the library names to build (note we are building shared libs)
-lib_LTLIBRARIES = libtiipcutils.la
+lib_LTLIBRARIES = libtiipcutils.la libtiipcutils_lad.la
# where to install the headers on the system
libtiipcutils_ladir = $(includedir)
+libtiipcutils_lad_ladir = $(includedir)
# the list of header files that belong to the library (to be installed later)
libtiipcutils_la_HEADERS =
+libtiipcutils_lad_la_HEADERS =
# the sources to add to the library and to add to the source distribution
libtiipcutils_la_SOURCES = \
@@ -228,11 +238,25 @@ libtiipcutils_la_SOURCES = \
$(top_srcdir)/packages/ti/ipc/MultiProc.h \
LAD_client.c \
$(top_srcdir)/hlos_common/src/utils/MultiProc.c \
+ MultiProc_app.c \
+ SocketFxns.c
+
+libtiipcutils_lad_la_SOURCES = \
+ $(libtiipcutils_la_HEADERS) \
+ $(top_srcdir)/linux/include/ladclient.h \
+ $(top_srcdir)/linux/include/_lad.h \
+ $(top_srcdir)/linux/include/_MultiProc.h \
+ $(top_srcdir)/linux/include/net/rpmsg.h \
+ $(top_srcdir)/linux/include/ti/ipc/Std.h \
+ $(top_srcdir)/packages/ti/ipc/MultiProc.h \
+ LAD_client.c \
+ $(top_srcdir)/hlos_common/src/utils/MultiProc.c \
SocketFxns.c
# Add version info to the shared library
libtiipcutils_la_LDFLAGS = -version-info 1:0:0
+libtiipcutils_lad_la_LDFLAGS = -version-info 1:0:0
all: all-am
.SUFFIXES:
@@ -295,6 +319,8 @@ clean-libLTLIBRARIES:
done
libtiipcutils.la: $(libtiipcutils_la_OBJECTS) $(libtiipcutils_la_DEPENDENCIES)
$(LINK) -rpath $(libdir) $(libtiipcutils_la_LDFLAGS) $(libtiipcutils_la_OBJECTS) $(libtiipcutils_la_LIBADD) $(LIBS)
+libtiipcutils_lad.la: $(libtiipcutils_lad_la_OBJECTS) $(libtiipcutils_lad_la_DEPENDENCIES)
+ $(LINK) -rpath $(libdir) $(libtiipcutils_lad_la_LDFLAGS) $(libtiipcutils_lad_la_OBJECTS) $(libtiipcutils_lad_la_LIBADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
@@ -304,6 +330,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/LAD_client.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MultiProc.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MultiProc_app.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SocketFxns.Plo@am__quote@
.c.o:
@@ -360,6 +387,23 @@ uninstall-libtiipcutils_laHEADERS:
echo " rm -f '$(DESTDIR)$(libtiipcutils_ladir)/$$f'"; \
rm -f "$(DESTDIR)$(libtiipcutils_ladir)/$$f"; \
done
+install-libtiipcutils_lad_laHEADERS: $(libtiipcutils_lad_la_HEADERS)
+ @$(NORMAL_INSTALL)
+ test -z "$(libtiipcutils_lad_ladir)" || $(mkdir_p) "$(DESTDIR)$(libtiipcutils_lad_ladir)"
+ @list='$(libtiipcutils_lad_la_HEADERS)'; for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ f=$(am__strip_dir) \
+ echo " $(libtiipcutils_lad_laHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(libtiipcutils_lad_ladir)/$$f'"; \
+ $(libtiipcutils_lad_laHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(libtiipcutils_lad_ladir)/$$f"; \
+ done
+
+uninstall-libtiipcutils_lad_laHEADERS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(libtiipcutils_lad_la_HEADERS)'; for p in $$list; do \
+ f=$(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(libtiipcutils_lad_ladir)/$$f'"; \
+ rm -f "$(DESTDIR)$(libtiipcutils_lad_ladir)/$$f"; \
+ done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
@@ -440,7 +484,7 @@ check-am: all-am
check: check-am
all-am: Makefile $(LTLIBRARIES) $(HEADERS)
installdirs:
- for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(libtiipcutils_ladir)"; do \
+ for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(libtiipcutils_ladir)" "$(DESTDIR)$(libtiipcutils_lad_ladir)"; do \
test -z "$$dir" || $(mkdir_p) "$$dir"; \
done
install: install-am
@@ -488,7 +532,8 @@ info: info-am
info-am:
-install-data-am: install-libtiipcutils_laHEADERS
+install-data-am: install-libtiipcutils_laHEADERS \
+ install-libtiipcutils_lad_laHEADERS
install-exec-am: install-libLTLIBRARIES
@@ -517,7 +562,8 @@ ps: ps-am
ps-am:
uninstall-am: uninstall-info-am uninstall-libLTLIBRARIES \
- uninstall-libtiipcutils_laHEADERS
+ uninstall-libtiipcutils_laHEADERS \
+ uninstall-libtiipcutils_lad_laHEADERS
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
clean-libLTLIBRARIES clean-libtool ctags distclean \
@@ -526,12 +572,13 @@ uninstall-am: uninstall-info-am uninstall-libLTLIBRARIES \
install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am \
install-libLTLIBRARIES install-libtiipcutils_laHEADERS \
- install-man install-strip installcheck installcheck-am \
- installdirs maintainer-clean maintainer-clean-generic \
- mostlyclean mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
- uninstall-am uninstall-info-am uninstall-libLTLIBRARIES \
- uninstall-libtiipcutils_laHEADERS
+ install-libtiipcutils_lad_laHEADERS install-man install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags uninstall uninstall-am uninstall-info-am \
+ uninstall-libLTLIBRARIES uninstall-libtiipcutils_laHEADERS \
+ uninstall-libtiipcutils_lad_laHEADERS
###############################################################################
diff --git a/linux/src/utils/MultiProc_app.c b/linux/src/utils/MultiProc_app.c
new file mode 100644
index 0000000..55a9e5d
--- /dev/null
+++ b/linux/src/utils/MultiProc_app.c
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2013, Texas Instruments Incorporated
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+/*
+ * ======== MultiProc_app.c ========
+ *
+ * Internal function to initialized the MultiProc configuration
+ */
+
+#include <ti/ipc/Std.h>
+
+#include <_MultiProc.h>
+
+MultiProc_Config _MultiProc_cfg;
+
+/*
+ * ===== MultiProc_initCfg =====
+ */
+Void _MultiProc_initCfg(MultiProc_Config * cfg)
+{
+ /* Initialize _MultiProc_cfg struct */
+ memcpy (&_MultiProc_cfg, cfg, sizeof(*cfg));
+}