summaryrefslogtreecommitdiffstats
path: root/sbin/nvmecontrol/devlist.c
diff options
context:
space:
mode:
Diffstat (limited to 'sbin/nvmecontrol/devlist.c')
-rw-r--r--sbin/nvmecontrol/devlist.c27
1 files changed, 13 insertions, 14 deletions
diff --git a/sbin/nvmecontrol/devlist.c b/sbin/nvmecontrol/devlist.c
index 8c99c99..29c0475 100644
--- a/sbin/nvmecontrol/devlist.c
+++ b/sbin/nvmecontrol/devlist.c
@@ -29,13 +29,14 @@ __FBSDID("$FreeBSD$");
#include <sys/param.h>
+#include <err.h>
#include <errno.h>
#include <fcntl.h>
+#include <paths.h>
#include <stddef.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
-#include <sysexits.h>
#include <unistd.h>
#include "nvmecontrol.h"
@@ -45,7 +46,7 @@ devlist_usage(void)
{
fprintf(stderr, "usage:\n");
fprintf(stderr, DEVLIST_USAGE);
- exit(EX_USAGE);
+ exit(1);
}
static inline uint32_t
@@ -62,9 +63,7 @@ devlist(int argc, char *argv[])
struct nvme_namespace_data nsdata;
char name[64];
uint32_t i;
- int ch, ctrlr, exit_code, fd, found;
-
- exit_code = EX_OK;
+ int ch, ctrlr, fd, found, ret;
while ((ch = getopt(argc, argv, "")) != -1) {
switch ((char)ch) {
@@ -80,19 +79,19 @@ devlist(int argc, char *argv[])
ctrlr++;
sprintf(name, "%s%d", NVME_CTRLR_PREFIX, ctrlr);
- exit_code = open_dev(name, &fd, 0, 0);
+ ret = open_dev(name, &fd, 0, 0);
- if (exit_code == EX_NOINPUT)
- break;
- else if (exit_code == EX_NOPERM) {
- printf("Could not open /dev/%s, errno = %d (%s)\n",
- name, errno, strerror(errno));
- continue;
+ if (ret != 0) {
+ if (ret == EACCES) {
+ warnx("could not open "_PATH_DEV"%s\n", name);
+ continue;
+ } else
+ break;
}
found++;
read_controller_data(fd, &cdata);
- printf("%6s: %s\n", name, cdata.mn);
+ printf("%6s: %.*s\n", name, NVME_MODEL_NUMBER_LENGTH, cdata.mn);
for (i = 0; i < cdata.nn; i++) {
sprintf(name, "%s%d%s%d", NVME_CTRLR_PREFIX, ctrlr,
@@ -111,5 +110,5 @@ devlist(int argc, char *argv[])
if (found == 0)
printf("No NVMe controllers found.\n");
- exit(EX_OK);
+ exit(1);
}
OpenPOWER on IntegriCloud