From: Tokunori Ikegami Date: Sun, 21 May 2023 15:51:52 +0000 (+0900) Subject: nvme-print-json: Add json output result function X-Git-Tag: v2.5~91 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=e853da696ea4bdcad0e1e03f46f128940e236aa4;p=users%2Fsagi%2Fnvme-cli.git nvme-print-json: Add json output result function Signed-off-by: Tokunori Ikegami --- 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)