* [PATCH 3/3] New base files needed for liblvm with doxygen style descriptions.
2009-02-19 19:01 ` [PATCH 3/3] New base files needed for liblvm with doxygen style descriptions Thomas Woerner
@ 2009-02-19 18:18 ` Dave Wysochanski
0 siblings, 0 replies; 6+ messages in thread
From: Dave Wysochanski @ 2009-02-19 18:18 UTC (permalink / raw)
To: lvm-devel
On Thu, 2009-02-19 at 20:01 +0100, Thomas Woerner wrote:
> 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 ---------------------------------------------------
> test/api/test.c | 17 +++++++--------
> 4 files changed, 68 insertions(+), 64 deletions(-)
> create mode 100644 lib/lvm.h
> delete mode 100644 lib/lvm2.h
>
> 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..09ff680
> --- /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 system path or NULL for the default value. If
> + * the environment variable LVM_SYSTEM_DIR is set, it will overwrite
> + * this value.
> + * \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/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;
> }
>
lvm_base.c missing - did you forget to 'git add'?
Ack the rest of the patch.
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 3/3] New base files needed for liblvm with doxygen style descriptions.
2009-02-19 19:01 ` [PATCH 2/3] Added more version defines to tools/version.h.in Thomas Woerner
@ 2009-02-19 19:01 ` Thomas Woerner
2009-02-19 18:18 ` Dave Wysochanski
0 siblings, 1 reply; 6+ messages in thread
From: Thomas Woerner @ 2009-02-19 19:01 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 ---------------------------------------------------
test/api/test.c | 17 +++++++--------
4 files changed, 68 insertions(+), 64 deletions(-)
create mode 100644 lib/lvm.h
delete mode 100644 lib/lvm2.h
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..09ff680
--- /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 system path or NULL for the default value. If
+ * the environment variable LVM_SYSTEM_DIR is set, it will overwrite
+ * this value.
+ * \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/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] 6+ messages in thread
* [PATCH 3/3] New base files needed for liblvm with doxygen style descriptions.
2009-02-20 11:24 (no subject) Thomas Woerner
@ 2009-02-20 11:24 ` Thomas Woerner
0 siblings, 0 replies; 6+ messages in thread
From: Thomas Woerner @ 2009-02-20 11:24 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 | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
test/api/test.c | 17 +++++++--------
5 files changed, 129 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..09ff680
--- /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 system path or NULL for the default value. If
+ * the environment variable LVM_SYSTEM_DIR is set, it will overwrite
+ * this value.
+ * \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..e76ee15
--- /dev/null
+++ b/lib/lvm_base.c
@@ -0,0 +1,61 @@
+/*
+ * 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);
+
+ /* initilize remaining */
+ if (cmd) {
+ /* initilization 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] 6+ messages in thread
* [PATCH 3/3] New base files needed for liblvm with doxygen style descriptions.
@ 2009-02-20 13:53 Thomas Woerner
0 siblings, 0 replies; 6+ messages in thread
From: Thomas Woerner @ 2009-02-20 13:53 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 | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
test/api/test.c | 17 +++++++--------
5 files changed, 129 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..09ff680
--- /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 system path or NULL for the default value. If
+ * the environment variable LVM_SYSTEM_DIR is set, it will overwrite
+ * this value.
+ * \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..af18707
--- /dev/null
+++ b/lib/lvm_base.c
@@ -0,0 +1,61 @@
+/*
+ * 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 error occured, return NULL and maybe cleanup. */
+
+ /* 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] 6+ 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; 6+ 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] 6+ messages in thread
* [PATCH 3/3] New base files needed for liblvm with doxygen style descriptions.
@ 2009-02-20 16:58 Thomas Woerner
0 siblings, 0 replies; 6+ messages in thread
From: Thomas Woerner @ 2009-02-20 16:58 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..3b60510
--- /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 "lvm-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] 6+ messages in thread
end of thread, other threads:[~2009-02-20 16:58 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-02-20 16:58 [PATCH 3/3] New base files needed for liblvm with doxygen style descriptions Thomas Woerner
-- strict thread matches above, loose matches on Subject: below --
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
2009-02-20 13:53 Thomas Woerner
2009-02-20 11:24 (no subject) Thomas Woerner
2009-02-20 11:24 ` [PATCH 3/3] New base files needed for liblvm with doxygen style descriptions Thomas Woerner
2009-02-19 19:01 liblvm base patches I Thomas Woerner
2009-02-19 19:01 ` [PATCH 1/3] New parameter system_dir for create_toolcontext Thomas Woerner
2009-02-19 19:01 ` [PATCH 2/3] Added more version defines to tools/version.h.in Thomas Woerner
2009-02-19 19:01 ` [PATCH 3/3] New base files needed for liblvm with doxygen style descriptions Thomas Woerner
2009-02-19 18:18 ` Dave Wysochanski
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.