From: Karel Zak Date: Fri, 14 Sep 2018 13:36:59 +0000 (+0200) Subject: lsblk: add lsblk.h X-Git-Tag: v2.33-rc1~20 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=14560b7f5445e84c54122c9a8f6f65124b97ed2a;p=thirdparty%2Futil-linux.git lsblk: add lsblk.h * move core struct to the header file * move debug stuff to the header file Signed-off-by: Karel Zak --- diff --git a/misc-utils/Makemodule.am b/misc-utils/Makemodule.am index 36195b7a30..3fb3114ed8 100644 --- a/misc-utils/Makemodule.am +++ b/misc-utils/Makemodule.am @@ -77,7 +77,9 @@ endif if BUILD_LSBLK bin_PROGRAMS += lsblk dist_man_MANS += misc-utils/lsblk.8 -lsblk_SOURCES = misc-utils/lsblk.c +lsblk_SOURCES = \ + misc-utils/lsblk.c \ + misc-utils/lsblk.h lsblk_LDADD = $(LDADD) libblkid.la libmount.la libcommon.la libsmartcols.la lsblk_CFLAGS = $(AM_CFLAGS) -I$(ul_libblkid_incdir) -I$(ul_libmount_incdir) -I$(ul_libsmartcols_incdir) if HAVE_UDEV diff --git a/misc-utils/lsblk.c b/misc-utils/lsblk.c index 97bddecfac..75ddd70ee5 100644 --- a/misc-utils/lsblk.c +++ b/misc-utils/lsblk.c @@ -25,24 +25,20 @@ #include #include #include -#include #include #include #include #include #include #include -#include #include #include #include #include #include -#include #include #include -#include #ifdef HAVE_LIBUDEV #include @@ -62,23 +58,11 @@ #include "mangle.h" #include "optutils.h" -#include "debug.h" +#include "lsblk.h" -static UL_DEBUG_DEFINE_MASK(lsblk); +UL_DEBUG_DEFINE_MASK(lsblk); UL_DEBUG_DEFINE_MASKNAMES(lsblk) = UL_DEBUG_EMPTY_MASKNAMES; -#define LSBLK_DEBUG_INIT (1 << 1) -#define LSBLK_DEBUG_FILTER (1 << 2) -#define LSBLK_DEBUG_DEV (1 << 3) -#define LSBLK_DEBUG_CXT (1 << 4) -#define LSBLK_DEBUG_ALL 0xFFFF - -#define DBG(m, x) __UL_DBG(lsblk, LSBLK_DEBUG_, m, x) -#define ON_DBG(m, x) __UL_DBG_CALL(lsblk, LSBLK_DEBUG_, m, x) - -#define UL_DEBUG_CURRENT_MASK UL_DEBUG_MASK(lsblk) -#include "debugobj.h" - #define LSBLK_EXIT_SOMEOK 64 #define LSBLK_EXIT_ALLFAILED 32 @@ -230,25 +214,7 @@ static struct colinfo infos[] = { [COL_ZONED] = { "ZONED", 0.3, 0, N_("zone model") }, }; -struct lsblk { - struct libscols_table *table; /* output table */ - struct libscols_column *sort_col;/* sort output by this column */ - int sort_id; - - const char *sysroot; - int flags; /* LSBLK_* */ - - unsigned int all_devices:1; /* print all devices, including empty */ - unsigned int bytes:1; /* print SIZE in bytes */ - unsigned int inverse:1; /* print inverse dependencies */ - unsigned int nodeps:1; /* don't print slaves/holders */ - unsigned int scsi:1; /* print only device with HCTL (SCSI) */ - unsigned int paths:1; /* print devnames with "/dev" prefix */ - unsigned int sort_hidden:1; /* sort column not between output columns */ - unsigned int force_tree_order:1;/* sort lines by parent->tree relation */ -}; - -static struct lsblk *lsblk; /* global handler */ +struct lsblk *lsblk; /* global handler */ /* columns[] array specifies all currently wanted output column. The columns * are defined by infos[] array and you can specify (on command line) each @@ -286,50 +252,6 @@ static struct libmnt_cache *mntcache; static struct udev *udev; #endif -struct blkdev_cxt { - struct blkdev_cxt *parent; - - struct libscols_line *scols_line; - struct stat st; - - char *name; /* kernel name in /sys/block */ - char *dm_name; /* DM name (dm/block) */ - - char *filename; /* path to device node */ - - struct path_cxt *sysfs; - - int partition; /* is partition? TRUE/FALSE */ - - int probed; /* already probed */ - char *fstype; /* detected fs, NULL or "?" if cannot detect */ - char *uuid; /* filesystem UUID (or stack uuid) */ - char *ptuuid; /* partition table UUID */ - char *pttype; /* partition table type */ - char *label; /* filesystem label */ - char *parttype; /* partition type UUID */ - char *partuuid; /* partition UUID */ - char *partlabel; /* partition label */ - char *partflags; /* partition flags */ - char *wwn; /* storage WWN */ - char *serial; /* disk serial number */ - char *model; /* disk model */ - - char *mountpoint; /* device mountpoint */ - struct statvfs fsstat; /* statvfs() result */ - - int npartitions; /* # of partitions this device has */ - int nholders; /* # of devices mapped directly to this device - * /sys/block/.../holders */ - int nslaves; /* # of devices this device maps to */ - int maj, min; /* devno */ - int discard; /* supports discard */ - - uint64_t size; /* device size */ - - unsigned int is_mounted : 1; -}; - static void lsblk_init_debug(void) { __UL_INIT_DEBUG_FROM_ENV(lsblk, LSBLK_DEBUG_, 0, LSBLK_DEBUG); diff --git a/misc-utils/lsblk.h b/misc-utils/lsblk.h new file mode 100644 index 0000000000..5608c45cf2 --- /dev/null +++ b/misc-utils/lsblk.h @@ -0,0 +1,95 @@ +/* + * Copyright (C) 2010-2018 Red Hat, Inc. All rights reserved. + * Written by Milan Broz + * Karel Zak + */ +#ifndef UTIL_LINUX_LSBLK_H +#define UTIL_LINUX_LSBLK_H + +#include +#include +#include + +#include + +#include "c.h" +#include "debug.h" + +#define LSBLK_DEBUG_INIT (1 << 1) +#define LSBLK_DEBUG_FILTER (1 << 2) +#define LSBLK_DEBUG_DEV (1 << 3) +#define LSBLK_DEBUG_CXT (1 << 4) +#define LSBLK_DEBUG_ALL 0xFFFF + +UL_DEBUG_DECLARE_MASK(lsblk); +#define DBG(m, x) __UL_DBG(lsblk, LSBLK_DEBUG_, m, x) +#define ON_DBG(m, x) __UL_DBG_CALL(lsblk, LSBLK_DEBUG_, m, x) + +#define UL_DEBUG_CURRENT_MASK UL_DEBUG_MASK(lsblk) +#include "debugobj.h" + +struct lsblk { + struct libscols_table *table; /* output table */ + struct libscols_column *sort_col;/* sort output by this column */ + int sort_id; + + const char *sysroot; + int flags; /* LSBLK_* */ + + unsigned int all_devices:1; /* print all devices, including empty */ + unsigned int bytes:1; /* print SIZE in bytes */ + unsigned int inverse:1; /* print inverse dependencies */ + unsigned int nodeps:1; /* don't print slaves/holders */ + unsigned int scsi:1; /* print only device with HCTL (SCSI) */ + unsigned int paths:1; /* print devnames with "/dev" prefix */ + unsigned int sort_hidden:1; /* sort column not between output columns */ + unsigned int force_tree_order:1;/* sort lines by parent->tree relation */ +}; + +extern struct lsblk *lsblk; /* global handler */ + +struct blkdev_cxt { + struct blkdev_cxt *parent; + + struct libscols_line *scols_line; + struct stat st; + + char *name; /* kernel name in /sys/block */ + char *dm_name; /* DM name (dm/block) */ + + char *filename; /* path to device node */ + + struct path_cxt *sysfs; + + int partition; /* is partition? TRUE/FALSE */ + + int probed; /* already probed */ + char *fstype; /* detected fs, NULL or "?" if cannot detect */ + char *uuid; /* filesystem UUID (or stack uuid) */ + char *ptuuid; /* partition table UUID */ + char *pttype; /* partition table type */ + char *label; /* filesystem label */ + char *parttype; /* partition type UUID */ + char *partuuid; /* partition UUID */ + char *partlabel; /* partition label */ + char *partflags; /* partition flags */ + char *wwn; /* storage WWN */ + char *serial; /* disk serial number */ + char *model; /* disk model */ + + char *mountpoint; /* device mountpoint */ + struct statvfs fsstat; /* statvfs() result */ + + int npartitions; /* # of partitions this device has */ + int nholders; /* # of devices mapped directly to this device + * /sys/block/.../holders */ + int nslaves; /* # of devices this device maps to */ + int maj, min; /* devno */ + int discard; /* supports discard */ + + uint64_t size; /* device size */ + + unsigned int is_mounted : 1; +}; + +#endif /* UTIL_LINUX_LSBLK_H */