diff options
author | jimharris <jimharris@FreeBSD.org> | 2013-07-19 21:40:57 +0000 |
---|---|---|
committer | jimharris <jimharris@FreeBSD.org> | 2013-07-19 21:40:57 +0000 |
commit | 52bfa150c78aa1855a2cc5fccfc5beb84f57b16d (patch) | |
tree | af2bfcd29c3c4b521e2556f71dfd744f3a8c6df2 /sbin | |
parent | 0ccd4d5781fdb67fda3917d5ffccf80806d0d9fb (diff) | |
download | FreeBSD-src-52bfa150c78aa1855a2cc5fccfc5beb84f57b16d.zip FreeBSD-src-52bfa150c78aa1855a2cc5fccfc5beb84f57b16d.tar.gz |
Add message when nvd disks are attached and detached.
As part of this commit, add an nvme_strvis() function which borrows
heavily from cam_strvis(). This will allow stripping of
leading/trailing whitespace and also handle unprintable characters
in model/serial numbers. This function goes into a new nvme_util.c
file which is used by both the driver and nvmecontrol.
Sponsored by: Intel
Reviewed by: carl
MFC after: 3 days
Diffstat (limited to 'sbin')
-rw-r--r-- | sbin/nvmecontrol/Makefile | 4 | ||||
-rw-r--r-- | sbin/nvmecontrol/devlist.c | 4 | ||||
-rw-r--r-- | sbin/nvmecontrol/identify.c | 14 |
3 files changed, 14 insertions, 8 deletions
diff --git a/sbin/nvmecontrol/Makefile b/sbin/nvmecontrol/Makefile index 4682056..ea60da3 100644 --- a/sbin/nvmecontrol/Makefile +++ b/sbin/nvmecontrol/Makefile @@ -2,7 +2,9 @@ PROG= nvmecontrol SRCS= nvmecontrol.c devlist.c firmware.c identify.c logpage.c \ - perftest.c reset.c + perftest.c reset.c nvme_util.c MAN= nvmecontrol.8 +.PATH: ${.CURDIR}/../../sys/dev/nvme + .include <bsd.prog.mk> diff --git a/sbin/nvmecontrol/devlist.c b/sbin/nvmecontrol/devlist.c index eb40434..f73d643 100644 --- a/sbin/nvmecontrol/devlist.c +++ b/sbin/nvmecontrol/devlist.c @@ -62,6 +62,7 @@ devlist(int argc, char *argv[]) struct nvme_controller_data cdata; struct nvme_namespace_data nsdata; char name[64]; + uint8_t mn[64]; uint32_t i; int ch, ctrlr, fd, found, ret; @@ -91,7 +92,8 @@ devlist(int argc, char *argv[]) found++; read_controller_data(fd, &cdata); - printf("%6s: %.*s\n", name, NVME_MODEL_NUMBER_LENGTH, cdata.mn); + nvme_strvis(mn, cdata.mn, sizeof(mn), NVME_MODEL_NUMBER_LENGTH); + printf("%6s: %s\n", name, mn); for (i = 0; i < cdata.nn; i++) { sprintf(name, "%s%d%s%d", NVME_CTRLR_PREFIX, ctrlr, diff --git a/sbin/nvmecontrol/identify.c b/sbin/nvmecontrol/identify.c index 6585430..58492e2 100644 --- a/sbin/nvmecontrol/identify.c +++ b/sbin/nvmecontrol/identify.c @@ -43,16 +43,18 @@ __FBSDID("$FreeBSD$"); static void print_controller(struct nvme_controller_data *cdata) { + uint8_t str[128]; + printf("Controller Capabilities/Features\n"); printf("================================\n"); printf("Vendor ID: %04x\n", cdata->vid); printf("Subsystem Vendor ID: %04x\n", cdata->ssvid); - printf("Serial Number: %.*s\n", - NVME_SERIAL_NUMBER_LENGTH, cdata->sn); - printf("Model Number: %.*s\n", - NVME_MODEL_NUMBER_LENGTH, cdata->mn); - printf("Firmware Version: %.*s\n", - NVME_FIRMWARE_REVISION_LENGTH, cdata->fr); + nvme_strvis(str, cdata->sn, sizeof(str), NVME_SERIAL_NUMBER_LENGTH); + printf("Serial Number: %s\n", str); + nvme_strvis(str, cdata->mn, sizeof(str), NVME_MODEL_NUMBER_LENGTH); + printf("Model Number: %s\n", str); + nvme_strvis(str, cdata->fr, sizeof(str), NVME_FIRMWARE_REVISION_LENGTH); + printf("Firmware Version: %s\n", str); printf("Recommended Arb Burst: %d\n", cdata->rab); printf("IEEE OUI Identifier: %02x %02x %02x\n", cdata->ieee[0], cdata->ieee[1], cdata->ieee[2]); |