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. -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html