.smart_log = binary_smart_log,
.supported_cap_config_list_log = binary_supported_cap_config_log,
.supported_log_pages = binary_supported_log,
+ .zns_start_zone_list = NULL,
.zns_changed_zone_log = binary_zns_changed,
.zns_finish_zone_list = NULL,
.zns_id_ctrl = binary_zns_id_ctrl,
json_free_object(root);
}
+static void json_zns_start_zone_list(__u64 nr_zones, struct json_object **zone_list)
+{
+ *zone_list = json_create_array();
+}
+
static void json_zns_finish_zone_list(__u64 nr_zones,
struct json_object *zone_list)
{
.smart_log = json_smart_log,
.supported_cap_config_list_log = json_supported_cap_config_log,
.supported_log_pages = json_support_log,
+ .zns_start_zone_list = json_zns_start_zone_list,
.zns_changed_zone_log = NULL,
.zns_finish_zone_list = json_zns_finish_zone_list,
.zns_id_ctrl = json_nvme_zns_id_ctrl,
}
}
+static void stdout_zns_start_zone_list(__u64 nr_zones, struct json_object **zone_list)
+{
+ printf("nr_zones: %"PRIu64"\n", (uint64_t)le64_to_cpu(nr_zones));
+}
+
static void stdout_zns_changed(struct nvme_zns_changed_zone_log *log)
{
uint16_t nrzid;
.smart_log = stdout_smart_log,
.supported_cap_config_list_log = stdout_supported_cap_config_log,
.supported_log_pages = stdout_supported_log,
+ .zns_start_zone_list = stdout_zns_start_zone_list,
.zns_changed_zone_log = stdout_zns_changed,
.zns_finish_zone_list = NULL,
.zns_id_ctrl = stdout_zns_id_ctrl,
nvme_print(ns_list, flags, ns_list);
}
+void nvme_zns_start_zone_list(__u64 nr_zones, struct json_object **zone_list,
+ enum nvme_print_flags flags)
+{
+ nvme_print(zns_start_zone_list, flags, nr_zones, zone_list);
+}
+
void nvme_show_zns_changed(struct nvme_zns_changed_zone_log *log,
enum nvme_print_flags flags)
{
void (*smart_log)(struct nvme_smart_log *smart, unsigned int nsid, const char *devname);
void (*supported_cap_config_list_log)(struct nvme_supported_cap_config_list_log *cap_log);
void (*supported_log_pages)(struct nvme_supported_log_pages *support_log, const char *devname);
+ void (*zns_start_zone_list)(__u64 nr_zones, struct json_object **zone_list);
void (*zns_changed_zone_log)(struct nvme_zns_changed_zone_log *log);
void (*zns_finish_zone_list)(__u64 nr_zones, struct json_object *zone_list);
void (*zns_id_ctrl)(struct nvme_zns_id_ctrl *ctrl);
bool cap_only, enum nvme_print_flags flags);
void nvme_show_zns_id_ns(struct nvme_zns_id_ns *ns,
struct nvme_id_ns *id_ns, enum nvme_print_flags flags);
+void nvme_zns_start_zone_list(__u64 nr_zones, struct json_object **zone_list,
+ enum nvme_print_flags flags);
void nvme_show_zns_changed(struct nvme_zns_changed_zone_log *log,
enum nvme_print_flags flags);
void nvme_zns_finish_zone_list(__u64 nr_zones, struct json_object *zone_list,
}
offset = cfg.zslba;
- if (flags & JSON)
- zone_list = json_create_array();
- else
- printf("nr_zones: %"PRIu64"\n", (uint64_t)le64_to_cpu(total_nr_zones));
+
+ nvme_zns_start_zone_list(total_nr_zones, &zone_list, flags);
while (nr_zones_retrieved < nr_zones) {
if (nr_zones_retrieved >= nr_zones)