From b5e694267142042228a6cac99ecad6c4b4ef8759 Mon Sep 17 00:00:00 2001 From: Kay Sievers Date: Mon, 27 Mar 2006 17:59:22 +0200 Subject: [PATCH] volume_id: provide a custom debug function --- extras/volume_id/libvolume_id/Makefile | 2 +- extras/volume_id/libvolume_id/cramfs.c | 1 - extras/volume_id/libvolume_id/ext.c | 1 - extras/volume_id/libvolume_id/fat.c | 1 - extras/volume_id/libvolume_id/hfs.c | 1 - extras/volume_id/libvolume_id/highpoint.c | 1 - extras/volume_id/libvolume_id/hpfs.c | 1 - extras/volume_id/libvolume_id/iso9660.c | 1 - extras/volume_id/libvolume_id/isw_raid.c | 1 - extras/volume_id/libvolume_id/jfs.c | 1 - extras/volume_id/libvolume_id/libvolume_id.h | 6 +++++ extras/volume_id/libvolume_id/linux_raid.c | 1 - extras/volume_id/libvolume_id/linux_swap.c | 1 - extras/volume_id/libvolume_id/logging.h | 24 -------------------- extras/volume_id/libvolume_id/lsi_raid.c | 1 - extras/volume_id/libvolume_id/luks.c | 1 - extras/volume_id/libvolume_id/lvm.c | 1 - extras/volume_id/libvolume_id/minix.c | 1 - extras/volume_id/libvolume_id/ntfs.c | 1 - extras/volume_id/libvolume_id/nvidia_raid.c | 1 - extras/volume_id/libvolume_id/ocfs.c | 1 - extras/volume_id/libvolume_id/promise_raid.c | 1 - extras/volume_id/libvolume_id/reiserfs.c | 1 - extras/volume_id/libvolume_id/romfs.c | 1 - extras/volume_id/libvolume_id/silicon_raid.c | 1 - extras/volume_id/libvolume_id/squashfs.c | 1 - extras/volume_id/libvolume_id/sysv.c | 1 - extras/volume_id/libvolume_id/udf.c | 1 - extras/volume_id/libvolume_id/ufs.c | 1 - extras/volume_id/libvolume_id/util.c | 1 - extras/volume_id/libvolume_id/util.h | 11 ++++++++- extras/volume_id/libvolume_id/via_raid.c | 1 - extras/volume_id/libvolume_id/volume_id.c | 8 ++++++- extras/volume_id/libvolume_id/vxfs.c | 1 - extras/volume_id/libvolume_id/xfs.c | 1 - extras/volume_id/vol_id.c | 15 ++++++++++++ 36 files changed, 39 insertions(+), 57 deletions(-) delete mode 100644 extras/volume_id/libvolume_id/logging.h diff --git a/extras/volume_id/libvolume_id/Makefile b/extras/volume_id/libvolume_id/Makefile index 5d188a23d..6a12f0e67 100644 --- a/extras/volume_id/libvolume_id/Makefile +++ b/extras/volume_id/libvolume_id/Makefile @@ -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) diff --git a/extras/volume_id/libvolume_id/cramfs.c b/extras/volume_id/libvolume_id/cramfs.c index 5a7c29d35..beb34d5bc 100644 --- a/extras/volume_id/libvolume_id/cramfs.c +++ b/extras/volume_id/libvolume_id/cramfs.c @@ -24,7 +24,6 @@ #include #include "libvolume_id.h" -#include "logging.h" #include "util.h" struct cramfs_super { diff --git a/extras/volume_id/libvolume_id/ext.c b/extras/volume_id/libvolume_id/ext.c index d1c46471c..51c001121 100644 --- a/extras/volume_id/libvolume_id/ext.c +++ b/extras/volume_id/libvolume_id/ext.c @@ -25,7 +25,6 @@ #include "libvolume_id.h" #include "util.h" -#include "logging.h" struct ext2_super_block { uint32_t s_inodes_count; diff --git a/extras/volume_id/libvolume_id/fat.c b/extras/volume_id/libvolume_id/fat.c index 4b32263fd..4840a2a23 100644 --- a/extras/volume_id/libvolume_id/fat.c +++ b/extras/volume_id/libvolume_id/fat.c @@ -24,7 +24,6 @@ #include #include "libvolume_id.h" -#include "logging.h" #include "util.h" #define FAT12_MAX 0xff5 diff --git a/extras/volume_id/libvolume_id/hfs.c b/extras/volume_id/libvolume_id/hfs.c index 627166df9..a6e378dd2 100644 --- a/extras/volume_id/libvolume_id/hfs.c +++ b/extras/volume_id/libvolume_id/hfs.c @@ -24,7 +24,6 @@ #include #include "libvolume_id.h" -#include "logging.h" #include "util.h" struct hfs_finder_info{ diff --git a/extras/volume_id/libvolume_id/highpoint.c b/extras/volume_id/libvolume_id/highpoint.c index fa580b7b8..deba540ad 100644 --- a/extras/volume_id/libvolume_id/highpoint.c +++ b/extras/volume_id/libvolume_id/highpoint.c @@ -24,7 +24,6 @@ #include #include "libvolume_id.h" -#include "logging.h" #include "util.h" struct hpt37x_meta { diff --git a/extras/volume_id/libvolume_id/hpfs.c b/extras/volume_id/libvolume_id/hpfs.c index 41b8013bb..3e9589fcc 100644 --- a/extras/volume_id/libvolume_id/hpfs.c +++ b/extras/volume_id/libvolume_id/hpfs.c @@ -24,7 +24,6 @@ #include #include "libvolume_id.h" -#include "logging.h" #include "util.h" struct hpfs_super diff --git a/extras/volume_id/libvolume_id/iso9660.c b/extras/volume_id/libvolume_id/iso9660.c index 02575f8dc..7b78a7e99 100644 --- a/extras/volume_id/libvolume_id/iso9660.c +++ b/extras/volume_id/libvolume_id/iso9660.c @@ -24,7 +24,6 @@ #include #include "libvolume_id.h" -#include "logging.h" #include "util.h" #define ISO_SUPERBLOCK_OFFSET 0x8000 diff --git a/extras/volume_id/libvolume_id/isw_raid.c b/extras/volume_id/libvolume_id/isw_raid.c index cf7c62f81..6465a31bf 100644 --- a/extras/volume_id/libvolume_id/isw_raid.c +++ b/extras/volume_id/libvolume_id/isw_raid.c @@ -24,7 +24,6 @@ #include #include "libvolume_id.h" -#include "logging.h" #include "util.h" struct isw_meta { diff --git a/extras/volume_id/libvolume_id/jfs.c b/extras/volume_id/libvolume_id/jfs.c index f8d857878..b230fb258 100644 --- a/extras/volume_id/libvolume_id/jfs.c +++ b/extras/volume_id/libvolume_id/jfs.c @@ -24,7 +24,6 @@ #include #include "libvolume_id.h" -#include "logging.h" #include "util.h" struct jfs_super_block { diff --git a/extras/volume_id/libvolume_id/libvolume_id.h b/extras/volume_id/libvolume_id/libvolume_id.h index b08a650dc..7faf8d8af 100644 --- a/extras/volume_id/libvolume_id/libvolume_id.h +++ b/extras/volume_id/libvolume_id/libvolume_id.h @@ -18,6 +18,12 @@ #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 diff --git a/extras/volume_id/libvolume_id/linux_raid.c b/extras/volume_id/libvolume_id/linux_raid.c index ee5ed2875..85e8d8109 100644 --- a/extras/volume_id/libvolume_id/linux_raid.c +++ b/extras/volume_id/libvolume_id/linux_raid.c @@ -24,7 +24,6 @@ #include #include "libvolume_id.h" -#include "logging.h" #include "util.h" struct mdp_super_block { diff --git a/extras/volume_id/libvolume_id/linux_swap.c b/extras/volume_id/libvolume_id/linux_swap.c index c87ef63df..0193648c9 100644 --- a/extras/volume_id/libvolume_id/linux_swap.c +++ b/extras/volume_id/libvolume_id/linux_swap.c @@ -24,7 +24,6 @@ #include #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 index 4a8aa50d4..000000000 --- a/extras/volume_id/libvolume_id/logging.h +++ /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 -#endif - -/* just use the udev version */ -#include "../../../logging.h" - -#endif /* _VOLUME_ID_LOGGING_H_ */ diff --git a/extras/volume_id/libvolume_id/lsi_raid.c b/extras/volume_id/libvolume_id/lsi_raid.c index 4e6c095b8..f1db4a6e5 100644 --- a/extras/volume_id/libvolume_id/lsi_raid.c +++ b/extras/volume_id/libvolume_id/lsi_raid.c @@ -24,7 +24,6 @@ #include #include "libvolume_id.h" -#include "logging.h" #include "util.h" struct lsi_meta { diff --git a/extras/volume_id/libvolume_id/luks.c b/extras/volume_id/libvolume_id/luks.c index 5346450ec..64de85ac2 100644 --- a/extras/volume_id/libvolume_id/luks.c +++ b/extras/volume_id/libvolume_id/luks.c @@ -25,7 +25,6 @@ #include "libvolume_id.h" #include "util.h" -#include "logging.h" #define SECTOR_SHIFT 9 #define SECTOR_SIZE (1 << SECTOR_SHIFT) diff --git a/extras/volume_id/libvolume_id/lvm.c b/extras/volume_id/libvolume_id/lvm.c index 4a1620e8a..47d84b096 100644 --- a/extras/volume_id/libvolume_id/lvm.c +++ b/extras/volume_id/libvolume_id/lvm.c @@ -24,7 +24,6 @@ #include #include "libvolume_id.h" -#include "logging.h" #include "util.h" struct lvm1_super_block { diff --git a/extras/volume_id/libvolume_id/minix.c b/extras/volume_id/libvolume_id/minix.c index 957925fe1..75e9c3acb 100644 --- a/extras/volume_id/libvolume_id/minix.c +++ b/extras/volume_id/libvolume_id/minix.c @@ -24,7 +24,6 @@ #include #include "libvolume_id.h" -#include "logging.h" #include "util.h" struct minix_super_block diff --git a/extras/volume_id/libvolume_id/ntfs.c b/extras/volume_id/libvolume_id/ntfs.c index a46359268..23c64fc30 100644 --- a/extras/volume_id/libvolume_id/ntfs.c +++ b/extras/volume_id/libvolume_id/ntfs.c @@ -24,7 +24,6 @@ #include #include "libvolume_id.h" -#include "logging.h" #include "util.h" struct ntfs_super_block { diff --git a/extras/volume_id/libvolume_id/nvidia_raid.c b/extras/volume_id/libvolume_id/nvidia_raid.c index 7e1b58ba5..10c1c714f 100644 --- a/extras/volume_id/libvolume_id/nvidia_raid.c +++ b/extras/volume_id/libvolume_id/nvidia_raid.c @@ -24,7 +24,6 @@ #include #include "libvolume_id.h" -#include "logging.h" #include "util.h" struct nvidia_meta { diff --git a/extras/volume_id/libvolume_id/ocfs.c b/extras/volume_id/libvolume_id/ocfs.c index c55b7234f..b376ead83 100644 --- a/extras/volume_id/libvolume_id/ocfs.c +++ b/extras/volume_id/libvolume_id/ocfs.c @@ -25,7 +25,6 @@ #include #include "libvolume_id.h" -#include "logging.h" #include "util.h" diff --git a/extras/volume_id/libvolume_id/promise_raid.c b/extras/volume_id/libvolume_id/promise_raid.c index f58dab28e..2a2ce1689 100644 --- a/extras/volume_id/libvolume_id/promise_raid.c +++ b/extras/volume_id/libvolume_id/promise_raid.c @@ -24,7 +24,6 @@ #include #include "libvolume_id.h" -#include "logging.h" #include "util.h" struct promise_meta { diff --git a/extras/volume_id/libvolume_id/reiserfs.c b/extras/volume_id/libvolume_id/reiserfs.c index 5a9d71b53..b5706f86e 100644 --- a/extras/volume_id/libvolume_id/reiserfs.c +++ b/extras/volume_id/libvolume_id/reiserfs.c @@ -25,7 +25,6 @@ #include #include "libvolume_id.h" -#include "logging.h" #include "util.h" struct reiserfs_super_block { diff --git a/extras/volume_id/libvolume_id/romfs.c b/extras/volume_id/libvolume_id/romfs.c index 171bb5a2a..8bb2a0018 100644 --- a/extras/volume_id/libvolume_id/romfs.c +++ b/extras/volume_id/libvolume_id/romfs.c @@ -24,7 +24,6 @@ #include #include "libvolume_id.h" -#include "logging.h" #include "util.h" struct romfs_super { diff --git a/extras/volume_id/libvolume_id/silicon_raid.c b/extras/volume_id/libvolume_id/silicon_raid.c index e9ce4e0b7..017b023e2 100644 --- a/extras/volume_id/libvolume_id/silicon_raid.c +++ b/extras/volume_id/libvolume_id/silicon_raid.c @@ -24,7 +24,6 @@ #include #include "libvolume_id.h" -#include "logging.h" #include "util.h" struct silicon_meta { diff --git a/extras/volume_id/libvolume_id/squashfs.c b/extras/volume_id/libvolume_id/squashfs.c index 3eabce71a..bdb1f1662 100644 --- a/extras/volume_id/libvolume_id/squashfs.c +++ b/extras/volume_id/libvolume_id/squashfs.c @@ -24,7 +24,6 @@ #include #include "libvolume_id.h" -#include "logging.h" #include "util.h" #define SQUASHFS_MAGIC 0x73717368 diff --git a/extras/volume_id/libvolume_id/sysv.c b/extras/volume_id/libvolume_id/sysv.c index 41a32bbaa..52349c062 100644 --- a/extras/volume_id/libvolume_id/sysv.c +++ b/extras/volume_id/libvolume_id/sysv.c @@ -24,7 +24,6 @@ #include #include "libvolume_id.h" -#include "logging.h" #include "util.h" #define SYSV_NICINOD 100 diff --git a/extras/volume_id/libvolume_id/udf.c b/extras/volume_id/libvolume_id/udf.c index 54e66b4e8..d7497ec51 100644 --- a/extras/volume_id/libvolume_id/udf.c +++ b/extras/volume_id/libvolume_id/udf.c @@ -24,7 +24,6 @@ #include #include "libvolume_id.h" -#include "logging.h" #include "util.h" struct volume_descriptor { diff --git a/extras/volume_id/libvolume_id/ufs.c b/extras/volume_id/libvolume_id/ufs.c index be6fa9e9e..d3960b1be 100644 --- a/extras/volume_id/libvolume_id/ufs.c +++ b/extras/volume_id/libvolume_id/ufs.c @@ -24,7 +24,6 @@ #include #include "libvolume_id.h" -#include "logging.h" #include "util.h" struct ufs_super_block { diff --git a/extras/volume_id/libvolume_id/util.c b/extras/volume_id/libvolume_id/util.c index b49dd6dd1..cf5392cf9 100644 --- a/extras/volume_id/libvolume_id/util.c +++ b/extras/volume_id/libvolume_id/util.c @@ -26,7 +26,6 @@ #include #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) diff --git a/extras/volume_id/libvolume_id/util.h b/extras/volume_id/libvolume_id/util.h index 8cb1abd36..1d1b53bb5 100644 --- a/extras/volume_id/libvolume_id/util.h +++ b/extras/volume_id/libvolume_id/util.h @@ -1,7 +1,7 @@ /* * volume_id - reads filesystem label and uuid * - * Copyright (C) 2005 Kay Sievers + * Copyright (C) 2005-2006 Kay Sievers * * 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 @@ -21,6 +21,15 @@ #include #include +#include + +#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 diff --git a/extras/volume_id/libvolume_id/via_raid.c b/extras/volume_id/libvolume_id/via_raid.c index e70cfa124..42cb09806 100644 --- a/extras/volume_id/libvolume_id/via_raid.c +++ b/extras/volume_id/libvolume_id/via_raid.c @@ -24,7 +24,6 @@ #include #include "libvolume_id.h" -#include "logging.h" #include "util.h" struct via_meta { diff --git a/extras/volume_id/libvolume_id/volume_id.c b/extras/volume_id/libvolume_id/volume_id.c index e5f0d90ee..073ad79c7 100644 --- a/extras/volume_id/libvolume_id/volume_id.c +++ b/extras/volume_id/libvolume_id/volume_id.c @@ -27,9 +27,15 @@ #include #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) { diff --git a/extras/volume_id/libvolume_id/vxfs.c b/extras/volume_id/libvolume_id/vxfs.c index 406391bf0..d10cc3776 100644 --- a/extras/volume_id/libvolume_id/vxfs.c +++ b/extras/volume_id/libvolume_id/vxfs.c @@ -24,7 +24,6 @@ #include #include "libvolume_id.h" -#include "logging.h" #include "util.h" #define VXFS_SUPER_MAGIC 0xa501FCF5 diff --git a/extras/volume_id/libvolume_id/xfs.c b/extras/volume_id/libvolume_id/xfs.c index 4b48ff125..3d870c41e 100644 --- a/extras/volume_id/libvolume_id/xfs.c +++ b/extras/volume_id/libvolume_id/xfs.c @@ -24,7 +24,6 @@ #include #include "libvolume_id.h" -#include "logging.h" #include "util.h" struct xfs_super_block { diff --git a/extras/volume_id/vol_id.c b/extras/volume_id/vol_id.c index 518962c10..b086b3710 100644 --- a/extras/volume_id/vol_id.c +++ b/extras/volume_id/vol_id.c @@ -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]; -- 2.30.2