diff --git a/nvme-print-stdout.c b/nvme-print-stdout.c index 1b47921f69..8b5fd4f82b 100644 --- a/nvme-print-stdout.c +++ b/nvme-print-stdout.c @@ -2545,6 +2545,16 @@ static void stdout_id_ctrl_ofcs(__le16 ofcs) } +static void stdout_id_ns_size(uint64_t nsze, uint64_t ncap, uint64_t nuse) +{ + printf("nsze : %#"PRIx64"\tTotal size in logical blocks\n", + le64_to_cpu(nsze)); + printf("ncap : %#"PRIx64"\tMaximum size in logical blocks\n", + le64_to_cpu(ncap)); + printf("nuse : %#"PRIx64"\tCurrent size in logical blocks\n", + le64_to_cpu(nuse)); +} + static void stdout_id_ns_nsfeat(__u8 nsfeat) { __u8 optrperf = (nsfeat & 0x80) >> 7; @@ -2764,9 +2774,15 @@ static void stdout_id_ns(struct nvme_id_ns *ns, unsigned int nsid, if (!cap_only) { printf("NVME Identify Namespace %d:\n", nsid); - printf("nsze : %#"PRIx64"\n", le64_to_cpu(ns->nsze)); - printf("ncap : %#"PRIx64"\n", le64_to_cpu(ns->ncap)); - printf("nuse : %#"PRIx64"\n", le64_to_cpu(ns->nuse)); + + if (human) + stdout_id_ns_size(ns->nsze, ns->ncap, ns->nuse); + else { + printf("nsze : %#"PRIx64"\n", le64_to_cpu(ns->nsze)); + printf("ncap : %#"PRIx64"\n", le64_to_cpu(ns->ncap)); + printf("nuse : %#"PRIx64"\n", le64_to_cpu(ns->nuse)); + } + printf("nsfeat : %#x\n", ns->nsfeat); if (human) stdout_id_ns_nsfeat(ns->nsfeat); @@ -3624,11 +3640,18 @@ static void stdout_zns_id_ns(struct nvme_zns_id_ns *ns, static void stdout_list_ns(struct nvme_ns_list *ns_list) { - int i; + int i, verbose = stdout_print_ops.flags & VERBOSE; + printf("NVME Namespace List:\n"); for (i = 0; i < 1024; i++) { - if (ns_list->ns[i]) - printf("[%4u]:%#x\n", i, le32_to_cpu(ns_list->ns[i])); + if (ns_list->ns[i]) { + if (verbose) + printf("Identifier %4u: NSID %#x\n", + i, le32_to_cpu(ns_list->ns[i])); + else + printf("[%4u]:%#x\n", + i, le32_to_cpu(ns_list->ns[i])); + } } } diff --git a/nvme.c b/nvme.c index 44a44317ce..c99c894cb0 100644 --- a/nvme.c +++ b/nvme.c @@ -2695,6 +2695,9 @@ static int list_ns(int argc, char **argv, struct command *cmd, struct plugin *pl return -EINVAL; } + if (argconfig_parse_seen(opts, "verbose")) + flags |= VERBOSE; + ns_list = nvme_alloc(sizeof(*ns_list)); if (!ns_list) return -ENOMEM;