Merge both structure to have just a single json_object structure.
Signed-off-by: Hannes Reinecke <hare@suse.de>
static void json_discovery_log(struct nvmf_disc_rsp_page_hdr *log, int numrec)
{
struct json_object *root;
- struct json_array *entries;
+ struct json_object *entries;
int i;
root = json_create_object();
#include <time.h>
#include <sys/stat.h>
+#include "nvme.h"
#include "nvme-print.h"
-#include "util/json.h"
#include "nvme-models.h"
#include "util/suffix.h"
#include "common.h"
eui64_buf[2 * sizeof(ns->eui64) + 1];
char *nguid = nguid_buf, *eui64 = eui64_buf;
struct json_object *root;
- struct json_array *lbafs;
+ struct json_object *lbafs;
int i;
long double nvmcap = int128_to_double(ns->nvmcap);
void (*vs)(__u8 *vs, struct json_object *root))
{
struct json_object *root;
- struct json_array *psds;
+ struct json_object *psds;
long double tnvmcap = int128_to_double(ctrl->tnvmcap);
long double unvmcap = int128_to_double(ctrl->unvmcap);
static void json_error_log(struct nvme_error_log_page *err_log, int entries)
{
struct json_object *root;
- struct json_array *errors;
+ struct json_object *errors;
int i;
root = json_create_object();
int bytes, __u32 cdw11)
{
struct json_object *root;
- struct json_array *rcs;
+ struct json_object *rcs;
int i, j, regctl, entries;
regctl = status->regctl[0] | (status->regctl[1] << 8);
int offset = sizeof(struct nvme_ana_rsp_hdr);
struct nvme_ana_rsp_hdr *hdr = ana_log;
struct nvme_ana_group_desc *ana_desc;
- struct json_array *desc_list;
- struct json_array *ns_list;
+ struct json_object *desc_list;
+ struct json_object *ns_list;
struct json_object *desc;
struct json_object *nsid;
struct json_object *root;
{
struct json_object *valid_attrs;
struct json_object *root;
- struct json_array *valid;
+ struct json_object *valid;
int i;
__u32 num_entries;
{
struct json_object *root;
struct json_object *valid_attrs;
- struct json_array *valid;
+ struct json_object *valid;
__u64 num_iter;
__u64 num_entries;
{
struct json_object *root;
struct json_object *valid_attrs;
- struct json_array *valid;
+ struct json_object *valid;
__u32 offset, por_info_len, por_info_list;
__u64 *fw_rev;
char key[128];
{
struct json_object *root;
struct json_object *valid_attrs;
- struct json_array *valid;
+ struct json_object *valid;
root = json_create_object();
json_object_add_value_uint(root, "num_entries_avail",
struct json_object *root;
struct json_object *desc;
struct json_object *element;
- struct json_array *desc_list;
- struct json_array *elements_list;
+ struct json_object *desc_list;
+ struct json_object *elements_list;
struct nvme_lba_status_hdr *hdr;
struct nvme_lba_status_ns_element *ns_element;
struct nvme_lba_status_range_desc *range_desc;
json_object_add_value_array(element, "descs", desc_list);
json_array_add_value_object(elements_list, element);
- }
+ }
json_object_add_value_array(root, "ns_elements", elements_list);
json_print_object(root, NULL);
static void json_print_nvme_subsystem_list(struct nvme_topology *t)
{
struct json_object *subsystem_attrs, *path_attrs;
- struct json_array *subsystems, *paths;
+ struct json_object *subsystems, *paths;
struct json_object *root;
int i, j;
} desc;
struct json_object *root;
- struct json_array *json_array = NULL;
+ struct json_object *json_array = NULL;
off_t off;
int pos, len = 0;
struct nvme_id_ns *id_ns)
{
struct json_object *root;
- struct json_array *lbafs;
+ struct json_object *lbafs;
int i;
root = json_create_object();
static void json_nvme_id_nvmset(struct nvme_id_nvmset *nvmset)
{
__u32 nent = nvmset->nid;
- struct json_array *entries;
+ struct json_object *entries;
struct json_object *root;
int i;
{
const struct nvme_secondary_controller_entry *sc_entry = &sc_list->sc_entry[0];
__u32 nent = min(sc_list->num, count);
- struct json_array *entries;
+ struct json_object *entries;
struct json_object *root;
int i;
{
int i;
struct json_object *root;
- struct json_array *entries;
+ struct json_object *entries;
root = json_create_object();
static void json_nvme_id_uuid_list(const struct nvme_id_uuid_list *uuid_list)
{
struct json_object *root;
- struct json_array *entries;
+ struct json_object *entries;
int i;
root = json_create_object();
{
int i, j, k;
struct json_object *root;
- struct json_array *devices;
+ struct json_object *devices;
char formatter[41] = { 0 };
root = json_create_object();
for (i = 0; i < t->nr_subsystems; i++) {
struct nvme_subsystem *s = &t->subsystems[i];
struct json_object *subsys_attrs;
- struct json_array *namespaces, *ctrls;
+ struct json_object *namespaces, *ctrls;
subsys_attrs = json_create_object();
json_object_add_value_string(subsys_attrs, "Subsystem", s->name);
for (j = 0; j < s->nr_ctrls; j++) {
struct json_object *ctrl_attrs = json_create_object();
struct nvme_ctrl *c = &s->ctrls[j];
- struct json_array *namespaces;
+ struct json_object *namespaces;
json_object_add_value_string(ctrl_attrs, "Controller", c->name);
if (c->transport)
json_free_object(root);
}
-static void json_simple_ns(struct nvme_namespace *n, struct json_array *devices)
+static void json_simple_ns(struct nvme_namespace *n, struct json_object *devices)
{
struct json_object *device_attrs;
char formatter[41] = { 0 };
static void json_simple_list(struct nvme_topology *t)
{
struct json_object *root;
- struct json_array *devices;
+ struct json_object *devices;
int i, j, k;
root = json_create_object();
#include "nvme-print.h"
#include "nvme-ioctl.h"
#include "plugin.h"
-#include "json.h"
#include "argconfig.h"
#include "suffix.h"
unsigned len)
{
struct json_object *root;
- struct json_array *devices;
+ struct json_object *devices;
struct json_object *device_attrs;
char formatter[128] = { 0 };
int index, i = 0;
};
bool is_json = false;
struct json_object *root;
- struct json_array *logPages;
+ struct json_object *logPages;
int fd;
OPT_ARGS(opts) = {
if (is_json) {
struct json_object *root = json_create_object();
- struct json_array *pcieErrors = json_create_array();
+ struct json_object *pcieErrors = json_create_array();
struct json_object *stats = json_create_object();
json_object_add_value_array(root, "PCIE Stats", pcieErrors);
static void print_smart_cloud_health_log(__u8 *buf, bool is_json)
{
struct json_object *root;
- struct json_array *logPages;
+ struct json_object *logPages;
struct json_object *stats = NULL;
int field_count = sizeof(ocp_c0_log_page)/sizeof(ocp_c0_log_page[0]);
static void print_nand_stats_fb(__u8 *buf, __u8 *buf2, __u8 nsze, bool is_json)
{
struct json_object *root;
- struct json_array *logPages;
+ struct json_object *logPages;
struct json_object *stats = NULL;
int field_count = sizeof(fb_log_page)/sizeof(fb_log_page[0]);
if (is_json) {
struct json_object *root = json_create_object();
struct json_object *stats = json_create_object();
- struct json_array *logPages = json_create_array();
+ struct json_object *logPages = json_create_array();
json_object_add_value_array(root,
"Extended Smart Log Page : 0xD0",
#include "nvme.h"
#include "nvme-ioctl.h"
-#include "json.h"
#include "suffix.h"
vol_name, "/", ns_name);
}
-static void netapp_smdevice_json(struct json_array *devices, char *devname,
+static void netapp_smdevice_json(struct json_object *devices, char *devname,
char *arrayname, char *volname, int nsid, char *nguid,
char *ctrl, char *astate, char *size, long long lba,
long long nsze)
json_array_add_value_object(devices, device_attrs);
}
-static void netapp_ontapdevice_json(struct json_array *devices, char *devname,
+static void netapp_ontapdevice_json(struct json_object *devices, char *devname,
char *vsname, char *nspath, int nsid, char *uuid,
char *size, long long lba, long long nsze)
{
static void netapp_smdevices_print(struct smdevice_info *devices, int count, int format)
{
struct json_object *root = NULL;
- struct json_array *json_devices = NULL;
+ struct json_object *json_devices = NULL;
int i, slta;
char array_label[ARRAY_LABEL_LEN / 2 + 1];
char volume_label[VOLUME_LABEL_LEN / 2 + 1];
else if (format == NJSON) {
/* prepare for json output */
root = json_create_object();
- json_devices = json_create_array();
+ json_devices = json_create_object();
}
for (i = 0; i < count; i++) {
int count, int format)
{
struct json_object *root = NULL;
- struct json_array *json_devices = NULL;
+ struct json_object *json_devices = NULL;
char vsname[ONTAP_LABEL_LEN] = " ";
char nspath[ONTAP_NS_PATHLEN] = " ";
long long lba;
} else if (format == NJSON) {
/* prepare for json output */
root = json_create_object();
- json_devices = json_create_array();
+ json_devices = json_create_object();
}
for (i = 0; i < count; i++) {
#include "plugin.h"
#include "argconfig.h"
#include "suffix.h"
-#include "json.h"
#define CREATE_CMD
static void json_log_pages_supp(log_page_map *logPageMap)
{
struct json_object *root;
- struct json_array *logPages;
+ struct json_object *logPages;
__u32 i = 0;
root = json_create_object();
EXTENDED_SMART_INFO_T *ExtdSMARTInfo )
{
/*struct json_object *root; */
- struct json_array *lbafs;
+ struct json_object *lbafs;
int index = 0;
static __u64 lsbGbErased = 0, msbGbErased = 0, lsbLifWrtToFlash = 0, msbLifWrtToFlash = 0,
vendor_log_page_CF *pLogPageCF)
{
/*struct json_object *root;*/
- struct json_array *logPages;
+ struct json_object *logPages;
unsigned int currentTemp, maxTemp;
char buf[40];
EXTENDED_SMART_INFO_T ExtdSMARTInfo;
vendor_log_page_CF logPageCF;
int fd;
- struct json_object *root;
- struct json_array *lbafs;
+ struct json_object *root = json_create_object();
+ struct json_object *lbafs = json_create_array();
struct json_object *lbafs_ExtSmart, *lbafs_DramSmart;
- root = json_create_object();
- lbafs = json_create_array();
const char *desc = "Retrieve Seagate Extended SMART information for the given device ";
const char *output_format = "output in binary format";
return test;
}
-struct json_array *json_create_array(void)
+struct json_object *json_create_array(void)
{
- void *test = calloc(1, sizeof(struct json_array));
+ void *test = calloc(1, sizeof(struct json_object));
if (!test)
fail_and_notify();
return test;
return value;
}
-static struct json_value *json_create_value_array(struct json_array *array)
+static struct json_value *json_create_value_array(struct json_object *array)
{
struct json_value *value = malloc(sizeof(struct json_value));
free(obj);
}
-void json_free_array(struct json_array *array)
+void json_free_array(struct json_object *array)
{
int i;
free(value);
}
-static int json_array_add_value(struct json_array *array, struct json_value *value)
+static int json_array_add_value(struct json_object *array, struct json_value *value)
{
struct json_value **values = realloc(array->values,
sizeof(struct json_value *) * (array->value_cnt + 1));
else if (type == JSON_TYPE_OBJECT)
value = json_create_value_object(va_arg(args, struct json_object *));
else
- value = json_create_value_array(va_arg(args, struct json_array *));
+ value = json_create_value_array(va_arg(args, struct json_object *));
va_end(args);
if (!value)
return 0;
}
-static void json_print_array(struct json_array *array, void *);
-int json_array_add_value_type(struct json_array *array, int type, ...)
+static void json_print_array(struct json_object *array, void *);
+int json_array_add_value_type(struct json_object *array, int type, ...)
{
struct json_value *value;
va_list args;
else if (type == JSON_TYPE_OBJECT)
value = json_create_value_object(va_arg(args, struct json_object *));
else
- value = json_create_value_array(va_arg(args, struct json_array *));
+ value = json_create_value_array(va_arg(args, struct json_object *));
va_end(args);
if (!value)
static int json_value_level(struct json_value *value);
static int json_pair_level(struct json_pair *pair);
-static int json_array_level(struct json_array *array);
+static int json_array_level(struct json_object *array);
static int json_object_level(struct json_object *object)
{
if (object->parent == NULL)
return json_object_level(pair->parent) + 1;
}
-static int json_array_level(struct json_array *array)
+static int json_array_level(struct json_object *array)
{
return json_value_level(array->parent);
}
}
static void json_print_pair(struct json_pair *pair, void *);
-static void json_print_array(struct json_array *array, void *);
+static void json_print_array(struct json_object *array, void *);
static void json_print_value(struct json_value *value, void *);
void json_print_object(struct json_object *obj, void *out)
{
json_print_value(pair->value, out);
}
-static void json_print_array(struct json_array *array, void *out)
+static void json_print_array(struct json_object *array, void *out)
{
int i;
#define __JSON__H
struct json_object;
-struct json_array;
struct json_pair;
#define JSON_TYPE_STRING 0
long double float_number;
char *string;
struct json_object *object;
- struct json_array *array;
+ struct json_object *array;
};
int parent_type;
union {
struct json_pair *parent_pair;
- struct json_array *parent_array;
+ struct json_object *parent_array;
};
};
-struct json_array {
+struct json_object {
struct json_value **values;
int value_cnt;
- struct json_value *parent;
-};
-
-struct json_object {
struct json_pair **pairs;
int pair_cnt;
struct json_value *parent;
};
struct json_object *json_create_object(void);
-struct json_array *json_create_array(void);
+struct json_object *json_create_array(void);
void json_free_object(struct json_object *obj);
-void json_free_array(struct json_array *array);
+void json_free_array(struct json_object *array);
int json_object_add_value_type(struct json_object *obj, const char *name, int type, ...);
#define json_object_add_value_int(obj, name, val) \
json_object_add_value_type((obj), name, JSON_TYPE_OBJECT, (val))
#define json_object_add_value_array(obj, name, val) \
json_object_add_value_type((obj), name, JSON_TYPE_ARRAY, (val))
-int json_array_add_value_type(struct json_array *array, int type, ...);
+int json_array_add_value_type(struct json_object *array, int type, ...);
#define json_array_add_value_int(obj, val) \
json_array_add_value_type((obj), JSON_TYPE_INTEGER, (val))
#define json_array_add_value_uint(obj, val) \