}
}
- json_print_object(root, NULL);
- printf("\n");
- json_free_object(root);
+ json_print(root);
}
static void json_nvme_id_ns(struct nvme_id_ns *ns, unsigned int nsid,
json_array_add_value_object(lbafs, lbaf);
}
- json_print_object(root, NULL);
- printf("\n");
- json_free_object(root);
+ json_print(root);
}
void json_nvme_id_ctrl(struct nvme_id_ctrl *ctrl,
if(vs)
vs(ctrl->vs, root);
- json_print_object(root, NULL);
- printf("\n");
- json_free_object(root);
+ json_print(root);
}
static void json_error_log(struct nvme_error_log_page *err_log, int entries,
json_array_add_value_object(errors, error);
}
- json_print_object(root, NULL);
- printf("\n");
- json_free_object(root);
+ json_print(root);
}
void json_nvme_resv_report(struct nvme_resv_status *status,
}
}
- json_print_object(root, NULL);
- printf("\n");
- json_free_object(root);
+ json_print(root);
}
void json_fw_log(struct nvme_firmware_slot *fw_log, const char *devname)
}
json_object_add_value_object(root, devname, fwsi);
- json_print_object(root, NULL);
- printf("\n");
- json_free_object(root);
+ json_print(root);
}
void json_changed_ns_list_log(struct nvme_ns_list *log,
}
json_object_add_value_object(root, devname, nsi);
- json_print_object(root, NULL);
- printf("\n");
-
- json_free_object(root);
+ json_print(root);
}
static void json_endurance_log(struct nvme_endurance_group_log *endurance_group, __u16 group_id,
json_object_add_value_uint128(root, "total_end_grp_cap", total_end_grp_cap);
json_object_add_value_uint128(root, "unalloc_end_grp_cap", unalloc_end_grp_cap);
- json_print_object(root, NULL);
- printf("\n");
- json_free_object(root);
+ json_print(root);
}
static void json_smart_log(struct nvme_smart_log *smart, unsigned int nsid,
json_object_add_value_uint(root, "thm_temp2_total_time",
le32_to_cpu(smart->thm_temp2_total_time));
- json_print_object(root, NULL);
- printf("\n");
- json_free_object(root);
+ json_print(root);
}
static void json_ana_log(struct nvme_ana_log *ana_log, const char *devname,
}
json_object_add_value_array(root, "ANA DESC LIST ", desc_list);
- json_print_object(root, NULL);
- printf("\n");
- json_free_object(root);
+ json_print(root);
}
static void json_self_test_log(struct nvme_self_test_log *self_test, __u8 dst_entries,
json_array_add_value_object(valid, valid_attrs);
}
json_object_add_value_array(root, "List of Valid Reports", valid);
- json_print_object(root, NULL);
- printf("\n");
- json_free_object(root);
+ json_print(root);
}
struct json_object* json_effects_log(enum nvme_csi csi,
le32_to_cpu(sanitize_log->etcend));
json_object_add_value_object(root, devname, dev);
- json_print_object(root, NULL);
- printf("\n");
- json_free_object(root);
+ json_print(root);
}
static void json_predictable_latency_per_nvmset(
json_object_add_value_uint64(root, "dtwin_time_estimate",
le64_to_cpu(plpns_log->dtwin_te));
- json_print_object(root, NULL);
- printf("\n");
- json_free_object(root);
+ json_print(root);
}
static void json_predictable_latency_event_agg_log(
json_array_add_value_object(valid, valid_attrs);
}
json_object_add_value_array(root, "list_of_entries", valid);
- json_print_object(root, NULL);
- printf("\n");
- json_free_object(root);
+ json_print(root);
}
static void json_add_bitmap(int i, __u8 seb, struct json_object *root)
}
json_object_add_value_array(root, "list_of_event_entries", valid);
- json_print_object(root, NULL);
- printf("\n");
- json_free_object(root);
+ json_print(root);
}
static void json_endurance_group_event_agg_log(
json_array_add_value_object(valid, valid_attrs);
}
json_object_add_value_array(root, "list_of_entries", valid);
- json_print_object(root, NULL);
- printf("\n");
- json_free_object(root);
+ json_print(root);
}
static void json_lba_status(struct nvme_lba_status *list,
}
json_object_add_value_array(root, "ns_elements", elements_list);
- json_print_object(root, NULL);
- printf("\n");
- json_free_object(root);
+ json_print(root);
}
static void json_resv_notif_log(struct nvme_resv_notification_log *resv,
json_object_add_value_uint(root, "nsid",
le32_to_cpu(resv->nsid));
- json_print_object(root, NULL);
- printf("\n");
- json_free_object(root);
+ json_print(root);
}
static void json_fid_support_effects_log(
}
json_object_add_value_object(root, "fid_support", fids_list);
- json_print_object(root, NULL);
- printf("\n");
- json_free_object(root);
+ json_print(root);
}
static void json_mi_cmd_support_effects_log(
}
json_object_add_value_object(root, "mi_command_support", mi_cmds_list);
- json_print_object(root, NULL);
- printf("\n");
-
- json_free_object(root);
+ json_print(root);
}
static void json_boot_part_log(void *bp_log, const char *devname,
json_object_add_value_uint(root, "bpsz",
le32_to_cpu(hdr->bpinfo) & 0x7fff);
- json_print_object(root, NULL);
- printf("\n");
- json_free_object(root);
+ json_print(root);
}
/* Printable Eye string is allocated and returned, caller must free */
struct json_object *root)
{
char *eye = (char *)lane->eye_desc;
-
char *printable = malloc(lane->nrows * lane->ncols + lane->ncols);
char *printable_start = printable;
+ int i, j;
+
if (!printable)
goto exit;
- int i, j;
for (i = 0; i < lane->nrows; i++) {
for (j = 0; j < lane->ncols; j++, printable++)
sprintf(printable, "%c", eye[i * lane->ncols + j]);
void *p = log->descs;
uint16_t num_descs = le16_to_cpu(log->nd);
int i;
- struct json_object *descs;
+ struct json_object *descs = json_create_array();
- descs = json_create_array();
json_object_add_value_array(root, "descs", descs);
for (i = 0; i < num_descs; i++) {
json_phy_rx_eom_descs(log, root, allocated_eyes);
}
- json_print_object(root, NULL);
- printf("\n");
-
if (allocated_eyes) {
for (i = 0; i < log->nd; i++) {
/* Free any Printable Eye strings allocated */
}
free(allocated_eyes);
}
- json_free_object(root);
+
+ json_print(root);
}
static void json_media_unit_stat_log(struct nvme_media_unit_stat_log *mus)
}
json_object_add_value_array(root, "mus_list", entries);
- json_print_object(root, NULL);
- printf("\n");
- json_free_object(root);
+ json_print(root);
}
static void json_supported_cap_config_log(
}
json_object_add_value_array(root, "Capacity Descriptor", cap_list);
- json_print_object(root, NULL);
- printf("\n");
- json_free_object(root);
+ json_print(root);
}
static void json_nvme_fdp_configs(struct nvme_fdp_config_log *log, size_t len)
json_object_add_value_array(root, "configs", obj_configs);
- json_print_object(root, NULL);
- printf("\n");
-
- json_free_object(root);
+ json_print(root);
}
static void json_nvme_fdp_usage(struct nvme_fdp_ruhu_log *log, size_t len)
json_object_add_value_array(root, "ruhus", obj_ruhus);
- json_print_object(root, NULL);
- printf("\n");
-
- json_free_object(root);
+ json_print(root);
}
static void json_nvme_fdp_stats(struct nvme_fdp_stats_log *log)
json_object_add_value_uint128(root, "mbmw", le128_to_cpu(log->mbmw));
json_object_add_value_uint128(root, "mbe", le128_to_cpu(log->mbe));
- json_print_object(root, NULL);
- printf("\n");
-
- json_free_object(root);
+ json_print(root);
}
static void json_nvme_fdp_events(struct nvme_fdp_events_log *log)
json_object_add_value_array(root, "events", obj_events);
- json_print_object(root, NULL);
- printf("\n");
-
- json_free_object(root);
+ json_print(root);
}
static void json_nvme_fdp_ruh_status(struct nvme_fdp_ruh_status *status, size_t len)
json_object_add_value_array(root, "ruhss", obj_ruhss);
- json_print_object(root, NULL);
- printf("\n");
-
- json_free_object(root);
+ json_print(root);
}
static unsigned int json_print_nvme_subsystem_multipath(nvme_subsystem_t s, json_object *paths)
json_object_add_value_array(host_attrs, "Subsystems", subsystems);
json_array_add_value_object(root, host_attrs);
}
- json_print_object(root, NULL);
- printf("\n");
- json_free_object(root);
+ json_print(root);
}
static void json_ctrl_registers(void *bar, bool fabrics)
json_object_add_value_int(root, "pmrswtp", pmrswtp);
json_object_add_value_uint(root, "pmrmscl", pmrmscl);
json_object_add_value_uint(root, "pmrmscu", pmrmscu);
- json_print_object(root, NULL);
- printf("\n");
- json_free_object(root);
+ json_print(root);
}
static void d_json(unsigned char *buf, int len, int width, int group,
json_object_add_value_int(root, "endgid", le16_to_cpu(ns->endgid));
json_object_add_value_int(root, "nstat", ns->nstat);
- json_print_object(root, NULL);
- printf("\n");
- json_free_object(root);
+ json_print(root);
}
static void json_nvme_id_ns_descs(void *data, unsigned int nsid)
if (json_array)
json_object_add_value_array(root, "ns-descs", json_array);
- json_print_object(root, NULL);
- printf("\n");
-
- json_free_object(root);
+ json_print(root);
}
static void json_nvme_id_ctrl_nvm(struct nvme_id_ctrl_nvm *ctrl_nvm)
json_object_add_value_uint(root, "dmrsl", le32_to_cpu(ctrl_nvm->dmrsl));
json_object_add_value_uint64(root, "dmsl", le64_to_cpu(ctrl_nvm->dmsl));
- json_print_object(root, NULL);
- printf("\n");
- json_free_object(root);
+ json_print(root);
}
static void json_nvme_nvm_id_ns(struct nvme_nvm_id_ns *nvm_ns,
json_array_add_value_object(elbafs, elbaf);
}
- json_print_object(root, NULL);
- printf("\n");
- json_free_object(root);
+ json_print(root);
}
static void json_nvme_zns_id_ctrl(struct nvme_zns_id_ctrl *ctrl)
json_object_add_value_int(root, "zasl", ctrl->zasl);
- json_print_object(root, NULL);
- printf("\n");
- json_free_object(root);
+ json_print(root);
}
static void json_nvme_zns_id_ns(struct nvme_zns_id_ns *ns,
json_array_add_value_object(lbafs, lbaf);
}
- json_print_object(root, NULL);
- printf("\n");
- json_free_object(root);
+ json_print(root);
}
static void json_nvme_list_ns(struct nvme_ns_list *ns_list)
}
}
json_object_add_value_array(root, "nsid_list", valid);
- json_print_object(root, NULL);
- printf("\n");
- json_free_object(root);
+ json_print(root);
}
static void json_zns_start_zone_list(__u64 nr_zones, struct json_object **zone_list)
json_object_add_value_uint(root, "nr_zones", nr_zones);
json_object_add_value_array(root, "zone_list", zone_list);
- json_print_object(root, NULL);
- printf("\n");
- json_free_object(root);
+ json_print(root);
}
static void json_nvme_zns_report_zones(void *report, __u32 descs,
}
json_object_add_value_array(root, "ctrl_list", valid);
- json_print_object(root, NULL);
- printf("\n");
- json_free_object(root);
+ json_print(root);
}
static void json_nvme_id_nvmset(struct nvme_id_nvmset_list *nvmset,
}
json_object_add_value_array(root, "NVMSet", entries);
- json_print_object(root, NULL);
- printf("\n");
- json_free_object(root);
+ json_print(root);
}
static void json_nvme_primary_ctrl_cap(const struct nvme_primary_ctrl_cap *caps)
json_object_add_value_int(root, "vifrsm", le16_to_cpu(caps->vifrsm));
json_object_add_value_int(root, "vigran", le16_to_cpu(caps->vigran));
- json_print_object(root, NULL);
- printf("\n");
- json_free_object(root);
+ json_print(root);
}
static void json_nvme_list_secondary_ctrl(const struct nvme_secondary_ctrl_list *sc_list,
json_object_add_value_array(root, "secondary-controllers", entries);
- json_print_object(root, NULL);
- printf("\n");
- json_free_object(root);
+ json_print(root);
}
static void json_nvme_id_ns_granularity_list(
json_object_add_value_array(root, "namespace-granularity-list", entries);
- json_print_object(root, NULL);
- printf("\n");
- json_free_object(root);
+ json_print(root);
}
static void json_nvme_id_uuid_list(const struct nvme_id_uuid_list *uuid_list)
json_array_add_value_object(entries, entry);
}
json_object_add_value_array(root, "UUID-list", entries);
- json_print_object(root, NULL);
- printf("\n");
- json_free_object(root);
+ json_print(root);
}
static void json_id_domain_list(struct nvme_id_domain_list *id_dom)
}
json_object_add_value_array(root, "domain_list", entries);
- json_print_object(root, NULL);
- printf("\n");
- json_free_object(root);
+ json_print(root);
}
static void json_nvme_endurance_group_list(struct nvme_id_endurance_group_list *endgrp_list)
}
json_object_add_value_array(root, "endgrp_list", valid);
- json_print_object(root, NULL);
- printf("\n");
- json_free_object(root);
+ json_print(root);
}
static void json_support_log(struct nvme_supported_log_pages *support_log,
}
json_object_add_value_object(root, "supported_logs", valid);
- json_print_object(root, NULL);
- printf("\n");
- json_free_object(root);
+ json_print(root);
}
static void json_detail_list(nvme_root_t r)
json_object_add_value_array(host_attrs, "Subsystems", subsystems);
json_array_add_value_object(root, host_attrs);
}
- json_print_object(root, NULL);
- printf("\n");
- json_free_object(root);
+ json_print(root);
}
static void json_directive_show_fields_identify(__u8 doper, __u8 *field, struct json_object *root)
json_object_add_value_array(root, "data", data);
}
- json_print_object(root, NULL);
- printf("\n");
- json_free_object(root);
+ json_print(root);
}
static void json_discovery_log(struct nvmf_discovery_log *log, int numrec)
}
json_array_add_value_object(entries, entry);
}
- json_print_object(root, NULL);
- printf("\n");
- json_free_object(root);
+ json_print(root);
}
static void json_connect_msg(nvme_ctrl_t c)
json_object_add_value_string(root, "device", nvme_ctrl_get_name(c));
- json_print_object(root, NULL);
- printf("\n");
- json_free_object(root);
+ json_print(root);
}
static void json_output_object(struct json_object *root)
{
- json_print_object(root, NULL);
- printf("\n");
- json_free_object(root);
+ json_print(root);
}
static void json_output_status(int status)