Browse Source

Merge the API definitions of the objdb into the corosync api definition.

git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1603 fd59a12c-fef9-0310-b244-a6a79926bd2f
Steven Dake 17 years ago
parent
commit
c04cc0f1d2

+ 23 - 29
corosync/Makefile

@@ -23,7 +23,7 @@
 # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
 # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
 # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# SUBSTITUTE GOODS OR ENGINES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
 # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
@@ -53,27 +53,27 @@ endif
 include $(srcdir)Makefile.inc
 include $(srcdir)Makefile.inc
 
 
 SBINDIR=$(PREFIX)/sbin
 SBINDIR=$(PREFIX)/sbin
-INCLUDEDIR=$(PREFIX)/include/openais
-INCLUDEDIR_TOTEM=$(PREFIX)/include/openais/totem
-INCLUDEDIR_LCR=$(PREFIX)/include/openais/lcr
-INCLUDEDIR_SERVICE=$(PREFIX)/include/openais/service
+INCLUDEDIR=$(PREFIX)/include/corosync
+INCLUDEDIR_TOTEM=$(PREFIX)/include/corosync/totem
+INCLUDEDIR_LCR=$(PREFIX)/include/corosync/lcr
+INCLUDEDIR_ENGINE=$(PREFIX)/include/corosync/service
 MANDIR=$(PREFIX)/share/man
 MANDIR=$(PREFIX)/share/man
 ETCDIR=/etc
 ETCDIR=/etc
 ARCH=$(shell uname -p)
 ARCH=$(shell uname -p)
 
 
 ifeq (,$(findstring 64,$(ARCH)))
 ifeq (,$(findstring 64,$(ARCH)))
-LIBDIR=$(PREFIX)/lib/openais
+LIBDIR=$(PREFIX)/lib/corosync
 else
 else
-LIBDIR=$(PREFIX)/lib64/openais
+LIBDIR=$(PREFIX)/lib64/corosync
 endif
 endif
 ifeq (s390,$(ARCH))
 ifeq (s390,$(ARCH))
-LIBDIR=$(PREFIX)/lib/openais
+LIBDIR=$(PREFIX)/lib/corosync
 endif
 endif
 ifeq (s390x,$(ARCH))
 ifeq (s390x,$(ARCH))
-LIBDIR=$(PREFIX)/lib64/openais
+LIBDIR=$(PREFIX)/lib64/corosync
 endif
 endif
 ifeq (ia64,$(ARCH))
 ifeq (ia64,$(ARCH))
-LIBDIR=$(PREFIX)/lib/openais
+LIBDIR=$(PREFIX)/lib/corosync
 endif
 endif
 
 
 SUBDIRS:=$(builddir)lcr $(builddir)lib $(builddir)exec $(builddir)test
 SUBDIRS:=$(builddir)lcr $(builddir)lib $(builddir)exec $(builddir)test
@@ -105,7 +105,7 @@ help:
 	@echo 
 	@echo 
 	@echo Targets:
 	@echo Targets:
 	@echo "  all     - build all targets"
 	@echo "  all     - build all targets"
-	@echo "  install - install openais onto your system"
+	@echo "  install - install corosync onto your system"
 	@echo "  clean   - remove generated files"
 	@echo "  clean   - remove generated files"
 	@echo "  doxygen - doxygen html docs"
 	@echo "  doxygen - doxygen html docs"
 	@echo 
 	@echo 
@@ -139,10 +139,9 @@ install: all
 	mkdir -p $(DESTDIR)$(INCLUDEDIR)
 	mkdir -p $(DESTDIR)$(INCLUDEDIR)
 	mkdir -p $(DESTDIR)$(INCLUDEDIR_TOTEM)
 	mkdir -p $(DESTDIR)$(INCLUDEDIR_TOTEM)
 	mkdir -p $(DESTDIR)$(INCLUDEDIR_LCR)
 	mkdir -p $(DESTDIR)$(INCLUDEDIR_LCR)
-	mkdir -p $(DESTDIR)$(INCLUDEDIR_SERVICE)
+	mkdir -p $(DESTDIR)$(INCLUDEDIR_ENGINE)
 	mkdir -p $(DESTDIR)$(LIBDIR)
 	mkdir -p $(DESTDIR)$(LIBDIR)
 	mkdir -p $(DESTDIR)$(LCRSODIR)
 	mkdir -p $(DESTDIR)$(LCRSODIR)
-	mkdir -p $(DESTDIR)$(ETCDIR)/ais
 	mkdir -p $(DESTDIR)$(MANDIR)/man3
 	mkdir -p $(DESTDIR)$(MANDIR)/man3
 	mkdir -p $(DESTDIR)$(MANDIR)/man5
 	mkdir -p $(DESTDIR)$(MANDIR)/man5
 	mkdir -p $(DESTDIR)$(MANDIR)/man8
 	mkdir -p $(DESTDIR)$(MANDIR)/man8
@@ -181,38 +180,33 @@ install: all
 	    ) \
 	    ) \
 	done
 	done
 
 
-	echo $(LIBDIR) > "$(DESTDIR)$(ETCDIR)/ld.so.conf.d/openais-$(ARCH).conf"
+	echo $(LIBDIR) > "$(DESTDIR)$(ETCDIR)/ld.so.conf.d/corosync-$(ARCH).conf"
 
 
 	install -m 755 $(builddir)exec/*lcrso $(DESTDIR)$(LCRSODIR)
 	install -m 755 $(builddir)exec/*lcrso $(DESTDIR)$(LCRSODIR)
-	install -m 755 $(builddir)exec/aisexec $(DESTDIR)$(SBINDIR)
+	install -m 755 $(builddir)services/*lcrso $(DESTDIR)$(LCRSODIR)
+	install -m 755 $(builddir)exec/corosync $(DESTDIR)$(SBINDIR)
 	install -m 700 $(builddir)exec/keygen $(DESTDIR)$(SBINDIR)/ais-keygen
 	install -m 700 $(builddir)exec/keygen $(DESTDIR)$(SBINDIR)/ais-keygen
 
 
-	if [ ! -f $(DESTDIR)$(ETCDIR)/ais/openais.conf ] ; then 	   \
-		install -m 644 $(srcdir)conf/openais.conf $(DESTDIR)$(ETCDIR)/ais ; \
-	fi
-	if [ ! -f $(DESTDIR)$(ETCDIR)/ais/amf.conf ] ; then 		\
-		install -m 644 $(srcdir)conf/amf.conf $(DESTDIR)$(ETCDIR)/ais ;	\
+	if [ ! -f $(DESTDIR)$(ETCDIR)/penais.conf ] ; then 	   \
+		install -m 644 $(srcdir)conf/corosync.conf $(DESTDIR)$(ETCDIR) ; \
 	fi
 	fi
 
 
 	for aHeader in $(AIS_HEADERS); do				\
 	for aHeader in $(AIS_HEADERS); do				\
 	    install -m 644 $(srcdir)include/$$aHeader $(DESTDIR)$(INCLUDEDIR);	\
 	    install -m 644 $(srcdir)include/$$aHeader $(DESTDIR)$(INCLUDEDIR);	\
 	done
 	done
 
 
-	install -m 644 $(srcdir)exec/aispoll.h $(DESTDIR)$(INCLUDEDIR_TOTEM)
+	install -m 644 $(srcdir)exec/coropoll.h $(DESTDIR)$(INCLUDEDIR_TOTEM)
 	install -m 644 $(srcdir)exec/totempg.h $(DESTDIR)$(INCLUDEDIR_TOTEM)
 	install -m 644 $(srcdir)exec/totempg.h $(DESTDIR)$(INCLUDEDIR_TOTEM)
 	install -m 644 $(srcdir)exec/totem.h $(DESTDIR)$(INCLUDEDIR_TOTEM)
 	install -m 644 $(srcdir)exec/totem.h $(DESTDIR)$(INCLUDEDIR_TOTEM)
 	install -m 644 $(srcdir)exec/totemip.h $(DESTDIR)$(INCLUDEDIR_TOTEM)
 	install -m 644 $(srcdir)exec/totemip.h $(DESTDIR)$(INCLUDEDIR_TOTEM)
 	install -m 644 $(srcdir)lcr/lcr_ckpt.h $(DESTDIR)$(INCLUDEDIR_LCR)
 	install -m 644 $(srcdir)lcr/lcr_ckpt.h $(DESTDIR)$(INCLUDEDIR_LCR)
 	install -m 644 $(srcdir)lcr/lcr_comp.h $(DESTDIR)$(INCLUDEDIR_LCR)
 	install -m 644 $(srcdir)lcr/lcr_comp.h $(DESTDIR)$(INCLUDEDIR_LCR)
 	install -m 644 $(srcdir)lcr/lcr_ifact.h $(DESTDIR)$(INCLUDEDIR_LCR)
 	install -m 644 $(srcdir)lcr/lcr_ifact.h $(DESTDIR)$(INCLUDEDIR_LCR)
-	install -m 644 $(srcdir)exec/service.h $(DESTDIR)$(INCLUDEDIR_SERVICE)
-	install -m 644 $(srcdir)exec/timer.h $(DESTDIR)$(INCLUDEDIR_SERVICE)
-	install -m 644 $(srcdir)exec/flow.h $(DESTDIR)$(INCLUDEDIR_SERVICE)
-	install -m 644 $(srcdir)exec/ipc.h $(DESTDIR)$(INCLUDEDIR_SERVICE)
-	install -m 644 $(srcdir)exec/objdb.h $(DESTDIR)$(INCLUDEDIR_SERVICE)
-	install -m 644 $(srcdir)exec/logsys.h $(DESTDIR)$(INCLUDEDIR_SERVICE)
-	install -m 644 $(srcdir)exec/config.h $(DESTDIR)$(INCLUDEDIR_SERVICE)
-	install -m 644 $(srcdir)include/swab.h $(DESTDIR)$(INCLUDEDIR_SERVICE)
+	install -m 644 $(srcdir)include/coroapi.h $(DESTDIR)$(INCLUDEDIR_ENGINE)
+	install -m 644 $(srcdir)exec/objdb.h $(DESTDIR)$(INCLUDEDIR_ENGINE)
+	install -m 644 $(srcdir)exec/logsys.h $(DESTDIR)$(INCLUDEDIR_ENGINE)
+	install -m 644 $(srcdir)exec/config.h $(DESTDIR)$(INCLUDEDIR_ENGINE)
+	install -m 644 $(srcdir)include/swab.h $(DESTDIR)$(INCLUDEDIR_ENGINE)
 	install -m 644 $(srcdir)man/*.3 $(DESTDIR)$(MANDIR)/man3
 	install -m 644 $(srcdir)man/*.3 $(DESTDIR)$(MANDIR)/man3
 	install -m 644 $(srcdir)man/*.5 $(DESTDIR)$(MANDIR)/man5
 	install -m 644 $(srcdir)man/*.5 $(DESTDIR)$(MANDIR)/man5
 	install -m 644 $(srcdir)man/*.8 $(DESTDIR)$(MANDIR)/man8
 	install -m 644 $(srcdir)man/*.8 $(DESTDIR)$(MANDIR)/man8

+ 31 - 0
corosync/conf/corosync.conf

@@ -0,0 +1,31 @@
+# Please read the openais.conf.5 manual page
+totem {
+	version: 2
+	secauth: off
+	threads: 0
+	interface {
+		ringnumber: 0
+		bindnetaddr: 192.168.1.1
+		mcastaddr: 226.94.1.1
+		mcastport: 5405
+	}
+}
+
+logging {
+	fileline: off
+	to_stderr: yes
+	to_file: yes
+	to_syslog: yes
+	logfile: /tmp/openais.log
+	debug: off
+	timestamp: on
+	logger {
+		ident: AMF
+		debug: off
+		tags: enter|leave|trace1|trace2|trace3|trace4|trace6
+	}
+}
+
+amf {
+	mode: disabled
+}

+ 4 - 4
corosync/exec/Makefile

@@ -63,10 +63,10 @@ LCR_SRC = vsf_ykd.c objdb.c coroparse.c
 LCR_OBJS =aisparser.o vsf_ykd.o objdb.o coroparse.o
 LCR_OBJS =aisparser.o vsf_ykd.o objdb.o coroparse.o
 
 
 # main executive objects
 # main executive objects
-MAIN_SRC = main.c mempool.c util.c sync.c service.c ipc.c flow.c timer.c \
-	totemconfig.c mainconfig.c
-MAIN_OBJS = main.o mempool.o util.o sync.o service.o ipc.o flow.o timer.o \
-	totemconfig.o mainconfig.o ../lcr/lcr_ifact.o
+MAIN_SRC = main.c mempool.c util.c sync.c apidef.c service.c ipc.c flow.c \
+	timer.c totemconfig.c mainconfig.c
+MAIN_OBJS = main.o mempool.o util.o sync.o apidef.o service.o ipc.o flow.o \
+	timer.o totemconfig.o mainconfig.o ../lcr/lcr_ifact.o
 
 
 ifeq (${BUILD_DYNAMIC}, 1) 
 ifeq (${BUILD_DYNAMIC}, 1) 
 #EXEC_OBJS = $(TOTEM_OBJS) $(LOGSYS_OBJS) $(MAIN_OBJS)
 #EXEC_OBJS = $(TOTEM_OBJS) $(LOGSYS_OBJS) $(MAIN_OBJS)

+ 1 - 1
corosync/exec/ipc.c

@@ -77,7 +77,6 @@
 #include "tlist.h"
 #include "tlist.h"
 #include "ipc.h"
 #include "ipc.h"
 #include "flow.h"
 #include "flow.h"
-#include "service.h"
 #include "sync.h"
 #include "sync.h"
 #include "swab.h"
 #include "swab.h"
 #include "objdb.h"
 #include "objdb.h"
@@ -85,6 +84,7 @@
 #include "tlist.h"
 #include "tlist.h"
 #include "logsys.h"
 #include "logsys.h"
 #include "coroapi.h"
 #include "coroapi.h"
+#include "service.h"
 
 
 #include "util.h"
 #include "util.h"
 
 

+ 14 - 5
corosync/exec/main.c

@@ -67,7 +67,6 @@
 #include "mainconfig.h"
 #include "mainconfig.h"
 #include "totemconfig.h"
 #include "totemconfig.h"
 #include "main.h"
 #include "main.h"
-#include "service.h"
 #include "sync.h"
 #include "sync.h"
 #include "swab.h"
 #include "swab.h"
 #include "objdb.h"
 #include "objdb.h"
@@ -79,8 +78,10 @@
 #include "logsys.h"
 #include "logsys.h"
 #include "util.h"
 #include "util.h"
 #include "flow.h"
 #include "flow.h"
-#include "version.h"
 #include "coroapi.h"
 #include "coroapi.h"
+#include "apidef.h"
+#include "service.h"
+#include "version.h"
 
 
 LOGSYS_DECLARE_SYSTEM ("corosync",
 LOGSYS_DECLARE_SYSTEM ("corosync",
 	LOG_MODE_OUTPUT_STDERR | LOG_MODE_OUTPUT_SYSLOG_THREADED | LOG_MODE_BUFFER_BEFORE_CONFIG,
 	LOG_MODE_OUTPUT_STDERR | LOG_MODE_OUTPUT_SYSLOG_THREADED | LOG_MODE_BUFFER_BEFORE_CONFIG,
@@ -109,6 +110,8 @@ static struct config_iface_ver0 *config_modules[MAX_DYNAMIC_SERVICES];
 
 
 static struct objdb_iface_ver0 *objdb = NULL;
 static struct objdb_iface_ver0 *objdb = NULL;
 
 
+static struct corosync_api_v1 *api = NULL;
+
 unsigned long long *(*main_clm_get_by_nodeid) (unsigned int node_id);
 unsigned long long *(*main_clm_get_by_nodeid) (unsigned int node_id);
 
 
 static void sigusr2_handler (int num)
 static void sigusr2_handler (int num)
@@ -124,8 +127,8 @@ static void sigusr2_handler (int num)
 
 
 static void *aisexec_exit (void *arg)
 static void *aisexec_exit (void *arg)
 {
 {
-	if(objdb) {
-		openais_service_unlink_all (objdb);
+	if (api) {
+		openais_service_unlink_all (api);
 	}
 	}
 
 
 #ifdef DEBUG_MEMPOOL
 #ifdef DEBUG_MEMPOOL
@@ -559,6 +562,12 @@ int main (int argc, char **argv)
 
 
 	objdb->objdb_init ();
 	objdb->objdb_init ();
 
 
+	/*
+	 * Initialize the corosync_api_v1 definition
+	 */
+	apidef_init (objdb);
+	api = apidef_get ();
+
 	num_config_modules = 0;
 	num_config_modules = 0;
 
 
 	/*
 	/*
@@ -689,7 +698,7 @@ int main (int argc, char **argv)
 	/*
 	/*
 	 * This must occur after totempg is initialized because "this_ip" must be set
 	 * This must occur after totempg is initialized because "this_ip" must be set
 	 */
 	 */
-	res = openais_service_defaults_link_and_init (objdb);
+	res = openais_service_defaults_link_and_init (api);
 	if (res == -1) {
 	if (res == -1) {
 		log_printf (LOG_LEVEL_ERROR, "Could not initialize default services\n");
 		log_printf (LOG_LEVEL_ERROR, "Could not initialize default services\n");
 		openais_exit_error (AIS_DONE_INIT_SERVICES);
 		openais_exit_error (AIS_DONE_INIT_SERVICES);

+ 0 - 1
corosync/exec/mainconfig.c

@@ -47,7 +47,6 @@
 #include "mempool.h"
 #include "mempool.h"
 #include "logsys.h"
 #include "logsys.h"
 #include "totem.h"
 #include "totem.h"
-#include "service.h"
 
 
 static char error_string_response[512];
 static char error_string_response[512];
 
 

+ 40 - 70
corosync/exec/service.c

@@ -39,9 +39,7 @@
 
 
 #include "../lcr/lcr_ifact.h"
 #include "../lcr/lcr_ifact.h"
 #include "swab.h"
 #include "swab.h"
-#include "objdb.h"
 #include "totem.h"
 #include "totem.h"
-#include "service.h"
 #include "mainconfig.h"
 #include "mainconfig.h"
 #include "util.h"
 #include "util.h"
 #include "logsys.h"
 #include "logsys.h"
@@ -51,8 +49,8 @@
 #include "totemip.h"
 #include "totemip.h"
 #include "main.h"
 #include "main.h"
 #include "ipc.h"
 #include "ipc.h"
-
 #include "../include/coroapi.h"
 #include "../include/coroapi.h"
+#include "service.h"
 
 
 LOGSYS_DECLARE_SUBSYS ("SERV", LOG_INFO);
 LOGSYS_DECLARE_SUBSYS ("SERV", LOG_INFO);
 
 
@@ -61,34 +59,6 @@ struct default_service {
 	int ver;
 	int ver;
 };
 };
 
 
-static struct corosync_api_v1 corosync_api_v1 = {
-	.timer_add_duration = openais_timer_add_duration,
-	.timer_add_absolute = openais_timer_add_absolute,
-	.timer_delete = openais_timer_delete,
-	.timer_time_get = NULL,
-	.ipc_source_set = message_source_set,
-	.ipc_source_is_local = message_source_is_local,
-	.ipc_private_data_get = openais_conn_private_data_get,
-	.ipc_response_send = NULL,
-	.ipc_dispatch_send = NULL,
-	.ipc_conn_send_response = openais_conn_send_response,
-	.ipc_conn_partner_get = openais_conn_partner_get,
-	.ipc_refcnt_inc =  openais_ipc_flow_control_local_increment,
-	.ipc_refcnt_dec = openais_ipc_flow_control_local_decrement,
-	.ipc_fc_create = openais_ipc_flow_control_create,
-	.ipc_fc_destroy = openais_ipc_flow_control_destroy,
-	.totem_nodeid_get = totempg_my_nodeid_get,
-	.totem_ring_reenable = totempg_ring_reenable,
-	.totem_mcast = main_mcast,
-	.totem_send_ok = main_send_ok,
-	.totem_ifaces_get = totempg_ifaces_get,
-	.totem_ifaces_print = totempg_ifaces_print,
-	.totem_ip_print = totemip_print,
-	.service_link_and_init = openais_service_link_and_init,
-	.service_unlink_and_exit = openais_service_unlink_and_exit,
-	.error_memory_failure = NULL
-};
-
 static struct default_service default_services[] = {
 static struct default_service default_services[] = {
 	{
 	{
 		.name			 = "corosync_evs",
 		.name			 = "corosync_evs",
@@ -113,7 +83,7 @@ struct corosync_service_engine *ais_service[SERVICE_HANDLER_MAXIMUM_COUNT];
 
 
 static unsigned int object_internal_configuration_handle;
 static unsigned int object_internal_configuration_handle;
 
 
-static unsigned int default_services_requested (struct objdb_iface_ver0 *objdb)
+static unsigned int default_services_requested (struct corosync_api_v1 *api)
 {
 {
 	unsigned int object_service_handle;
 	unsigned int object_service_handle;
 	char *value;
 	char *value;
@@ -121,14 +91,14 @@ static unsigned int default_services_requested (struct objdb_iface_ver0 *objdb)
 	/*
 	/*
 	 * Don't link default services if they have been disabled
 	 * Don't link default services if they have been disabled
 	 */
 	 */
-	objdb->object_find_reset (OBJECT_PARENT_HANDLE);
-	if (objdb->object_find (
+	api->object_find_reset (OBJECT_PARENT_HANDLE);
+	if (api->object_find (
 		OBJECT_PARENT_HANDLE,
 		OBJECT_PARENT_HANDLE,
 		"aisexec",
 		"aisexec",
 		strlen ("aisexec"),
 		strlen ("aisexec"),
 		&object_service_handle) == 0) {
 		&object_service_handle) == 0) {
 
 
-		if ( ! objdb->object_key_get (object_service_handle,
+		if ( ! api->object_key_get (object_service_handle,
 			"defaultservices",
 			"defaultservices",
 			strlen ("defaultservices"),
 			strlen ("defaultservices"),
 			(void *)&value,
 			(void *)&value,
@@ -143,7 +113,7 @@ static unsigned int default_services_requested (struct objdb_iface_ver0 *objdb)
 }
 }
 
 
 unsigned int openais_service_link_and_init (
 unsigned int openais_service_link_and_init (
-	struct objdb_iface_ver0 *objdb,
+	struct corosync_api_v1 *api,
 	char *service_name,
 	char *service_name,
 	unsigned int service_ver)
 	unsigned int service_ver)
 {
 {
@@ -180,40 +150,40 @@ unsigned int openais_service_link_and_init (
 
 
 	ais_service[service->id] = service;
 	ais_service[service->id] = service;
 	if (service->config_init_fn) {
 	if (service->config_init_fn) {
-		res = service->config_init_fn (objdb);
+		res = service->config_init_fn (api);
 	}
 	}
 
 
 	if (service->exec_init_fn) {
 	if (service->exec_init_fn) {
-		res = service->exec_init_fn (objdb, &corosync_api_v1);
+		res = service->exec_init_fn (api);
 	}
 	}
 
 
 	/*
 	/*
 	 * Store service in object database
 	 * Store service in object database
 	 */
 	 */
-	objdb->object_create (object_internal_configuration_handle,
+	api->object_create (object_internal_configuration_handle,
 		&object_service_handle,
 		&object_service_handle,
 		"service",
 		"service",
 		strlen ("service"));
 		strlen ("service"));
 
 
-	objdb->object_key_create (object_service_handle,
+	api->object_key_create (object_service_handle,
 		"name",
 		"name",
 		strlen ("name"),
 		strlen ("name"),
 		service_name,
 		service_name,
 		strlen (service_name) + 1);
 		strlen (service_name) + 1);
 
 
-	objdb->object_key_create (object_service_handle,
+	api->object_key_create (object_service_handle,
 		"ver",
 		"ver",
 		strlen ("ver"),
 		strlen ("ver"),
 		&service_ver,
 		&service_ver,
 		sizeof (service_ver));
 		sizeof (service_ver));
 
 
-	res = objdb->object_key_create (object_service_handle,
+	res = api->object_key_create (object_service_handle,
 		"handle",
 		"handle",
 		strlen ("handle"),
 		strlen ("handle"),
 		&handle,
 		&handle,
 		sizeof (handle));
 		sizeof (handle));
 
 
-	objdb->object_key_create (object_service_handle,
+	api->object_key_create (object_service_handle,
 		"service_id",
 		"service_id",
 		strlen ("service_id"),
 		strlen ("service_id"),
 		&service->id,
 		&service->id,
@@ -224,7 +194,7 @@ unsigned int openais_service_link_and_init (
 }
 }
 
 
 static int openais_service_unlink_common (
 static int openais_service_unlink_common (
-	struct objdb_iface_ver0 *objdb,
+	struct corosync_api_v1 *api,
 	unsigned int object_service_handle,
 	unsigned int object_service_handle,
 	const char *service_name,
 	const char *service_name,
 	unsigned int service_version) 
 	unsigned int service_version) 
@@ -233,13 +203,13 @@ static int openais_service_unlink_common (
 	unsigned short *service_id;
 	unsigned short *service_id;
 	unsigned int *found_service_handle;
 	unsigned int *found_service_handle;
 
 
-	res = objdb->object_key_get (object_service_handle,
+	res = api->object_key_get (object_service_handle,
 		"handle",
 		"handle",
 		strlen ("handle"),
 		strlen ("handle"),
 		(void *)&found_service_handle,
 		(void *)&found_service_handle,
 		NULL);
 		NULL);
 	
 	
-	res = objdb->object_key_get (object_service_handle,
+	res = api->object_key_get (object_service_handle,
 		"service_id",
 		"service_id",
 		strlen ("service_id"),
 		strlen ("service_id"),
 		(void *)&service_id,
 		(void *)&service_id,
@@ -249,7 +219,7 @@ static int openais_service_unlink_common (
 		service_name, service_version);
 		service_name, service_version);
 
 
 	if (ais_service[*service_id]->exec_exit_fn) {
 	if (ais_service[*service_id]->exec_exit_fn) {
-		ais_service[*service_id]->exec_exit_fn (objdb);
+		ais_service[*service_id]->exec_exit_fn (api);
 	}
 	}
 	ais_service[*service_id] = NULL;
 	ais_service[*service_id] = NULL;
     
     
@@ -257,7 +227,7 @@ static int openais_service_unlink_common (
 }
 }
 
 
 extern unsigned int openais_service_unlink_and_exit (
 extern unsigned int openais_service_unlink_and_exit (
-	struct objdb_iface_ver0 *objdb,
+	struct corosync_api_v1 *api,
 	char *service_name,
 	char *service_name,
 	unsigned int service_ver)
 	unsigned int service_ver)
 {
 {
@@ -266,19 +236,19 @@ extern unsigned int openais_service_unlink_and_exit (
 	char *found_service_name;
 	char *found_service_name;
 	unsigned int *found_service_ver;
 	unsigned int *found_service_ver;
 
 
-	while (objdb->object_find (
+	while (api->object_find (
 		object_internal_configuration_handle,
 		object_internal_configuration_handle,
 		"service",
 		"service",
 		strlen ("service"),
 		strlen ("service"),
 		&object_service_handle) == 0) {
 		&object_service_handle) == 0) {
 
 
-		objdb->object_key_get (object_service_handle,
+		api->object_key_get (object_service_handle,
 			"name",
 			"name",
 			strlen ("name"),
 			strlen ("name"),
 			(void *)&found_service_name,
 			(void *)&found_service_name,
 			NULL);
 			NULL);
 
 
-		objdb->object_key_get (object_service_handle,
+		api->object_key_get (object_service_handle,
 			"ver",
 			"ver",
 			strlen ("ver"),
 			strlen ("ver"),
 			(void *)&found_service_ver,
 			(void *)&found_service_ver,
@@ -291,10 +261,10 @@ extern unsigned int openais_service_unlink_and_exit (
 			(service_ver == *found_service_ver)) {
 			(service_ver == *found_service_ver)) {
 
 
 			res = openais_service_unlink_common (
 			res = openais_service_unlink_common (
-				objdb, object_service_handle,
+				api, object_service_handle,
 				service_name, service_ver);
 				service_name, service_ver);
 
 
-			objdb->object_destroy (object_service_handle);
+			api->object_destroy (object_service_handle);
 			return res;
 			return res;
 		}
 		}
 	}
 	}
@@ -302,7 +272,7 @@ extern unsigned int openais_service_unlink_and_exit (
 }
 }
 
 
 extern unsigned int openais_service_unlink_all (
 extern unsigned int openais_service_unlink_all (
-	struct objdb_iface_ver0 *objdb)
+	struct corosync_api_v1 *api)
 {
 {
 	char *service_name;
 	char *service_name;
 	unsigned int *service_ver;
 	unsigned int *service_ver;
@@ -310,30 +280,30 @@ extern unsigned int openais_service_unlink_all (
 
 
 	log_printf(LOG_LEVEL_NOTICE, "Unloading all openais components\n");
 	log_printf(LOG_LEVEL_NOTICE, "Unloading all openais components\n");
 	
 	
-	objdb->object_find_reset (object_internal_configuration_handle);
+	api->object_find_reset (object_internal_configuration_handle);
 
 
-	while (objdb->object_find (object_internal_configuration_handle,
+	while (api->object_find (object_internal_configuration_handle,
 		"service",
 		"service",
 		strlen ("service"),
 		strlen ("service"),
 		&object_service_handle) == 0) {
 		&object_service_handle) == 0) {
 		
 		
-		objdb->object_key_get (object_service_handle,
+		api->object_key_get (object_service_handle,
 			"name",
 			"name",
 			strlen ("name"),
 			strlen ("name"),
 			(void *)&service_name,
 			(void *)&service_name,
 			NULL);
 			NULL);
 
 
-		objdb->object_key_get (object_service_handle,
+		api->object_key_get (object_service_handle,
 			"ver",
 			"ver",
 			strlen ("ver"),
 			strlen ("ver"),
 			(void *)&service_ver,
 			(void *)&service_ver,
 			NULL);
 			NULL);
 				
 				
 		openais_service_unlink_common (
 		openais_service_unlink_common (
-			objdb, object_service_handle, service_name, *service_ver);
+			api, object_service_handle, service_name, *service_ver);
 
 
-		objdb->object_destroy (object_service_handle);
-		objdb->object_find_reset (object_internal_configuration_handle);
+		api->object_destroy (object_service_handle);
+		api->object_find_reset (object_internal_configuration_handle);
 	}
 	}
 
 
 	return (0);
 	return (0);
@@ -342,7 +312,7 @@ extern unsigned int openais_service_unlink_all (
 /*
 /*
  * Links default services into the executive
  * Links default services into the executive
  */
  */
-unsigned int openais_service_defaults_link_and_init (struct objdb_iface_ver0 *objdb)
+unsigned int openais_service_defaults_link_and_init (struct corosync_api_v1 *api)
 {
 {
 	unsigned int i;
 	unsigned int i;
 
 
@@ -351,26 +321,26 @@ unsigned int openais_service_defaults_link_and_init (struct objdb_iface_ver0 *ob
 	char *found_service_ver;
 	char *found_service_ver;
 	unsigned int found_service_ver_atoi;
 	unsigned int found_service_ver_atoi;
  
  
-	objdb->object_create (OBJECT_PARENT_HANDLE,
+	api->object_create (OBJECT_PARENT_HANDLE,
 		&object_internal_configuration_handle,
 		&object_internal_configuration_handle,
 		"internal_configuration",
 		"internal_configuration",
 		strlen ("internal_configuration"));
 		strlen ("internal_configuration"));
 
 
-	objdb->object_find_reset (OBJECT_PARENT_HANDLE);
+	api->object_find_reset (OBJECT_PARENT_HANDLE);
 
 
-	while (objdb->object_find (
+	while (api->object_find (
 		OBJECT_PARENT_HANDLE,
 		OBJECT_PARENT_HANDLE,
 		"service",
 		"service",
 		strlen ("service"),
 		strlen ("service"),
 		&object_service_handle) == 0) {
 		&object_service_handle) == 0) {
 
 
-		objdb->object_key_get (object_service_handle,
+		api->object_key_get (object_service_handle,
 			"name",
 			"name",
 			strlen ("name"),
 			strlen ("name"),
 			(void *)&found_service_name,
 			(void *)&found_service_name,
 			NULL);
 			NULL);
 
 
-		objdb->object_key_get (object_service_handle,
+		api->object_key_get (object_service_handle,
 			"ver",
 			"ver",
 			strlen ("ver"),
 			strlen ("ver"),
 			(void *)&found_service_ver,
 			(void *)&found_service_ver,
@@ -379,19 +349,19 @@ unsigned int openais_service_defaults_link_and_init (struct objdb_iface_ver0 *ob
 		found_service_ver_atoi = atoi (found_service_ver);
 		found_service_ver_atoi = atoi (found_service_ver);
 
 
 		openais_service_link_and_init (
 		openais_service_link_and_init (
-			objdb,
+			api,
 			found_service_name,
 			found_service_name,
 			found_service_ver_atoi);
 			found_service_ver_atoi);
 	}
 	}
 
 
- 	if (default_services_requested (objdb) == 0) {
+ 	if (default_services_requested (api) == 0) {
  		return (0);
  		return (0);
  	}
  	}
 	for (i = 0;
 	for (i = 0;
 		i < sizeof (default_services) / sizeof (struct default_service); i++) {
 		i < sizeof (default_services) / sizeof (struct default_service); i++) {
 
 
 		openais_service_link_and_init (
 		openais_service_link_and_init (
-			objdb,
+			api,
 			default_services[i].name,
 			default_services[i].name,
 			default_services[i].ver);
 			default_services[i].ver);
 	}
 	}

+ 4 - 4
corosync/exec/service.h

@@ -39,7 +39,7 @@
  * Link and initialize a service
  * Link and initialize a service
  */
  */
 extern unsigned int openais_service_link_and_init (
 extern unsigned int openais_service_link_and_init (
-	struct objdb_iface_ver0 *objdb,
+	struct corosync_api_v1 *objdb,
 	char *service_name,
 	char *service_name,
 	unsigned int service_ver);
 	unsigned int service_ver);
 
 
@@ -47,7 +47,7 @@ extern unsigned int openais_service_link_and_init (
  * Unlink and exit a service
  * Unlink and exit a service
  */
  */
 extern unsigned int openais_service_unlink_and_exit (
 extern unsigned int openais_service_unlink_and_exit (
-    struct objdb_iface_ver0 *objdb,
+    struct corosync_api_v1 *objdb,
     char *service_name,
     char *service_name,
     unsigned int service_ver);
     unsigned int service_ver);
 
 
@@ -55,13 +55,13 @@ extern unsigned int openais_service_unlink_and_exit (
  * Unlink and exit all openais services
  * Unlink and exit all openais services
  */
  */
 extern unsigned int openais_service_unlink_all (
 extern unsigned int openais_service_unlink_all (
-    struct objdb_iface_ver0 *objdb);
+    struct corosync_api_v1 *objdb);
 
 
 /*
 /*
  * Load all of the default services
  * Load all of the default services
  */
  */
 extern unsigned int openais_service_defaults_link_and_init (
 extern unsigned int openais_service_defaults_link_and_init (
-	struct objdb_iface_ver0 *objdb);
+	struct corosync_api_v1 *objdb);
 
 
 extern struct corosync_service_engine *ais_service[];
 extern struct corosync_service_engine *ais_service[];
 
 

+ 0 - 1
corosync/exec/timer.c

@@ -67,7 +67,6 @@
 #include "mainconfig.h"
 #include "mainconfig.h"
 #include "totemconfig.h"
 #include "totemconfig.h"
 #include "main.h"
 #include "main.h"
-#include "service.h"
 #include "sync.h"
 #include "sync.h"
 #include "swab.h"
 #include "swab.h"
 #include "objdb.h"
 #include "objdb.h"

+ 167 - 16
corosync/include/coroapi.h

@@ -34,7 +34,7 @@
 #ifndef COROAPI_H_DEFINED
 #ifndef COROAPI_H_DEFINED
 #define COROAPI_H_DEFINED
 #define COROAPI_H_DEFINED
 
 
-#include "../exec/objdb.h"
+#include <stdio.h>
 
 
 typedef void * corosync_timer_handle_t;
 typedef void * corosync_timer_handle_t;
 
 
@@ -80,7 +80,148 @@ enum corosync_flow_control_state {
 };
 };
 #endif
 #endif
 
 
+
+#ifndef OBJECT_PARENT_HANDLE
+
+#define OBJECT_PARENT_HANDLE 0
+
+struct object_valid {
+	char *object_name;
+	int object_len;
+};
+	
+struct object_key_valid {
+	char *key_name;
+	int key_len;
+	int (*validate_callback) (void *key, int key_len, void *value, int value_len);
+};
+
+#endif /* OBJECT_PARENT_HANDLE_DEFINED */
+
 struct corosync_api_v1 {
 struct corosync_api_v1 {
+	/*
+	 * Object and configuration APIs
+	 */
+	int (*object_create) (
+		unsigned int parent_object_handle,
+		unsigned int *object_handle,
+		void *object_name, unsigned int object_name_len);
+
+	int (*object_priv_set) (
+		unsigned int object_handle,
+		void *priv);
+
+	int (*object_key_create) (
+		unsigned int object_handle,
+		void *key_name,
+		int key_len,
+		void *value,
+		int value_len);
+
+	int (*object_destroy) (
+		unsigned int object_handle);
+
+	int (*object_valid_set) (
+		unsigned int object_handle,
+		struct object_valid *object_valid_list,
+		unsigned int object_valid_list_entries);
+
+	int (*object_key_valid_set) (
+		unsigned int object_handle,
+		struct object_key_valid *object_key_valid_list,
+		unsigned int object_key_valid_list_entries);
+
+	int (*object_find_reset) (
+		unsigned int parent_object_handle);
+
+	int (*object_find) (
+		unsigned int parent_object_handle,
+		void *object_name,
+		int object_name_len,
+		unsigned int *object_handle);
+
+	int (*object_key_get) (
+		unsigned int object_handle,
+		void *key_name,
+		int key_len,
+		void **value,
+		int *value_len);
+
+	int (*object_priv_get) (
+		unsigned int jobject_handle,
+		void **priv);
+
+	int (*object_key_replace) (
+		unsigned int object_handle,
+		void *key_name,
+		int key_len,
+		void *old_value,
+		int old_value_len,
+		void *new_value,
+		int new_value_len);
+
+	int (*object_key_delete) (
+		unsigned int object_handle,
+		void *key_name,
+		int key_len,
+		void *value,
+		int value_len);
+
+	int (*object_iter_reset) (
+		unsigned int parent_object_handle);
+
+	int (*object_iter) (
+		unsigned int parent_object_handle,
+		void **object_name,
+		int *name_len,
+		unsigned int *object_handle);
+
+	int (*object_key_iter_reset) (
+		unsigned int object_handle);
+
+	int (*object_key_iter) (
+		unsigned int parent_object_handle,
+		void **key_name,
+		int *key_len,
+		void **value,
+		int *value_len);
+
+	int (*object_parent_get) (
+		unsigned int object_handle,
+		unsigned int *parent_handle);
+
+	int (*object_dump) (
+		unsigned int object_handle,
+		FILE *file);
+
+	int (*object_find_from) (
+		unsigned int parent_object_handle,
+		unsigned int start_pos,
+		void *object_name,
+		int object_name_len,
+		unsigned int *object_handle,
+		unsigned int *next_pos);
+
+	int (*object_iter_from) (
+		unsigned int parent_object_handle,
+		unsigned int start_pos,
+		void **object_name,
+		int *name_len,
+		unsigned int *object_handle);
+
+	int (*object_key_iter_from) (
+		unsigned int parent_object_handle,
+		unsigned int start_pos,
+		void **key_name,
+		int *key_len,
+		void **value,
+		int *value_len);
+
+	int (*object_write_config) (char **error_string);
+
+	/*
+	 * Time and timer APIs
+	 */
 	int (*timer_add_duration) (
 	int (*timer_add_duration) (
 		unsigned long long nanoseconds_in_future,
 		unsigned long long nanoseconds_in_future,
 		void *data,
 		void *data,
@@ -98,6 +239,9 @@ struct corosync_api_v1 {
 
 
 	unsigned long long (*timer_time_get) (void);
 	unsigned long long (*timer_time_get) (void);
 
 
+	/*
+	 * IPC APIs
+	 */
 	void (*ipc_source_set) (mar_message_source_t *source, void *conn);
 	void (*ipc_source_set) (mar_message_source_t *source, void *conn);
 
 
 	int (*ipc_source_is_local) (mar_message_source_t *source);
 	int (*ipc_source_is_local) (mar_message_source_t *source);
@@ -138,6 +282,9 @@ struct corosync_api_v1 {
 
 
 	void (*ipc_refcnt_dec) (void *conn);
 	void (*ipc_refcnt_dec) (void *conn);
 
 
+	/*
+	 * Totem APIs
+	 */
 	int (*totem_nodeid_get) (void);
 	int (*totem_nodeid_get) (void);
 
 
 	int (*totem_ring_reenable) (void);
 	int (*totem_ring_reenable) (void);
@@ -146,16 +293,6 @@ struct corosync_api_v1 {
 
 
 	int (*totem_send_ok) (struct iovec *iovec, int iov_len);
 	int (*totem_send_ok) (struct iovec *iovec, int iov_len);
 
 
-	unsigned int (*service_link_and_init) (
-		struct objdb_iface_ver0 *objdb,
-		char *service_name,
-		unsigned int service_ver);
-
-	unsigned int (*service_unlink_and_exit) (
-		struct objdb_iface_ver0 *objdb,
-		char *service_name,
-		unsigned int service_ver);
-
 	int (*totem_ifaces_get) (
 	int (*totem_ifaces_get) (
 		unsigned int nodeid,
 		unsigned int nodeid,
 		struct totem_ip_address *interfaces,
 		struct totem_ip_address *interfaces,
@@ -166,6 +303,22 @@ struct corosync_api_v1 {
 
 
 	char *(*totem_ip_print) (struct totem_ip_address *addr);
 	char *(*totem_ip_print) (struct totem_ip_address *addr);
 
 
+	/*
+	 * Service loading and unloading APIs
+	*/
+	unsigned int (*service_link_and_init) (
+		struct corosync_api_v1 *corosync_api_v1,
+		char *service_name,
+		unsigned int service_ver);
+
+	unsigned int (*service_unlink_and_exit) (
+		struct corosync_api_v1 *corosync_api_v1,
+		char *service_name,
+		unsigned int service_ver);
+
+	/*
+	 * Error handling APIs
+	 */
 	void (*error_memory_failure) (void);
 	void (*error_memory_failure) (void);
 };
 };
 
 
@@ -194,8 +347,8 @@ struct corosync_service_engine {
 	unsigned short id;
 	unsigned short id;
 	unsigned int private_data_size;
 	unsigned int private_data_size;
 	enum corosync_lib_flow_control flow_control;
 	enum corosync_lib_flow_control flow_control;
-	int (*exec_init_fn) (struct objdb_iface_ver0 *, struct corosync_api_v1 *);
-	int (*exec_exit_fn) (struct objdb_iface_ver0 *);
+	int (*exec_init_fn) (struct corosync_api_v1 *);
+	int (*exec_exit_fn) (struct corosync_api_v1 *);
 	void (*exec_dump_fn) (void);
 	void (*exec_dump_fn) (void);
 	int (*lib_init_fn) (void *conn);
 	int (*lib_init_fn) (void *conn);
 	int (*lib_exit_fn) (void *conn);
 	int (*lib_exit_fn) (void *conn);
@@ -203,7 +356,7 @@ struct corosync_service_engine {
 	int lib_engine_count;
 	int lib_engine_count;
 	struct corosync_exec_handler *exec_engine;
 	struct corosync_exec_handler *exec_engine;
 	int exec_engine_count;
 	int exec_engine_count;
-	int (*config_init_fn) (struct objdb_iface_ver0 *);
+	int (*config_init_fn) (struct corosync_api_v1 *);
 	void (*confchg_fn) (
 	void (*confchg_fn) (
 		enum totem_configuration_type configuration_type,
 		enum totem_configuration_type configuration_type,
 		unsigned int *member_list, int member_list_entries,
 		unsigned int *member_list, int member_list_entries,
@@ -216,7 +369,5 @@ struct corosync_service_engine {
 	void (*sync_abort) (void);
 	void (*sync_abort) (void);
 };
 };
 
 
-typedef void *corosync_timer_handle;
-
 #endif /* COROAPI_H_DEFINED */
 #endif /* COROAPI_H_DEFINED */
 	
 	

+ 3 - 7
corosync/services/cfg.c

@@ -70,7 +70,7 @@ static void cfg_confchg_fn (
 	unsigned int *joined_list, int joined_list_entries,
 	unsigned int *joined_list, int joined_list_entries,
 	struct memb_ring_id *ring_id);
 	struct memb_ring_id *ring_id);
 
 
-static int cfg_exec_init_fn (struct objdb_iface_ver0 *objdb, struct corosync_api_v1 *corosync_api_v1);
+static int cfg_exec_init_fn (struct corosync_api_v1 *corosync_api_v1);
 
 
 static struct corosync_api_v1 *api;
 static struct corosync_api_v1 *api;
 
 
@@ -194,8 +194,6 @@ struct corosync_service_engine cfg_service_engine = {
 	.confchg_fn				= cfg_confchg_fn,
 	.confchg_fn				= cfg_confchg_fn,
 };
 };
 
 
-static struct objdb_iface_ver0 *my_objdb;
-
 /*
 /*
  * Dynamic Loader definition
  * Dynamic Loader definition
  */
  */
@@ -243,10 +241,8 @@ struct req_exec_cfg_ringreenable {
 /* IMPL */
 /* IMPL */
 
 
 static int cfg_exec_init_fn (
 static int cfg_exec_init_fn (
-	struct objdb_iface_ver0 *objdb,
 	struct corosync_api_v1 *corosync_api_v1)
 	struct corosync_api_v1 *corosync_api_v1)
 {
 {
-	my_objdb = objdb;
 	api = corosync_api_v1;
 	api = corosync_api_v1;
 	return (0);
 	return (0);
 }
 }
@@ -412,7 +408,7 @@ static void message_handler_req_lib_cfg_serviceload (
 
 
 	ENTER("");
 	ENTER("");
 	api->service_link_and_init (
 	api->service_link_and_init (
-		my_objdb,
+		api,
 		(char *)req_lib_cfg_serviceload->service_name,
 		(char *)req_lib_cfg_serviceload->service_name,
 		req_lib_cfg_serviceload->service_ver);
 		req_lib_cfg_serviceload->service_ver);
 
 
@@ -436,7 +432,7 @@ static void message_handler_req_lib_cfg_serviceunload (
 
 
 	ENTER("");
 	ENTER("");
 	api->service_unlink_and_exit (
 	api->service_unlink_and_exit (
-		my_objdb,
+		api,
 		(char *)req_lib_cfg_serviceunload->service_name,
 		(char *)req_lib_cfg_serviceunload->service_name,
 		req_lib_cfg_serviceunload->service_ver);
 		req_lib_cfg_serviceunload->service_ver);
 	res_lib_cfg_serviceunload.header.id = MESSAGE_RES_CFG_SERVICEUNLOAD;
 	res_lib_cfg_serviceunload.header.id = MESSAGE_RES_CFG_SERVICEUNLOAD;

+ 11 - 16
corosync/services/confdb.c

@@ -48,12 +48,9 @@
 
 
 LOGSYS_DECLARE_SUBSYS ("CONFDB", LOG_INFO);
 LOGSYS_DECLARE_SUBSYS ("CONFDB", LOG_INFO);
 
 
-static struct objdb_iface_ver0 *global_objdb;
-
 static struct corosync_api_v1 *api;
 static struct corosync_api_v1 *api;
 
 
 static int confdb_exec_init_fn (
 static int confdb_exec_init_fn (
-	struct objdb_iface_ver0 *objdb,
 	struct corosync_api_v1 *corosync_api);
 	struct corosync_api_v1 *corosync_api);
 
 
 static int confdb_lib_init_fn (void *conn);
 static int confdb_lib_init_fn (void *conn);
@@ -217,11 +214,9 @@ __attribute__ ((constructor)) static void confdb_comp_register (void) {
 }
 }
 
 
 static int confdb_exec_init_fn (
 static int confdb_exec_init_fn (
-	struct objdb_iface_ver0 *objdb,
 	struct corosync_api_v1 *corosync_api)
 	struct corosync_api_v1 *corosync_api)
 {
 {
 	api = corosync_api;
 	api = corosync_api;
-	global_objdb = objdb;
 	return 0;
 	return 0;
 }
 }
 
 
@@ -245,7 +240,7 @@ static void message_handler_req_lib_confdb_object_create (void *conn, void *mess
 	unsigned int object_handle;
 	unsigned int object_handle;
 	int ret = SA_AIS_OK;
 	int ret = SA_AIS_OK;
 
 
-	if (global_objdb->object_create(req_lib_confdb_object_create->parent_object_handle,
+	if (api->object_create(req_lib_confdb_object_create->parent_object_handle,
 					&object_handle,
 					&object_handle,
 					req_lib_confdb_object_create->object_name.value,
 					req_lib_confdb_object_create->object_name.value,
 					req_lib_confdb_object_create->object_name.length))
 					req_lib_confdb_object_create->object_name.length))
@@ -264,7 +259,7 @@ static void message_handler_req_lib_confdb_object_destroy (void *conn, void *mes
 	mar_res_header_t res;
 	mar_res_header_t res;
 	int ret = SA_AIS_OK;
 	int ret = SA_AIS_OK;
 
 
-	if (global_objdb->object_destroy(req_lib_confdb_object_destroy->object_handle))
+	if (api->object_destroy(req_lib_confdb_object_destroy->object_handle))
 		ret = SA_AIS_ERR_ACCESS;
 		ret = SA_AIS_ERR_ACCESS;
 
 
 	res.size = sizeof(res);
 	res.size = sizeof(res);
@@ -280,7 +275,7 @@ static void message_handler_req_lib_confdb_key_create (void *conn, void *message
 	mar_res_header_t res;
 	mar_res_header_t res;
 	int ret = SA_AIS_OK;
 	int ret = SA_AIS_OK;
 
 
-	if (global_objdb->object_key_create(req_lib_confdb_key_create->object_handle,
+	if (api->object_key_create(req_lib_confdb_key_create->object_handle,
 					    req_lib_confdb_key_create->key_name.value,
 					    req_lib_confdb_key_create->key_name.value,
 					    req_lib_confdb_key_create->key_name.length,
 					    req_lib_confdb_key_create->key_name.length,
 					    req_lib_confdb_key_create->value.value,
 					    req_lib_confdb_key_create->value.value,
@@ -301,7 +296,7 @@ static void message_handler_req_lib_confdb_key_get (void *conn, void *message)
 	void *value;
 	void *value;
 	int ret = SA_AIS_OK;
 	int ret = SA_AIS_OK;
 
 
-	if (global_objdb->object_key_get(req_lib_confdb_key_get->parent_object_handle,
+	if (api->object_key_get(req_lib_confdb_key_get->parent_object_handle,
 					 req_lib_confdb_key_get->key_name.value,
 					 req_lib_confdb_key_get->key_name.value,
 					 req_lib_confdb_key_get->key_name.length,
 					 req_lib_confdb_key_get->key_name.length,
 					 &value,
 					 &value,
@@ -324,7 +319,7 @@ static void message_handler_req_lib_confdb_key_replace (void *conn, void *messag
 	mar_res_header_t res;
 	mar_res_header_t res;
 	int ret = SA_AIS_OK;
 	int ret = SA_AIS_OK;
 
 
-	if (global_objdb->object_key_replace(req_lib_confdb_key_replace->object_handle,
+	if (api->object_key_replace(req_lib_confdb_key_replace->object_handle,
 					     req_lib_confdb_key_replace->key_name.value,
 					     req_lib_confdb_key_replace->key_name.value,
 					     req_lib_confdb_key_replace->key_name.length,
 					     req_lib_confdb_key_replace->key_name.length,
 					     req_lib_confdb_key_replace->old_value.value,
 					     req_lib_confdb_key_replace->old_value.value,
@@ -345,7 +340,7 @@ static void message_handler_req_lib_confdb_key_delete (void *conn, void *message
 	mar_res_header_t res;
 	mar_res_header_t res;
 	int ret = SA_AIS_OK;
 	int ret = SA_AIS_OK;
 
 
-	if (global_objdb->object_key_delete(req_lib_confdb_key_delete->object_handle,
+	if (api->object_key_delete(req_lib_confdb_key_delete->object_handle,
 					    req_lib_confdb_key_delete->key_name.value,
 					    req_lib_confdb_key_delete->key_name.value,
 					    req_lib_confdb_key_delete->key_name.length,
 					    req_lib_confdb_key_delete->key_name.length,
 					    req_lib_confdb_key_delete->value.value,
 					    req_lib_confdb_key_delete->value.value,
@@ -365,7 +360,7 @@ static void message_handler_req_lib_confdb_object_parent_get (void *conn, void *
 	unsigned int object_handle;
 	unsigned int object_handle;
 	int ret = SA_AIS_OK;
 	int ret = SA_AIS_OK;
 
 
-	if (global_objdb->object_parent_get(req_lib_confdb_object_parent_get->object_handle,
+	if (api->object_parent_get(req_lib_confdb_object_parent_get->object_handle,
 					    &object_handle))
 					    &object_handle))
 		ret = SA_AIS_ERR_ACCESS;
 		ret = SA_AIS_ERR_ACCESS;
 
 
@@ -387,7 +382,7 @@ static void message_handler_req_lib_confdb_key_iter (void *conn, void *message)
 	int value_len;
 	int value_len;
 	int ret = SA_AIS_OK;
 	int ret = SA_AIS_OK;
 
 
-	if (global_objdb->object_key_iter_from(req_lib_confdb_key_iter->parent_object_handle,
+	if (api->object_key_iter_from(req_lib_confdb_key_iter->parent_object_handle,
 					       req_lib_confdb_key_iter->next_entry,
 					       req_lib_confdb_key_iter->next_entry,
 					       &key_name,
 					       &key_name,
 					       &key_name_len,
 					       &key_name_len,
@@ -415,7 +410,7 @@ static void message_handler_req_lib_confdb_object_iter (void *conn, void *messag
 	int object_name_len;
 	int object_name_len;
 	int ret = SA_AIS_OK;
 	int ret = SA_AIS_OK;
 
 
-	if (global_objdb->object_iter_from(req_lib_confdb_object_iter->parent_object_handle,
+	if (api->object_iter_from(req_lib_confdb_object_iter->parent_object_handle,
 					   req_lib_confdb_object_iter->next_entry,
 					   req_lib_confdb_object_iter->next_entry,
 					   &object_name,
 					   &object_name,
 					   &object_name_len,
 					   &object_name_len,
@@ -438,7 +433,7 @@ static void message_handler_req_lib_confdb_object_find (void *conn, void *messag
 	struct res_lib_confdb_object_find res_lib_confdb_object_find;
 	struct res_lib_confdb_object_find res_lib_confdb_object_find;
 	int ret = SA_AIS_OK;
 	int ret = SA_AIS_OK;
 
 
-	if (global_objdb->object_find_from(req_lib_confdb_object_find->parent_object_handle,
+	if (api->object_find_from(req_lib_confdb_object_find->parent_object_handle,
 					   req_lib_confdb_object_find->next_entry,
 					   req_lib_confdb_object_find->next_entry,
 					   req_lib_confdb_object_find->object_name.value,
 					   req_lib_confdb_object_find->object_name.value,
 					   req_lib_confdb_object_find->object_name.length,
 					   req_lib_confdb_object_find->object_name.length,
@@ -459,7 +454,7 @@ static void message_handler_req_lib_confdb_write (void *conn, void *message)
 	int ret = SA_AIS_OK;
 	int ret = SA_AIS_OK;
 	char *error_string = NULL;
 	char *error_string = NULL;
 
 
-	if (global_objdb->object_write_config(&error_string))
+	if (api->object_write_config(&error_string))
 		ret = SA_AIS_ERR_ACCESS;
 		ret = SA_AIS_ERR_ACCESS;
 
 
 	res_lib_confdb_write.header.size = sizeof(res_lib_confdb_write);
 	res_lib_confdb_write.header.size = sizeof(res_lib_confdb_write);

+ 2 - 2
corosync/services/cpg.c

@@ -124,7 +124,7 @@ static void cpg_confchg_fn (
 	unsigned int *joined_list, int joined_list_entries,
 	unsigned int *joined_list, int joined_list_entries,
 	struct memb_ring_id *ring_id);
 	struct memb_ring_id *ring_id);
 
 
-static int cpg_exec_init_fn (struct objdb_iface_ver0 *objdb, struct corosync_api_v1 *);
+static int cpg_exec_init_fn (struct corosync_api_v1 *);
 
 
 static int cpg_lib_init_fn (void *conn);
 static int cpg_lib_init_fn (void *conn);
 
 
@@ -465,7 +465,7 @@ static void remove_group(struct group_info *gi)
 }
 }
 
 
 
 
-static int cpg_exec_init_fn (struct objdb_iface_ver0 *objdb, struct corosync_api_v1 *corosync_api)
+static int cpg_exec_init_fn (struct corosync_api_v1 *corosync_api)
 {
 {
 	int i;
 	int i;
 
 

+ 0 - 3
corosync/services/evs.c

@@ -67,7 +67,6 @@ enum evs_exec_message_req_types {
  * Service Interfaces required by service_message_handler struct
  * Service Interfaces required by service_message_handler struct
  */
  */
 static int evs_exec_init_fn (
 static int evs_exec_init_fn (
-	struct objdb_iface_ver0 *objdb,
 	struct corosync_api_v1 *corosync_api);
 	struct corosync_api_v1 *corosync_api);
 
 
 static void evs_confchg_fn (
 static void evs_confchg_fn (
@@ -200,10 +199,8 @@ __attribute__ ((constructor)) static void evs_comp_register (void) {
 }
 }
 
 
 static int evs_exec_init_fn (
 static int evs_exec_init_fn (
-	struct objdb_iface_ver0 *objdb,
 	struct corosync_api_v1 *corosync_api)
 	struct corosync_api_v1 *corosync_api)
 {
 {
-	(void) objdb;
 	api = corosync_api;
 	api = corosync_api;
 
 
 	return 0;
 	return 0;