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)
#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);
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 */
#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)