* Latest liblvm base patches
@ 2009-02-20 16:41 Thomas Woerner
2009-02-20 16:41 ` [PATCH 1/3] New parameter system_dir for create_toolcontext Thomas Woerner
0 siblings, 1 reply; 4+ messages in thread
From: Thomas Woerner @ 2009-02-20 16:41 UTC (permalink / raw)
To: lvm-devel
Here are the latest liblvm base patches.
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 1/3] New parameter system_dir for create_toolcontext.
2009-02-20 16:41 Latest liblvm base patches Thomas Woerner
@ 2009-02-20 16:41 ` Thomas Woerner
2009-02-20 16:41 ` [PATCH 2/3] Rename version.h to lvm-version.h, move it to lib/misc, add more version defines Thomas Woerner
0 siblings, 1 reply; 4+ messages in thread
From: Thomas Woerner @ 2009-02-20 16:41 UTC (permalink / raw)
To: lvm-devel
cmd->sys_dir, which defaults to DEFAULT_SYS_DIR, will be set to system_dir i
the parameter is not NULL. If the environment variable LVM_SYSTEM_DIR is set
it will overwrite any value of cmd->sys_dir.
Signed-off-by: Thomas Woerner <twoerner@redhat.com>
---
daemons/clvmd/lvm-functions.c | 4 ++--
lib/commands/toolcontext.c | 16 ++++++++++++++--
lib/commands/toolcontext.h | 9 +++++++--
tools/lvmcmdline.c | 4 ++--
4 files changed, 25 insertions(+), 8 deletions(-)
diff --git a/daemons/clvmd/lvm-functions.c b/daemons/clvmd/lvm-functions.c
index 5cf7eff..d720802 100644
--- a/daemons/clvmd/lvm-functions.c
+++ b/daemons/clvmd/lvm-functions.c
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2002-2004 Sistina Software, Inc. All rights reserved.
- * Copyright (C) 2004-2008 Red Hat, Inc. All rights reserved.
+ * Copyright (C) 2004-2009 Red Hat, Inc. All rights reserved.
*
* This file is part of LVM2.
*
@@ -724,7 +724,7 @@ void lvm_do_backup(const char *vgname)
/* Called to initialise the LVM context of the daemon */
int init_lvm(int using_gulm)
{
- if (!(cmd = create_toolcontext(1))) {
+ if (!(cmd = create_toolcontext(1, NULL))) {
log_error("Failed to allocate command context");
return 0;
}
diff --git a/lib/commands/toolcontext.c b/lib/commands/toolcontext.c
index 0a98325..39c644c 100644
--- a/lib/commands/toolcontext.c
+++ b/lib/commands/toolcontext.c
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved.
- * Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved.
+ * Copyright (C) 2004-2009 Red Hat, Inc. All rights reserved.
*
* This file is part of LVM2.
*
@@ -998,7 +998,8 @@ static void _init_globals(struct cmd_context *cmd)
}
/* Entry point */
-struct cmd_context *create_toolcontext(unsigned is_long_lived)
+struct cmd_context *create_toolcontext(unsigned is_long_lived,
+ const char *system_dir)
{
struct cmd_context *cmd;
@@ -1030,6 +1031,17 @@ struct cmd_context *create_toolcontext(unsigned is_long_lived)
strcpy(cmd->sys_dir, DEFAULT_SYS_DIR);
+ /*
+ * cmd->sys_dir, which defaults to DEFAULT_SYS_DIR, will be set to
+ * system_dir if the parameter is not NULL. If the environment
+ * variable LVM_SYSTEM_DIR is set, it will overwrite any value of
+ * cmd->sys_dir.
+ */
+ if (system_dir) {
+ strncpy(cmd->sys_dir, system_dir, sizeof(cmd->sys_dir));
+ cmd->sys_dir[sizeof(cmd->sys_dir) - 1] = '\0';
+ }
+
if (!_get_env_vars(cmd))
goto error;
diff --git a/lib/commands/toolcontext.h b/lib/commands/toolcontext.h
index 7d2aef9..eb2b6ef 100644
--- a/lib/commands/toolcontext.h
+++ b/lib/commands/toolcontext.h
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved.
- * Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved.
+ * Copyright (C) 2004-2009 Red Hat, Inc. All rights reserved.
*
* This file is part of LVM2.
*
@@ -94,7 +94,12 @@ struct cmd_context {
char sysfs_dir[PATH_MAX];
};
-struct cmd_context *create_toolcontext(unsigned is_long_lived);
+/*
+ * cmd->sys_dir, which defaults to DEFAULT_SYS_DIR, will be set to system_dir
+ * if the parameter is not NULL. If the environment variable LVM_SYSTEM_DIR is
+ * set, it will overwrite any value of cmd->sys_dir.
+ */
+struct cmd_context *create_toolcontext(unsigned is_long_lived, const char *system_dir);
void destroy_toolcontext(struct cmd_context *cmd);
int refresh_toolcontext(struct cmd_context *cmd);
int config_files_changed(struct cmd_context *cmd);
diff --git a/tools/lvmcmdline.c b/tools/lvmcmdline.c
index 880f31e..cb1bfc6 100644
--- a/tools/lvmcmdline.c
+++ b/tools/lvmcmdline.c
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved.
- * Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved.
+ * Copyright (C) 2004-2009 Red Hat, Inc. All rights reserved.
*
* This file is part of LVM2.
*
@@ -1158,7 +1158,7 @@ struct cmd_context *init_lvm(void)
_cmdline.the_args = &_the_args[0];
- if (!(cmd = create_toolcontext(0)))
+ if (!(cmd = create_toolcontext(0, NULL)))
return_NULL;
return cmd;
--
1.6.1.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 2/3] Rename version.h to lvm-version.h, move it to lib/misc, add more version defines.
2009-02-20 16:41 ` [PATCH 1/3] New parameter system_dir for create_toolcontext Thomas Woerner
@ 2009-02-20 16:41 ` Thomas Woerner
2009-02-20 16:41 ` [PATCH 3/3] New base files needed for liblvm with doxygen style descriptions Thomas Woerner
0 siblings, 1 reply; 4+ messages in thread
From: Thomas Woerner @ 2009-02-20 16:41 UTC (permalink / raw)
To: lvm-devel
Rename version.h to lvm-version.h, move it to lib/misc and add more version
defines. New defines are LVM_MAJOR, LVM_MINOR, LVM_PATCHLEVEL, LVM_RELEASE and
LVM_RELEASE_DATE generated in configure. New GPL header. Fixed all occurances
of version.h in the code.
Use $AWK for DM_LIB_PATCHLEVEL in configure.
TODO: recreate configure
Signed-off-by: Thomas Woerner <twoerner@redhat.com>
---
configure.in | 20 +++++++++++++++++---
daemons/clvmd/clvmd.c | 4 ++--
include/.symlinks | 2 +-
lib/format_text/export.c | 4 ++--
lib/misc/lvm-version.h.in | 29 +++++++++++++++++++++++++++++
make.tmpl.in | 4 ++--
test/t-000-basic.sh | 4 ++--
tools/lvmcmdlib.c | 4 ++--
tools/lvmcmdline.c | 2 +-
tools/version.h.in | 3 ---
10 files changed, 58 insertions(+), 18 deletions(-)
create mode 100644 lib/misc/lvm-version.h.in
delete mode 100644 tools/version.h.in
diff --git a/configure.in b/configure.in
index ea77eff..a117dea 100644
--- a/configure.in
+++ b/configure.in
@@ -1,6 +1,6 @@
###############################################################################
## Copyright (C) 2000-2004 Sistina Software, Inc. All rights reserved.
-## Copyright (C) 2004-2008 Red Hat, Inc. All rights reserved.
+## Copyright (C) 2004-2009 Red Hat, Inc. All rights reserved.
##
## This copyrighted material is made available to anyone wishing to use,
## modify, copy, or redistribute it subject to the terms and conditions
@@ -719,10 +719,19 @@ AC_MSG_RESULT($interface)
DM_LIB_VERSION="\"`cat VERSION_DM 2>/dev/null || echo Unknown`\""
AC_DEFINE_UNQUOTED(DM_LIB_VERSION, $DM_LIB_VERSION, [Library version])
-DM_LIB_PATCHLEVEL=`cat VERSION_DM | awk -F '[[-. ]]' '{printf "%s.%s.%s",$1,$2,$3}'`
+DM_LIB_PATCHLEVEL=`cat VERSION_DM | $AWK -F '[[-. ]]' '{printf "%s.%s.%s",$1,$2,$3}'`
LVM_VERSION="\"`cat VERSION 2>/dev/null || echo Unknown`\""
+VER=`cat VERSION`
+LVM_RELEASE_DATE="\"`echo $VER | $SED 's/.*(//;s/).*//'`\""
+VER=`echo "$VER" | $AWK '{print $1}'`
+LVM_RELEASE="\"`echo "$VER" | $AWK -F '-' '{print $2}'`\""
+VER=`echo "$VER" | $AWK -F '-' '{print $1}'`
+LVM_MAJOR=`echo "$VER" | $AWK -F '.' '{print $1}'`
+LVM_MINOR=`echo "$VER" | $AWK -F '.' '{print $2}'`
+LVM_PATCHLEVEL=`echo "$VER" | $AWK -F '.' '{print $3}'`
+
################################################################################
AC_SUBST(BUILD_DMEVENTD)
AC_SUBST(CFLAGS)
@@ -761,6 +770,11 @@ AC_SUBST(LVM1)
AC_SUBST(LVM1_FALLBACK)
AC_SUBST(CONFDIR)
AC_SUBST(LVM_VERSION)
+AC_SUBST(LVM_MAJOR)
+AC_SUBST(LVM_MINOR)
+AC_SUBST(LVM_PATCHLEVEL)
+AC_SUBST(LVM_RELEASE)
+AC_SUBST(LVM_RELEASE_DATE)
AC_SUBST(MIRRORS)
AC_SUBST(MSGFMT)
AC_SUBST(OWNER)
@@ -798,6 +812,7 @@ lib/format1/Makefile
lib/format_pool/Makefile
lib/locking/Makefile
lib/mirror/Makefile
+lib/misc/lvm-version.h
lib/snapshot/Makefile
libdm/Makefile
libdm/libdevmapper.pc
@@ -808,7 +823,6 @@ scripts/Makefile
test/Makefile
test/api/Makefile
tools/Makefile
-tools/version.h
])
AC_OUTPUT
diff --git a/daemons/clvmd/clvmd.c b/daemons/clvmd/clvmd.c
index faa1755..29df425 100644
--- a/daemons/clvmd/clvmd.c
+++ b/daemons/clvmd/clvmd.c
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2002-2004 Sistina Software, Inc. All rights reserved.
- * Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved.
+ * Copyright (C) 2004-2009 Red Hat, Inc. All rights reserved.
*
* This file is part of LVM2.
*
@@ -49,7 +49,7 @@
#include "clvmd-comms.h"
#include "lvm-functions.h"
#include "clvm.h"
-#include "version.h"
+#include "lvm-version.h"
#include "clvmd.h"
#include "refresh_clvmd.h"
#include "lvm-logging.h"
diff --git a/include/.symlinks b/include/.symlinks
index 1a4bd93..97acfed 100644
--- a/include/.symlinks
+++ b/include/.symlinks
@@ -47,6 +47,7 @@
../lib/misc/lvm-file.h
../lib/misc/lvm-globals.h
../lib/misc/lvm-string.h
+../lib/misc/lvm-version.h
../lib/misc/lvm-wrappers.h
../lib/misc/sharedlib.h
../lib/report/report.h
@@ -57,4 +58,3 @@
../libdm/misc/dmlib.h
../libdm/misc/kdev_t.h
../po/pogen.h
-../tools/version.h
diff --git a/lib/format_text/export.c b/lib/format_text/export.c
index 6f16143..604138c 100644
--- a/lib/format_text/export.c
+++ b/lib/format_text/export.c
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved.
- * Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved.
+ * Copyright (C) 2004-2009 Red Hat, Inc. All rights reserved.
*
* This file is part of LVM2.
*
@@ -20,7 +20,7 @@
#include "lvm-string.h"
#include "segtype.h"
#include "text_export.h"
-#include "version.h"
+#include "lvm-version.h"
#include <stdarg.h>
#include <time.h>
diff --git a/lib/misc/lvm-version.h.in b/lib/misc/lvm-version.h.in
new file mode 100644
index 0000000..0c59852
--- /dev/null
+++ b/lib/misc/lvm-version.h.in
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved.
+ * Copyright (C) 2004-2009 Red Hat, Inc. All rights reserved.
+ *
+ * This file is part of LVM2.
+ *
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License v.2.1.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#ifndef _LVM_VERSION_H
+/**
+ * The LVM version number
+ *
+ * LVM_MAJOR.LVM_MINOR.LVM_PATCHLEVEL[-LVM_RELEASE]
+ */
+
+#define LVM_VERSION @LVM_VERSION@
+#define LVM_MAJOR @LVM_MAJOR@
+#define LVM_MINOR @LVM_MINOR@
+#define LVM_PATCHLEVEL @LVM_PATCHLEVEL@
+#define LVM_RELEASE @LVM_RELEASE@
+#define LVM_RELEASE_DATE @LVM_RELEASE_DATE@
+#endif
diff --git a/make.tmpl.in b/make.tmpl.in
index b269adf..ea2432c 100644
--- a/make.tmpl.in
+++ b/make.tmpl.in
@@ -1,7 +1,7 @@
# @configure_input@
#
# Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved.
-# Copyright (C) 2004, 2008 Red Hat, Inc. All rights reserved.
+# Copyright (C) 2004, 2009 Red Hat, Inc. All rights reserved.
#
# This file is part of LVM2.
#
@@ -244,7 +244,7 @@ distclean: $(SUBDIRS.distclean)
$(SOURCES:%.c=%.gcda) $(LDDEPS) \
config.cache config.log config.status \
Makefile make.tmpl core \
- version.h lvm2.po
+ lvm-version.h lvm2.po
.export.sym: .exported_symbols
set -e; (echo "Base {"; echo " global:"; \
diff --git a/test/t-000-basic.sh b/test/t-000-basic.sh
index ed311de..b1d637d 100755
--- a/test/t-000-basic.sh
+++ b/test/t-000-basic.sh
@@ -1,4 +1,4 @@
-# Copyright (C) 2007 Red Hat, Inc. All rights reserved.
+# Copyright (C) 2009 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing to use,
# modify, copy, or redistribute it subject to the terms and conditions
@@ -12,7 +12,7 @@
lvm version
-v=$abs_top_srcdir/tools/version.h
+v=$abs_top_srcdir/lib/misc/lvm-version.h
sed -n "/#define LVM_VERSION ./s///p" "$v" | sed "s/ .*//" > expected
lvm pvmove --version|sed -n "1s/.*: *\([0-9][^ ]*\) .*/\1/p" > actual
diff --git a/tools/lvmcmdlib.c b/tools/lvmcmdlib.c
index 1a90c92..5cde0c4 100644
--- a/tools/lvmcmdlib.c
+++ b/tools/lvmcmdlib.c
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved.
- * Copyright (C) 2004-2008 Red Hat, Inc. All rights reserved.
+ * Copyright (C) 2004-2009 Red Hat, Inc. All rights reserved.
*
* This file is part of LVM2.
*
@@ -17,7 +17,7 @@
#include "lvm2cmdline.h"
#include "label.h"
#include "memlock.h"
-#include "version.h"
+#include "lvm-version.h"
#include "lvm2cmd.h"
diff --git a/tools/lvmcmdline.c b/tools/lvmcmdline.c
index cb1bfc6..a96ef3c 100644
--- a/tools/lvmcmdline.c
+++ b/tools/lvmcmdline.c
@@ -16,7 +16,7 @@
#include "tools.h"
#include "lvm2cmdline.h"
#include "label.h"
-#include "version.h"
+#include "lvm-version.h"
#include "stub.h"
#include "lvm2cmd.h"
diff --git a/tools/version.h.in b/tools/version.h.in
deleted file mode 100644
index a122792..0000000
--- a/tools/version.h.in
+++ /dev/null
@@ -1,3 +0,0 @@
-#ifndef _LVM_VERSION_H
-#define LVM_VERSION @LVM_VERSION@
-#endif
--
1.6.1.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 3/3] New base files needed for liblvm with doxygen style descriptions.
2009-02-20 16:41 ` [PATCH 2/3] Rename version.h to lvm-version.h, move it to lib/misc, add more version defines Thomas Woerner
@ 2009-02-20 16:41 ` Thomas Woerner
0 siblings, 0 replies; 4+ messages in thread
From: Thomas Woerner @ 2009-02-20 16:41 UTC (permalink / raw)
To: lvm-devel
Added files lib/lvm.h and lib/lvm_base.c:
New structure lvm (used as an alias to cmd_context), new type definition lvm_t
for the lvm handle. Added functions lvm_create, lvm_destroy and
lvm_reload_config using the new handle.
Modified test/api/test.c:
Use new lvm.h header file and lvm_t handle.
Removed lib/lvm2.h
Signed-off-by: Thomas Woerner <twoerner@redhat.com>
---
lib/Makefile.in | 5 ++-
lib/lvm.h | 57 +++++++++++++++++++++++++++++++++++++++++++++++++
lib/lvm2.h | 53 ---------------------------------------------
lib/lvm_base.c | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
test/api/test.c | 17 +++++++-------
5 files changed, 132 insertions(+), 64 deletions(-)
create mode 100644 lib/lvm.h
delete mode 100644 lib/lvm2.h
create mode 100644 lib/lvm_base.c
diff --git a/lib/Makefile.in b/lib/Makefile.in
index 54092cd..47786a7 100644
--- a/lib/Makefile.in
+++ b/lib/Makefile.in
@@ -1,6 +1,6 @@
#
# Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved.
-# Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved.
+# Copyright (C) 2004-2009 Red Hat, Inc. All rights reserved.
#
# This file is part of LVM2.
#
@@ -86,7 +86,8 @@ SOURCES =\
report/report.c \
striped/striped.c \
uuid/uuid.c \
- zero/zero.c
+ zero/zero.c \
+ lvm_base.c
ifeq ("@LVM1@", "internal")
SOURCES +=\
diff --git a/lib/lvm.h b/lib/lvm.h
new file mode 100644
index 0000000..1687b51
--- /dev/null
+++ b/lib/lvm.h
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2008,2009 Red Hat, Inc. All rights reserved.
+ *
+ * This file is part of LVM2.
+ *
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License v.2.1.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+#ifndef _LIB_LVM_H
+#define _LIB_LVM_H
+
+#include "version.h"
+
+#include <stdint.h>
+
+struct lvm; /* internal data */
+
+/**
+ * The lvm handle.
+ */
+typedef struct lvm *lvm_t;
+
+/**
+ * Create a LVM handle.
+ *
+ * \param system_dir
+ * Set an alternative LVM system directory. Use NULL to use the
+ * default value. If the environment variable LVM_SYSTEM_DIR is set,
+ * it will override any LVM system directory setting.
+ * \return A valid LVM handle is returned or NULL if there has been a
+ * memory allocation problem. You have to check if an error occured
+ * with the lvm_error function.
+ */
+lvm_t lvm_create(const char *system_dir);
+
+/**
+ * Destroy a LVM handle allocated with lvm_create.
+ *
+ * \param libh
+ * Handle obtained from lvm_create.
+ */
+void lvm_destroy(lvm_t libh);
+
+/**
+ * Reload the original configuration from the system directory.
+ *
+ * \param libh
+ * Handle obtained from lvm_create.
+ */
+int lvm_reload_config(lvm_t libh);
+
+#endif /* _LIB_LVM_H */
diff --git a/lib/lvm2.h b/lib/lvm2.h
deleted file mode 100644
index b18cead..0000000
--- a/lib/lvm2.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved.
- * Copyright (C) 2004-2008 Red Hat, Inc. All rights reserved.
- *
- * This file is part of LVM2.
- *
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License v.2.1.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-#ifndef _LIB_LVM2_H
-#define _LIB_LVM2_H
-
-#include <stdint.h>
-
-/*
- * Library Initialisation
- * FIXME: For now just #define lvm2_create() and lvm2_destroy() to
- * create_toolcontext() and destroy_toolcontext()
- */
-struct arg;
-struct cmd_context;
-struct cmd_context *create_toolcontext(unsigned is_long_lived);
-void destroy_toolcontext(struct cmd_context *cmd);
-
-/*
- * lvm2_create
-lvm_handle_t lvm2_create(void);
- *
- * Description: Create an LVM2 handle used in many other APIs.
- *
- * Returns:
- * NULL: Fail - unable to initialise handle.
- * non-NULL: Success - valid LVM2 handle returned
- */
-#define lvm2_create(X) create_toolcontext(1)
-
-/*
- * lvm2_destroy
-void lvm2_destroy(lvm_handle_t h);
- *
- * Description: Destroy an LVM2 handle allocated with lvm2_create
- *
- * Parameters:
- * - h (IN): handle obtained from lvm2_create
- */
-#define lvm2_destroy(X) destroy_toolcontext(X)
-
-#endif
diff --git a/lib/lvm_base.c b/lib/lvm_base.c
new file mode 100644
index 0000000..f917533
--- /dev/null
+++ b/lib/lvm_base.c
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2008,2009 Red Hat, Inc. All rights reserved.
+ *
+ * This file is part of LVM2.
+ *
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License v.2.1.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include "lib.h"
+#include "lvm.h"
+#include "toolcontext.h"
+#include "locking.h"
+#include "metadata-exported.h"
+#include "report.h"
+
+lvm_t lvm_create(const char *system_dir)
+{
+ struct cmd_context *cmd;
+
+ /* FIXME: logging bound to handle
+ */
+
+ /* create context */
+ /* FIXME: split create_toolcontext */
+ cmd = create_toolcontext(1, system_dir);
+ if (!cmd)
+ return NULL;
+ /*
+ * FIXME: if an non memory error occured, return the cmd (maybe some
+ * cleanup needed).
+ */
+
+ /* initialization from lvm_run_command */
+ init_error_message_produced(0);
+
+ /* FIXME: locking_type config option needed? */
+ /* initialize locking */
+ if (!init_locking(-1, cmd)) {
+ /* FIXME: use EAGAIN as error code here */
+ log_error("Locking initialisation failed.");
+ lvm_destroy((lvm_t) cmd);
+ return NULL;
+ }
+
+ return (lvm_t) cmd;
+}
+
+void lvm_destroy(lvm_t libh)
+{
+ /* FIXME: error handling */
+ destroy_toolcontext((struct cmd_context *)libh);
+}
+
+int lvm_reload_config(lvm_t libh)
+{
+ /* FIXME: re-init locking needed here? */
+ return refresh_toolcontext((struct cmd_context *)libh);
+}
diff --git a/test/api/test.c b/test/api/test.c
index de53c46..b742976 100644
--- a/test/api/test.c
+++ b/test/api/test.c
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved.
- * Copyright (C) 2004-2008 Red Hat, Inc. All rights reserved.
+ * Copyright (C) 2004-2009 Red Hat, Inc. All rights reserved.
*
* This file is part of LVM2.
*
@@ -16,7 +16,7 @@
#include <string.h>
#include <stdlib.h>
#include <readline/readline.h>
-#include "lvm2.h"
+#include "lvm.h"
#define MAX_ARGS 64
@@ -48,7 +48,7 @@ static int lvm_split(char *str, int *argc, char **argv, int max)
return *argc;
}
-static int lvmapi_test_shell(void *h)
+static int lvmapi_test_shell(lvm_t libh)
{
int argc, i;
char *input = NULL, *args[MAX_ARGS], **argv;
@@ -99,18 +99,17 @@ static int lvmapi_test_shell(void *h)
int main (int argc, char *argv[])
{
- void *h;
+ lvm_t libh;
- h = lvm2_create();
- if (!h) {
+ libh = lvm_create(NULL);
+ if (!libh) {
printf("Unable to open lvm library instance\n");
return 1;
}
- lvmapi_test_shell(h);
+ lvmapi_test_shell(libh);
- if (h)
- lvm2_destroy(h);
+ lvm_destroy(libh);
return 0;
}
--
1.6.1.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2009-02-20 16:41 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-02-20 16:41 Latest liblvm base patches Thomas Woerner
2009-02-20 16:41 ` [PATCH 1/3] New parameter system_dir for create_toolcontext Thomas Woerner
2009-02-20 16:41 ` [PATCH 2/3] Rename version.h to lvm-version.h, move it to lib/misc, add more version defines Thomas Woerner
2009-02-20 16:41 ` [PATCH 3/3] New base files needed for liblvm with doxygen style descriptions Thomas Woerner
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.