|
DPDK
19.08.2
|
#include <rte_compat.h>Go to the source code of this file.
Data Structures | |
| struct | rte_kvargs_pair |
| struct | rte_kvargs |
Macros | |
| #define | RTE_KVARGS_MAX 32 |
| #define | RTE_KVARGS_PAIRS_DELIM "," |
| #define | RTE_KVARGS_KV_DELIM "=" |
Typedefs | |
| typedef int(* | arg_handler_t) (const char *key, const char *value, void *opaque) |
Functions | |
| struct rte_kvargs * | rte_kvargs_parse (const char *args, const char *const valid_keys[]) |
| __rte_experimental struct rte_kvargs * | rte_kvargs_parse_delim (const char *args, const char *const valid_keys[], const char *valid_ends) |
| void | rte_kvargs_free (struct rte_kvargs *kvlist) |
| int | rte_kvargs_process (const struct rte_kvargs *kvlist, const char *key_match, arg_handler_t handler, void *opaque_arg) |
| unsigned | rte_kvargs_count (const struct rte_kvargs *kvlist, const char *key_match) |
| __rte_experimental int | rte_kvargs_strcmp (const char *key, const char *value, void *opaque) |
RTE Argument parsing
This module can be used to parse arguments whose format is key1=value1,key2=value2,key3=value3,...
The same key can appear several times with the same or a different value. Indeed, the arguments are stored as a list of key/values associations and not as a dictionary.
This file provides some helpers that are especially used by virtual ethernet devices at initialization for arguments parsing.
Definition in file rte_kvargs.h.
| #define RTE_KVARGS_MAX 32 |
Maximum number of key/value associations
Definition at line 31 of file rte_kvargs.h.
| #define RTE_KVARGS_PAIRS_DELIM "," |
separator character used between each pair
Definition at line 34 of file rte_kvargs.h.
| #define RTE_KVARGS_KV_DELIM "=" |
separator character used between key and value
Definition at line 37 of file rte_kvargs.h.
| typedef int(* arg_handler_t) (const char *key, const char *value, void *opaque) |
Type of callback function used by rte_kvargs_process()
Definition at line 40 of file rte_kvargs.h.
| struct rte_kvargs* rte_kvargs_parse | ( | const char * | args, |
| const char *const | valid_keys[] | ||
| ) |
Allocate a rte_kvargs and store key/value associations from a string
The function allocates and fills a rte_kvargs structure from a given string whose format is key1=value1,key2=value2,...
The structure can be freed with rte_kvargs_free().
| args | The input string containing the key/value associations |
| valid_keys | A list of valid keys (table of const char *, the last must be NULL). This argument is ignored if NULL |
| __rte_experimental struct rte_kvargs* rte_kvargs_parse_delim | ( | const char * | args, |
| const char *const | valid_keys[], | ||
| const char * | valid_ends | ||
| ) |
Allocate a rte_kvargs and store key/value associations from a string. This version will consider any byte from valid_ends as a possible terminating character, and will not parse beyond any of their occurrence.
The function allocates and fills an rte_kvargs structure from a given string whose format is key1=value1,key2=value2,...
The structure can be freed with rte_kvargs_free().
| args | The input string containing the key/value associations |
| valid_keys | A list of valid keys (table of const char *, the last must be NULL). This argument is ignored if NULL |
| valid_ends | Acceptable terminating characters. If NULL, the behavior is the same as rte_kvargs_parse. |
| void rte_kvargs_free | ( | struct rte_kvargs * | kvlist | ) |
Free a rte_kvargs structure
Free a rte_kvargs structure previously allocated with rte_kvargs_parse().
| kvlist | The rte_kvargs structure. No error if NULL. |
| int rte_kvargs_process | ( | const struct rte_kvargs * | kvlist, |
| const char * | key_match, | ||
| arg_handler_t | handler, | ||
| void * | opaque_arg | ||
| ) |
Call a handler function for each key/value matching the key
For each key/value association that matches the given key, calls the handler function with the for a given arg_name passing the value on the dictionary for that key and a given extra argument.
| kvlist | The rte_kvargs structure. No error if NULL. |
| key_match | The key on which the handler should be called, or NULL to process handler on all associations |
| handler | The function to call for each matching key |
| opaque_arg | A pointer passed unchanged to the handler |
| unsigned rte_kvargs_count | ( | const struct rte_kvargs * | kvlist, |
| const char * | key_match | ||
| ) |
Count the number of associations matching the given key
| kvlist | The rte_kvargs structure |
| key_match | The key that should match, or NULL to count all associations |
| __rte_experimental int rte_kvargs_strcmp | ( | const char * | key, |
| const char * | value, | ||
| void * | opaque | ||
| ) |
Generic kvarg handler for string comparison.
This function can be used for a generic string comparison processing on a list of kvargs.
| key | kvarg pair key. |
| value | kvarg pair value. |
| opaque | Opaque pointer to a string. |
Unless strcmp, comparison ordering is not kept. In order for rte_kvargs_process to stop processing on match error, a negative value is returned even if strcmp had returned a positive one.
1.8.9.1