diff options
Diffstat (limited to 'sbin/nvmecontrol/devlist.c')
-rw-r--r-- | sbin/nvmecontrol/devlist.c | 27 |
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); } |