summaryrefslogtreecommitdiffstats
path: root/misc-utils/lsblk.h
diff options
context:
space:
mode:
authorKarel Zak2018-09-14 15:36:59 +0200
committerKarel Zak2018-09-14 15:36:59 +0200
commit14560b7f5445e84c54122c9a8f6f65124b97ed2a (patch)
tree0a805aae3568a41c6fae9c9088c97de74f003643 /misc-utils/lsblk.h
parentlsblk: add columns FSAVAIL,FSSIZE,FSUSED,FSUSE% (diff)
downloadkernel-qcow2-util-linux-14560b7f5445e84c54122c9a8f6f65124b97ed2a.tar.gz
kernel-qcow2-util-linux-14560b7f5445e84c54122c9a8f6f65124b97ed2a.tar.xz
kernel-qcow2-util-linux-14560b7f5445e84c54122c9a8f6f65124b97ed2a.zip
lsblk: add lsblk.h
* move core struct to the header file * move debug stuff to the header file Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'misc-utils/lsblk.h')
-rw-r--r--misc-utils/lsblk.h95
1 files changed, 95 insertions, 0 deletions
diff --git a/misc-utils/lsblk.h b/misc-utils/lsblk.h
new file mode 100644
index 000000000..5608c45cf
--- /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 <mbroz@redhat.com>
+ * Karel Zak <kzak@redhat.com>
+ */
+#ifndef UTIL_LINUX_LSBLK_H
+#define UTIL_LINUX_LSBLK_H
+
+#include <stdint.h>
+#include <inttypes.h>
+#include <sys/statvfs.h>
+
+#include <libsmartcols.h>
+
+#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 */