volume_id: provide a custom debug function
authorKay Sievers <kay.sievers@suse.de>
Mon, 27 Mar 2006 15:59:22 +0000 (17:59 +0200)
committerKay Sievers <kay.sievers@suse.de>
Mon, 27 Mar 2006 15:59:22 +0000 (17:59 +0200)
36 files changed:
extras/volume_id/libvolume_id/Makefile
extras/volume_id/libvolume_id/cramfs.c
extras/volume_id/libvolume_id/ext.c
extras/volume_id/libvolume_id/fat.c
extras/volume_id/libvolume_id/hfs.c
extras/volume_id/libvolume_id/highpoint.c
extras/volume_id/libvolume_id/hpfs.c
extras/volume_id/libvolume_id/iso9660.c
extras/volume_id/libvolume_id/isw_raid.c
extras/volume_id/libvolume_id/jfs.c
extras/volume_id/libvolume_id/libvolume_id.h
extras/volume_id/libvolume_id/linux_raid.c
extras/volume_id/libvolume_id/linux_swap.c
extras/volume_id/libvolume_id/logging.h [deleted file]
extras/volume_id/libvolume_id/lsi_raid.c
extras/volume_id/libvolume_id/luks.c
extras/volume_id/libvolume_id/lvm.c
extras/volume_id/libvolume_id/minix.c
extras/volume_id/libvolume_id/ntfs.c
extras/volume_id/libvolume_id/nvidia_raid.c
extras/volume_id/libvolume_id/ocfs.c
extras/volume_id/libvolume_id/promise_raid.c
extras/volume_id/libvolume_id/reiserfs.c
extras/volume_id/libvolume_id/romfs.c
extras/volume_id/libvolume_id/silicon_raid.c
extras/volume_id/libvolume_id/squashfs.c
extras/volume_id/libvolume_id/sysv.c
extras/volume_id/libvolume_id/udf.c
extras/volume_id/libvolume_id/ufs.c
extras/volume_id/libvolume_id/util.c
extras/volume_id/libvolume_id/util.h
extras/volume_id/libvolume_id/via_raid.c
extras/volume_id/libvolume_id/volume_id.c
extras/volume_id/libvolume_id/vxfs.c
extras/volume_id/libvolume_id/xfs.c
extras/volume_id/vol_id.c

index 5d188a2..6a12f0e 100644 (file)
@@ -13,7 +13,7 @@ INSTALL_DATA  = ${INSTALL} -m 644
 INSTALL_LIB = ${INSTALL} -m 755
 
 SHLIB_CUR = 0
-SHLIB_REV = 60
+SHLIB_REV = 61
 SHLIB_AGE = 0
 SHLIB = libvolume_id.so.$(SHLIB_CUR).$(SHLIB_REV).$(SHLIB_AGE)
 
index 5a7c29d..beb34d5 100644 (file)
@@ -24,7 +24,6 @@
 #include <ctype.h>
 
 #include "libvolume_id.h"
-#include "logging.h"
 #include "util.h"
 
 struct cramfs_super {
index d1c4647..51c0011 100644 (file)
@@ -25,7 +25,6 @@
 
 #include "libvolume_id.h"
 #include "util.h"
-#include "logging.h"
 
 struct ext2_super_block {
        uint32_t        s_inodes_count;
index 4b32263..4840a2a 100644 (file)
@@ -24,7 +24,6 @@
 #include <ctype.h>
 
 #include "libvolume_id.h"
-#include "logging.h"
 #include "util.h"
 
 #define FAT12_MAX                      0xff5
index 627166d..a6e378d 100644 (file)
@@ -24,7 +24,6 @@
 #include <ctype.h>
 
 #include "libvolume_id.h"
-#include "logging.h"
 #include "util.h"
 
 struct hfs_finder_info{
index fa580b7..deba540 100644 (file)
@@ -24,7 +24,6 @@
 #include <ctype.h>
 
 #include "libvolume_id.h"
-#include "logging.h"
 #include "util.h"
 
 struct hpt37x_meta {
index 41b8013..3e9589f 100644 (file)
@@ -24,7 +24,6 @@
 #include <ctype.h>
 
 #include "libvolume_id.h"
-#include "logging.h"
 #include "util.h"
 
 struct hpfs_super
index 02575f8..7b78a7e 100644 (file)
@@ -24,7 +24,6 @@
 #include <ctype.h>
 
 #include "libvolume_id.h"
-#include "logging.h"
 #include "util.h"
 
 #define ISO_SUPERBLOCK_OFFSET          0x8000
index cf7c62f..6465a31 100644 (file)
@@ -24,7 +24,6 @@
 #include <ctype.h>
 
 #include "libvolume_id.h"
-#include "logging.h"
 #include "util.h"
 
 struct isw_meta {
index f8d8578..b230fb2 100644 (file)
@@ -24,7 +24,6 @@
 #include <ctype.h>
 
 #include "libvolume_id.h"
-#include "logging.h"
 #include "util.h"
 
 struct jfs_super_block {
index b08a650..7faf8d8 100644 (file)
 #define PACKED                         __attribute__((packed))
 #endif
 
+
+typedef void (*volume_id_log_fn)(int priority, const char *file, int line, const char *format, ...)
+            __attribute__ ((format(printf, 4, 5)));
+
+extern volume_id_log_fn volume_id_log;
+
 #define VOLUME_ID_LABEL_SIZE           64
 #define VOLUME_ID_UUID_SIZE            36
 #define VOLUME_ID_FORMAT_SIZE          32
index ee5ed28..85e8d81 100644 (file)
@@ -24,7 +24,6 @@
 #include <ctype.h>
 
 #include "libvolume_id.h"
-#include "logging.h"
 #include "util.h"
 
 struct mdp_super_block {
index c87ef63..0193648 100644 (file)
@@ -24,7 +24,6 @@
 #include <ctype.h>
 
 #include "libvolume_id.h"
-#include "logging.h"
 #include "util.h"
 
 struct swap_header_v1_2 {
diff --git a/extras/volume_id/libvolume_id/logging.h b/extras/volume_id/libvolume_id/logging.h
deleted file mode 100644 (file)
index 4a8aa50..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * volume_id_logging - this file is used to map the dbg() function
- *                     to the user's logging facility
- *
- *     This program is free software; you can redistribute it and/or modify it
- *     under the terms of the GNU General Public License as published by the
- *     Free Software Foundation version 2 of the License.
- */
-
-#ifndef _VOLUME_ID_LOGGING_H_
-#define _VOLUME_ID_LOGGING_H_
-
-#ifndef _GNU_SOURCE
-#define _GNU_SOURCE 1
-#endif
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-/* just use the udev version */
-#include "../../../logging.h"
-
-#endif /* _VOLUME_ID_LOGGING_H_ */
index 4e6c095..f1db4a6 100644 (file)
@@ -24,7 +24,6 @@
 #include <ctype.h>
 
 #include "libvolume_id.h"
-#include "logging.h"
 #include "util.h"
 
 struct lsi_meta {
index 5346450..64de85a 100644 (file)
@@ -25,7 +25,6 @@
 
 #include "libvolume_id.h"
 #include "util.h"
-#include "logging.h"
 
 #define SECTOR_SHIFT                   9
 #define SECTOR_SIZE                    (1 << SECTOR_SHIFT)
index 4a1620e..47d84b0 100644 (file)
@@ -24,7 +24,6 @@
 #include <ctype.h>
 
 #include "libvolume_id.h"
-#include "logging.h"
 #include "util.h"
 
 struct lvm1_super_block {
index 957925f..75e9c3a 100644 (file)
@@ -24,7 +24,6 @@
 #include <ctype.h>
 
 #include "libvolume_id.h"
-#include "logging.h"
 #include "util.h"
 
 struct minix_super_block
index a463592..23c64fc 100644 (file)
@@ -24,7 +24,6 @@
 #include <ctype.h>
 
 #include "libvolume_id.h"
-#include "logging.h"
 #include "util.h"
 
 struct ntfs_super_block {
index 7e1b58b..10c1c71 100644 (file)
@@ -24,7 +24,6 @@
 #include <ctype.h>
 
 #include "libvolume_id.h"
-#include "logging.h"
 #include "util.h"
 
 struct nvidia_meta {
index c55b723..b376ead 100644 (file)
@@ -25,7 +25,6 @@
 #include <ctype.h>
 
 #include "libvolume_id.h"
-#include "logging.h"
 #include "util.h"
 
 
index f58dab2..2a2ce16 100644 (file)
@@ -24,7 +24,6 @@
 #include <ctype.h>
 
 #include "libvolume_id.h"
-#include "logging.h"
 #include "util.h"
 
 struct promise_meta {
index 5a9d71b..b5706f8 100644 (file)
@@ -25,7 +25,6 @@
 #include <ctype.h>
 
 #include "libvolume_id.h"
-#include "logging.h"
 #include "util.h"
 
 struct reiserfs_super_block {
index 171bb5a..8bb2a00 100644 (file)
@@ -24,7 +24,6 @@
 #include <ctype.h>
 
 #include "libvolume_id.h"
-#include "logging.h"
 #include "util.h"
 
 struct romfs_super {
index e9ce4e0..017b023 100644 (file)
@@ -24,7 +24,6 @@
 #include <ctype.h>
 
 #include "libvolume_id.h"
-#include "logging.h"
 #include "util.h"
 
 struct silicon_meta {
index 3eabce7..bdb1f16 100644 (file)
@@ -24,7 +24,6 @@
 #include <ctype.h>
 
 #include "libvolume_id.h"
-#include "logging.h"
 #include "util.h"
 
 #define SQUASHFS_MAGIC         0x73717368
index 41a32bb..52349c0 100644 (file)
@@ -24,7 +24,6 @@
 #include <ctype.h>
 
 #include "libvolume_id.h"
-#include "logging.h"
 #include "util.h"
 
 #define SYSV_NICINOD                   100
index 54e66b4..d7497ec 100644 (file)
@@ -24,7 +24,6 @@
 #include <ctype.h>
 
 #include "libvolume_id.h"
-#include "logging.h"
 #include "util.h"
 
 struct volume_descriptor {
index be6fa9e..d3960b1 100644 (file)
@@ -24,7 +24,6 @@
 #include <ctype.h>
 
 #include "libvolume_id.h"
-#include "logging.h"
 #include "util.h"
 
 struct ufs_super_block {
index b49dd6d..cf5392c 100644 (file)
@@ -26,7 +26,6 @@
 #include <sys/stat.h>
 
 #include "libvolume_id.h"
-#include "logging.h"
 #include "util.h"
 
 void volume_id_set_unicode16(char *str, size_t len, const uint8_t *buf, enum endian endianess, size_t count)
index 8cb1abd..1d1b53b 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * volume_id - reads filesystem label and uuid
  *
- * Copyright (C) 2005 Kay Sievers <kay.sievers@vrfy.org>
+ * Copyright (C) 2005-2006 Kay Sievers <kay.sievers@vrfy.org>
  *
  *     This program is free software; you can redistribute it and/or modify it
  *     under the terms of the GNU General Public License as published by the
 
 #include <endian.h>
 #include <byteswap.h>
+#include <syslog.h>
+
+#define err(format, arg...)    volume_id_log(LOG_ERR, __FILE__, __LINE__, format, ##arg)
+#define info(format, arg...)   volume_id_log(LOG_INFO, __FILE__, __LINE__, format, ##arg)
+#ifdef DEBUG
+#define dbg(format, arg...)    volume_id_log(LOG_DEBUG, __FILE__, __LINE__, format, ##arg)
+#else
+#define dbg(format, arg...)    do { } while (0)
+#endif
 
 /* size of superblock buffer, reiserfs block is at 64k */
 #define SB_BUFFER_SIZE                         0x11000
index e70cfa1..42cb098 100644 (file)
@@ -24,7 +24,6 @@
 #include <ctype.h>
 
 #include "libvolume_id.h"
-#include "logging.h"
 #include "util.h"
 
 struct via_meta {
index e5f0d90..073ad79 100644 (file)
 #include <sys/stat.h>
 
 #include "libvolume_id.h"
-#include "logging.h"
 #include "util.h"
 
+/* the user can overwrite this log function */
+static void default_log(int priority, const char *file, int line, const char *format, ...)
+{
+       return;
+}
+
+volume_id_log_fn volume_id_log = default_log;
 
 int volume_id_probe_raid(struct volume_id *id, uint64_t off, uint64_t size)
 {
index 406391b..d10cc37 100644 (file)
@@ -24,7 +24,6 @@
 #include <ctype.h>
 
 #include "libvolume_id.h"
-#include "logging.h"
 #include "util.h"
 
 #define VXFS_SUPER_MAGIC       0xa501FCF5
index 4b48ff1..3d870c4 100644 (file)
@@ -24,7 +24,6 @@
 #include <ctype.h>
 
 #include "libvolume_id.h"
-#include "logging.h"
 #include "util.h"
 
 struct xfs_super_block {
index 518962c..b086b37 100644 (file)
@@ -60,6 +60,18 @@ void log_message(int priority, const char *format, ...)
 }
 #endif
 
+static void vid_log(int priority, const char *file, int line, const char *format, ...)
+{
+#ifdef USE_LOG
+       va_list args;
+
+       va_start(args, format);
+       log_message(priority, format, args);
+       va_end(args);
+#endif
+       return;
+}
+
 static void set_str(char *to, const char *from, size_t count)
 {
        size_t i, j, len;
@@ -117,6 +129,9 @@ int main(int argc, char *argv[])
 
        logging_init("vol_id");
 
+       /* hook in our debug into libvolume_id */
+       volume_id_log = vid_log;
+
        for (i = 1 ; i < argc; i++) {
                char *arg = argv[i];