DPDK
23.03.0
|
#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[]) |
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) |
const char * | rte_kvargs_get (const struct rte_kvargs *kvlist, const char *key) |
__rte_experimental const char * | rte_kvargs_get_with_value (const struct rte_kvargs *kvlist, const char *key, const char *value) |
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 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) |
Callback prototype used by rte_kvargs_process().
key | The key to consider, it will not be NULL. |
value | The value corresponding to the key, it may be NULL (e.g. only with key) |
opaque | An opaque pointer coming from the caller. |
Definition at line 52 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 |
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. |
const char* rte_kvargs_get | ( | const struct rte_kvargs * | kvlist, |
const char * | key | ||
) |
Get the value associated with a given key.
If multiple keys match, the value of the first one is returned.
The memory returned is allocated as part of the rte_kvargs structure, it must never be modified.
kvlist | A list of rte_kvargs pair of 'key=value'. |
key | The matching key. |
__rte_experimental const char* rte_kvargs_get_with_value | ( | const struct rte_kvargs * | kvlist, |
const char * | key, | ||
const char * | value | ||
) |
Get the value associated with a given key and value.
Find the first entry in the kvlist whose key and value match the ones passed as argument.
The memory returned is allocated as part of the rte_kvargs structure, it must never be modified.
kvlist | A list of rte_kvargs pair of 'key=value'. |
key | The matching key. If NULL, any key will match. |
value | The matching value. If NULL, any value will match. |
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 |