Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
rte_kvargs.h(3)			     DPDK		       rte_kvargs.h(3)

NAME
       rte_kvargs.h

SYNOPSIS
   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)
       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)
       int rte_kvargs_process_opt (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)

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.

Macro Definition Documentation
   #define RTE_KVARGS_MAX   32
       Maximum number of key/value associations

       Definition at line 29 of	file rte_kvargs.h.

   #define RTE_KVARGS_PAIRS_DELIM   ','
       separator character used	between	each pair

       Definition at line 32 of	file rte_kvargs.h.

   #define RTE_KVARGS_KV_DELIM	 '='
       separator character used	between	key and	value

       Definition at line 35 of	file rte_kvargs.h.

Typedef	Documentation
   typedef int(* arg_handler_t)	(const char *key, const	char *value, void
       *opaque)
       Callback	prototype used by rte_kvargs_process().

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

       Returns

	    >=0 handle	key success.

	    <0	on error.

       Definition at line 50 of	file rte_kvargs.h.

Function Documentation
   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().

       Parameters
	   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

       Returns

	    A pointer to an allocated rte_kvargs structure on success

	    NULL on error

   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().

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

       Returns

	    A pointer to an allocated rte_kvargs structure on success

	    NULL on error

   void	rte_kvargs_free	(struct	rte_kvargs * kvlist)
       Free a rte_kvargs structure

       Free    a    rte_kvargs	  structure    previously    allocated	  with
       rte_kvargs_parse().

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

       Parameters
	   kvlist 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.

   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.

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

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

   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.

       Note
	   Compared to

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

       Parameters
	   kvlist 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

   int rte_kvargs_process_opt (const struct rte_kvargs * kvlist, const char  *
       key_match, arg_handler_t	handler, 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.

       Parameters
	   kvlist 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

   unsigned  rte_kvargs_count  (const struct rte_kvargs	* kvlist, const	char *
       key_match)
       Count the number	of associations	matching the given key

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

       Returns
	   The number of entries

Author
       Generated automatically by Doxygen for DPDK from	the source code.

Version	25.11.0			Thu Jun	11 2026		       rte_kvargs.h(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=rte_kvargs_count&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help