--- util-linux/blkid.c +++ util-linux/blkid.c @@ -28,24 +28,46 @@ //kbuild:lib-$(CONFIG_BLKID) += blkid.o //usage:#define blkid_trivial_usage -//usage: "[BLOCKDEV]..." +//usage: "[-O offset] [BLOCKDEV]..." //usage:#define blkid_full_usage "\n\n" -//usage: "Print UUIDs of all filesystems" +//usage: "Print UUIDs of given/all filesystems" +//usage: "\n -O Probe at the given offset" #include "libbb.h" #include "volume_id.h" int blkid_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; -int blkid_main(int argc UNUSED_PARAM, char **argv) +int blkid_main(int argc, char **argv) { + unsigned long long offset = 0; + unsigned opt; + char *opt_O; + enum { + OPT_O = (1 << 0) + }; + int part_found = 0; int scan_devices = 1; - while (*++argv) { + opt_complementary = "O--O"; // -O is allowed to occur at most once + opt = getopt32(argv, "O:", &opt_O); + argc -= optind; + argv += optind; + + if (opt & OPT_O) { + offset = xatoull(opt_O); + if (argc == 0) { + bb_error_msg_and_die("-O requires at least one BLOCKDEV to be provided"); + return 1; + } + } + + while (*argv) { /* Note: bogus device names don't cause any error messages */ - if (add_to_uuid_cache(*argv)) + if (add_to_uuid_cache(*argv, (uint64_t)offset)) part_found = 1; // at least data for one partition found scan_devices = 0; + ++argv; } // show all partitions only, if blkid called without arguments or if uuidCache not empty --- include/volume_id.h +++ include/volume_id.h @@ -28,4 +28,4 @@ * *fsname is replaced if device with such UUID or LABEL is found */ int resolve_mount_spec(char **fsname); -int add_to_uuid_cache(const char *device); +int add_to_uuid_cache(const char *device, uint64_t off); --- util-linux/volume_id/volume_id_internal.h +++ util-linux/volume_id/volume_id_internal.h @@ -86,7 +86,7 @@ }; struct volume_id* FAST_FUNC volume_id_open_node(int fd); -int FAST_FUNC volume_id_probe_all(struct volume_id *id, /*uint64_t off,*/ uint64_t size); +int FAST_FUNC volume_id_probe_all(struct volume_id *id, uint64_t off, uint64_t size); void FAST_FUNC free_volume_id(struct volume_id *id); /* util.h */ @@ -152,7 +152,7 @@ //int FAST_FUNC volume_id_probe_intel_software_raid(struct volume_id *id /*,uint64_t off*/, uint64_t size); -int FAST_FUNC volume_id_probe_linux_raid(struct volume_id *id /*,uint64_t off*/, uint64_t size); +int FAST_FUNC volume_id_probe_linux_raid(struct volume_id *id, uint64_t off, uint64_t size); //int FAST_FUNC volume_id_probe_lsi_mega_raid(struct volume_id *id /*,uint64_t off*/, uint64_t size); @@ -169,27 +169,27 @@ /* FS */ -int FAST_FUNC volume_id_probe_bcache(struct volume_id *id /*,uint64_t off*/); +int FAST_FUNC volume_id_probe_bcache(struct volume_id *id, uint64_t off); -int FAST_FUNC volume_id_probe_btrfs(struct volume_id *id /*,uint64_t off*/); +int FAST_FUNC volume_id_probe_btrfs(struct volume_id *id, uint64_t off); -int FAST_FUNC volume_id_probe_cramfs(struct volume_id *id /*,uint64_t off*/); +int FAST_FUNC volume_id_probe_cramfs(struct volume_id *id, uint64_t off); -int FAST_FUNC volume_id_probe_ext(struct volume_id *id /*,uint64_t off*/); +int FAST_FUNC volume_id_probe_ext(struct volume_id *id, uint64_t off); -int FAST_FUNC volume_id_probe_vfat(struct volume_id *id /*,uint64_t off*/); +int FAST_FUNC volume_id_probe_vfat(struct volume_id *id, uint64_t off); -int FAST_FUNC volume_id_probe_hfs_hfsplus(struct volume_id *id /*,uint64_t off*/); +int FAST_FUNC volume_id_probe_hfs_hfsplus(struct volume_id *id, uint64_t off); //int FAST_FUNC volume_id_probe_hpfs(struct volume_id *id /*,uint64_t off*/); -int FAST_FUNC volume_id_probe_iso9660(struct volume_id *id /*,uint64_t off*/); +int FAST_FUNC volume_id_probe_iso9660(struct volume_id *id, uint64_t off); -int FAST_FUNC volume_id_probe_jfs(struct volume_id *id /*,uint64_t off*/); +int FAST_FUNC volume_id_probe_jfs(struct volume_id *id, uint64_t off); -int FAST_FUNC volume_id_probe_linux_swap(struct volume_id *id /*,uint64_t off*/); +int FAST_FUNC volume_id_probe_linux_swap(struct volume_id *id, uint64_t off); -int FAST_FUNC volume_id_probe_luks(struct volume_id *id /*,uint64_t off*/); +int FAST_FUNC volume_id_probe_luks(struct volume_id *id, uint64_t off); //int FAST_FUNC volume_id_probe_mac_partition_map(struct volume_id *id /*,uint64_t off*/); @@ -197,30 +197,30 @@ //int FAST_FUNC volume_id_probe_msdos_part_table(struct volume_id *id /*,uint64_t off*/); -int FAST_FUNC volume_id_probe_f2fs(struct volume_id *id /*,uint64_t off*/); +int FAST_FUNC volume_id_probe_f2fs(struct volume_id *id, uint64_t off); -int FAST_FUNC volume_id_probe_nilfs(struct volume_id *id /*,uint64_t off*/); +int FAST_FUNC volume_id_probe_nilfs(struct volume_id *id, uint64_t off); -int FAST_FUNC volume_id_probe_ntfs(struct volume_id *id /*,uint64_t off*/); +int FAST_FUNC volume_id_probe_ntfs(struct volume_id *id, uint64_t off); -int FAST_FUNC volume_id_probe_exfat(struct volume_id *id /*,uint64_t off*/); +int FAST_FUNC volume_id_probe_exfat(struct volume_id *id, uint64_t off); -int FAST_FUNC volume_id_probe_ocfs2(struct volume_id *id /*,uint64_t off*/); +int FAST_FUNC volume_id_probe_ocfs2(struct volume_id *id, uint64_t off); -int FAST_FUNC volume_id_probe_reiserfs(struct volume_id *id /*,uint64_t off*/); +int FAST_FUNC volume_id_probe_reiserfs(struct volume_id *id, uint64_t off); -int FAST_FUNC volume_id_probe_romfs(struct volume_id *id /*,uint64_t off*/); +int FAST_FUNC volume_id_probe_romfs(struct volume_id *id, uint64_t off); -int FAST_FUNC volume_id_probe_squashfs(struct volume_id *id /*,uint64_t off*/); +int FAST_FUNC volume_id_probe_squashfs(struct volume_id *id, uint64_t off); -int FAST_FUNC volume_id_probe_sysv(struct volume_id *id /*,uint64_t off*/); +int FAST_FUNC volume_id_probe_sysv(struct volume_id *id, uint64_t off); -int FAST_FUNC volume_id_probe_udf(struct volume_id *id /*,uint64_t off*/); +int FAST_FUNC volume_id_probe_udf(struct volume_id *id, uint64_t off); //int FAST_FUNC volume_id_probe_ufs(struct volume_id *id /*,uint64_t off*/); -int FAST_FUNC volume_id_probe_xfs(struct volume_id *id /*,uint64_t off*/); +int FAST_FUNC volume_id_probe_xfs(struct volume_id *id, uint64_t off); -int FAST_FUNC volume_id_probe_ubifs(struct volume_id *id /*,uint64_t off*/); +int FAST_FUNC volume_id_probe_ubifs(struct volume_id *id, uint64_t off); POP_SAVED_FUNCTION_VISIBILITY --- util-linux/volume_id/volume_id.c +++ util-linux/volume_id/volume_id.c @@ -47,8 +47,8 @@ #define ENABLE_FEATURE_VOLUMEID_UFS 0 -typedef int FAST_FUNC (*raid_probe_fptr)(struct volume_id *id, /*uint64_t off,*/ uint64_t size); -typedef int FAST_FUNC (*probe_fptr)(struct volume_id *id /*, uint64_t off*/); +typedef int FAST_FUNC (*raid_probe_fptr)(struct volume_id *id, uint64_t off, uint64_t size); +typedef int FAST_FUNC (*probe_fptr)(struct volume_id *id, uint64_t off); static const raid_probe_fptr raid1[] = { #if ENABLE_FEATURE_VOLUMEID_LINUXRAID @@ -173,14 +173,14 @@ #endif }; -int FAST_FUNC volume_id_probe_all(struct volume_id *id, /*uint64_t off,*/ uint64_t size) +int FAST_FUNC volume_id_probe_all(struct volume_id *id, uint64_t off, uint64_t size) { unsigned i; /* probe for raid first, cause fs probes may be successful on raid members */ if (size) { for (i = 0; i < ARRAY_SIZE(raid1); i++) { - if (raid1[i](id, /*off,*/ size) == 0) + if (raid1[i](id, off, size) == 0) goto ret; if (id->error) goto ret; @@ -188,7 +188,7 @@ } for (i = 0; i < ARRAY_SIZE(raid2); i++) { - if (raid2[i](id /*,off*/) == 0) + if (raid2[i](id, off) == 0) goto ret; if (id->error) goto ret; @@ -196,7 +196,7 @@ /* signature in the first block, only small buffer needed */ for (i = 0; i < ARRAY_SIZE(fs1); i++) { - if (fs1[i](id /*,off*/) == 0) + if (fs1[i](id, off) == 0) goto ret; if (id->error) goto ret; @@ -206,7 +206,7 @@ volume_id_get_buffer(id, 0, SB_BUFFER_SIZE); for (i = 0; i < ARRAY_SIZE(fs2); i++) { - if (fs2[i](id /*,off*/) == 0) + if (fs2[i](id, off) == 0) goto ret; if (id->error) goto ret; --- util-linux/volume_id/get_devname.c +++ util-linux/volume_id/get_devname.c @@ -25,13 +25,14 @@ char *label; char *uc_uuid; /* prefix makes it easier to grep for */ IF_FEATURE_BLKID_TYPE(const char *type;) + uint64_t off; } *uuidCache; #if !ENABLE_FEATURE_BLKID_TYPE -#define get_label_uuid(fd, label, uuid, type) \ - get_label_uuid(fd, label, uuid) -#define uuidcache_addentry(device, label, uuid, type) \ - uuidcache_addentry(device, label, uuid) +#define get_label_uuid(fd, label, uuid, type, off) \ + get_label_uuid(fd, label, uuid, off) +#define uuidcache_addentry(device, label, uuid, type, off) \ + uuidcache_addentry(device, label, uuid, off) #endif /* Returns !0 on error. @@ -39,7 +40,7 @@ * (and they can't be NULL, although they can be ""). * NB: closes fd. */ static int -get_label_uuid(int fd, char **label, char **uuid, const char **type) +get_label_uuid(int fd, char **label, char **uuid, const char **type, uint64_t off) { int rv = 1; uint64_t size; @@ -51,7 +52,7 @@ if (ioctl(/*vid->*/fd, BLKGETSIZE64, &size) != 0) size = 0; - if (volume_id_probe_all(vid, /*0,*/ size) != 0) + if (volume_id_probe_all(vid, off, size) != 0) goto ret; if (vid->label[0] != '\0' || vid->uuid[0] != '\0' @@ -76,7 +77,7 @@ /* NB: we take ownership of (malloc'ed) label and uuid */ static void -uuidcache_addentry(char *device, /*int major, int minor,*/ char *label, char *uuid, const char *type) +uuidcache_addentry(char *device, /*int major, int minor,*/ char *label, char *uuid, const char *type, uint64_t off) { struct uuidCache_s *last; @@ -95,6 +96,7 @@ last->label = label; last->uc_uuid = uuid; IF_FEATURE_BLKID_TYPE(last->type = type;) + last->off = off; } /* If get_label_uuid() on device_name returns success, @@ -122,7 +124,7 @@ if (major(statbuf->st_rdev) == 2) return TRUE; - add_to_uuid_cache(device); + add_to_uuid_cache(device, (uint64_t)0); return TRUE; } @@ -234,7 +236,10 @@ uc = uuidcache_init(scan_devices); while (uc) { - printf("%s:", uc->device); + if (uc->off != 0) + printf("%s@%llu:", uc->device, uc->off); + else + printf("%s:", uc->device); if (uc->label[0]) printf(" LABEL=\"%s\"", uc->label); if (uc->uc_uuid[0]) @@ -248,7 +253,7 @@ } } -int add_to_uuid_cache(const char *device) +int add_to_uuid_cache(const char *device, uint64_t off) { char *uuid = uuid; /* for compiler */ char *label = label; @@ -262,9 +267,9 @@ return 0; /* get_label_uuid() closes fd in all cases (success & failure) */ - if (get_label_uuid(fd, &label, &uuid, &type) == 0) { + if (get_label_uuid(fd, &label, &uuid, &type, off) == 0) { /* uuidcache_addentry() takes ownership of all four params */ - uuidcache_addentry(xstrdup(device), /*ma, mi,*/ label, uuid, type); + uuidcache_addentry(xstrdup(device), /*ma, mi,*/ label, uuid, type, off); return 1; } return 0; --- util-linux/volume_id/bcache.c +++ util-linux/volume_id/bcache.c @@ -87,11 +87,11 @@ /* magic string offset within super block */ #define BCACHE_SB_MAGIC_OFF offsetof (struct bcache_super_block, magic) -int FAST_FUNC volume_id_probe_bcache(struct volume_id *id /*,uint64_t off*/) +int FAST_FUNC volume_id_probe_bcache(struct volume_id *id, uint64_t off) { struct bcache_super_block *sb; - sb = volume_id_get_buffer(id, BCACHE_SB_OFF, sizeof(*sb)); + sb = volume_id_get_buffer(id, off + BCACHE_SB_OFF, sizeof(*sb)); if (sb == NULL) return -1; --- util-linux/volume_id/btrfs.c +++ util-linux/volume_id/btrfs.c @@ -85,20 +85,20 @@ // ... } PACKED; -int FAST_FUNC volume_id_probe_btrfs(struct volume_id *id /*,uint64_t off*/) +int FAST_FUNC volume_id_probe_btrfs(struct volume_id *id, uint64_t _off) { // btrfs has superblocks at 64K, 64M and 256G // minimum btrfs size is 256M // so we never step out the device if we analyze // the first and the second superblocks struct btrfs_super_block *sb; - unsigned off = 64; + uint64_t off = 64; while (off < 64*1024*1024) { off *= 1024; - dbg("btrfs: probing at offset 0x%x", off); + dbg("btrfs: probing at offset 0x%x", _off + off); - sb = volume_id_get_buffer(id, off, sizeof(*sb)); + sb = volume_id_get_buffer(id, _off + off, sizeof(*sb)); if (sb == NULL) return -1; --- util-linux/volume_id/cramfs.c +++ util-linux/volume_id/cramfs.c @@ -42,9 +42,8 @@ uint8_t name[16]; } PACKED; -int FAST_FUNC volume_id_probe_cramfs(struct volume_id *id /*,uint64_t off*/) +int FAST_FUNC volume_id_probe_cramfs(struct volume_id *id, uint64_t off) { -#define off ((uint64_t)0) struct cramfs_super *cs; dbg("probing at offset 0x%llx", (unsigned long long) off); --- util-linux/volume_id/exfat.c +++ util-linux/volume_id/exfat.c @@ -73,7 +73,7 @@ } PACKED type; } PACKED; -int FAST_FUNC volume_id_probe_exfat(struct volume_id *id /*,uint64_t off*/) +int FAST_FUNC volume_id_probe_exfat(struct volume_id *id, uint64_t off) { struct exfat_super_block *sb; struct exfat_dir_entry *de; @@ -84,8 +84,8 @@ unsigned need_lbl_guid; // Primary super block - dbg("exFAT: probing at offset 0x%x", EXFAT_SB_OFFSET); - sb = volume_id_get_buffer(id, EXFAT_SB_OFFSET, sizeof(*sb)); + dbg("exFAT: probing at offset 0x%x", off + EXFAT_SB_OFFSET); + sb = volume_id_get_buffer(id, off + EXFAT_SB_OFFSET, sizeof(*sb)); if (!sb) return -1; @@ -96,7 +96,7 @@ sector_sz = 1 << sb->bytes_per_sector; cluster_sz = sector_sz << sb->sectors_per_cluster; // There are no clusters 0 and 1, so the first cluster is 2. - root_dir_off = (uint64_t)EXFAT_SB_OFFSET + + root_dir_off = off + EXFAT_SB_OFFSET + // Hmm... should we cast sector_sz/cluster_sz to uint64_t? (le32_to_cpu(sb->cluster_heap_offset)) * sector_sz + (le32_to_cpu(sb->root_dir) - 2) * cluster_sz; --- util-linux/volume_id/ext.c +++ util-linux/volume_id/ext.c @@ -30,9 +30,8 @@ #define EXT_SUPERBLOCK_OFFSET 0x400 -int FAST_FUNC volume_id_probe_ext(struct volume_id *id /*,uint64_t off*/) +int FAST_FUNC volume_id_probe_ext(struct volume_id *id, uint64_t off) { -#define off ((uint64_t)0) struct ext2_super_block *es; dbg("ext: probing at offset 0x%llx", (unsigned long long) off); --- util-linux/volume_id/f2fs.c +++ util-linux/volume_id/f2fs.c @@ -64,13 +64,13 @@ } PACKED; -int FAST_FUNC volume_id_probe_f2fs(struct volume_id *id /*,uint64_t off*/) +int FAST_FUNC volume_id_probe_f2fs(struct volume_id *id, uint64_t off) { struct f2fs_super_block *sb; // Go for primary super block (ignore second sb) - dbg("f2fs: probing at offset 0x%x", F2FS_SB1_OFFSET); - sb = volume_id_get_buffer(id, F2FS_SB1_OFFSET, sizeof(*sb)); + dbg("f2fs: probing at offset 0x%x", off + F2FS_SB1_OFFSET); + sb = volume_id_get_buffer(id, off + F2FS_SB1_OFFSET, sizeof(*sb)); if (!sb) return -1; --- util-linux/volume_id/fat.c +++ util-linux/volume_id/fat.c @@ -126,9 +126,8 @@ return NULL; } -int FAST_FUNC volume_id_probe_vfat(struct volume_id *id /*,uint64_t fat_partition_off*/) +int FAST_FUNC volume_id_probe_vfat(struct volume_id *id, uint64_t fat_partition_off) { -#define fat_partition_off ((uint64_t)0) struct vfat_super_block *vs; struct vfat_dir_entry *dir; uint16_t sector_size_bytes; --- util-linux/volume_id/hfs.c +++ util-linux/volume_id/hfs.c @@ -159,9 +159,8 @@ volume_id_set_uuid(id, uuid, UUID_DCE); } -int FAST_FUNC volume_id_probe_hfs_hfsplus(struct volume_id *id /*,uint64_t off*/) +int FAST_FUNC volume_id_probe_hfs_hfsplus(struct volume_id *id, uint64_t off) { - uint64_t off = 0; unsigned blocksize; unsigned cat_block; unsigned ext_block_start; --- util-linux/volume_id/iso9660.c +++ util-linux/volume_id/iso9660.c @@ -54,9 +54,8 @@ uint8_t version; } PACKED; -int FAST_FUNC volume_id_probe_iso9660(struct volume_id *id /*,uint64_t off*/) +int FAST_FUNC volume_id_probe_iso9660(struct volume_id *id, uint64_t off) { -#define off ((uint64_t)0) uint8_t *buf; struct iso_volume_descriptor *is; struct high_sierra_volume_descriptor *hs; --- util-linux/volume_id/jfs.c +++ util-linux/volume_id/jfs.c @@ -42,9 +42,8 @@ #define JFS_SUPERBLOCK_OFFSET 0x8000 -int FAST_FUNC volume_id_probe_jfs(struct volume_id *id /*,uint64_t off*/) +int FAST_FUNC volume_id_probe_jfs(struct volume_id *id, uint64_t off) { -#define off ((uint64_t)0) struct jfs_super_block *js; dbg("probing at offset 0x%llx", (unsigned long long) off); --- util-linux/volume_id/linux_raid.c +++ util-linux/volume_id/linux_raid.c @@ -49,10 +49,9 @@ #define MD_RESERVED_BYTES 0x10000 #define MD_MAGIC 0xa92b4efc -int FAST_FUNC volume_id_probe_linux_raid(struct volume_id *id /*,uint64_t off*/, uint64_t size) +int FAST_FUNC volume_id_probe_linux_raid(struct volume_id *id, uint64_t off, uint64_t size) { typedef uint32_t aliased_uint32_t FIX_ALIASING; -#define off ((uint64_t)0) uint64_t sboff; uint8_t uuid[16]; struct mdp_super_block *mdp; --- util-linux/volume_id/linux_swap.c +++ util-linux/volume_id/linux_swap.c @@ -38,9 +38,8 @@ #define LARGEST_PAGESIZE 0x4000 -int FAST_FUNC volume_id_probe_linux_swap(struct volume_id *id /*,uint64_t off*/) +int FAST_FUNC volume_id_probe_linux_swap(struct volume_id *id, uint64_t off) { -#define off ((uint64_t)0) struct swap_header_v1_2 *sw; const uint8_t *buf; unsigned page; --- util-linux/volume_id/luks.c +++ util-linux/volume_id/luks.c @@ -87,9 +87,8 @@ 1 : -1]; }; -int FAST_FUNC volume_id_probe_luks(struct volume_id *id /*,uint64_t off*/) +int FAST_FUNC volume_id_probe_luks(struct volume_id *id, uint64_t off) { -#define off ((uint64_t)0) struct luks_phdr *header; header = volume_id_get_buffer(id, off, sizeof(*header)); --- util-linux/volume_id/nilfs.c +++ util-linux/volume_id/nilfs.c @@ -85,14 +85,14 @@ /* 0xF8 */ // ... } PACKED; -int FAST_FUNC volume_id_probe_nilfs(struct volume_id *id /*,uint64_t off*/) +int FAST_FUNC volume_id_probe_nilfs(struct volume_id *id, uint64_t off) { struct nilfs2_super_block *sb; // Primary super block - dbg("nilfs: probing at offset 0x%x", NILFS_SB1_OFFSET); + dbg("nilfs: probing at offset 0x%x", off + NILFS_SB1_OFFSET); - sb = volume_id_get_buffer(id, NILFS_SB1_OFFSET, sizeof(*sb)); + sb = volume_id_get_buffer(id, off + NILFS_SB1_OFFSET, sizeof(*sb)); if (sb == NULL) return -1; --- util-linux/volume_id/ntfs.c +++ util-linux/volume_id/ntfs.c @@ -91,9 +91,8 @@ #define MFT_RECORD_ATTR_OBJECT_ID 0x40 #define MFT_RECORD_ATTR_END 0xffffffffu -int FAST_FUNC volume_id_probe_ntfs(struct volume_id *id /*,uint64_t off*/) +int FAST_FUNC volume_id_probe_ntfs(struct volume_id *id, uint64_t off) { -#define off ((uint64_t)0) unsigned sector_size; unsigned cluster_size; uint64_t mft_cluster; --- util-linux/volume_id/ocfs2.c +++ util-linux/volume_id/ocfs2.c @@ -87,9 +87,8 @@ uint8_t s_uuid[OCFS2_VOL_UUID_LEN]; /* 128-bit uuid */ } PACKED; -int FAST_FUNC volume_id_probe_ocfs2(struct volume_id *id /*,uint64_t off*/) +int FAST_FUNC volume_id_probe_ocfs2(struct volume_id *id, uint64_t off) { -#define off ((uint64_t)0) struct ocfs2_super_block *os; dbg("probing at offset 0x%llx", (unsigned long long) off); --- util-linux/volume_id/reiserfs.c +++ util-linux/volume_id/reiserfs.c @@ -55,9 +55,8 @@ #define REISERFS1_SUPERBLOCK_OFFSET 0x2000 #define REISERFS_SUPERBLOCK_OFFSET 0x10000 -int FAST_FUNC volume_id_probe_reiserfs(struct volume_id *id /*,uint64_t off*/) +int FAST_FUNC volume_id_probe_reiserfs(struct volume_id *id, uint64_t off) { -#define off ((uint64_t)0) struct reiserfs_super_block *rs; struct reiser4_super_block *rs4; --- util-linux/volume_id/romfs.c +++ util-linux/volume_id/romfs.c @@ -34,9 +34,8 @@ uint8_t name[]; } PACKED; -int FAST_FUNC volume_id_probe_romfs(struct volume_id *id /*,uint64_t off*/) +int FAST_FUNC volume_id_probe_romfs(struct volume_id *id, uint64_t off) { -#define off ((uint64_t)0) struct romfs_super *rfs; dbg("probing at offset 0x%llx", (unsigned long long) off); --- util-linux/volume_id/squashfs.c +++ util-linux/volume_id/squashfs.c @@ -29,9 +29,8 @@ */ } PACKED; -int FAST_FUNC volume_id_probe_squashfs(struct volume_id *id /*,uint64_t off*/) +int FAST_FUNC volume_id_probe_squashfs(struct volume_id *id, uint64_t off) { -#define off ((uint64_t)0) struct squashfs_superblock *sb; dbg("SquashFS: probing at offset 0x%llx", (unsigned long long) off); --- util-linux/volume_id/sysv.c +++ util-linux/volume_id/sysv.c @@ -89,9 +89,8 @@ #define XENIX_MAGIC 0x2b5544 #define SYSV_MAX_BLOCKSIZE 0x800 -int FAST_FUNC volume_id_probe_sysv(struct volume_id *id /*,uint64_t off*/) +int FAST_FUNC volume_id_probe_sysv(struct volume_id *id, uint64_t off) { -#define off ((uint64_t)0) struct sysv_super *vs; struct xenix_super *xs; unsigned boff; --- util-linux/volume_id/ubifs.c +++ util-linux/volume_id/ubifs.c @@ -103,9 +103,8 @@ */ } PACKED; -int FAST_FUNC volume_id_probe_ubifs(struct volume_id *id /*,uint64_t off*/) +int FAST_FUNC volume_id_probe_ubifs(struct volume_id *id, uint64_t off) { -#define off ((uint64_t)0) struct ubifs_sb_node *sb; dbg("UBIFS: probing at offset 0x%llx", (unsigned long long) off); --- util-linux/volume_id/udf.c +++ util-linux/volume_id/udf.c @@ -62,9 +62,8 @@ #define UDF_VSD_OFFSET 0x8000 -int FAST_FUNC volume_id_probe_udf(struct volume_id *id /*,uint64_t off*/) +int FAST_FUNC volume_id_probe_udf(struct volume_id *id, uint64_t off) { -#define off ((uint64_t)0) struct volume_descriptor *vd; struct volume_structure_descriptor *vsd; unsigned bs; --- util-linux/volume_id/xfs.c +++ util-linux/volume_id/xfs.c @@ -42,9 +42,8 @@ uint64_t fdblocks; } PACKED; -int FAST_FUNC volume_id_probe_xfs(struct volume_id *id /*,uint64_t off*/) +int FAST_FUNC volume_id_probe_xfs(struct volume_id *id, uint64_t off) { -#define off ((uint64_t)0) struct xfs_super_block *xs; dbg("probing at offset 0x%llx", (unsigned long long) off);