kvargs: add generic string matching callback
This function can be used as a callback to rte_kvargs_process. This should reduce code duplication. Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
This commit is contained in:
parent
ac1a511eff
commit
a3b85476c5
@ -193,3 +193,13 @@ rte_kvargs_parse_delim(const char *args, const char * const valid_keys[],
|
||||
free(copy);
|
||||
return kvlist;
|
||||
}
|
||||
|
||||
__rte_experimental
|
||||
int
|
||||
rte_kvargs_strcmp(const char *key __rte_unused,
|
||||
const char *value, void *opaque)
|
||||
{
|
||||
const char *str = opaque;
|
||||
|
||||
return -abs(strcmp(str, value));
|
||||
}
|
||||
|
@ -153,6 +153,32 @@ int rte_kvargs_process(const struct rte_kvargs *kvlist,
|
||||
unsigned rte_kvargs_count(const struct rte_kvargs *kvlist,
|
||||
const char *key_match);
|
||||
|
||||
/**
|
||||
* Generic kvarg handler for string comparison.
|
||||
*
|
||||
* This function can be used for a generic string comparison processing
|
||||
* on a list of kvargs.
|
||||
*
|
||||
* @param key
|
||||
* kvarg pair key.
|
||||
*
|
||||
* @param value
|
||||
* kvarg pair value.
|
||||
*
|
||||
* @param opaque
|
||||
* Opaque pointer to a string.
|
||||
*
|
||||
* @return
|
||||
* 0 if the strings match.
|
||||
* !0 otherwise or on error.
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
__rte_experimental
|
||||
int rte_kvargs_strcmp(const char *key, const char *value, void *opaque);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@ -13,5 +13,6 @@ EXPERIMENTAL {
|
||||
global:
|
||||
|
||||
rte_kvargs_parse_delim;
|
||||
rte_kvargs_strcmp;
|
||||
|
||||
} DPDK_2.0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user