DPDK 25.07.0
Data Structures | Typedefs | Enumerations | Functions
rte_argparse.h File Reference
#include <stdbool.h>
#include <stdint.h>
#include <rte_bitops.h>
#include <rte_compat.h>

Go to the source code of this file.

Data Structures

struct  rte_argparse_arg
 
struct  rte_argparse
 

Typedefs

typedef int(* rte_arg_parser_t) (uint32_t index, const char *value, void *opaque)
 

Enumerations

enum  rte_argparse_value_required { RTE_ARGPARSE_VALUE_NONE , RTE_ARGPARSE_VALUE_REQUIRED , RTE_ARGPARSE_VALUE_OPTIONAL }
 
enum  rte_argparse_value_type {
  RTE_ARGPARSE_VALUE_TYPE_NONE = 0 , RTE_ARGPARSE_VALUE_TYPE_INT , RTE_ARGPARSE_VALUE_TYPE_U8 , RTE_ARGPARSE_VALUE_TYPE_U16 ,
  RTE_ARGPARSE_VALUE_TYPE_U32 , RTE_ARGPARSE_VALUE_TYPE_U64 , RTE_ARGPARSE_VALUE_TYPE_STR , RTE_ARGPARSE_VALUE_TYPE_BOOL
}
 
enum  rte_argparse_arg_flags { RTE_ARGPARSE_FLAG_SUPPORT_MULTI = RTE_BIT32(0) }
 

Functions

__rte_experimental int rte_argparse_parse (const struct rte_argparse *obj, int argc, char **argv)
 
__rte_experimental int rte_argparse_parse_type (const char *str, enum rte_argparse_value_type val_type, void *val)
 

Detailed Description

Argument parsing API.

The argument parsing API makes it easy to write user-friendly command-line program. The program defines what arguments it requires, and the API will parse those arguments from [argc, argv].

The API provides the following functions: 1) Support parsing optional argument (which could take with no-value, required-value and optional-value. 2) Support parsing positional argument (which must take with required-value). 3) Support automatic generate usage information. 4) Support issue errors when provided with invalid arguments.

There are two ways to parse arguments: 1) AutoSave: for which known value types, the way can be used. 2) Callback: will invoke user callback to parse.

Definition in file rte_argparse.h.

Typedef Documentation

◆ rte_arg_parser_t

typedef int(* rte_arg_parser_t) (uint32_t index, const char *value, void *opaque)

Callback prototype used by parsing specified arguments.

Parameters
indexThe argument's index, coming from argument's val_set field.
valueThe value corresponding to the argument, it may be NULL (e.g. the argument has no value, or the argument has optional value but doesn't provided value).
opaqueAn opaque pointer coming from the caller.
Returns
0 on success. Otherwise negative value is returned.

Definition at line 143 of file rte_argparse.h.

Enumeration Type Documentation

◆ rte_argparse_value_required

enum defining whether an argument takes a value or not.

Enumerator
RTE_ARGPARSE_VALUE_NONE 

The argument takes no value.

RTE_ARGPARSE_VALUE_REQUIRED 

The argument must have a value.

RTE_ARGPARSE_VALUE_OPTIONAL 

The argument has optional value.

Definition at line 43 of file rte_argparse.h.

◆ rte_argparse_value_type

enum defining the type of the argument, integer, boolean or just string

Enumerator
RTE_ARGPARSE_VALUE_TYPE_NONE 

Argument takes no value, or value type not specified. Should be used when argument is to be handled via callback.

RTE_ARGPARSE_VALUE_TYPE_INT 

The argument's value is int type.

RTE_ARGPARSE_VALUE_TYPE_U8 

The argument's value is uint8 type.

RTE_ARGPARSE_VALUE_TYPE_U16 

The argument's value is uint16 type.

RTE_ARGPARSE_VALUE_TYPE_U32 

The argument's value is uint32 type.

RTE_ARGPARSE_VALUE_TYPE_U64 

The argument's value is uint64 type.

RTE_ARGPARSE_VALUE_TYPE_STR 

The argument's value is string type.

RTE_ARGPARSE_VALUE_TYPE_BOOL 

The argument's value is boolean flag type.

Definition at line 53 of file rte_argparse.h.

◆ rte_argparse_arg_flags

Additional flags which may be specified for each argument

Enumerator
RTE_ARGPARSE_FLAG_SUPPORT_MULTI 

argument may be specified multiple times on the commandline

Definition at line 75 of file rte_argparse.h.

Function Documentation

◆ rte_argparse_parse()

__rte_experimental int rte_argparse_parse ( const struct rte_argparse obj,
int  argc,
char **  argv 
)
Warning
EXPERIMENTAL: this API may change without prior notice.

Parse parameters passed until all are processed, or until a "--" parameter is encountered.

Parameters
objParser object.
argcParameters count.
argvArray of parameters points.
Returns
number of arguments parsed (>= 0) on success. Otherwise negative error code is returned.
Examples
examples/dma/dmafwd.c, and examples/flow_filtering/main.c.

◆ rte_argparse_parse_type()

__rte_experimental int rte_argparse_parse_type ( const char *  str,
enum rte_argparse_value_type  val_type,
void *  val 
)
Warning
EXPERIMENTAL: this API may change without prior notice.

Parse the value from the input string based on the value type.

Parameters
strInput string.
val_typeThe value type,
See also
rte_argparse_value_type.
Parameters
valSaver for the value.
Returns
0 on success. Otherwise negative value is returned.