if json_c_dep.found()
sources += [
- 'plugins/seagate/seagate-nvme.c',
'plugins/solidigm/solidigm-nvme.c',
'plugins/ssstc/ssstc-nvme.c',
'plugins/wdc/wdc-nvme.c',
'plugins/netapp/netapp-nvme.c',
'plugins/nvidia/nvidia-nvme.c',
'plugins/scaleflux/sfx-nvme.c',
+ 'plugins/seagate/seagate-nvme.c',
'plugins/shannon/shannon-nvme.c',
'plugins/toshiba/toshiba-nvme.c',
'plugins/transcend/transcend-nvme.c',
int index;
const char *desc = "Retrieve Seagate Temperature Stats information for the given device ";
const char *output_format = "output in binary format";
+ nvme_print_flags_t flags;
unsigned int temperature = 0, PcbTemp = 0, SocTemp = 0, scCurrentTemp = 0, scMaxTemp = 0;
unsigned long long maxTemperature = 0, MaxSocTemp = 0;
struct nvme_dev *dev;
return -1;
}
- if (strcmp(cfg.output_format, "json"))
+ err = validate_output_format(cfg.output_format, &flags);
+ if (err < 0) {
+ nvme_show_error("Invalid output format");
+ return err;
+ }
+
+ if (flags & NORMAL)
printf("Seagate Temperature Stats Information :\n");
/*STEP-1 : Get Current Temperature from SMART */
err = nvme_get_log_smart(dev_fd(dev), 0xffffffff, false, &smart_log);
PcbTemp = PcbTemp ? PcbTemp - 273 : 0;
SocTemp = le16_to_cpu(smart_log.temp_sensor[1]);
SocTemp = SocTemp ? SocTemp - 273 : 0;
- if (strcmp(cfg.output_format, "json")) {
+ if (flags & NORMAL) {
printf("%-20s : %u C\n", "Current Temperature", temperature);
printf("%-20s : %u C\n", "Current PCB Temperature", PcbTemp);
printf("%-20s : %u C\n", "Current SOC Temperature", SocTemp);
if (ExtdSMARTInfo.vendorData[index].AttributeNumber == VS_ATTR_ID_MAX_LIFE_TEMPERATURE) {
maxTemperature = smart_attribute_vs(ExtdSMARTInfo.Version, ExtdSMARTInfo.vendorData[index]);
maxTemperature = maxTemperature ? maxTemperature - 273 : 0;
- if (strcmp(cfg.output_format, "json"))
+ if (flags & NORMAL)
printf("%-20s : %d C\n", "Highest Temperature", (unsigned int)maxTemperature);
}
if (ExtdSMARTInfo.vendorData[index].AttributeNumber == VS_ATTR_ID_MAX_SOC_LIFE_TEMPERATURE) {
MaxSocTemp = smart_attribute_vs(ExtdSMARTInfo.Version, ExtdSMARTInfo.vendorData[index]);
MaxSocTemp = MaxSocTemp ? MaxSocTemp - 273 : 0;
- if (strcmp(cfg.output_format, "json"))
+ if (flags & NORMAL)
printf("%-20s : %d C\n", "Max SOC Temperature", (unsigned int)MaxSocTemp);
}
}
printf("%-20s : %d C\n", "Super-cap Max Temperature", scMaxTemp);
}
- if (!strcmp(cfg.output_format, "json"))
+ if (flags & JSON)
json_temp_stats(temperature, PcbTemp, SocTemp, maxTemperature, MaxSocTemp, cf_err, scCurrentTemp, scMaxTemp);
dev_close(dev);
const char *desc = "Retrieve Seagate PCIe error counters for the given device ";
const char *output_format = "output in binary format";
int err;
+ nvme_print_flags_t flags;
struct config {
char *output_format;
};
return -1;
}
- if (strcmp(cfg.output_format, "json"))
+ err = validate_output_format(cfg.output_format, &flags);
+ if (err < 0) {
+ nvme_show_error("Invalid output format");
+ return err;
+ }
+
+ if (flags & NORMAL)
printf("Seagate PCIe error counters Information :\n");
err = nvme_get_log_simple(dev_fd(dev), 0xCB,
sizeof(pcieErrorLog), &pcieErrorLog);
if (!err) {
- if (strcmp(cfg.output_format, "json"))
+ if (flags & NORMAL)
print_vs_pcie_error_log(pcieErrorLog);
else
json_vs_pcie_error_log(pcieErrorLog);
const char *desc = "Retrieve FW Activate History for Seagate device ";
const char *output_format = "output in binary format";
int err;
+ nvme_print_flags_t flags;
struct config {
char *output_format;
};
return -1;
}
- if (strcmp(cfg.output_format, "json"))
+ err = validate_output_format(cfg.output_format, &flags);
+ if (err < 0) {
+ nvme_show_error("Invalid output format");
+ return err;
+ }
+
+ if (flags & NORMAL)
printf("Seagate FW Activation History Information :\n");
err = nvme_get_log_simple(dev_fd(dev), 0xC2, sizeof(fwActivHis), &fwActivHis);
if (!err) {
- if (strcmp(cfg.output_format, "json"))
+ if (flags & NORMAL)
print_stx_vs_fw_activate_history(fwActivHis);
else
json_stx_vs_fw_activate_history(fwActivHis);
-
} else if (err > 0) {
nvme_show_status(err);
}
#define json_object_add_value_string(o, k, v)
#define json_create_object(o) NULL
+#define json_create_array(a) NULL
#define json_free_object(o) ((void)(o))
#define json_object_add_value_uint(o, k, v)
-#define json_object_add_value_int(o, k, v)
-#define json_print_object(o, u)
+#define json_object_add_value_int(o, k, v) ((void)(v))
#define json_object_add_value_double(o, k, v)
+#define json_object_add_value_array(o, k, v) ((void)(v))
#define json_object_add_value_object(o, k, v) ((void)(v))
+#define json_array_add_value_object(o, k) ((void)(k))
+#define json_print_object(o, u) ((void)(o))
#endif /* CONFIG_JSONC */
#endif /* __JSON__H */