diff options
Diffstat (limited to 'vppinfra/vppinfra/format.h')
-rw-r--r-- | vppinfra/vppinfra/format.h | 145 |
1 files changed, 77 insertions, 68 deletions
diff --git a/vppinfra/vppinfra/format.h b/vppinfra/vppinfra/format.h index 45cd3f50e37..c91cc74711e 100644 --- a/vppinfra/vppinfra/format.h +++ b/vppinfra/vppinfra/format.h @@ -40,15 +40,15 @@ #include <stdarg.h> -#include <vppinfra/clib.h> /* for CLIB_UNIX, etc. */ +#include <vppinfra/clib.h> /* for CLIB_UNIX, etc. */ #include <vppinfra/vec.h> -#include <vppinfra/error.h> /* for ASSERT */ +#include <vppinfra/error.h> /* for ASSERT */ #include <vppinfra/string.h> -typedef u8 * (format_function_t) (u8 * s, va_list * args); +typedef u8 *(format_function_t) (u8 * s, va_list * args); -u8 * va_format (u8 * s, char * format, va_list * args); -u8 * format (u8 * s, char * format, ...); +u8 *va_format (u8 * s, char *format, va_list * args); +u8 *format (u8 * s, char *format, ...); #ifdef CLIB_UNIX @@ -64,17 +64,17 @@ u8 * format (u8 * s, char * format, ...); #endif -word va_fformat (FILE * f, char * fmt, va_list * va); -word fformat (FILE * f, char * fmt, ...); -word fdformat (int fd, char * fmt, ...); +word va_fformat (FILE * f, char *fmt, va_list * va); +word fformat (FILE * f, char *fmt, ...); +word fdformat (int fd, char *fmt, ...); always_inline uword format_get_indent (u8 * s) { uword indent = 0; - u8 * nl; + u8 *nl; - if (! s) + if (!s) return indent; nl = vec_end (s) - 1; @@ -90,52 +90,53 @@ format_get_indent (u8 * s) #define _(f) u8 * f (u8 * s, va_list * va) /* Standard user-defined formats. */ -_ (format_vec32); -_ (format_vec_uword); -_ (format_ascii_bytes); -_ (format_hex_bytes); -_ (format_white_space); -_ (format_f64); -_ (format_time_interval); +_(format_vec32); +_(format_vec_uword); +_(format_ascii_bytes); +_(format_hex_bytes); +_(format_white_space); +_(format_f64); +_(format_time_interval); #ifdef CLIB_UNIX /* Unix specific formats. */ -_ (format_address_family); -_ (format_unix_arphrd); -_ (format_unix_interface_flags); -_ (format_network_address); -_ (format_network_protocol); -_ (format_network_port); -_ (format_sockaddr); -_ (format_ip4_tos_byte); -_ (format_ip4_packet); -_ (format_icmp4_type_and_code); -_ (format_ethernet_packet); -_ (format_hostname); -_ (format_timeval); -_ (format_time_float); -_ (format_signal); -_ (format_ucontext_pc); +_(format_address_family); +_(format_unix_arphrd); +_(format_unix_interface_flags); +_(format_network_address); +_(format_network_protocol); +_(format_network_port); +_(format_sockaddr); +_(format_ip4_tos_byte); +_(format_ip4_packet); +_(format_icmp4_type_and_code); +_(format_ethernet_packet); +_(format_hostname); +_(format_timeval); +_(format_time_float); +_(format_signal); +_(format_ucontext_pc); #endif #undef _ /* Unformat. */ -typedef struct _unformat_input_t { +typedef struct _unformat_input_t +{ /* Input buffer (vector). */ - u8 * buffer; + u8 *buffer; /* Current index in input buffer. */ uword index; /* Vector of buffer marks. Used to delineate pieces of the buffer for error reporting and for parse recovery. */ - uword * buffer_marks; + uword *buffer_marks; /* User's function to fill the buffer when its empty (and argument). */ - uword (* fill_buffer) (struct _unformat_input_t * i); + uword (*fill_buffer) (struct _unformat_input_t * i); /* Return values for fill buffer function which indicate whether not input has been exhausted. */ @@ -143,13 +144,13 @@ typedef struct _unformat_input_t { #define UNFORMAT_MORE_INPUT 0 /* User controlled argument to fill buffer function. */ - void * fill_buffer_arg; + void *fill_buffer_arg; } unformat_input_t; always_inline void unformat_init (unformat_input_t * i, - uword (* fill_buffer) (unformat_input_t *), - void * fill_buffer_arg) + uword (*fill_buffer) (unformat_input_t *), + void *fill_buffer_arg) { memset (i, 0, sizeof (i[0])); i->fill_buffer = fill_buffer; @@ -170,8 +171,7 @@ unformat_check_input (unformat_input_t * i) /* Low level fill input function. */ extern uword _unformat_fill_input (unformat_input_t * i); - if (i->index >= vec_len (i->buffer) - && i->index != UNFORMAT_END_OF_INPUT) + if (i->index >= vec_len (i->buffer) && i->index != UNFORMAT_END_OF_INPUT) _unformat_fill_input (i); return i->index; @@ -201,7 +201,9 @@ unformat_get_input (unformat_input_t * input) /* Back up input pointer by one. */ always_inline void unformat_put_input (unformat_input_t * input) -{ input->index -= 1; } +{ + input->index -= 1; +} /* Peek current input character without advancing. */ always_inline uword @@ -214,59 +216,59 @@ unformat_peek_input (unformat_input_t * input) } /* Skip current input line. */ -always_inline void unformat_skip_line (unformat_input_t * i) +always_inline void +unformat_skip_line (unformat_input_t * i) { uword c; - while ((c = unformat_get_input (i)) != UNFORMAT_END_OF_INPUT - && c != '\n') + while ((c = unformat_get_input (i)) != UNFORMAT_END_OF_INPUT && c != '\n') ; } uword unformat_skip_white_space (unformat_input_t * input); /* Unformat function. */ -typedef uword (unformat_function_t) (unformat_input_t * input, va_list * args); +typedef uword (unformat_function_t) (unformat_input_t * input, + va_list * args); /* External functions. */ /* General unformatting function with programmable input stream. */ -uword unformat (unformat_input_t * i, char * fmt, ...); +uword unformat (unformat_input_t * i, char *fmt, ...); /* Call user defined parse function. unformat_user (i, f, ...) is equivalent to unformat (i, "%U", f, ...) */ -uword unformat_user (unformat_input_t * input, unformat_function_t * func, ...); +uword unformat_user (unformat_input_t * input, unformat_function_t * func, + ...); /* Alternate version which allows for extensions. */ -uword va_unformat (unformat_input_t * i, char * fmt, va_list * args); +uword va_unformat (unformat_input_t * i, char *fmt, va_list * args); /* Setup for unformat of Unix style command line. */ -void unformat_init_command_line (unformat_input_t * input, - char * argv[]); +void unformat_init_command_line (unformat_input_t * input, char *argv[]); /* Setup for unformat of given string. */ void unformat_init_string (unformat_input_t * input, - char * string, - int string_len); + char *string, int string_len); always_inline void -unformat_init_cstring (unformat_input_t * input, - char * string) -{ unformat_init_string (input, string, strlen (string)); } +unformat_init_cstring (unformat_input_t * input, char *string) +{ + unformat_init_string (input, string, strlen (string)); +} /* Setup for unformat of given vector string; vector will be freed by unformat_string. */ -void unformat_init_vector (unformat_input_t * input, - u8 * vector_string); +void unformat_init_vector (unformat_input_t * input, u8 * vector_string); /* Format function for unformat input usable when an unformat error has occurred. */ -u8 * format_unformat_error (u8 * s, va_list * va); +u8 *format_unformat_error (u8 * s, va_list * va); #define unformat_parse_error(input) \ clib_error_return (0, "parse error `%U'", format_unformat_error, input) /* Print all input: not just error context. */ -u8 * format_unformat_input (u8 * s, va_list * va); +u8 *format_unformat_input (u8 * s, va_list * va); /* Unformat (parse) function which reads a %s string and converts it to and unformat_input_t. */ @@ -292,31 +294,38 @@ unformat_function_t unformat_eof; unformat_function_t unformat_memory_size; /* Unparse memory size e.g. 100, 100k, 100m, 100g. */ -u8 * format_memory_size (u8 * s, va_list * va); +u8 *format_memory_size (u8 * s, va_list * va); /* Format c identifier: e.g. a_name -> "a name". */ -u8 * format_c_identifier (u8 * s, va_list * va); +u8 *format_c_identifier (u8 * s, va_list * va); /* Format hexdump with both hex and printable chars - compatible with text2pcap */ -u8 * format_hexdump (u8 * s, va_list * va); +u8 *format_hexdump (u8 * s, va_list * va); /* Unix specific formats. */ #ifdef CLIB_UNIX /* Setup input from Unix file. */ -void unformat_init_unix_file (unformat_input_t * input, - int file_descriptor); +void unformat_init_unix_file (unformat_input_t * input, int file_descriptor); /* Take input from Unix environment variable; returns 1 if variable exists zero otherwise. */ -uword unformat_init_unix_env (unformat_input_t * input, char * var); +uword unformat_init_unix_env (unformat_input_t * input, char *var); #endif /* CLIB_UNIX */ /* Test code. */ int test_format_main (unformat_input_t * input); int test_unformat_main (unformat_input_t * input); -/* This is not the right place for this, but putting it in vec.h +/* This is not the right place for this, but putting it in vec.h created circular dependency problems. */ int test_vec_main (unformat_input_t * input); #endif /* included_format_h */ + +/* + * fd.io coding-style-patch-verification: ON + * + * Local Variables: + * eval: (c-set-style "gnu") + * End: + */ |