]> www.infradead.org Git - users/hch/nvme-cli.git/commitdiff
Include sizing data in json output that's already included in the non-json results.
authorSteve <gh@mail.wreck.net>
Mon, 23 Oct 2017 20:46:32 +0000 (16:46 -0400)
committerSteve <gh@mail.wreck.net>
Mon, 23 Oct 2017 20:46:32 +0000 (16:46 -0400)
nvme-print.c

index df4ed5953b8fba456c4db272f4ddfac441f2c785..91d6a05154ed0f38b3cd947427db02fef16ea90a 100644 (file)
@@ -1454,6 +1454,23 @@ void json_print_list_items(struct list_item *list_items, unsigned len)
                                             formatter);
 
                json_array_add_value_object(devices, device_attrs);
+
+               long long int lba = 1 << list_items[i].ns.lbaf[(list_items[i].ns.flbas & 0x0f)].ds;
+               double nsze       = le64_to_cpu(list_items[i].ns.nsze) * lba;
+               double nuse       = le64_to_cpu(list_items[i].ns.nuse) * lba;
+               json_object_add_value_int(device_attrs,
+                                         "UsedBytes",
+                                         nuse);
+               json_object_add_value_int(device_attrs,
+                                         "MaximiumLBA",
+                                         le64_to_cpu(list_items[i].ns.nsze));
+               json_object_add_value_int(device_attrs,
+                                         "PhysicalSize",
+                                         nsze);
+               json_object_add_value_int(device_attrs,
+                                         "SectorSize",
+                                         lba);
+
                free((void*)product);
        }
        if (i)