dpdk patch: virtio: tx with can_push when VERSION_1 is set
[vpp.git] / vpp-api-test / vat / json_format.c
index 70447ed..6f316d9 100644 (file)
 
 #define VAT_TAB_WIDTH               2
 
-typedef struct vat_print_ctx_s {
-    FILE *ofp;
-    u32 indent;
+typedef struct vat_print_ctx_s
+{
+  FILE *ofp;
+  u32 indent;
 } vat_print_ctx_t;
 
 /* Format an IP4 address. */
-static u8 * vat_json_format_ip4_address (u8 * s, va_list * args)
+static u8 *
+vat_json_format_ip4_address (u8 * s, va_list * args)
 {
-  u8 * a = va_arg (*args, u8 *);
+  u8 *a = va_arg (*args, u8 *);
   return format (s, "%d.%d.%d.%d", a[0], a[1], a[2], a[3]);
 }
 
 /* Format an IP6 address. */
-static u8 * vat_json_format_ip6_address (u8 * s, va_list * args)
+static u8 *
+vat_json_format_ip6_address (u8 * s, va_list * args)
 {
-  ip6_address_t * a = va_arg (*args, ip6_address_t *);
+  ip6_address_t *a = va_arg (*args, ip6_address_t *);
   u32 i, i_max_n_zero, max_n_zeros, i_first_zero, n_zeros, last_double_colon;
 
   i_max_n_zero = ARRAY_LEN (a->as_u16);
@@ -50,77 +53,79 @@ static u8 * vat_json_format_ip6_address (u8 * s, va_list * args)
     {
       u32 is_zero = a->as_u16[i] == 0;
       if (is_zero && i_first_zero >= ARRAY_LEN (a->as_u16))
-        {
-          i_first_zero = i;
-          n_zeros = 0;
-        }
+       {
+         i_first_zero = i;
+         n_zeros = 0;
+       }
       n_zeros += is_zero;
-      if ((! is_zero && n_zeros > max_n_zeros)
-          || (i + 1 >= ARRAY_LEN (a->as_u16) && n_zeros > max_n_zeros))
-        {
-          i_max_n_zero = i_first_zero;
-          max_n_zeros = n_zeros;
-          i_first_zero = ARRAY_LEN (a->as_u16);
-          n_zeros = 0;
-        }
+      if ((!is_zero && n_zeros > max_n_zeros)
+         || (i + 1 >= ARRAY_LEN (a->as_u16) && n_zeros > max_n_zeros))
+       {
+         i_max_n_zero = i_first_zero;
+         max_n_zeros = n_zeros;
+         i_first_zero = ARRAY_LEN (a->as_u16);
+         n_zeros = 0;
+       }
     }
 
   last_double_colon = 0;
   for (i = 0; i < ARRAY_LEN (a->as_u16); i++)
     {
       if (i == i_max_n_zero && max_n_zeros > 1)
-        {
-          s = format (s, "::");
-          i += max_n_zeros - 1;
-          last_double_colon = 1;
-        }
+       {
+         s = format (s, "::");
+         i += max_n_zeros - 1;
+         last_double_colon = 1;
+       }
       else
-        {
-          s = format (s, "%s%x",
-                      (last_double_colon || i == 0) ? "" : ":",
-                      clib_net_to_host_u16 (a->as_u16[i]));
-          last_double_colon = 0;
-        }
+       {
+         s = format (s, "%s%x",
+                     (last_double_colon || i == 0) ? "" : ":",
+                     clib_net_to_host_u16 (a->as_u16[i]));
+         last_double_colon = 0;
+       }
     }
 
   return s;
 }
 
 static void
-vat_json_indent_print (vat_print_ctx_t *ctx)
+vat_json_indent_print (vat_print_ctx_t * ctx)
 {
-    int i;
-    for (i=0; i<ctx->indent * VAT_TAB_WIDTH; i++) {
-        fformat(ctx->ofp, " ");
+  int i;
+  for (i = 0; i < ctx->indent * VAT_TAB_WIDTH; i++)
+    {
+      fformat (ctx->ofp, " ");
     }
 }
 
 static void
-vat_json_indent_line (vat_print_ctx_t * ctx, char * fmt, ...)
+vat_json_indent_line (vat_print_ctx_t * ctx, char *fmt, ...)
 {
-    va_list va;
+  va_list va;
 
-    vat_json_indent_print(ctx);
-    va_start(va, fmt);
-    va_fformat(ctx->ofp, fmt, &va);
-    va_end(va);
+  vat_json_indent_print (ctx);
+  va_start (va, fmt);
+  va_fformat (ctx->ofp, fmt, &va);
+  va_end (va);
 }
 
 static u8
 is_num_only (vat_json_node_t * p)
 {
-    vat_json_node_t * elem;
-    vec_foreach(elem, p) {
-        if (VAT_JSON_INT != elem->type &&
-                VAT_JSON_UINT != elem->type) {
-            return 0;
-        }
-    }
-    return 1;
+  vat_json_node_t *elem;
+  vec_foreach (elem, p)
+  {
+    if (VAT_JSON_INT != elem->type && VAT_JSON_UINT != elem->type)
+      {
+       return 0;
+      }
+  }
+  return 1;
 }
 
 static void
-vat_json_print_internal (vat_print_ctx_t *ctx, vat_json_node_t *node)
+vat_json_print_internal (vat_print_ctx_t * ctx, vat_json_node_t * node)
 {
 #define P(fmt,...) fformat(ctx->ofp, fmt, ##__VA_ARGS__)
 #define PL(fmt,...) fformat(ctx->ofp, fmt"\n", ##__VA_ARGS__)
@@ -129,85 +134,106 @@ vat_json_print_internal (vat_print_ctx_t *ctx, vat_json_node_t *node)
 #define INCR (ctx->indent++)
 #define DECR (ctx->indent--)
 
-    vat_json_pair_t *pair;
-    u32 i, count;
-    vat_json_node_t *elem;
-    u8 num_only = 0;
+  vat_json_pair_t *pair;
+  u32 i, count;
+  vat_json_node_t *elem;
+  u8 num_only = 0;
 
-    if (!node) {
-        return;
+  if (!node)
+    {
+      return;
     }
 
-    switch (node->type) {
+  switch (node->type)
+    {
     case VAT_JSON_OBJECT:
-        count = vec_len(node->pairs);
-        if (count >= 1) {
-            PL("{");
-            INCR;
-            for (i=0; i<count; i++) {
-                pair = &node->pairs[i];
-                PP("\"%s\": ", pair->name);
-                vat_json_print_internal(ctx, &pair->value);
-                if (i < count - 1) {
-                    P(",");
-                }
-                PL();
-            }
-            DECR;
-            PP("}");
-        } else { P("{}"); }
-        break;
+      count = vec_len (node->pairs);
+      if (count >= 1)
+       {
+         PL ("{");
+         INCR;
+         for (i = 0; i < count; i++)
+           {
+             pair = &node->pairs[i];
+             PP ("\"%s\": ", pair->name);
+             vat_json_print_internal (ctx, &pair->value);
+             if (i < count - 1)
+               {
+                 P (",");
+               }
+             PL ();
+           }
+         DECR;
+         PP ("}");
+       }
+      else
+       {
+         P ("{}");
+       }
+      break;
     case VAT_JSON_ARRAY:
-        num_only = is_num_only(node->array);
-        count = vec_len(node->array);
-        if (count >= 1) {
-            if (num_only)
-                P("[");
-            else
-                PL("[ ");
-            INCR;
-            for (i=0; i<count; i++) {
-                elem = &node->array[i];
-                if (!num_only) {
-                    vat_json_indent_print(ctx);
-                }
-                vat_json_print_internal(ctx, elem);
-                if (i < count - 1) {
-                    if (num_only) {
-                        P(", ");
-                    } else {
-                        P(",");
-                    }
-                }
-                if (!num_only) PL();
-            }
-            DECR;
-            if (!num_only)
-                PP("]");
-            else
-                P("]");
-        } else { P("[]"); }
-        break;
+      num_only = is_num_only (node->array);
+      count = vec_len (node->array);
+      if (count >= 1)
+       {
+         if (num_only)
+           P ("[");
+         else
+           PL ("[ ");
+         INCR;
+         for (i = 0; i < count; i++)
+           {
+             elem = &node->array[i];
+             if (!num_only)
+               {
+                 vat_json_indent_print (ctx);
+               }
+             vat_json_print_internal (ctx, elem);
+             if (i < count - 1)
+               {
+                 if (num_only)
+                   {
+                     P (", ");
+                   }
+                 else
+                   {
+                     P (",");
+                   }
+               }
+             if (!num_only)
+               PL ();
+           }
+         DECR;
+         if (!num_only)
+           PP ("]");
+         else
+           P ("]");
+       }
+      else
+       {
+         P ("[]");
+       }
+      break;
     case VAT_JSON_INT:
-        P("%d", node->sint);
-        break;
+      ("%d", node->sint);
+      break;
     case VAT_JSON_UINT:
-        P("%"PRIu64, node->uint);
-        break;
+      P ("%" PRIu64, node->uint);
+      break;
     case VAT_JSON_REAL:
-        P("%f", node->real);
-        break;
+      ("%f", node->real);
+      break;
     case VAT_JSON_STRING:
-        P("\"%s\"", node->string);
-        break;
+      ("\"%s\"", node->string);
+      break;
     case VAT_JSON_IPV4:
-        P("\"%U\"", vat_json_format_ip4_address, &node->ip4);
-        break;
+      ("\"%U\"", vat_json_format_ip4_address, &node->ip4);
+      break;
     case VAT_JSON_IPV6:
-        P("\"%U\"", vat_json_format_ip6_address, &node->ip6);
-        break;
+      ("\"%U\"", vat_json_format_ip6_address, &node->ip6);
+      break;
     default:
-        break;
+      break;
     }
 #undef PPL
 #undef PP
@@ -215,47 +241,64 @@ vat_json_print_internal (vat_print_ctx_t *ctx, vat_json_node_t *node)
 #undef P
 }
 
-void vat_json_print(FILE *ofp, vat_json_node_t *node)
+void
+vat_json_print (FILE * ofp, vat_json_node_t * node)
 {
-    vat_print_ctx_t ctx;
-    memset(&ctx, 0, sizeof ctx);
-    ctx.indent = 0;
-    ctx.ofp = ofp;
-    fformat(ofp, "\n");
-    vat_json_print_internal(&ctx, node);
-    fformat(ofp, "\n");
+  vat_print_ctx_t ctx;
+  memset (&ctx, 0, sizeof ctx);
+  ctx.indent = 0;
+  ctx.ofp = ofp;
+  fformat (ofp, "\n");
+  vat_json_print_internal (&ctx, node);
+  fformat (ofp, "\n");
 }
 
-void vat_json_free (vat_json_node_t *node)
+void
+vat_json_free (vat_json_node_t * node)
 {
-    int i = 0;
+  int i = 0;
 
-    if (NULL == node) {
-        return;
+  if (NULL == node)
+    {
+      return;
     }
-    switch (node->type) {
+  switch (node->type)
+    {
     case VAT_JSON_OBJECT:
-        for (i = 0; i < vec_len(node->pairs); i++) {
-            vat_json_free(&node->pairs[i].value);
-        }
-        if (NULL != node->pairs) {
-            vec_free(node->pairs);
-        }
-        break;
+      for (i = 0; i < vec_len (node->pairs); i++)
+       {
+         vat_json_free (&node->pairs[i].value);
+       }
+      if (NULL != node->pairs)
+       {
+         vec_free (node->pairs);
+       }
+      break;
     case VAT_JSON_ARRAY:
-        for (i = 0; i < vec_len(node->array); i++) {
-            vat_json_free(&node->array[i]);
-        }
-        if (NULL != node->array) {
-            vec_free(node->array);
-        }
-        break;
+      for (i = 0; i < vec_len (node->array); i++)
+       {
+         vat_json_free (&node->array[i]);
+       }
+      if (NULL != node->array)
+       {
+         vec_free (node->array);
+       }
+      break;
     case VAT_JSON_STRING:
-        if (NULL != node->string) {
-            vec_free(node->string);
-        }
-        break;
+      if (NULL != node->string)
+       {
+         vec_free (node->string);
+       }
+      break;
     default:
-        break;
+      break;
     }
 }
+
+/*
+ * fd.io coding-style-patch-verification: ON
+ *
+ * Local Variables:
+ * eval: (c-set-style "gnu")
+ * End:
+ */