From e853da696ea4bdcad0e1e03f46f128940e236aa4 Mon Sep 17 00:00:00 2001 From: Tokunori Ikegami Date: Mon, 22 May 2023 00:51:52 +0900 Subject: [PATCH] nvme-print-json: Add json output result function Signed-off-by: Tokunori Ikegami --- nvme-print-json.c | 17 +++++++++-------- nvme-print-json.h | 6 +++++- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/nvme-print-json.c b/nvme-print-json.c index d9b19c96..a3791792 100644 --- a/nvme-print-json.c +++ b/nvme-print-json.c @@ -2857,22 +2857,23 @@ void json_output_status(int status) json_output_object(root); } -void json_output_error(const char *msg, va_list ap) +void json_output_message(bool error, const char *msg, va_list ap) { struct json_object *root = json_create_object(); - char *error; + char *value; + const char *key = error ? "error" : "result"; - if (vasprintf(&error, msg, ap) < 0) - error = NULL; + if (vasprintf(&value, msg, ap) < 0) + value = NULL; - if (error) - json_object_add_value_string(root, "error", error); + if (value) + json_object_add_value_string(root, key, value); else - json_object_add_value_string(root, "error", "Could not allocate string"); + json_object_add_value_string(root, key, "Could not allocate string"); json_output_object(root); - free(error); + free(value); } void json_output_perror(const char *msg) diff --git a/nvme-print-json.h b/nvme-print-json.h index d81ff019..f9b27174 100644 --- a/nvme-print-json.h +++ b/nvme-print-json.h @@ -5,6 +5,9 @@ #ifdef CONFIG_JSONC +#define json_output_error(msg, ap) json_output_message(true, msg, ap) +#define json_output_result(msg, ap) json_output_message(false, msg, ap) + void json_simple_topology(nvme_root_t r); void json_print_list_items(nvme_root_t r, enum nvme_print_flags flags); @@ -79,7 +82,7 @@ void json_predictable_latency_per_nvmset( struct nvme_nvmset_predictable_lat_log *plpns_log, __u16 nvmset_id); void json_output_status(int status); -void json_output_error(const char *msg, va_list ap); +void json_output_message(bool error, const char *msg, va_list ap); void json_output_perror(const char *msg); /* fabrics.c */ @@ -142,6 +145,7 @@ void json_connect_msg(nvme_ctrl_t c); #define json_output_status(status) #define json_output_error(const char *msg, va_list ap) #define json_output_perror(const char *msg) +#define json_output_result(const char *msg, va_list ap) /* fabrics.c */ #define json_discovery_log(log, numrec) -- 2.49.0