summaryrefslogtreecommitdiffstats
path: root/sbin
diff options
context:
space:
mode:
authorjimharris <jimharris@FreeBSD.org>2013-07-19 21:40:57 +0000
committerjimharris <jimharris@FreeBSD.org>2013-07-19 21:40:57 +0000
commit52bfa150c78aa1855a2cc5fccfc5beb84f57b16d (patch)
treeaf2bfcd29c3c4b521e2556f71dfd744f3a8c6df2 /sbin
parent0ccd4d5781fdb67fda3917d5ffccf80806d0d9fb (diff)
downloadFreeBSD-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/Makefile4
-rw-r--r--sbin/nvmecontrol/devlist.c4
-rw-r--r--sbin/nvmecontrol/identify.c14
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]);
OpenPOWER on IntegriCloud