json_object_add_value_int(root, "nabo", le16_to_cpu(ns->nabo));
json_object_add_value_int(root, "nabspf", le16_to_cpu(ns->nabspf));
json_object_add_value_int(root, "noiob", le16_to_cpu(ns->noiob));
- json_object_add_value_float(root, "nvmcap", nvmcap);
+ json_object_add_value_double(root, "nvmcap", nvmcap);
json_object_add_value_int(root, "nsattr", ns->nsattr);
json_object_add_value_int(root, "nvmsetid", le16_to_cpu(ns->nvmsetid));
json_object_add_value_int(root, "mtfa", le16_to_cpu(ctrl->mtfa));
json_object_add_value_uint(root, "hmpre", le32_to_cpu(ctrl->hmpre));
json_object_add_value_uint(root, "hmmin", le32_to_cpu(ctrl->hmmin));
- json_object_add_value_float(root, "tnvmcap", tnvmcap);
- json_object_add_value_float(root, "unvmcap", unvmcap);
+ json_object_add_value_double(root, "tnvmcap", tnvmcap);
+ json_object_add_value_double(root, "unvmcap", unvmcap);
json_object_add_value_uint(root, "rpmbs", le32_to_cpu(ctrl->rpmbs));
json_object_add_value_int(root, "edstt", le16_to_cpu(ctrl->edstt));
json_object_add_value_int(root, "dsto", ctrl->dsto);
json_object_add_value_int(root, "nanagrpid",
le32_to_cpu(ctrl->nanagrpid));
json_object_add_value_int(root, "domainid", le16_to_cpu(ctrl->domainid));
- json_object_add_value_float(root, "megcap", megcap);
+ json_object_add_value_double(root, "megcap", megcap);
json_object_add_value_int(root, "sqes", ctrl->sqes);
json_object_add_value_int(root, "cqes", ctrl->cqes);
json_object_add_value_int(root, "maxcmd", le16_to_cpu(ctrl->maxcmd));
json_object_add_value_int(root, "acwu", le16_to_cpu(ctrl->acwu));
json_object_add_value_int(root, "ocfs", le16_to_cpu(ctrl->ocfs));
json_object_add_value_int(root, "sgls", le32_to_cpu(ctrl->sgls));
- json_object_add_value_float(root, "maxdna", maxdna);
+ json_object_add_value_double(root, "maxdna", maxdna);
json_object_add_value_int(root, "maxcna", le32_to_cpu(ctrl->maxcna));
if (strlen(subnqn))
endurance_group->avl_spare_threshold);
json_object_add_value_int(root, "percent_used",
endurance_group->percent_used);
- json_object_add_value_float(root, "endurance_estimate",
+ json_object_add_value_double(root, "endurance_estimate",
endurance_estimate);
- json_object_add_value_float(root, "data_units_read", data_units_read);
- json_object_add_value_float(root, "data_units_written",
+ json_object_add_value_double(root, "data_units_read", data_units_read);
+ json_object_add_value_double(root, "data_units_written",
data_units_written);
- json_object_add_value_float(root, "mediate_write_commands",
+ json_object_add_value_double(root, "mediate_write_commands",
media_units_written);
- json_object_add_value_float(root, "host_read_cmds", host_read_cmds);
- json_object_add_value_float(root, "host_write_cmds", host_write_cmds);
- json_object_add_value_float(root, "media_data_integrity_err",
+ json_object_add_value_double(root, "host_read_cmds", host_read_cmds);
+ json_object_add_value_double(root, "host_write_cmds", host_write_cmds);
+ json_object_add_value_double(root, "media_data_integrity_err",
media_data_integrity_err);
- json_object_add_value_float(root, "num_err_info_log_entries",
+ json_object_add_value_double(root, "num_err_info_log_entries",
num_err_info_log_entries);
json_print_object(root, NULL);
json_object_add_value_int(root, "percent_used", smart->percent_used);
json_object_add_value_int(root, "endurance_grp_critical_warning_summary",
smart->endu_grp_crit_warn_sumry);
- json_object_add_value_float(root, "data_units_read", data_units_read);
- json_object_add_value_float(root, "data_units_written",
+ json_object_add_value_double(root, "data_units_read", data_units_read);
+ json_object_add_value_double(root, "data_units_written",
data_units_written);
- json_object_add_value_float(root, "host_read_commands",
+ json_object_add_value_double(root, "host_read_commands",
host_read_commands);
- json_object_add_value_float(root, "host_write_commands",
+ json_object_add_value_double(root, "host_write_commands",
host_write_commands);
- json_object_add_value_float(root, "controller_busy_time",
+ json_object_add_value_double(root, "controller_busy_time",
controller_busy_time);
- json_object_add_value_float(root, "power_cycles", power_cycles);
- json_object_add_value_float(root, "power_on_hours", power_on_hours);
- json_object_add_value_float(root, "unsafe_shutdowns", unsafe_shutdowns);
- json_object_add_value_float(root, "media_errors", media_errors);
- json_object_add_value_float(root, "num_err_log_entries",
+ json_object_add_value_double(root, "power_cycles", power_cycles);
+ json_object_add_value_double(root, "power_on_hours", power_on_hours);
+ json_object_add_value_double(root, "unsafe_shutdowns", unsafe_shutdowns);
+ json_object_add_value_double(root, "media_errors", media_errors);
+ json_object_add_value_double(root, "num_err_log_entries",
num_err_log_entries);
json_object_add_value_uint(root, "warning_temp_time",
le32_to_cpu(smart->warning_temp_time));
le16_to_cpu(pevent_log_head->lhl));
json_object_add_value_uint64(root, "timestamp",
le64_to_cpu(pevent_log_head->ts));
- json_object_add_value_float(root, "power_on_hours",
+ json_object_add_value_double(root, "power_on_hours",
int128_to_double(pevent_log_head->poh));
json_object_add_value_uint64(root, "power_cycle_count",
le64_to_cpu(pevent_log_head->pcc));
json_object_add_value_int(valid_attrs,
"endurance_grp_critical_warning_summary",
smart_event->endu_grp_crit_warn_sumry);
- json_object_add_value_float(valid_attrs, "data_units_read",
+ json_object_add_value_double(valid_attrs, "data_units_read",
data_units_read);
- json_object_add_value_float(valid_attrs, "data_units_written",
+ json_object_add_value_double(valid_attrs, "data_units_written",
data_units_written);
- json_object_add_value_float(valid_attrs, "host_read_commands",
+ json_object_add_value_double(valid_attrs, "host_read_commands",
host_read_commands);
- json_object_add_value_float(valid_attrs, "host_write_commands",
+ json_object_add_value_double(valid_attrs, "host_write_commands",
host_write_commands);
- json_object_add_value_float(valid_attrs, "controller_busy_time",
+ json_object_add_value_double(valid_attrs, "controller_busy_time",
controller_busy_time);
- json_object_add_value_float(valid_attrs, "power_cycles",
+ json_object_add_value_double(valid_attrs, "power_cycles",
power_cycles);
- json_object_add_value_float(valid_attrs, "power_on_hours",
+ json_object_add_value_double(valid_attrs, "power_on_hours",
power_on_hours);
- json_object_add_value_float(valid_attrs, "unsafe_shutdowns",
+ json_object_add_value_double(valid_attrs, "unsafe_shutdowns",
unsafe_shutdowns);
- json_object_add_value_float(valid_attrs, "media_errors",
+ json_object_add_value_double(valid_attrs, "media_errors",
media_errors);
- json_object_add_value_float(valid_attrs, "num_err_log_entries",
+ json_object_add_value_double(valid_attrs, "num_err_log_entries",
num_err_log_entries);
json_object_add_value_uint(valid_attrs, "warning_temp_time",
le32_to_cpu(smart_event->warning_temp_time));
le16_to_cpu(cap_log->cap_config_desc[i].egcd[j].endgid));
json_object_add_value_uint(endurance, "cap_adj_factor",
le16_to_cpu(cap_log->cap_config_desc[i].egcd[j].cap_adj_factor));
- json_object_add_value_float(endurance, "tegcap",
+ json_object_add_value_double(endurance, "tegcap",
int128_to_double(cap_log->cap_config_desc[i].egcd[j].tegcap));
- json_object_add_value_float(endurance, "segcap",
+ json_object_add_value_double(endurance, "segcap",
int128_to_double(cap_log->cap_config_desc[i].egcd[j].segcap));
json_object_add_value_uint(endurance, "egsets",
le16_to_cpu(cap_log->cap_config_desc[i].egcd[j].egsets));
le32_to_cpu(nvmset->ent[i].rr4kt));
json_object_add_value_int(entry, "optimal_write_size",
le32_to_cpu(nvmset->ent[i].ows));
- json_object_add_value_float(entry, "total_nvmset_cap",
+ json_object_add_value_double(entry, "total_nvmset_cap",
int128_to_double(nvmset->ent[i].tnvmsetcap));
- json_object_add_value_float(entry, "unalloc_nvmset_cap",
+ json_object_add_value_double(entry, "unalloc_nvmset_cap",
int128_to_double(nvmset->ent[i].unvmsetcap));
json_array_add_value_object(entries, entry);
}
max_egrp_dom_cap = int128_to_double(id_dom->domain_attr[i].max_egrp_dom_cap);
json_object_add_value_uint(entry, "dom_id", le16_to_cpu(id_dom->domain_attr[i].dom_id));
- json_object_add_value_float(entry, "dom_cap", dom_cap);
- json_object_add_value_float(entry, "unalloc_dom_cap", unalloc_dom_cap);
- json_object_add_value_float(entry, "max_egrp_dom_cap", max_egrp_dom_cap);
+ json_object_add_value_double(entry, "dom_cap", dom_cap);
+ json_object_add_value_double(entry, "unalloc_dom_cap", unalloc_dom_cap);
+ json_object_add_value_double(entry, "max_egrp_dom_cap", max_egrp_dom_cap);
json_array_add_value_object(entries, entry);
}
raw = (__u64*)&bd_data->raw_value[0];
json_object_add_value_int(root, "timed_workload_media_wear normalized",
bd_data->normalized_value);
- json_object_add_value_float(root, "timed_workload_media_wear raw",
+ json_object_add_value_double(root, "timed_workload_media_wear raw",
safe_div_fp((*raw & 0x00FFFFFFFFFFFFFF), 1024.0));
} else {
goto invalid_id;
raw = (__u64*)&bd_data->raw_value[0];
json_object_add_value_int(root, "nand_bytes_written normalized",
bd_data->normalized_value);
- json_object_add_value_float(root, "nand_bytes_written raw",
+ json_object_add_value_double(root, "nand_bytes_written raw",
safe_div_fp((*raw & 0x00FFFFFFFFFFFFFF), 0xFFFF));
} else {
goto invalid_id;
raw = (__u64*)&bd_data->raw_value[0];
json_object_add_value_int(root, "host_bytes_written normalized",
bd_data->normalized_value);
- json_object_add_value_float(root, "host_bytes_written raw",
+ json_object_add_value_double(root, "host_bytes_written raw",
safe_div_fp((*raw & 0x00FFFFFFFFFFFFFF), 0xFFFF));
} else {
goto invalid_id;
struct json_object *root;
root = json_create_object();
- json_object_add_value_float(root, "physical_media_units_bytes_tlc",
+ json_object_add_value_double(root, "physical_media_units_bytes_tlc",
int128_to_double(ext_smart_log_ptr->ext_smart_pmuwt));
- json_object_add_value_float(root, "physical_media_units_bytes_slc",
+ json_object_add_value_double(root, "physical_media_units_bytes_slc",
int128_to_double(ext_smart_log_ptr->ext_smart_pmuws));
json_object_add_value_uint(root, "bad_user_blocks_normalized",
le16_to_cpu(*(uint16_t *)ext_smart_log_ptr->ext_smart_bunbc));
le64_to_cpu(ext_smart_log_ptr->ext_smart_svn));
json_object_add_value_uint(root, "pct_free_blocks_system",
(__u8)ext_smart_log_ptr->ext_smart_pfbs);
- json_object_add_value_float(root, "num_of_trim_commands",
+ json_object_add_value_double(root, "num_of_trim_commands",
int128_to_double(ext_smart_log_ptr->ext_smart_dcc));
json_object_add_value_uint64(root, "total_nuse_bytes",
le64_to_cpu(ext_smart_log_ptr->ext_smart_tnu));
le16_to_cpu(*(uint16_t *)ext_smart_log_ptr->ext_smart_bsnbc));
json_object_add_value_uint64(root, "bad_system_block_raw",
le64_to_cpu(*(uint64_t *)ext_smart_log_ptr->ext_smart_bsnbc & 0xFFFFFFFFFFFF0000));
- json_object_add_value_float(root, "endurance_est_bytes",
+ json_object_add_value_double(root, "endurance_est_bytes",
int128_to_double(ext_smart_log_ptr->ext_smart_eest));
if (mask == WDC_SCA_V1_ALL) {
json_object_add_value_uint(root, "num_throttling_events",
json_object_add_value_uint64(root, "total_unaligned_io",
le64_to_cpu(ext_smart_log_ptr->ext_smart_uio));
}
- json_object_add_value_float(root, "physical_media_units_read_bytes",
+ json_object_add_value_double(root, "physical_media_units_read_bytes",
int128_to_double(ext_smart_log_ptr->ext_smart_pmur));
if (mask == WDC_SCA_V1_ALL) {
json_object_add_value_uint(root, "num_read_timeouts",
uint16_t smart_log_ver = 0;
root = json_create_object();
- json_object_add_value_float(root, "Physical media units written",
+ json_object_add_value_double(root, "Physical media units written",
int128_to_double(&log_data[SCAO_PMUW]));
- json_object_add_value_float(root, "Physical media units read",
+ json_object_add_value_double(root, "Physical media units read",
int128_to_double(&log_data[SCAO_PMUR]));
json_object_add_value_uint64(root, "Bad user nand blocks - Raw",
(uint64_t)le64_to_cpu(*(uint64_t *)&log_data[SCAO_BUNBR] & 0x0000FFFFFFFFFFFF));
(uint64_t)le64_to_cpu(*(uint64_t *)&log_data[SCAO_SVN]));
json_object_add_value_uint64(root, "NUSE - Namespace utilization",
(uint64_t)le64_to_cpu(*(uint64_t *)&log_data[SCAO_NUSE]));
- json_object_add_value_float(root, "PLP start count",
+ json_object_add_value_double(root, "PLP start count",
int128_to_double(&log_data[SCAO_PSC]));
- json_object_add_value_float(root, "Endurance estimate",
+ json_object_add_value_double(root, "Endurance estimate",
int128_to_double(&log_data[SCAO_EEST]));
smart_log_ver = (uint16_t)le16_to_cpu(*(uint16_t *)&log_data[SCAO_LPV]);
json_object_add_value_uint(root, "Log page version", smart_log_ver);
case 0:
- json_object_add_value_float(root, "NAND Writes TLC (Bytes)",
+ json_object_add_value_double(root, "NAND Writes TLC (Bytes)",
int128_to_double(nand_stats->nand_write_tlc));
- json_object_add_value_float(root, "NAND Writes SLC (Bytes)",
+ json_object_add_value_double(root, "NAND Writes SLC (Bytes)",
int128_to_double(nand_stats->nand_write_slc));
json_object_add_value_uint(root, "NAND Program Failures",
le32_to_cpu(nand_stats->nand_prog_failure));
case 3:
- json_object_add_value_float(root, "NAND Writes TLC (Bytes)",
+ json_object_add_value_double(root, "NAND Writes TLC (Bytes)",
int128_to_double(nand_stats_v3->nand_write_tlc));
- json_object_add_value_float(root, "NAND Writes SLC (Bytes)",
+ json_object_add_value_double(root, "NAND Writes SLC (Bytes)",
int128_to_double(nand_stats_v3->nand_write_slc));
temp_ptr = (__u64 *)nand_stats_v3->bad_nand_block_count;
temp_norm = (__u16)(*temp_ptr & 0x000000000000FFFF);
le64_to_cpu(nand_stats_v3->security_version_number));
json_object_add_value_uint(root, "% Free Blocks (System)",
nand_stats_v3->percent_free_blocks_system);
- json_object_add_value_float(root, "Data Set Management Commands",
+ json_object_add_value_double(root, "Data Set Management Commands",
int128_to_double(nand_stats_v3->trim_completions));
json_object_add_value_uint64(root, "Estimate of Incomplete Trim Data",
le64_to_cpu(nand_stats_v3->trim_completions[16]));
le16_to_cpu(temp_norm));
json_object_add_value_uint64(root, "Bad System Nand Block Count - Raw",
le64_to_cpu(temp_raw));
- json_object_add_value_float(root, "Endurance Estimate",
+ json_object_add_value_double(root, "Endurance Estimate",
int128_to_double(nand_stats_v3->endurance_estimate));
json_object_add_value_uint(root, "Thermal Throttling Status",
nand_stats_v3->thermal_throttling_st_ct[0]);
nand_stats_v3->thermal_throttling_st_ct[1]);
json_object_add_value_uint64(root, "Unaligned I/O",
le64_to_cpu(nand_stats_v3->unaligned_IO));
- json_object_add_value_float(root, "Physical Media Units Read",
+ json_object_add_value_double(root, "Physical Media Units Read",
int128_to_double(nand_stats_v3->physical_media_units));
json_object_add_value_uint(root, "log page version",
le16_to_cpu(nand_stats_v3->log_page_version));