[PATCH 3/8] Remove lcr directory, files, and references since it is no longer needed

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Signed-off-by: Steven Dake <sdake@xxxxxxxxxx>
---
 Makefile.am                      |    4 +-
 configure.ac                     |   13 -
 corosync.spec.in                 |   22 --
 exec/apidef.c                    |    1 -
 exec/coroparse.c                 |    1 -
 exec/evil.c                      |    1 -
 exec/service.c                   |    1 -
 exec/sync.c                      |    1 -
 exec/syncv2.c                    |    1 -
 exec/vsf_quorum.c                |    2 -
 include/Makefile.am              |    4 +-
 include/corosync/cs_config.h.in  |    3 -
 include/corosync/lcr/lcr_ckpt.h  |   58 ----
 include/corosync/lcr/lcr_comp.h  |   64 ----
 include/corosync/lcr/lcr_ifact.h |   58 ----
 lcr/.gitignore                   |    3 -
 lcr/Makefile.am                  |   79 -----
 lcr/README.lcr                   |  113 --------
 lcr/lcr_ifact.c                  |  590 --------------------------------------
 lcr/libtest_a.c                  |  166 -----------
 lcr/libtest_b.c                  |  174 -----------
 lcr/test.c                       |  129 ---------
 lcr/uic.c                        |  157 ----------
 lcr/uis.c                        |  205 -------------
 lib/Makefile.am                  |    3 -
 loc                              |    3 -
 pkgconfig/corosync.pc.in         |    1 -
 tools/Makefile.am                |    4 +-
 28 files changed, 5 insertions(+), 1856 deletions(-)
 delete mode 100644 include/corosync/lcr/lcr_ckpt.h
 delete mode 100644 include/corosync/lcr/lcr_comp.h
 delete mode 100644 include/corosync/lcr/lcr_ifact.h
 delete mode 100644 lcr/.gitignore
 delete mode 100644 lcr/Makefile.am
 delete mode 100644 lcr/README.lcr
 delete mode 100644 lcr/lcr_ifact.c
 delete mode 100644 lcr/libtest_a.c
 delete mode 100644 lcr/libtest_b.c
 delete mode 100644 lcr/test.c
 delete mode 100755 lcr/uic.c
 delete mode 100755 lcr/uis.c

diff --git a/Makefile.am b/Makefile.am
index fae829f..5b882a7 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -71,7 +71,7 @@ corosysxmlxsltdir	= ${datadir}/corosync
 corosysxmlxslt_DATA	= conf/xml2conf.xsl
 endif
 
-SUBDIRS			= include lcr lib exec tools test cts pkgconfig \
+SUBDIRS			= include lib exec tools test cts pkgconfig \
 			  man init conf
 
 coverity:
@@ -104,7 +104,7 @@ test_lense.sh:
 endif
 
 lint:
-	for dir in lcr lib exec tools test; do make -C $$dir lint; done
+	for dir in lib exec tools test; do make -C $$dir lint; done
 
 .PHONY: doxygen
 doxygen:
diff --git a/configure.ac b/configure.ac
index 6226f2b..d03c91b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -130,7 +130,6 @@ AC_CONFIG_FILES([Makefile
 		 exec/Makefile
 		 include/Makefile
 		 init/Makefile
-		 lcr/Makefile
 		 lib/Makefile
 		 man/Makefile
 		 pkgconfig/Makefile
@@ -289,11 +288,6 @@ AC_ARG_WITH([initddir],
 	[ INITDDIR="$withval" ],
 	[ INITDDIR="$sysconfdir/init.d" ])
 
-AC_ARG_WITH([lcrso-dir],
-	[  --with-lcrso-dir=DIR    : corosync lcrso files. ],
-	[ LCRSODIR="$withval" ],
-	[ LCRSODIR="$libexecdir/lcrso" ])
-
 AC_ARG_WITH([socket-dir],
 	[  --with-socket-dir=DIR   : corosync socket dir. ],
 	[ SOCKETDIR="$withval" ],
@@ -516,7 +510,6 @@ else
        enable_snmp=0
 fi
 AC_SUBST([SNMPLIBS])
-AC_SUBST([SNMP_LCRSO])
 AM_CONDITIONAL(BUILD_SNMP, test "${enable_snmp}" = "1")
 
 # extra warnings
@@ -556,12 +549,10 @@ if test "x${enable_coverage}" = xyes && \
 	OPT_CFLAGS="-O0"
 	COVERAGE_CFLAGS="-ftest-coverage -fprofile-arcs"
 	COVERAGE_LDFLAGS="-ftest-coverage -fprofile-arcs"
-	COVERAGE_LCRSO_EXTRA_LDFLAGS="-rdynamic"
 	PACKAGE_FEATURES="$PACKAGE_FEATURES coverage"
 else
 	COVERAGE_CFLAGS=""
 	COVERAGE_LDFLAGS=""
-	COVERAGE_LCRSO_EXTRA_LDFLAGS=""
 fi
 
 
@@ -603,14 +594,12 @@ LDFLAGS="$ENV_LDFLAGS $COVERAGE_LDFLAGS $OS_LDFLAGS"
 
 # substitute what we need:
 AC_SUBST([INITDDIR])
-AC_SUBST([LCRSODIR])
 AC_SUBST([SOCKETDIR])
 
 AC_SUBST([SOMAJOR])
 AC_SUBST([SOMINOR])
 AC_SUBST([SOMICRO])
 AC_SUBST([SONAME])
-AC_SUBST([COVERAGE_LCRSO_EXTRA_LDFLAGS])
 AC_SUBST([OS_DYFLAGS])
 
 AC_SUBST([OS_LDL])
@@ -629,7 +618,6 @@ AM_CONDITIONAL(BUILD_HTML_DOCS, test -n "${GROFF}")
 
 AC_SUBST([LINT_FLAGS])
 
-AC_DEFINE_UNQUOTED([LCRSODIR], "$(eval echo ${LCRSODIR})", [LCRSO directory])
 AC_DEFINE_UNQUOTED([SOCKETDIR], "$(eval echo ${SOCKETDIR})", [Socket directory])
 AC_DEFINE_UNQUOTED([LOCALSTATEDIR], "$(eval echo ${localstatedir})", [localstate directory])
 
@@ -655,7 +643,6 @@ AC_MSG_RESULT([  State information        = ${localstatedir}])
 AC_MSG_RESULT([  System configuration     = ${sysconfdir}])
 AC_MSG_RESULT([  System init.d directory  = ${INITDDIR}])
 AC_MSG_RESULT([  corosync config dir      = ${COROSYSCONFDIR}])
-AC_MSG_RESULT([  LCRSO                    = ${LCRSODIR}])
 AC_MSG_RESULT([  SOCKETDIR                = ${SOCKETDIR}])
 AC_MSG_RESULT([  Features                 =${PACKAGE_FEATURES}])
 AC_MSG_RESULT([])
diff --git a/corosync.spec.in b/corosync.spec.in
index 08b005f..58603ca 100644
--- a/corosync.spec.in
+++ b/corosync.spec.in
@@ -173,23 +173,6 @@ fi
 %{_initrddir}/corosync
 %{_initrddir}/corosync-notifyd
 %endif
-%dir %{_libexecdir}/lcrso
-%{_libexecdir}/lcrso/coroparse.lcrso
-%{_libexecdir}/lcrso/service_cfg.lcrso
-%{_libexecdir}/lcrso/service_cpg.lcrso
-%{_libexecdir}/lcrso/service_evs.lcrso
-%{_libexecdir}/lcrso/service_cmap.lcrso
-%{_libexecdir}/lcrso/service_pload.lcrso
-%{_libexecdir}/lcrso/quorum_votequorum.lcrso
-%{_libexecdir}/lcrso/quorum_testquorum.lcrso
-%{_libexecdir}/lcrso/vsf_quorum.lcrso
-%{_libexecdir}/lcrso/vsf_ykd.lcrso
-%if %{with watchdog}
-%{_libexecdir}/lcrso/service_wd.lcrso
-%endif
-%if %{with monitoring}
-%{_libexecdir}/lcrso/service_mon.lcrso
-%endif
 %dir %{_localstatedir}/lib/corosync
 %dir %{_localstatedir}/log/cluster
 %{_mandir}/man8/corosync_overview.8*
@@ -225,7 +208,6 @@ This package contains corosync test agents.
 %{_bindir}/cpg_test_agent
 %{_bindir}/sam_test_agent
 %{_bindir}/votequorum_test_agent
-%{_libexecdir}/lcrso/service_syncv2.lcrso
 
 %endif
 
@@ -290,10 +272,6 @@ The Corosync Cluster Engine APIs.
 %{_includedir}/corosync/totem/totem.h
 %{_includedir}/corosync/totem/totemip.h
 %{_includedir}/corosync/totem/totempg.h
-%dir %{_includedir}/corosync/lcr/
-%{_includedir}/corosync/lcr/lcr_ckpt.h
-%{_includedir}/corosync/lcr/lcr_comp.h
-%{_includedir}/corosync/lcr/lcr_ifact.h
 %dir %{_includedir}/corosync/engine
 %{_includedir}/corosync/engine/config.h
 %{_includedir}/corosync/engine/quorum.h
diff --git a/exec/apidef.c b/exec/apidef.c
index 24fa5b9..8721996 100644
--- a/exec/apidef.c
+++ b/exec/apidef.c
@@ -42,7 +42,6 @@
 #include <qb/qbipcs.h>
 
 #include <corosync/corotypes.h>
-#include <corosync/lcr/lcr_ifact.h>
 #include <corosync/totem/totempg.h>
 #include <corosync/totem/totemip.h>
 #include <corosync/totem/totem.h>
diff --git a/exec/coroparse.c b/exec/coroparse.c
index d1c8ae4..a095612 100644
--- a/exec/coroparse.c
+++ b/exec/coroparse.c
@@ -55,7 +55,6 @@
 #include <pwd.h>
 
 #include <corosync/list.h>
-#include <corosync/lcr/lcr_comp.h>
 #include <qb/qbutil.h>
 #define LOGSYS_UTILS_ONLY 1
 #include <corosync/logsys.h>
diff --git a/exec/evil.c b/exec/evil.c
index 092f55d..b22a034 100644
--- a/exec/evil.c
+++ b/exec/evil.c
@@ -69,7 +69,6 @@
 #include <corosync/corotypes.h>
 #include <corosync/corodefs.h>
 #include <corosync/list.h>
-#include <corosync/lcr/lcr_ifact.h>
 #include <corosync/config.h>
 #include <corosync/coroapi.h>
 #include <corosync/logsys.h>
diff --git a/exec/service.c b/exec/service.c
index 8f701eb..5bd35d2 100644
--- a/exec/service.c
+++ b/exec/service.c
@@ -38,7 +38,6 @@
 #include <stdlib.h>
 #include <string.h>
 
-#include <corosync/lcr/lcr_ifact.h>
 #include <corosync/swab.h>
 #include <corosync/totem/totem.h>
 
diff --git a/exec/sync.c b/exec/sync.c
index 0cf01b3..f84c402 100644
--- a/exec/sync.c
+++ b/exec/sync.c
@@ -54,7 +54,6 @@
 #include <corosync/swab.h>
 #include <corosync/totem/totempg.h>
 #include <corosync/totem/totem.h>
-#include <corosync/lcr/lcr_ifact.h>
 #include <corosync/logsys.h>
 #include <qb/qbipc_common.h>
 #include "quorum.h"
diff --git a/exec/syncv2.c b/exec/syncv2.c
index a278be8..5a5528e 100644
--- a/exec/syncv2.c
+++ b/exec/syncv2.c
@@ -53,7 +53,6 @@
 #include <corosync/swab.h>
 #include <corosync/totem/totempg.h>
 #include <corosync/totem/totem.h>
-#include <corosync/lcr/lcr_ifact.h>
 #include <corosync/logsys.h>
 #include <qb/qbipc_common.h>
 #include "schedwrk.h"
diff --git a/exec/vsf_quorum.c b/exec/vsf_quorum.c
index c59afb9..bef65fd 100644
--- a/exec/vsf_quorum.c
+++ b/exec/vsf_quorum.c
@@ -61,8 +61,6 @@
 #include <corosync/list.h>
 #include <corosync/mar_gen.h>
 #include <corosync/ipc_quorum.h>
-#include <corosync/lcr/lcr_comp.h>
-#include <corosync/lcr/lcr_ifact.h>
 #include <corosync/mar_gen.h>
 #include <corosync/coroapi.h>
 #include <corosync/logsys.h>
diff --git a/include/Makefile.am b/include/Makefile.am
index a8f3477..b08341f 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -39,8 +39,6 @@ CS_INTERNAL_H		= ipc_cfg.h ipc_cpg.h ipc_evs.h ipc_pload.h ipc_quorum.h 	\
 			jhash.h pload.h quorum.h sq.h ipc_votequorum.h ipc_cmap.h \
 			logsys.h coroapi.h icmap.h
 
-LCR_H			= lcr_ckpt.h lcr_comp.h	lcr_ifact.h
-
 ENGINE_H		= config.h quorum.h
 
 TOTEM_H			= totem.h totemip.h totempg.h
@@ -49,5 +47,5 @@ EXTRA_DIST 		= $(noinst_HEADERS)
 
 noinst_HEADERS          = $(CS_INTERNAL_H:%=corosync/%)
 
-nobase_include_HEADERS	= $(CS_H:%=corosync/%) $(LCR_H:%=corosync/lcr/%) 			\
+nobase_include_HEADERS	= $(CS_H:%=corosync/%) \
 			$(ENGINE_H:%=corosync/engine/%) $(TOTEM_H:%=corosync/totem/%)
diff --git a/include/corosync/cs_config.h.in b/include/corosync/cs_config.h.in
index 39922be..37f7212 100644
--- a/include/corosync/cs_config.h.in
+++ b/include/corosync/cs_config.h.in
@@ -1,5 +1,2 @@
-/* Location of lcrso plugins */
-#undef LCRSODIR
-
 /* Location of sockets */
 #undef SOCKETDIR
diff --git a/include/corosync/lcr/lcr_ckpt.h b/include/corosync/lcr/lcr_ckpt.h
deleted file mode 100644
index 7d3ba4d..0000000
--- a/include/corosync/lcr/lcr_ckpt.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (C) 2006 Steven Dake (sdake@xxxxxxxxxx)
- *
- * This software licensed under BSD license, the text of which follows:
- *
- * 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 the MontaVista Software, Inc. 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.
- */
-
-#ifndef LCR_CKPT_H_DEFINED
-#define LCR_CKPT_H_DEFINED
-
-/**
- * Write data of length data_len into the section name for ckpt_handle
- */
-int lcr_ckpt_section_write (void *ckpt_handle, const char *name,
-			    const void *data, size_t data_len);
-
-/**
- * Read the section name into data with data len.
- *
- * @retval Returned in data_len is the actual data read from ckpt_handle.
- */
-int lcr_ckpt_section_read (void *ckpt_handle, const char *name,
-			   void *data, size_t *data_len);
-
-/**
- * Initialize the section iterator to the first section
- */
-int lcr_ckpt_section_iterator_first (void *ckpt_handle);
-
-/**
- * Get the current section, return it in name, and advance to next section
- */
-int lcr_ckpt_section_iterator_next (void *ckpt_handle, char **name);
-
-#endif /* LCR_CKPT_H_DEFINED */
diff --git a/include/corosync/lcr/lcr_comp.h b/include/corosync/lcr/lcr_comp.h
deleted file mode 100644
index f163cbf..0000000
--- a/include/corosync/lcr/lcr_comp.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright (C) 2006 Steven Dake (sdake@xxxxxxxxxx)
- *
- * This software licensed under BSD license, the text of which follows:
- *
- * 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 the MontaVista Software, Inc. 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.
- */
-
-#ifndef LCR_COMP_H_DEFINED
-#define LCR_COMP_H_DEFINED
-
-/**
- * LCR Interface
- */
-struct lcr_iface {
-	const char *name;                   /**< Name of the interface */
-	int version;                        /**< Version of this interface */
-	int *versions_replace;              /**< Versions that this interface can replace */
-	int versions_replace_count;         /**< Count of entries in version_replace */
-	char **dependencies;                /**< Dependent interfaces */
-	size_t dependency_count;            /**< Count of entires in dependencies */
-	int (*constructor) (void *context); /**< Constructor for this interface */
-	void (*destructor) (void *context); /**< Constructor for this interface */
-	void **interfaces;                  /**< List of functions in interface */
-};
-
-/**
- * LCR Component
- */
-struct lcr_comp {
-	struct lcr_iface *ifaces; /**< List of interfaces in this component */
-	size_t iface_count;       /**< size of ifaces list */
-};
-
-extern void lcr_component_register (struct lcr_comp *comp);
-
-static inline void lcr_interfaces_set (struct lcr_iface *iface, void *iface_list)
-{
-	iface->interfaces = (void **)iface_list;
-}
-
-#endif /* LCR_COMP_H_DEFINED */
diff --git a/include/corosync/lcr/lcr_ifact.h b/include/corosync/lcr/lcr_ifact.h
deleted file mode 100644
index 446e1af..0000000
--- a/include/corosync/lcr/lcr_ifact.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (C) 2006 Steven Dake (sdake@xxxxxxxxxx)
- *
- * This software licensed under BSD license, the text of which follows:
- *
- * 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 the MontaVista Software, Inc. 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.
- */
-
-#ifndef LCR_IFACT_H_DEFINED
-#define LCR_IFACT_H_DEFINED
-
-#include <corosync/hdb.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-int lcr_ifact_reference (
-	hdb_handle_t *handle,
-	const char *iface_name,
-	int version,
-	void **interface,
-	void *context);
-
-void *lcr_ifact_addr_get(hdb_handle_t iface_handle,
-			 const char* symbol_name);
-
-int lcr_ifact_release (
-	hdb_handle_t handle);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* LCR_IFACT_H_DEFINED */
diff --git a/lcr/.gitignore b/lcr/.gitignore
deleted file mode 100644
index aafc88c..0000000
--- a/lcr/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-test
-test_static
-uic
diff --git a/lcr/Makefile.am b/lcr/Makefile.am
deleted file mode 100644
index 9c2434e..0000000
--- a/lcr/Makefile.am
+++ /dev/null
@@ -1,79 +0,0 @@
-# Copyright (c) 2009 Red Hat, Inc.
-#
-# Authors: Andrew Beekhof
-#	   Steven Dake (sdake@xxxxxxxxxx)
-#
-# This software licensed under BSD license, the text of which follows:
-#
-# 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 the MontaVista Software, Inc. 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.
-MAINTAINERCLEANFILES    = Makefile.in
-
-AM_CFLAGS		= -fPIC
-
-INCLUDES 		= -I$(top_builddir)/include -I$(top_srcdir)/include
-
-lib_LIBRARIES		= liblcr.a
-
-noinst_PROGRAMS		= test test_static uic
-
-noinst_LCRSO		= libtest_a.lcrso libtest_b.lcrso
-
-uic_SOURCES		= uic.c
-
-liblcr_a_SOURCES	= lcr_ifact.c
-
-test_SOURCES		= test.c uis.c
-test_LDADD		= liblcr.a $(LIBQB_LIBS)
-
-test_static_SOURCES	= test.c libtest_a.c libtest_b.c uis.c lcr_ifact.c
-test_static_LDADD	= $(LIBQB_LIBS)
-
-if BUILD_DARWIN
-
-%.lcrso: %.o
-	$(CC) $(LDFLAGS) $(CFLAGS) -bundle -bundle_loader ./test $^ -o $@
-else
-
-if BUILD_SOLARIS
-
-%.lcrso: %.o
-	$(CC) $(LDFLAGS) $(CFLAGS) -shared $^ -o $@
-else
-
-%.lcrso: %.o
-	$(CC) $(LDFLAGS) $(CFLAGS) -shared -Wl,-soname,$@ $^ -o $@
-
-endif
-
-endif
-
-lint:
-	-splint $(LINT_FLAGS) $(CFLAGS) *.c
-
-all-local: $(noinst_LCRSO)
-	@echo Built Live Component Replacement System
-
-clean-local:
-	rm -f *.o *.a *.so* *.da *.bb *.bbg *.lcrso
diff --git a/lcr/README.lcr b/lcr/README.lcr
deleted file mode 100644
index ad782d0..0000000
--- a/lcr/README.lcr
+++ /dev/null
@@ -1,113 +0,0 @@
-Live Component Replacement
---------------------------
-All software is composed of components, which contain multiple software classes.
-Components generally depend upon other components and sometimes classes from
-other components.
-
-Some components of corosync are the evt service, the ckpt service, the clm
-service, the totem protocol, and others.  If a defect is found in any of
-these components, the entire ais executive must be stopped, replaced, and
-restarted.
-
-The lcr code formalizes the concept of components into dynamic libraries.  A
-component may have multiple classes.  Each class (the lcr code uses the word
-interface) may have multiple functions within the class.  Each interface may
-depend upon other interfaces, and those interfaces are then loaded prior to the
-requested interface being referenced.
-
-Note that with recent changes, the lcr interface factory can be used when
-statically linking without additional steps.  The interface for notifying
-lcr of a component has changed.
-
-A list of shared objects is scanned each time an interface is requested to
-load via the following interface:
-
-int lcr_ifact_reference (
-        void **handle,
-        char *iface_name,
-        int version,
-        void **interface,
-        void *context);
-
-The iface_name is the name of the interface, the version is the version,
-the void **interface is the list of functions returned once the interface
-has been dynamically loaded and referenced, and context is passed to the
-constructor and destructor.
-
-The interface is loaded, the interface constructor is called, and the list
-of interfaces is returned back to the caller.
-
-First the list of interfaces is described in an iface_list data structure:
-struct iface_list iface_list = {
-        .iface1_func1           = iface1_func1,
-        .iface1_func2           = iface1_func2,
-        .iface1_func3           = iface1_func3,
-};
-iface1_func1 is a simple function call.
-
-Then the lcr_iface data structure is defined for the c file:
-
-struct lcr_iface iface1_ver0 = {
-        .name                   = "iface1",
-        .version                = 0,
-        .versions_replace       = 0,
-        .versions_replace_count = 0,
-        .dependencies           = 0,
-        .dependency_count       = 0,
-        .constructor            = iface1_constructor,
-        .destructor             = iface1_destructor,
-        .interfaces             = (void **)&iface_list,
-};
-
-The name and version fields provide naming and versioning.  The constructor
-and destructor functions execute at reference and release times.  Finally
-the .interfaces type describes the list of functions used for the interface.
-
-Next, an lcr_comp must be described:
-
-struct lcr_comp test_comp = {
-        .iface_count            = 2,
-        .ifaces                 = lcr_ifaces
-};
-
-the iface count describes the number of interfaces within the component,
-and lcr_ifaces is an array of pointers to lcr_iface data types.
-
-The lcr_comp_get method has been replaced.  The final step is to setup a
-constructor that is started when the task is started.  This ctor will
-register the component with the lcr framework.
-
-static void register_this_component (void) {
-        lcr_component_register (&test_comp);
-}
-
-static void (*const __init_this_component[1]) (void) __attribute__ ((section(".ctors"))) = { register_this_component };
-
-
-Now the component can be referenced and used in another application.
-int main ()
-{
-
-.....
-
-	lcr_ifact_reference (
-		&ifact_handle_ver0,
-		"iface1",
-		0, /* version 0 */
-		(void **)&iface_ver0,
-		(void *)0xdeadbeef);
-
-	iface_ver0->func1();
-	iface_ver0->func2();
-	iface_ver0->func3();
-}
-
-
-See libtest_a and libtest_b for two sample components.  The test program
-demonstrates usage.  The test_static demonstrates operation when statically
-linked.  Note the dynamic inteface factory is still available for use when
-statically linking components.
-
-On startup, a thread is created which listens for requests from the "uic"
-application.  These requests are then processed by the lcr service which
-would execute a live replacement.
diff --git a/lcr/lcr_ifact.c b/lcr/lcr_ifact.c
deleted file mode 100644
index fc14f8c..0000000
--- a/lcr/lcr_ifact.c
+++ /dev/null
@@ -1,590 +0,0 @@
-/*
- * Copyright (C) 2006 Steven Dake (sdake@xxxxxxxxxx)
- *
- * This software licensed under BSD license, the text of which follows:
- *
- * 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 the MontaVista Software, Inc. 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.
- */
-
-#include <config.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <dlfcn.h>
-#include <dirent.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-#include <fnmatch.h>
-#ifdef COROSYNC_SOLARIS
-#include <iso/limits_iso.h>
-#endif
-#include <corosync/hdb.h>
-#include <corosync/lcr/lcr_comp.h>
-#include <corosync/lcr/lcr_ifact.h>
-
-struct lcr_component_instance {
-	struct lcr_iface *ifaces;
-	int iface_count;
-	hdb_handle_t comp_handle;
-	void *dl_handle;
-	int refcount;
-	char library_name[256];
-};
-
-struct lcr_iface_instance {
-	hdb_handle_t component_handle;
-	void *context;
-	void (*destructor) (void *context);
-};
-
-DECLARE_HDB_DATABASE (lcr_component_instance_database, NULL);
-
-DECLARE_HDB_DATABASE (lcr_iface_instance_database, NULL);
-
-/*
-static struct hdb_handle_database lcr_component_instance_database = {
-	.handle_count	= 0,
-	.handles	= 0,
-	.iterator	= 0
-};
-
-static struct hdb_handle_database lcr_iface_instance_database = {
-	.handle_count	= 0,
-	.handles	= 0,
-	.iterator	= 0
-};
-*/
-
-static hdb_handle_t g_component_handle = 0xFFFFFFFF;
-
-#if defined(COROSYNC_LINUX) || defined(COROSYNC_SOLARIS)
-static int lcr_select_so (const struct dirent *dirent)
-#else
-static int lcr_select_so (struct dirent *dirent)
-#endif
-{
-	unsigned int len;
-
-	len = strlen (dirent->d_name);
-
-	if (len > 6) {
-		if (strcmp (".lcrso", dirent->d_name + len - 6) == 0) {
-			return (1);
-		}
-	}
-	return (0);
-}
-
-#if defined(COROSYNC_LINUX) || defined(COROSYNC_SOLARIS)
-static int pathlist_select (const struct dirent *dirent)
-#else
-static int pathlist_select (struct dirent *dirent)
-#endif
-{
-	if (fnmatch ("*.conf", dirent->d_name, 0) == 0) {
-		return (1);
-	}
-
-	return (0);
-}
-
-static inline struct lcr_component_instance *lcr_comp_find (
-	const char *iface_name,
-	unsigned int version,
-	unsigned int *iface_number)
-{
-	struct lcr_component_instance *instance;
-	void *instance_p = NULL;
-	hdb_handle_t component_handle = 0;
-	int i;
-
-	/*
-	 * Try to find interface in already loaded component
-	 */
-	hdb_iterator_reset (&lcr_component_instance_database);
-	while (hdb_iterator_next (&lcr_component_instance_database,
-		&instance_p, &component_handle) == 0) {
-
-		instance = (struct lcr_component_instance *)instance_p;
-
-		for (i = 0; i < instance->iface_count; i++) {
-			if ((strcmp (instance->ifaces[i].name, iface_name) == 0) &&
-				instance->ifaces[i].version == version) {
-
-				*iface_number = i;
-				return (instance);
-			}
-		}
-		hdb_handle_put (&lcr_component_instance_database, component_handle);
-	}
-
-	return (NULL);
-}
-
-static inline int lcr_lib_loaded (
-	char *library_name)
-{
-	struct lcr_component_instance *instance;
-	void *instance_p = NULL;
-	hdb_handle_t component_handle = 0;
-
-	/*
-	 * Try to find interface in already loaded component
-	 */
-	hdb_iterator_reset (&lcr_component_instance_database);
-	while (hdb_iterator_next (&lcr_component_instance_database,
-		(void *)&instance_p, &component_handle) == 0) {
-
-		instance = (struct lcr_component_instance *)instance_p;
-
-		if (strcmp (instance->library_name, library_name) == 0) {
-			return (1);
-		}
-
-		hdb_handle_put (&lcr_component_instance_database, component_handle);
-	}
-
-	return (0);
-}
-
-enum { PATH_LIST_SIZE = 128 };
-const char *path_list[PATH_LIST_SIZE];
-unsigned int path_list_entries = 0;
-
-static void defaults_path_build (void)
-{
-	char cwd[1024];
-	char *res;
-
-	res = getcwd (cwd, sizeof (cwd));
-	if (res != NULL && (path_list[0] = strdup (cwd)) != NULL) {
-		path_list_entries++;
-	}
-
-	path_list[path_list_entries++] = LCRSODIR;
-}
-
-static void ld_library_path_build (void)
-{
-	char *ld_library_path;
-	char *my_ld_library_path;
-	char *p_s, *ptrptr;
-
-	ld_library_path = getenv ("LD_LIBRARY_PATH");
-	if (ld_library_path == NULL) {
-		return;
-	}
-	my_ld_library_path = strdup (ld_library_path);
-	if (my_ld_library_path == NULL) {
-		return;
-	}
-
-	p_s = strtok_r (my_ld_library_path, ":", &ptrptr);
-	while (p_s != NULL) {
-		char *p = strdup (p_s);
-		if (p && path_list_entries < PATH_LIST_SIZE) {
-			path_list[path_list_entries++] = p;
-		}
-		p_s = strtok_r (NULL, ":", &ptrptr);
-	}
-
-	free (my_ld_library_path);
-}
-
-static int ldso_path_build (const char *path, const char *filename)
-{
-	FILE *fp;
-	char string[1024];
-	char filename_cat[1024];
-	char newpath[1024];
-	char *newpath_tmp;
-	char *new_filename;
-	int j;
-	struct dirent **scandir_list;
-	unsigned int scandir_entries;
-
-	snprintf (filename_cat, sizeof(filename_cat), "%s/%s", path, filename);
-	if (filename[0] == '*') {
-		scandir_entries = scandir (
-			path,
-			&scandir_list,
-			pathlist_select, alphasort);
-		if (scandir_entries == 0) {
-			return 0;
-		} else if (scandir_entries == -1) {
-			return -1;
-		} else {
-			for (j = 0; j < scandir_entries; j++) {
-				ldso_path_build (path, scandir_list[j]->d_name);
-			}
-		}
-	}
-
-	fp = fopen (filename_cat, "r");
-	if (fp == NULL) {
-		return (-1);
-	}
-
-	while (fgets (string, sizeof (string), fp)) {
-		char *p;
-		if (strlen(string) > 0)
-			string[strlen(string) - 1] = '\0';
-		if (strncmp (string, "include", strlen ("include")) == 0) {
-			newpath_tmp = string + strlen ("include") + 1;
-			for (j = strlen (string);
-				string[j] != ' ' &&
-					string[j] != '/' &&
-					j > 0;
-				j--) {
-			}
-			string[j] = '\0';
-			new_filename = &string[j] + 1;
-			strcpy (newpath, path);
-			strcat (newpath, "/");
-			strcat (newpath, newpath_tmp);
-			ldso_path_build (newpath, new_filename);
-			continue;
-		}
-		p = strdup (string);
-		if (p && path_list_entries < PATH_LIST_SIZE) {
-			path_list[path_list_entries++] = p;
-		}
-	}
-	fclose(fp);
-	return (0);
-}
-
-#if defined (COROSYNC_SOLARIS) && !defined(HAVE_SCANDIR)
-static int scandir (
-	const char *dir, struct dirent ***namelist,
-	int (*filter)(const struct dirent *),
-	int (*compar)(const struct dirent **, const struct dirent **))
-{
-	DIR *d;
-	struct dirent *entry;
-	struct dirent *result;
-	struct dirent **names = NULL;
-	int namelist_items = 0, namelist_size = 0;
-	size_t len;
-	int return_code;
-
-	d = opendir(dir);
-	if (d == NULL)
-		return -1;
-
-	names = NULL;
-
-	len = offsetof(struct dirent, d_name) +
-                     pathconf(dir, _PC_NAME_MAX) + 1;
-	entry = malloc(len);
-
-	for (return_code = readdir_r (d, entry, &result);
-		dirent != NULL && return_code == 0;
-		return_code = readdir_r(d, entry, &result)) {
-
-		struct dirent *tmpentry;
-		if ((filter != NULL) && ((*filter)(result) == 0)) {
-			continue;
-		}
-		if (namelist_items >= namelist_size) {
-			struct dirent **tmp;
-			namelist_size += 512;
-			if ((unsigned long)namelist_size > INT_MAX) {
-				errno = EOVERFLOW;
-				goto fail;
-			}
-			tmp = realloc (names,
-				namelist_size * sizeof(struct dirent *));
-			if (tmp == NULL) {
-				goto fail;
-			}
-			names = tmp;
-		}
-		tmpentry = malloc (result->d_reclen);
-		if (tmpentry == NULL) {
-			goto fail;
-		}
-		(void) memcpy (tmpentry, result, result->d_reclen);
-		names[namelist_items++] = tmpentry;
-	}
-	(void) closedir (d);
-	if ((namelist_items > 1) && (compar != NULL)) {
-		qsort (names, namelist_items, sizeof (struct dirent *),
-			(int (*)(const void *, const void *))compar);
-	}
-
-	*namelist = names;
-
-	return namelist_items;
-
-fail:
-	{
-	int err = errno;
-	(void) closedir (d);
-	while (namelist_items != 0) {
-		namelist_items--;
-		free (*namelist[namelist_items]);
-	}
-	free (entry);
-	free (names);
-	*namelist = NULL;
-	errno = err;
-	return -1;
-	}
-}
-#endif
-
-#if defined (COROSYNC_SOLARIS) && !defined(HAVE_ALPHASORT)
-static int alphasort (const struct dirent **a, const struct dirent **b)
-{
-	return strcmp ((*a)->d_name, (*b)->d_name);
-}
-#endif
-
-static int interface_find_and_load (
-	const char *path,
-	const char *iface_name,
-	int version,
-	struct lcr_component_instance **instance_ret,
-	unsigned int *iface_number)
-{
-	struct lcr_component_instance *instance;
-	void *dl_handle;
-	struct dirent **scandir_list;
-	int scandir_entries;
-	unsigned int libs_to_scan;
-	char dl_name[1024];
-#ifdef COROSYNC_SOLARIS
-	void (*comp_reg)(void);
-#endif
-
-	scandir_entries = scandir (path,  &scandir_list, lcr_select_so, alphasort);
-	if (scandir_entries > 0)
-	/*
-	 * no error so load the object
-	 */
-	for (libs_to_scan = 0; libs_to_scan < scandir_entries; libs_to_scan++) {
-		/*
-		 * Load objects, scan them, unload them if they are not a match
-		 */
-		snprintf (dl_name, sizeof(dl_name), "%s/%s",
-			path, scandir_list[libs_to_scan]->d_name);
-		/*
-	 	 * Don't reload already loaded libraries
-		 */
-		if (lcr_lib_loaded (dl_name)) {
-			continue;
-		}
-		dl_handle = dlopen (dl_name, RTLD_NOW);
-		if (dl_handle == NULL) {
-			fprintf(stderr, "%s: open failed: %s\n",
-				dl_name, dlerror());
-			continue;
-		}
-/*
- * constructors don't work in Solaris dlopen, so we have to specifically call
- * a function to register the component
- */
-#ifdef COROSYNC_SOLARIS
-		comp_reg = dlsym (dl_handle, "corosync_lcr_component_register");
-		comp_reg ();
-#endif
-		instance = lcr_comp_find (iface_name, version, iface_number);
-		if (instance) {
-			instance->dl_handle = dl_handle;
-			strcpy (instance->library_name, dl_name);
-			goto found;
-		}
-
-		/*
-		* No matching interfaces found, try next shared object
-		*/
-		if (g_component_handle != 0xFFFFFFFF) {
-			hdb_handle_destroy (&lcr_component_instance_database,
-				g_component_handle);
-			g_component_handle = 0xFFFFFFFF;
-		}
-		dlclose (dl_handle);
-	} /* scanning for lcrso loop */
-
-
-	if (scandir_entries > 0) {
-		int i;
-		for (i = 0; i < scandir_entries; i++) {
-			free (scandir_list[i]);
-		}
-		free (scandir_list);
-	}
-	g_component_handle = 0xFFFFFFFF;
-	return -1;
-
-found:
-	*instance_ret = instance;
-	if (scandir_entries > 0) {
-		int i;
-		for (i = 0; i < scandir_entries; i++) {
-			free (scandir_list[i]);
-		}
-		free (scandir_list);
-	}
-	g_component_handle = 0xFFFFFFFF;
-	return 0;
-}
-
-static unsigned int lcr_initialized = 0;
-
-void *lcr_ifact_addr_get(hdb_handle_t iface_handle,
-			 const char* symbol_name)
-{
-	struct lcr_iface_instance *iface_instance;
-	struct lcr_component_instance *instance;
-	void *ptr;
-
-	hdb_handle_get (&lcr_iface_instance_database,
-		iface_handle, (void *)&iface_instance);
-
-	hdb_handle_get (&lcr_component_instance_database,
-		iface_instance->component_handle, (void *)&instance);
-
-	ptr = dlsym(instance->dl_handle, symbol_name);
-
-	hdb_handle_put(&lcr_component_instance_database,
-		iface_instance->component_handle);
-
-	hdb_handle_put (&lcr_iface_instance_database,
-		iface_handle);
-	return ptr;
-}
-
-
-int lcr_ifact_reference (
-	hdb_handle_t *iface_handle,
-	const char *iface_name,
-	int version,
-	void **iface,
-	void *context)
-{
-	struct lcr_iface_instance *iface_instance;
-	struct lcr_component_instance *instance;
-	unsigned int iface_number;
-	unsigned int res;
-	unsigned int i;
-
-	/*
-	 * Determine if the component is already loaded
-	 */
-	instance = lcr_comp_find (iface_name, version, &iface_number);
-	if (instance) {
-		goto found;
-	}
-
-	if (lcr_initialized == 0) {
-		lcr_initialized = 1;
-		defaults_path_build ();
-		ld_library_path_build ();
-		ldso_path_build ("/etc", "ld.so.conf");
-	}
-
-// TODO error checking in this code is weak
-	/*
-	 * Search through all lcrso files for desired interface
-	 */
-	for (i = 0; i < path_list_entries; i++) {
-		res = interface_find_and_load (
-			path_list[i],
-			iface_name,
-			version,
-			&instance,
-			&iface_number);
-
-		if (res == 0) {
-			goto found;
-		}
-	}
-
-	/*
-	 * No matching interfaces found in all shared objects
-	 */
-	return (-1);
-
-found:
-	*iface = instance->ifaces[iface_number].interfaces;
-	if (instance->ifaces[iface_number].constructor) {
-		instance->ifaces[iface_number].constructor (context);
-	}
-	hdb_handle_create (&lcr_iface_instance_database,
-		sizeof (struct lcr_iface_instance),
-		iface_handle);
-	hdb_handle_get (&lcr_iface_instance_database,
-		*iface_handle, (void *)&iface_instance);
-	iface_instance->component_handle = instance->comp_handle;
-	iface_instance->context = context;
-	iface_instance->destructor = instance->ifaces[iface_number].destructor;
-	hdb_handle_put (&lcr_iface_instance_database, *iface_handle);
-	return (0);
-}
-
-int lcr_ifact_release (hdb_handle_t handle)
-{
-	struct lcr_iface_instance *iface_instance;
-	int res = 0;
-
-	res = hdb_handle_get (&lcr_iface_instance_database,
-		handle, (void *)&iface_instance);
-
-	if (iface_instance->destructor) {
-		iface_instance->destructor (iface_instance->context);
-	}
-
-	hdb_handle_put (&lcr_component_instance_database,
-		iface_instance->component_handle);
-	hdb_handle_put (&lcr_iface_instance_database, handle);
-	hdb_handle_destroy (&lcr_iface_instance_database, handle);
-
-	return (res);
-}
-
-void lcr_component_register (struct lcr_comp *comp)
-{
-	struct lcr_component_instance *instance;
-	static hdb_handle_t comp_handle;
-
-	hdb_handle_create (&lcr_component_instance_database,
-		sizeof (struct lcr_component_instance),
-		&comp_handle);
-	hdb_handle_get (&lcr_component_instance_database,
-		comp_handle, (void *)&instance);
-
-	instance->ifaces = comp->ifaces;
-	instance->iface_count = comp->iface_count;
-	instance->comp_handle = comp_handle;
-	instance->dl_handle = NULL;
-
-	hdb_handle_put (&lcr_component_instance_database,
-		comp_handle);
-
-	g_component_handle = comp_handle;
-}
diff --git a/lcr/libtest_a.c b/lcr/libtest_a.c
deleted file mode 100644
index cfed120..0000000
--- a/lcr/libtest_a.c
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * Copyright (C) 2006 Steven Dake (sdake@xxxxxxxxxx)
- *
- * This software licensed under BSD license, the text of which follows:
- *
- * 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 the MontaVista Software, Inc. 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.
- */
-
-#include <config.h>
-
-#include <stdio.h>
-#include <corosync/lcr/lcr_comp.h>
-
-/*
- * Version 0 of the interface
- */
-static int iface1_constructor (void *context);
-
-static void iface1_destructor (void *context);
-
-static void iface1_func1 (void);
-
-static void iface1_func2 (void);
-
-static void iface1_func3 (void);
-
-/*
- * Version 1 of the interface
- */
-static int iface1_ver1_constructor (void *context);
-
-static void iface1_ver1_destructor (void *context);
-
-static void iface1_ver1_func1 (void);
-
-static void iface1_ver1_func2 (void);
-
-static void iface1_ver1_func3 (void);
-
-struct iface_list {
-	void (*iface1_func1)(void);
-	void (*iface1_func2)(void);
-	void (*iface1_func3)(void);
-};
-
-struct iface_ver1_list {
-	void (*iface1_ver1_func1)(void);
-	void (*iface1_ver1_func2)(void);
-	void (*iface1_ver1_func3)(void);
-};
-
-static struct iface_list iface_list = {
-	.iface1_func1		= iface1_func1,
-	.iface1_func2		= iface1_func2,
-	.iface1_func3		= iface1_func3,
-};
-
-static struct iface_list iface_ver1_list = {
-	.iface1_func1		= iface1_ver1_func1,
-	.iface1_func2		= iface1_ver1_func2,
-	.iface1_func3		= iface1_ver1_func3,
-};
-
-static struct lcr_iface iface1[2] = {
-	/* version 0 */
-	{
-		.name			= "A_iface1",
-		.version		= 0,
-		.versions_replace	= 0,
-		.versions_replace_count	= 0,
-		.dependencies		= 0,
-		.dependency_count	= 0,
-		.constructor		= iface1_constructor,
-		.destructor		= iface1_destructor,
-		.interfaces		= NULL
-	},
-	/* version 1 */
-	{
-		.name			= "A_iface1",
-		.version		= 1,
-		.versions_replace	= 0,
-		.versions_replace_count	= 0,
-		.dependencies		= 0,
-		.dependency_count	= 0,
-		.constructor		= iface1_ver1_constructor,
-		.destructor		= iface1_ver1_destructor,
-		.interfaces		= NULL
-	}
-};
-
-static struct lcr_comp test_comp = {
-	.iface_count 		= 2,
-	.ifaces 		= iface1
-};
-
-static int iface1_constructor (void *context)
-{
-	printf ("A - version 0 constructor context %p\n", context);
-	return (0);
-}
-
-static void iface1_destructor (void *context)
-{
-	printf ("A - version 0 destructor context %p\n", context);
-}
-static void iface1_func1 (void) {
-	printf ("A - version 0 func1\n");
-}
-
-static void iface1_func2 (void) {
-	printf ("A - version 0 func2\n");
-}
-
-static void iface1_func3 (void) {
-	printf ("A - version 0 func3\n");
-}
-
-static int iface1_ver1_constructor (void *context)
-{
-	printf ("A - version 1 constructor context %p\n", context);
-	return (0);
-}
-
-static void iface1_ver1_destructor (void *context)
-{
-	printf ("A - version 1 destructor context %p\n", context);
-}
-static void iface1_ver1_func1 (void) {
-	printf ("A - version 1 func1\n");
-}
-
-static void iface1_ver1_func2 (void) {
-	printf ("A - version 1 func2\n");
-}
-
-static void iface1_ver1_func3 (void) {
-	printf ("A - version 1 func3\n");
-}
-
-__attribute__ ((constructor)) static void register_this_component (void) {
-	lcr_interfaces_set (&iface1[0], &iface_list);
-	lcr_interfaces_set (&iface1[1], &iface_ver1_list);
-	lcr_component_register (&test_comp);
-}
diff --git a/lcr/libtest_b.c b/lcr/libtest_b.c
deleted file mode 100644
index 9ef68a2..0000000
--- a/lcr/libtest_b.c
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
- * Copyright (C) 2006 Steven Dake (sdake@xxxxxxxxxx)
- *
- * This software licensed under BSD license, the text of which follows:
- *
- * 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 the MontaVista Software, Inc. 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.
- */
-
-#include <config.h>
-
-#include <stdio.h>
-#include <corosync/lcr/lcr_comp.h>
-
-/*
- * Version 0 of the interface
- */
-static int iface1_constructor (void *context);
-
-static void iface1_destructor (void *context);
-
-static void iface1_func1 (void);
-
-static void iface1_func2 (void);
-
-static void iface1_func3 (void);
-
-/*
- * Version 1 of the interface
- */
-static int iface1_ver1_constructor (void *context);
-
-static void iface1_ver1_destructor (void *context);
-
-static void iface1_ver1_func1 (void);
-
-static void iface1_ver1_func2 (void);
-
-static void iface1_ver1_func3 (void);
-
-struct iface_list {
-	void (*iface1_func1)(void);
-	void (*iface1_func2)(void);
-	void (*iface1_func3)(void);
-};
-
-struct iface_ver1_list {
-	void (*iface1_ver1_func1)(void);
-	void (*iface1_ver1_func2)(void);
-	void (*iface1_ver1_func3)(void);
-};
-
-struct iface_list iface_list = {
-	.iface1_func1		= iface1_func1,
-	.iface1_func2		= iface1_func2,
-	.iface1_func3		= iface1_func3,
-};
-
-struct iface_list iface_ver1_list = {
-	.iface1_func1		= iface1_ver1_func1,
-	.iface1_func2		= iface1_ver1_func2,
-	.iface1_func3		= iface1_ver1_func3,
-};
-
-struct lcr_iface iface1[2]= {
-	/*
-	 * Version 0
-	 */
-	{
-		.name			= "B_iface1",
-		.version		= 0,
-		.versions_replace	= 0,
-		.versions_replace_count	= 0,
-		.dependencies		= 0,
-		.dependency_count	= 0,
-		.constructor		= iface1_constructor,
-		.destructor		= iface1_destructor,
-		.interfaces		= NULL
-	},
-	/*
-	 * Version 1
-	 */
-	{
-		.name			= "B_iface1",
-		.version		= 1,
-		.versions_replace	= 0,
-		.versions_replace_count	= 0,
-		.dependencies		= 0,
-		.dependency_count	= 0,
-		.constructor		= iface1_ver1_constructor,
-		.destructor		= iface1_ver1_destructor,
-		.interfaces		= NULL
-	}
-};
-
-struct lcr_comp test_comp = {
-	.iface_count 		= 2,
-	.ifaces 		= iface1
-};
-
-static int iface1_constructor (void *context)
-{
-	printf ("B - version 0 constructor context %p\n", context);
-	return (0);
-}
-
-static void iface1_destructor (void *context)
-{
-	printf ("B - version 0 destructor context %p\n", context);
-}
-
-static void iface1_func1 (void) {
-	printf ("B - version 0 func1\n");
-}
-
-static void iface1_func2 (void) {
-	printf ("B - version 0 func2\n");
-}
-
-static void iface1_func3 (void) {
-	printf ("B - version 0 func3\n");
-}
-
-static int iface1_ver1_constructor (void *context)
-{
-	printf ("B - version 1 constructor context %p\n", context);
-	return (0);
-}
-
-static void iface1_ver1_destructor (void *context)
-{
-	printf ("B - version 1 destructor context %p\n", context);
-}
-
-static void iface1_ver1_func1 (void) {
-	printf ("B - version 1 func1\n");
-}
-
-static void iface1_ver1_func2 (void) {
-	printf ("B - version 1 func2\n");
-}
-
-static void iface1_ver1_func3 (void) {
-	printf ("B - version 1 func3\n");
-}
-
-__attribute__ ((constructor)) static void register_this_component (void)
-{
-        lcr_interfaces_set (&iface1[0], &iface_list);
-        lcr_interfaces_set (&iface1[1], &iface_ver1_list);
-
-	lcr_component_register (&test_comp);
-}
diff --git a/lcr/test.c b/lcr/test.c
deleted file mode 100644
index 4c01ba2..0000000
--- a/lcr/test.c
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * Copyright (C) 2006 Steven Dake (sdake@xxxxxxxxxx)
- *
- * This software licensed under BSD license, the text of which follows:
- *
- * 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 the MontaVista Software, Inc. 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.
- */
-
-#include <config.h>
-
-#include <assert.h>
-#include <unistd.h>
-#include <corosync/hdb.h>
-#include <corosync/lcr/lcr_ifact.h>
-
-struct iface {
-	void (*func1) (void);
-	void (*func2) (void);
-	void (*func3) (void);
-};
-
-int main (void) {
-	hdb_handle_t a_ifact_handle_ver0;
-	hdb_handle_t b_ifact_handle_ver0;
-	struct iface *a_iface_ver0;
-	struct iface *a_iface_ver1;
-	void *a_iface_ver0_p;
-	void *a_iface_ver1_p;
-
-	hdb_handle_t a_ifact_handle_ver1;
-	hdb_handle_t b_ifact_handle_ver1;
-	struct iface *b_iface_ver0;
-	struct iface *b_iface_ver1;
-	void *b_iface_ver0_p;
-	void *b_iface_ver1_p;
-
-	unsigned int res;
-
-	/*
-	 * Reference version 0 and 1 of A and B interfaces
-	 */
-	res = lcr_ifact_reference (
-		&a_ifact_handle_ver0,
-		"A_iface1",
-		0, /* version 0 */
-		&a_iface_ver0_p,
-		(void *)0xaaaa0000);
-	assert (res == 0);
-
-	a_iface_ver0 = (struct iface *)a_iface_ver0_p;
-
-	res = lcr_ifact_reference (
-		&b_ifact_handle_ver0,
-		"B_iface1",
-		0, /* version 0 */
-		&b_iface_ver0_p,
-		(void *)0xbbbb0000);
-	assert (res == 0);
-
-	b_iface_ver0 = (struct iface *)b_iface_ver0_p;
-
-	res = lcr_ifact_reference (
-		&a_ifact_handle_ver1,
-		"A_iface1",
-		1, /* version 1 */
-		&a_iface_ver1_p,
-		(void *)0xaaaa1111);
-	assert (res == 0);
-
-	a_iface_ver1 = (struct iface *)a_iface_ver1_p;
-
-	res = lcr_ifact_reference (
-		&b_ifact_handle_ver1,
-		"B_iface1",
-		1, /* version 1 */
-		&b_iface_ver1_p,
-		(void *)0xbbbb1111);
-	assert (res == 0);
-
-	b_iface_ver1 = (struct iface *)b_iface_ver1_p;
-
-	a_iface_ver0->func1();
-	a_iface_ver0->func2();
-	a_iface_ver0->func3();
-
-	lcr_ifact_release (a_ifact_handle_ver0);
-
-	a_iface_ver1->func1();
-	a_iface_ver1->func2();
-	a_iface_ver1->func3();
-
-	lcr_ifact_release (a_ifact_handle_ver1);
-
-	b_iface_ver0->func1();
-	b_iface_ver0->func2();
-	b_iface_ver0->func3();
-
-	lcr_ifact_release (b_ifact_handle_ver0);
-
-	b_iface_ver1->func1();
-	b_iface_ver1->func2();
-	b_iface_ver1->func3();
-
-	lcr_ifact_release (b_ifact_handle_ver1);
-
-	return (0);
-}
diff --git a/lcr/uic.c b/lcr/uic.c
deleted file mode 100755
index 9e2688e..0000000
--- a/lcr/uic.c
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * Copyright (c) 2006 Steven Dake (sdake@xxxxxxxxxx)
- *
- * This software licensed under BSD license, the text of which follows:
- *
- * 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 the MontaVista Software, Inc. 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.
- */
-
-#include <config.h>
-
-#include <sys/uio.h>
-#include <sys/mman.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/un.h>
-#include <sys/time.h>
-#include <sys/resource.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <errno.h>
-#include <sched.h>
-#include <time.h>
-#include <pthread.h>
-#include <sys/poll.h>
-#include <string.h>
-
-#if defined(COROSYNC_LINUX) || defined(COROSYNC_SOLARIS)
-/* SUN_LEN is broken for abstract namespace
- */
-#define AIS_SUN_LEN(a) sizeof(*(a))
-#else
-#define AIS_SUN_LEN(a) SUN_LEN(a)
-#endif
-
-#ifdef COROSYNC_LINUX
-static const char *socketname = "lcr.socket";
-#else
-static const char *socketname = SOCKETDIR "/lcr.socket";
-#endif
-
-static int uic_connect (int *fd);
-
-static int uic_msg_send (int fd, void *msg);
-
-int uic_connect (int *fd)
-{
-	int res;
-	struct sockaddr_un addr;
-
-	memset (&addr, 0, sizeof (struct sockaddr_un));
-#if defined(COROSYNC_BSD) || defined(COROSYNC_DARWIN)
-	addr.sun_len = sizeof(struct sockaddr_un);
-#endif
-	addr.sun_family = PF_UNIX;
-#if defined(COROSYNC_LINUX)
-	strcpy (addr.sun_path + 1, socketname);
-#else
-	strcpy (addr.sun_path, socketname);
-#endif
-	*fd = socket (PF_UNIX, SOCK_STREAM, 0);
-	if (*fd == -1) {
-		return -errno;
-	}
-	res = connect (*fd, (struct sockaddr *)&addr, AIS_SUN_LEN(&addr));
-	if (res == -1) {
-		return -errno;
-	}
-	return 0;
-}
-
-struct uic_req_msg {
-	int len;
-	char msg[0];
-};
-
-static int uic_msg_send (int fd, void *msg)
-{
-	struct msghdr msg_send;
-	struct iovec iov_send[2];
-	struct uic_req_msg req_msg;
-	ssize_t send_res;
-	int res;
-
-	req_msg.len = strlen (msg) + 1;
-	iov_send[0].iov_base = (void *)&req_msg;
-	iov_send[0].iov_len = sizeof (struct uic_req_msg);
-	iov_send[1].iov_base = msg;
-	iov_send[1].iov_len = req_msg.len;
-
-	msg_send.msg_iov = iov_send;
-	msg_send.msg_iovlen = 2;
-	msg_send.msg_name = 0;
-	msg_send.msg_namelen = 0;
-#ifndef COROSYNC_SOLARIS
-	msg_send.msg_control = 0;
-	msg_send.msg_controllen = 0;
-	msg_send.msg_flags = 0;
-#else
-	msg_send.msg_accrights = NULL;
-	msg_send.msg_accrightslen = 0;
-#endif
-
-	retry_send:
-	send_res = sendmsg (fd, &msg_send, 0);
-	if (send_res == -1 && errno == EINTR) {
-                goto retry_send;
-        }
-	if (send_res == -1) {
-		res = -errno;
-	} else {
-		res = (int)send_res;
-	}
-	return (res);
-
-}
-
-
-int main (void)
-{
-	int client_fd;
-	int res;
-	char command[128] = "livereplace ckpt version2";
-
-	res = uic_connect (&client_fd);
-	if (res != 0) {
-		printf ("Couldn't connect to live replacement service\n");
-	}
-	uic_msg_send (client_fd, (void *)command);
-
-	return 0;
-}
diff --git a/lcr/uis.c b/lcr/uis.c
deleted file mode 100755
index a2a5896..0000000
--- a/lcr/uis.c
+++ /dev/null
@@ -1,205 +0,0 @@
-/*
- * Copyright (c) 2006 Steven Dake (sdake@xxxxxxxxxx)
- *
- * This software licensed under BSD license, the text of which follows:
- *
- * 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 the MontaVista Software, Inc. 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.
- */
-
-#include <config.h>
-
-#include <sys/uio.h>
-#include <sys/mman.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/un.h>
-#include <sys/time.h>
-#include <sys/resource.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <errno.h>
-#include <sched.h>
-#include <time.h>
-#include <pthread.h>
-#include <sys/poll.h>
-#include <string.h>
-
-#define SERVER_BACKLOG 5
-
-#if defined(COROSYNC_LINUX) || defined(COROSYNC_SOLARIS)
-/* SUN_LEN is broken for abstract namespace
- */
-#define AIS_SUN_LEN(a) sizeof(*(a))
-#else
-#define AIS_SUN_LEN(a) SUN_LEN(a)
-#endif
-
-#ifdef COROSYNC_LINUX
-static const char *socketname = "lcr.socket";
-#else
-static const char *socketname = SOCKETDIR "/lcr.socket";
-#endif
-
-static void uis_lcr_bind (int *server_fd)
-{
-	int fd;
-	struct sockaddr_un un_addr;
-	int res;
-
-	/*
-	 * Create socket for lcr clients, name socket, listen for connections
-	 */
-	fd = socket (PF_UNIX, SOCK_STREAM, 0);
-	if (fd == -1) {
-		perror ("uis_lcr_bind failed");
-		*server_fd = -1;
-		return;
-	};
-
-#if !defined(COROSYNC_LINUX)
-	unlink(socketname);
-#endif
-	memset (&un_addr, 0, sizeof (struct sockaddr_un));
-#if defined(COROSYNC_BSD) || defined(COROSYNC_DARWIN)
-	un_addr.sun_len = sizeof(struct sockaddr_un);
-#endif
-	un_addr.sun_family = AF_UNIX;
-#if defined(COROSYNC_LINUX)
-	strcpy (un_addr.sun_path + 1, socketname);
-#else
-	strcpy (un_addr.sun_path, socketname);
-#endif
-
-	res = bind (fd, (struct sockaddr *)&un_addr, AIS_SUN_LEN(&un_addr));
-	if (res) {
-		char error_str[100];
-		const char *error_ptr;
-#ifdef _GNU_SOURCE
-/* The GNU version of strerror_r returns a (char*) that *must* be used */
-		error_ptr = strerror_r(errno, error_str, sizeof(error_str));
-#else
-/* The XSI-compliant strerror_r() return 0 or -1 (in case the buffer is full) */
-		strerror_r(errno, error_str, sizeof(error_str));
-		error_ptr = error_str;
-#endif
-		printf ("Could not bind AF_UNIX: %s\n", error_ptr);
-	}
-	listen (fd, SERVER_BACKLOG);
-	*server_fd = fd;
-}
-
-struct uis_commands {
-	const char *command;
-	void (*cmd_handler) (char *);
-};
-
-static void cmd1 (char *cmd) {
-	printf ("cmd1 executed with cmd line %s\n", cmd);
-}
-
-struct uis_commands uis_commands[] = {
-	{
-		"cmd1", cmd1
-	}
-};
-
-struct uis_req_msg {
-        int len;
-        char msg[0];
-};
-
-static void lcr_uis_dispatch (int fd)
-{
-	struct uis_req_msg header;
-	char msg_contents[512];
-	ssize_t readsize;
-
-	/*
-	 * TODO this doesn't handle short reads
-	 */
-	readsize = read (fd, &header, sizeof (header));
-	if (readsize == -1) {
-		return;
-	}
-	readsize = read (fd, msg_contents, sizeof (msg_contents));
-	if (readsize == -1) {
-		return;
-	}
-
-	printf ("msg contents %s\n", msg_contents);
-}
-
-static void *lcr_uis_server (void *data)
-{
-	struct pollfd ufds[2];
-	struct sockaddr_un un_addr;
-	socklen_t addrlen;
-	int nfds = 1;
-#ifdef COROSYNC_LINUX
-	int on = 1;
-#endif
-
-	/*
-	 * Main acceptance and dispatch loop
-	 */
-	uis_lcr_bind (&ufds[0].fd);
-	printf ("UIS server thread started %d\n", ufds[0].fd);
-	ufds[0].events = POLLIN;
-	ufds[1].events = POLLOUT;
-	for (;;) {
-		int res = poll (ufds, nfds, -1);
-		if (res == 0 || (res < 0 && errno == EINTR))
-			continue;
-		if (res < 0)
-			return NULL;
-		if (nfds == 1 && ufds[0].revents & POLLIN) {
-			ufds[1].fd = accept (ufds[0].fd,
-				(struct sockaddr *)&un_addr, &addrlen);
-#ifdef COROSYNC_LINUX
-			if (ufds[1].fd >= 0) {
-				setsockopt(ufds[1].fd, SOL_SOCKET, SO_PASSCRED,
-					&on, sizeof (on));
-			}
-#endif
-			nfds = 2;
-		}
-		if (ufds[1].fd >= 0 && (ufds[0].revents & POLLIN)) {
-			lcr_uis_dispatch (ufds[1].fd);
-		}
-	}
-}
-
-__attribute__ ((constructor)) static int lcr_uis_ctors (void)
-{
-	pthread_t thread;
-
-	pthread_create (&thread, NULL, lcr_uis_server, NULL);
-
-	return (0);
-}
diff --git a/lib/Makefile.am b/lib/Makefile.am
index 0262453..d2dd8ed 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -67,9 +67,6 @@ noinst_HEADERS		= util.h \
 			  libquorum.versions libvotequorum.versions \
 			  libsam.versions libcmap.versions
 
-../lcr/lcr_ifact.o:
-	$(MAKE) -C ../lcr lcr_ifact.o
-
 if BUILD_DARWIN
 
 lib%.so: lib%.a $(LIBQB_LIBS)
diff --git a/loc b/loc
index a9db13c..ce502f4 100755
--- a/loc
+++ b/loc
@@ -12,9 +12,6 @@ printf "%7.7s\n" `find lib -name *.[ch] -exec cat {} \; | wc -l`
 echo -n "include LOC  "
 printf "%7.7s\n" `find include -name *.[ch] -exec cat {} \; | wc -l`
 
-echo -n "lcr LOC      "
-printf "%7.7s\n" `find lcr -name *.[ch] -exec cat {} \; | wc -l`
-
 echo -n "test LOC     "
 printf "%7.7s\n" `find test -name *.[ch] -exec cat {} \; | wc -l`
 
diff --git a/pkgconfig/corosync.pc.in b/pkgconfig/corosync.pc.in
index 31b354a..f166d01 100644
--- a/pkgconfig/corosync.pc.in
+++ b/pkgconfig/corosync.pc.in
@@ -2,7 +2,6 @@ prefix=@PREFIX@
 exec_prefix=${prefix}
 libdir=@LIBDIR@
 includedir=${prefix}/include
-lcrsodir=@COROLCRSODIR@
 socketdir=@COROSOCKETDIR@
 
 Name: corosync
diff --git a/tools/Makefile.am b/tools/Makefile.am
index fa9ee38..921cd26 100644
--- a/tools/Makefile.am
+++ b/tools/Makefile.am
@@ -59,10 +59,10 @@ corosync_cfgtool_LDFLAGS= -L../lib
 corosync_cpgtool_LDADD	= -lcfg -lcpg $(LIBQB_LIBS)
 corosync_cpgtool_LDFLAGS= -L../lib
 corosync_quorumtool_LDADD = -lcmap -lcfg -lquorum \
-			    -lvotequorum ../lcr/liblcr.a $(LIBQB_LIBS)
+			    -lvotequorum $(LIBQB_LIBS)
 corosync_quorumtool_LDFLAGS = -L../lib
 
-corosync_notifyd_LDADD = -lcfg -lcmap ../lcr/liblcr.a \
+corosync_notifyd_LDADD = -lcfg -lcmap \
 			   $(LIBQB_LIBS) $(DBUS_LIBS) $(SNMPLIBS) \
 			   -lquorum
 corosync_notifyd_LDFLAGS = -L../lib
-- 
1.7.7.5

_______________________________________________
discuss mailing list
discuss@xxxxxxxxxxxx
http://lists.corosync.org/mailman/listinfo/discuss


[Index of Archives]     [Linux Clusters]     [Corosync Project]     [Linux USB Devel]     [Linux Audio Users]     [Photo]     [Yosemite News]    [Yosemite Photos]    [Linux Kernel]     [Linux SCSI]     [X.Org]

  Powered by Linux