#include "nvme.h"
#include "libnvme.h"
#include "plugin.h"
+#include "nvme-print.h"
#define CREATE_CMD
#include "amzn-nvme.h"
#define AMZN_NVME_STATS_LOGPAGE_ID 0xD0
#define AMZN_NVME_STATS_MAGIC 0x3C23B510
+#ifdef CONFIG_JSONC
#define array_add_obj json_array_add_value_object
#define obj_add_array json_object_add_value_array
#define obj_add_obj json_object_add_value_object
#define obj_add_uint json_object_add_value_uint
#define obj_add_uint64 json_object_add_value_uint64
+#endif /* CONFIG_JSONC */
struct nvme_vu_id_ctrl_field {
__u8 bdev[32];
printf("=================================\n\n");
}
+#ifdef CONFIG_JSONC
static void amzn_json_add_histogram(struct json_object *root,
struct amzn_latency_histogram *hist)
{
json_free_object(root);
}
+#endif /* CONFIG_JSONC */
static void amzn_print_normal_stats(struct amzn_latency_log_page *log)
{
struct nvme_dev *dev;
struct amzn_latency_log_page log = { 0 };
int rc;
+ nvme_print_flags_t flags;
+ int err;
struct config {
char *output_format;
return -ENOTSUP;
}
+ err = validate_output_format(cfg.output_format, &flags);
+ if (err < 0) {
+ nvme_show_error("Invalid output format");
+ return err;
+ }
+
+#ifdef CONFIG_JSONC
if (!strcmp(cfg.output_format, "json"))
amzn_print_json_stats(&log);
else
+#endif /* CONFIG_JSONC */
amzn_print_normal_stats(&log);
return 0;
if json_c_dep.found()
sources += [
- 'plugins/amzn/amzn-nvme.c',
'plugins/dapustor/dapustor-nvme.c',
'plugins/dell/dell-nvme.c',
'plugins/fdp/fdp.c',
endif
sources += [
+ 'plugins/amzn/amzn-nvme.c',
'plugins/dera/dera-nvme.c',
'plugins/innogrit/innogrit-nvme.c',
'plugins/inspur/inspur-nvme.c',