logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Author

       Generated automatically by Doxygen for DPDK from the source code.

DPDK                                             Version 24.11.2                                 rte_kvargs.h(3)

Detailed Description

       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.

Function Documentation

structrte_kvargs*rte_kvargs_parse(constchar*args,constchar*constvalid_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().

       Parametersargs 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

       Returns

           • A pointer to an allocated rte_kvargs structure on success

           • NULL on error

   structrte_kvargs*rte_kvargs_parse_delim(constchar*args,constchar*constvalid_keys[],constchar*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().

       Parametersargs 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.

       Returns

           • A pointer to an allocated rte_kvargs structure on success

           • NULL on error

   voidrte_kvargs_free(structrte_kvargs*kvlist)
       Free a rte_kvargs structure

       Free a rte_kvargs structure previously allocated with rte_kvargs_parse().

       Parameterskvlist The rte_kvargs structure. No error if NULL.

   constchar*rte_kvargs_get(conststructrte_kvargs*kvlist,constchar*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.

       Parameterskvlist A list of rte_kvargs pair of 'key=value'.
           key The matching key.

       Returns
           NULL if no key matches the input, a value associated with a matching key otherwise.

   constchar*rte_kvargs_get_with_value(conststructrte_kvargs*kvlist,constchar*key,constchar*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.

       Parameterskvlist 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.

       Returns
           NULL if no key matches the input, a value associated with a matching key otherwise.

   intrte_kvargs_process(conststructrte_kvargs*kvlist,constchar*key_match,arg_handler_thandler,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.

       Note
           Compared to

       Seealsorte_kvargs_process_opt, this API will return -1 when handle only-key case (that is the matched  key's
           value is NULL).

       Parameterskvlist The rte_kvargs structure.
           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

       Returns

           • 0 on success

           • Negative on error

   intrte_kvargs_process_opt(conststructrte_kvargs*kvlist,constchar*key_match,arg_handler_thandler,void*opaque_arg)
       Call a handler function for each key=value or only-key matching the key

       For  each  key=value  or only-key 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.

       Parameterskvlist The rte_kvargs structure.
           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

       Returns

           • 0 on success

           • Negative on error

   unsignedrte_kvargs_count(conststructrte_kvargs*kvlist,constchar*key_match)
       Count the number of associations matching the given key

       Parameterskvlist The rte_kvargs structure
           key_match The key that should match, or NULL to count all associations

       Returns
           The number of entries

Macro Definition Documentation

#defineRTE_KVARGS_MAX32
       Maximum number of key/value associations

       Definition at line 29 of file rte_kvargs.h.

   #defineRTE_KVARGS_PAIRS_DELIM','
       separator character used between each pair

       Definition at line 32 of file rte_kvargs.h.

   #defineRTE_KVARGS_KV_DELIM'='
       separator character used between key and value

       Definition at line 35 of file rte_kvargs.h.

Name

       rte_kvargs.h

Synopsis

DataStructures
       struct rte_kvargs_pair
       struct rte_kvargsMacros
       #define RTE_KVARGS_MAX   32
       #define RTE_KVARGS_PAIRS_DELIM   ','
       #define RTE_KVARGS_KV_DELIM   '='

   Typedefstypedef 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)
       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_thandler,
           void *opaque_arg)
       int rte_kvargs_process_opt (const struct rte_kvargs *kvlist, const char *key_match, arg_handler_thandler, void *opaque_arg)
       unsigned rte_kvargs_count (const struct rte_kvargs *kvlist, const char *key_match)

Typedef Documentation

typedefint(*arg_handler_t)(constchar*key,constchar*value,void*opaque)
       Callback prototype used by rte_kvargs_process().

       Parameterskey 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.

       Returns

           • >=0 handle key success.

           • <0 on error.

       Definition at line 50 of file rte_kvargs.h.

See Also