diff options
author | Milan Broz | 2012-11-02 18:56:31 +0100 |
---|---|---|
committer | Karel Zak | 2012-11-07 13:20:45 +0100 |
commit | 28ffc2b7350bcb6c43b885c660b6250e4207ec72 (patch) | |
tree | 1ac105ec19506721f13718652901b6e8a6d56f75 | |
parent | lsblk: Add vendor column (diff) | |
download | kernel-qcow2-util-linux-28ffc2b7350bcb6c43b885c660b6250e4207ec72.tar.gz kernel-qcow2-util-linux-28ffc2b7350bcb6c43b885c660b6250e4207ec72.tar.xz kernel-qcow2-util-linux-28ffc2b7350bcb6c43b885c660b6250e4207ec72.zip |
lsblk: Add --scsi switch
The --scsi switch prints similar information to lsscsi command.
Signed-off-by: Milan Broz <mbroz@redhat.com>
-rw-r--r-- | misc-utils/lsblk.8 | 2 | ||||
-rw-r--r-- | misc-utils/lsblk.c | 23 |
2 files changed, 22 insertions, 3 deletions
diff --git a/misc-utils/lsblk.8 b/misc-utils/lsblk.8 index ced0a130c..c280ed474 100644 --- a/misc-utils/lsblk.8 +++ b/misc-utils/lsblk.8 @@ -74,6 +74,8 @@ Use the raw output format. All potentially unsafe characters are hex-escaped Print dependencies in inverse order. .IP "\fB\-t, \-\-topology\fP" Output info about block device topology. +.IP "\fB\-S, \-\-scsi\fP" +Output info about SCSI devices. This option is equivalent to "-o NAME,ALIGNMENT,MIN-IO,OPT-IO,PHY-SEC,LOG-SEC,ROTA,SCHED,RQ-SIZE". .IP "\fB\-V, \-\-version\fP" Output version information and exit. diff --git a/misc-utils/lsblk.c b/misc-utils/lsblk.c index f8bc6eaa9..bca44492e 100644 --- a/misc-utils/lsblk.c +++ b/misc-utils/lsblk.c @@ -1,7 +1,7 @@ /* * lsblk(8) - list block devices * - * Copyright (C) 2010,2011 Red Hat, Inc. All rights reserved. + * Copyright (C) 2010,2011,2012 Red Hat, Inc. All rights reserved. * Written by Milan Broz <mbroz@redhat.com> * Karel Zak <kzak@redhat.com> * @@ -162,6 +162,7 @@ struct lsblk { 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) */ }; struct lsblk *lsblk; /* global handler */ @@ -588,7 +589,7 @@ static char *get_transport(struct blkdev_cxt *cxt) char *attr = NULL; const char *trans = NULL; - /* SPI - Serial Peripheral Interface */ + /* SCSI - Serial Peripheral Interface */ if (sysfs_scsi_host_is(sysfs, "spi")) trans = "spi"; @@ -976,6 +977,10 @@ static int set_cxt(struct blkdev_cxt *cxt, cxt->nholders = sysfs_count_dirents(&cxt->sysfs, "holders"); cxt->nslaves = sysfs_count_dirents(&cxt->sysfs, "slaves"); + /* ignore non-SCSI devices */ + if (lsblk->scsi && sysfs_scsi_get_hctl(&cxt->sysfs, NULL, NULL, NULL, NULL)) + return -1; + return 0; } @@ -1330,6 +1335,7 @@ static void __attribute__((__noreturn__)) help(FILE *out) " -r, --raw use raw output format\n" " -s, --inverse inverse dependencies\n" " -t, --topology output info about topology\n" + " -S, --scsi output info about SCSI devices\n" " -V, --version output version information and exit\n")); fprintf(out, _("\nAvailable columns (for --output):\n")); @@ -1374,6 +1380,7 @@ int main(int argc, char *argv[]) { "include", 1, 0, 'I' }, { "topology", 0, 0, 't' }, { "pairs", 0, 0, 'P' }, + { "scsi", 0, 0, 'S' }, { "version", 0, 0, 'V' }, { NULL, 0, 0, 0 }, }; @@ -1394,7 +1401,7 @@ int main(int argc, char *argv[]) memset(lsblk, 0, sizeof(*lsblk)); while((c = getopt_long(argc, argv, - "abdDe:fhlnmo:PiI:rstV", longopts, NULL)) != -1) { + "abdDe:fhlnmo:PiI:rstVS", longopts, NULL)) != -1) { err_exclusive_options(c, longopts, excl, excl_st); @@ -1473,6 +1480,16 @@ int main(int argc, char *argv[]) columns[ncolumns++] = COL_RQ_SIZE; columns[ncolumns++] = COL_RA; break; + case 'S': + lsblk->nodeps = 1; + lsblk->scsi = 1; + columns[ncolumns++] = COL_NAME; + columns[ncolumns++] = COL_HCTL; + columns[ncolumns++] = COL_TYPE; + columns[ncolumns++] = COL_VENDOR; + columns[ncolumns++] = COL_MODEL; + columns[ncolumns++] = COL_REV; + break; case 'V': printf(_("%s from %s\n"), program_invocation_short_name, PACKAGE_STRING); |