API refactoring : netmap
[vpp.git] / vlib / vlib / parse.h
index 5b9aceb..036e744 100644 (file)
 #include <vlib/lex.h>
 #include <vppinfra/mhash.h>
 
-typedef struct {
+typedef struct
+{
   /* Word aligned value. */
-  union {
+  union
+  {
     u8 as_u8[32 - 1 * sizeof (u16)];
-    void * as_pointer;
+    void *as_pointer;
     uword as_uword;
     word as_word;
     u64 as_u64;
@@ -31,32 +33,44 @@ typedef struct {
 
   /* 16 bit type at end so that 30 bytes of value are aligned. */
   u16 type;
-} __attribute ((packed)) vlib_parse_value_t;
+} __attribute ((packed))
+  vlib_parse_value_t;
 
 /* Instance of a type. */
-typedef struct {
-  u32 type;
-
-  u32 origin;
-
-  u32 help_index;
-
-  union {
-    void * as_pointer;
-    uword as_uword;
-  } value;
-} vlib_parse_item_t;
-
-typedef struct {
-  /* Index of item for this node. */
-  u32 item;
-
-  /* Graph index of peer (sibling) node (linked list of peers). */
-  u32 peer;
-
-  /* Graph index of deeper (child) node (linked list of children). */
-  u32 deeper;
-} vlib_parse_graph_t;
+     typedef struct
+     {
+       u32
+        type;
+
+       u32
+        origin;
+
+       u32
+        help_index;
+
+       union
+       {
+        void *
+          as_pointer;
+        uword
+          as_uword;
+       } value;
+     } vlib_parse_item_t;
+
+     typedef struct
+     {
+       /* Index of item for this node. */
+       u32
+        item;
+
+       /* Graph index of peer (sibling) node (linked list of peers). */
+       u32
+        peer;
+
+       /* Graph index of deeper (child) node (linked list of children). */
+       u32
+        deeper;
+     } vlib_parse_graph_t;
 
 #define foreach_parse_match_type                \
   _(MATCH_DONE)                                        \
@@ -68,84 +82,112 @@ typedef struct {
   _(MATCH_AMBIGUOUS)                           \
   _(MATCH_EVAL_FAIL)
 
-typedef enum {
+     typedef enum
+     {
 #define _(a) VLIB_PARSE_##a,
-  foreach_parse_match_type
+       foreach_parse_match_type
 #undef _
-} vlib_parse_match_t;
-
-struct vlib_parse_type;
-struct vlib_parse_main;
-
-typedef vlib_parse_match_t (vlib_parse_match_function_t)
-  (struct vlib_parse_main *, 
-   struct vlib_parse_type *,
-   vlib_lex_token_t *,
-   vlib_parse_value_t *);
-typedef void (vlib_parse_value_cleanup_function_t) (vlib_parse_value_t *);
-
-typedef struct vlib_parse_type {
-  /* Type name. */
-  char * name;
-
-  vlib_parse_match_function_t * match_function;
-
-  vlib_parse_value_cleanup_function_t * value_cleanup_function;
-
-  format_function_t * format_value;
-
-  u32 rule_index;
-} vlib_parse_type_t;
-
-typedef struct {
-  char *initializer;
-  void * eof_match;
-  int rule_length;
-} parse_registration_t;
-
-typedef struct vlib_parse_main {
-  /* (type, origin, help, value) tuples */
-  vlib_parse_item_t *parse_items;
-  mhash_t parse_item_hash;
-
-  /* (item, peer, deeper) tuples */
-  vlib_parse_graph_t *parse_graph;
-  u32 root_index;
-
-  u8 *register_input;
-
-  /* parser types */
-  vlib_parse_type_t * parse_types;
-  uword *parse_type_by_name_hash;
-
-  /* Vector of MATCH_VALUEs */
-  vlib_parse_value_t * parse_value;
-  u32 * match_items;
-
-  /* Parse registrations */
-  parse_registration_t **parse_registrations;
-
-  /* Token vector */
-  vlib_lex_token_t *tokens;
-  u32 current_token_index;
-    
-  vlib_lex_main_t *lex_main;
-  vlib_main_t *vlib_main;
-} vlib_parse_main_t;
-
-vlib_parse_main_t vlib_parse_main;
-
-typedef vlib_parse_match_t (vlib_parse_eval_function_t)
-  (vlib_parse_main_t *,
-   vlib_parse_item_t *, 
-   vlib_parse_value_t *);
-
-vlib_parse_match_t vlib_parse_eval (u8 * input);
-
-format_function_t format_vlib_parse_value;
+     } vlib_parse_match_t;
+
+     struct vlib_parse_type;
+     struct vlib_parse_main;
+
+     typedef
+     vlib_parse_match_t (vlib_parse_match_function_t)
+  (struct vlib_parse_main *,
+   struct vlib_parse_type *, vlib_lex_token_t *, vlib_parse_value_t *);
+     typedef void (vlib_parse_value_cleanup_function_t) (vlib_parse_value_t
+                                                        *);
+
+     typedef struct vlib_parse_type
+     {
+       /* Type name. */
+       char *
+        name;
+
+       vlib_parse_match_function_t *
+        match_function;
+
+       vlib_parse_value_cleanup_function_t *
+        value_cleanup_function;
+
+       format_function_t *
+        format_value;
+
+       u32
+        rule_index;
+     } vlib_parse_type_t;
+
+     typedef struct
+     {
+       char *
+        initializer;
+       void *
+        eof_match;
+       int
+        rule_length;
+     } parse_registration_t;
+
+     typedef struct vlib_parse_main
+     {
+       /* (type, origin, help, value) tuples */
+       vlib_parse_item_t *
+        parse_items;
+       mhash_t
+        parse_item_hash;
+
+       /* (item, peer, deeper) tuples */
+       vlib_parse_graph_t *
+        parse_graph;
+       u32
+        root_index;
+
+       u8 *
+        register_input;
+
+       /* parser types */
+       vlib_parse_type_t *
+        parse_types;
+       uword *
+        parse_type_by_name_hash;
+
+       /* Vector of MATCH_VALUEs */
+       vlib_parse_value_t *
+        parse_value;
+       u32 *
+        match_items;
+
+       /* Parse registrations */
+       parse_registration_t **
+        parse_registrations;
+
+       /* Token vector */
+       vlib_lex_token_t *
+        tokens;
+       u32
+        current_token_index;
+
+       vlib_lex_main_t *
+        lex_main;
+       vlib_main_t *
+        vlib_main;
+     } vlib_parse_main_t;
+
+     vlib_parse_main_t
+       vlib_parse_main;
+
+     typedef
+     vlib_parse_match_t (vlib_parse_eval_function_t)
+  (vlib_parse_main_t *, vlib_parse_item_t *, vlib_parse_value_t *);
+
+vlib_parse_match_t
+vlib_parse_eval (u8 * input);
+
+     format_function_t format_vlib_parse_value;
 
 /* FIXME need these to be global? */
-vlib_parse_match_function_t rule_match, eof_match, word_match, number_match;
+     vlib_parse_match_function_t rule_match, eof_match, word_match,
+       number_match;
 
 #define _PARSE_REGISTRATION_DATA(x) \
 VLIB_ELF_SECTION_DATA(x##_registration,parse_registration_t,parse_registrations)
@@ -169,3 +211,11 @@ static _PARSE_TYPE_REGISTRATION_DATA(n) = {     \
 };
 
 #endif /* included_vlib_parse_h */
+
+/*
+ * fd.io coding-style-patch-verification: ON
+ *
+ * Local Variables:
+ * eval: (c-set-style "gnu")
+ * End:
+ */