summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarel Zak2013-04-09 13:12:15 +0200
committerKarel Zak2013-04-09 13:12:55 +0200
commit310f672874ed9d9c9b963f7a72e9edf3ea95de58 (patch)
treedb186e8e6c9b2de7299c634ffffb011e41953b0d
parentlibblkid: support LIBBLKID_DEBUG= only (diff)
downloadkernel-qcow2-util-linux-310f672874ed9d9c9b963f7a72e9edf3ea95de58.tar.gz
kernel-qcow2-util-linux-310f672874ed9d9c9b963f7a72e9edf3ea95de58.tar.xz
kernel-qcow2-util-linux-310f672874ed9d9c9b963f7a72e9edf3ea95de58.zip
libblkid: export blkid_init_debug()
Signed-off-by: Karel Zak <kzak@redhat.com>
-rw-r--r--libblkid/docs/libblkid-sections.txt5
-rw-r--r--libblkid/src/Makemodule.am1
-rw-r--r--libblkid/src/blkid.h.in1
-rw-r--r--libblkid/src/blkid.sym1
-rw-r--r--libblkid/src/blkidP.h6
-rw-r--r--libblkid/src/cache.c23
-rw-r--r--libblkid/src/init.c53
7 files changed, 63 insertions, 27 deletions
diff --git a/libblkid/docs/libblkid-sections.txt b/libblkid/docs/libblkid-sections.txt
index 149dd3831..86b8040fa 100644
--- a/libblkid/docs/libblkid-sections.txt
+++ b/libblkid/docs/libblkid-sections.txt
@@ -5,6 +5,11 @@ blkid_evaluate_spec
</SECTION>
<SECTION>
+<FILE>init</FILE>
+blkid_init_debug
+</SECTION>
+
+<SECTION>
<FILE>cache</FILE>
blkid_cache
blkid_gc_cache
diff --git a/libblkid/src/Makemodule.am b/libblkid/src/Makemodule.am
index 1c3c7bb71..ec6b754af 100644
--- a/libblkid/src/Makemodule.am
+++ b/libblkid/src/Makemodule.am
@@ -8,6 +8,7 @@ libblkid_la_SOURCES = \
include/list.h \
\
libblkid/src/blkidP.h \
+ libblkid/src/init.c \
libblkid/src/cache.c \
libblkid/src/config.c \
libblkid/src/dev.c \
diff --git a/libblkid/src/blkid.h.in b/libblkid/src/blkid.h.in
index 6d9c8e3e3..2a7d6b47c 100644
--- a/libblkid/src/blkid.h.in
+++ b/libblkid/src/blkid.h.in
@@ -138,6 +138,7 @@ typedef struct blkid_struct_dev_iterate *blkid_dev_iterate;
#endif
/* cache.c */
+extern void blkid_init_debug(int mask);
extern void blkid_put_cache(blkid_cache cache);
extern int blkid_get_cache(blkid_cache *cache, const char *filename);
extern void blkid_gc_cache(blkid_cache cache);
diff --git a/libblkid/src/blkid.sym b/libblkid/src/blkid.sym
index 012fe26c1..7d3b71d2e 100644
--- a/libblkid/src/blkid.sym
+++ b/libblkid/src/blkid.sym
@@ -153,4 +153,5 @@ BLKID_2.23 {
global:
blkid_probe_step_back;
blkid_parttable_get_id;
+ blkid_init_debug;
} BLKID_2.21;
diff --git a/libblkid/src/blkidP.h b/libblkid/src/blkidP.h
index 6c62a057d..83fccfbe7 100644
--- a/libblkid/src/blkidP.h
+++ b/libblkid/src/blkidP.h
@@ -340,13 +340,12 @@ struct blkid_struct_cache
#ifdef CONFIG_BLKID_DEBUG
# include <stdio.h>
# include <stdarg.h>
-extern int blkid_debug_mask;
-extern void blkid_init_debug(int mask);
+extern int libblkid_debug_mask;
extern void blkid_debug_dump_dev(blkid_dev dev);
extern void blkid_debug_dump_tag(blkid_tag tag);
# define DBG(m,x) do { \
- if ((BLKID_DEBUG_ ## m) & blkid_debug_mask) { \
+ if ((BLKID_DEBUG_ ## m) & libblkid_debug_mask) { \
fprintf(stderr, "%d: libblkid: %8s: ", getpid(), # m); \
x; \
} \
@@ -364,7 +363,6 @@ blkid_debug(const char *mesg, ...)
#else /* !CONFIG_BLKID_DEBUG */
# define DBG(m,x) do { ; } while (0)
-# define blkid_init_debug(x)
#endif /* CONFIG_BLKID_DEBUG */
/* devno.c */
diff --git a/libblkid/src/cache.c b/libblkid/src/cache.c
index 8c67eef02..dfbf7e034 100644
--- a/libblkid/src/cache.c
+++ b/libblkid/src/cache.c
@@ -24,8 +24,6 @@
#include "blkidP.h"
#include "env.h"
-int blkid_debug_mask = 0;
-
/**
* SECTION:cache
* @title: Cache
@@ -50,27 +48,6 @@ int blkid_debug_mask = 0;
* locate these devices without enumerating only visible devices, so the use of
* the cache file is required in this situation.
*/
-#ifdef CONFIG_BLKID_DEBUG
-void blkid_init_debug(int mask)
-{
- if (blkid_debug_mask & BLKID_DEBUG_INIT)
- return;
-
- if (!mask)
- {
- char *dstr = getenv("LIBBLKID_DEBUG");
- if (dstr)
- blkid_debug_mask = strtoul(dstr, 0, 0);
- } else
- blkid_debug_mask = mask;
-
- if (blkid_debug_mask)
- fprintf(stderr, "libblkid: debug mask set to 0x%04x.\n", blkid_debug_mask);
-
- blkid_debug_mask |= BLKID_DEBUG_INIT;
-}
-#endif
-
static const char *get_default_cache_filename(void)
{
struct stat st;
diff --git a/libblkid/src/init.c b/libblkid/src/init.c
new file mode 100644
index 000000000..4ca4db171
--- /dev/null
+++ b/libblkid/src/init.c
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2008-2013 Karel Zak <kzak@redhat.com>
+ *
+ * This file may be redistributed under the terms of the
+ * GNU Lesser General Public License.
+ */
+
+/**
+ * SECTION: init
+ * @title: Library initialization
+ * @short_description: initialize debuging
+ */
+
+#include <stdarg.h>
+
+#include "blkidP.h"
+
+int libblkid_debug_mask;
+
+/**
+ * blkid_init_debug:
+ * @mask: debug mask (0xffff to enable full debuging)
+ *
+ * If the @mask is not specified then this function reads
+ * LIBBLKID_DEBUG environment variable to get the mask.
+ *
+ * Already initialized debugging stuff cannot be changed. It does not
+ * have effect to call this function twice.
+ */
+void blkid_init_debug(int mask)
+{
+ if (libblkid_debug_mask & BLKID_DEBUG_INIT)
+ return;
+ if (!mask) {
+ char *str = getenv("LIBBLKID_DEBUG");
+ if (str)
+ libblkid_debug_mask = strtoul(str, 0, 0);
+ } else
+ libblkid_debug_mask = mask;
+
+ libblkid_debug_mask |= BLKID_DEBUG_INIT;
+
+ if (libblkid_debug_mask && libblkid_debug_mask != BLKID_DEBUG_INIT) {
+ const char *ver = NULL;
+ const char *date = NULL;
+
+ DBG(INIT, blkid_debug("library debug mask: 0x%04x",
+ libblkid_debug_mask));
+
+ blkid_get_library_version(&ver, &date);
+ DBG(INIT, blkid_debug("library version: %s [%s]", ver, date));
+ }
+}