lsblk: add column START for partition start offsets

Fix: https://github.com/karelzak/util-linux/issues/1340
Signed-off-by: Karel Zak <kzak@redhat.com>
This commit is contained in:
Karel Zak 2021-06-09 10:57:54 +02:00
parent 0842c84218
commit 856457bfcf
1 changed files with 8 additions and 1 deletions

View File

@ -121,7 +121,8 @@ enum {
COL_REV, COL_REV,
COL_VENDOR, COL_VENDOR,
COL_ZONED, COL_ZONED,
COL_DAX COL_DAX,
COL_START
}; };
/* basic table settings */ /* basic table settings */
@ -217,6 +218,7 @@ static struct colinfo infos[] = {
[COL_VENDOR] = { "VENDOR", 0.1, SCOLS_FL_TRUNC, N_("device vendor") }, [COL_VENDOR] = { "VENDOR", 0.1, SCOLS_FL_TRUNC, N_("device vendor") },
[COL_ZONED] = { "ZONED", 0.3, 0, N_("zone model") }, [COL_ZONED] = { "ZONED", 0.3, 0, N_("zone model") },
[COL_DAX] = { "DAX", 1, SCOLS_FL_RIGHT, N_("dax-capable device"), COLTYPE_BOOL }, [COL_DAX] = { "DAX", 1, SCOLS_FL_RIGHT, N_("dax-capable device"), COLTYPE_BOOL },
[COL_START] = { "START", 5, SCOLS_FL_RIGHT, N_("partition start offset"), COLTYPE_NUM },
}; };
struct lsblk *lsblk; /* global handler */ struct lsblk *lsblk; /* global handler */
@ -953,6 +955,11 @@ static char *device_get_data(
if (sortdata) if (sortdata)
*sortdata = dev->size; *sortdata = dev->size;
break; break;
case COL_START:
ul_path_read_string(dev->sysfs, &str, "start");
if (sortdata)
str2u64(str, sortdata);
break;
case COL_STATE: case COL_STATE:
if (!device_is_partition(dev) && !dev->dm_name) if (!device_is_partition(dev) && !dev->dm_name)
ul_path_read_string(dev->sysfs, &str, "device/state"); ul_path_read_string(dev->sysfs, &str, "device/state");