On Mon, Apr 30, 2018 at 08:25:24AM -0700, Stephen Hemminger wrote: > On Mon, 30 Apr 2018 07:36:18 -0700 > Steve Wise <swise@xxxxxxxxxxxxxxxxxxxxx> wrote: > > > +#define nla_type(attr) ((attr)->nla_type & NLA_TYPE_MASK) > > + > > +void newline(struct rd *rd) > > +{ > > + if (rd->json_output) > > + jsonw_end_array(rd->jw); > > + else > > + pr_out("\n"); > > +} > > + > > +void newline_indent(struct rd *rd) > > +{ > > + newline(rd); > > + if (!rd->json_output) > > + pr_out(" "); > > +} > > + > > +static int print_provider_string(struct rd *rd, const char *key_str, > > + const char *val_str) > > +{ > > + if (rd->json_output) { > > + jsonw_string_field(rd->jw, key_str, val_str); > > + return 0; > > + } else { > > + return pr_out("%s %s ", key_str, val_str); > > + } > > +} > > + > > +static int print_provider_s32(struct rd *rd, const char *key_str, int32_t val, > > + enum rdma_nldev_print_type print_type) > > +{ > > + if (rd->json_output) { > > + jsonw_int_field(rd->jw, key_str, val); > > + return 0; > > + } > > + switch (print_type) { > > + case RDMA_NLDEV_PRINT_TYPE_UNSPEC: > > + return pr_out("%s %d ", key_str, val); > > + case RDMA_NLDEV_PRINT_TYPE_HEX: > > + return pr_out("%s 0x%x ", key_str, val); > > + default: > > + return -EINVAL; > > + } > > +} > > + > > This code should get converted to json_print library that handles the > different output modes; rather than rolling it's own equivalent functionality. Can it be done after this patch is merged? It will simplify review and testing because current code is implemented to be in the same format as the rest of the tool. Thanks
Attachment:
signature.asc
Description: PGP signature