DPDK
24.11.4
Toggle main menu visibility
Loading...
Searching...
No Matches
rte_argparse.h
Go to the documentation of this file.
1
/* SPDX-License-Identifier: BSD-3-Clause
2
* Copyright(c) 2024 HiSilicon Limited
3
*/
4
5
#ifndef RTE_ARGPARSE_H
6
#define RTE_ARGPARSE_H
7
29
30
#include <stdbool.h>
31
#include <stdint.h>
32
33
#include <
rte_bitops.h
>
34
#include <rte_compat.h>
35
36
#ifdef __cplusplus
37
extern
"C"
{
38
#endif
39
48
#define RTE_ARGPARSE_ARG_NO_VALUE RTE_SHIFT_VAL64(1, 0)
50
#define RTE_ARGPARSE_ARG_REQUIRED_VALUE RTE_SHIFT_VAL64(2, 0)
52
#define RTE_ARGPARSE_ARG_OPTIONAL_VALUE RTE_SHIFT_VAL64(3, 0)
54
#define RTE_ARGPARSE_ARG_VALUE_INT RTE_SHIFT_VAL64(1, 2)
56
#define RTE_ARGPARSE_ARG_VALUE_U8 RTE_SHIFT_VAL64(2, 2)
58
#define RTE_ARGPARSE_ARG_VALUE_U16 RTE_SHIFT_VAL64(3, 2)
60
#define RTE_ARGPARSE_ARG_VALUE_U32 RTE_SHIFT_VAL64(4, 2)
62
#define RTE_ARGPARSE_ARG_VALUE_U64 RTE_SHIFT_VAL64(5, 2)
64
#define RTE_ARGPARSE_ARG_VALUE_MAX RTE_SHIFT_VAL64(6, 2)
70
#define RTE_ARGPARSE_ARG_SUPPORT_MULTI RTE_BIT64(10)
72
#define RTE_ARGPARSE_ARG_RESERVED_FIELD RTE_GENMASK64(63, 48)
74
76
#define RTE_ARGPARSE_HAS_VAL_BITMASK RTE_GENMASK64(1, 0)
78
#define RTE_ARGPARSE_VAL_TYPE_BITMASK RTE_GENMASK64(9, 2)
79
83
struct
rte_argparse_arg
{
90
const
char
*
name_long
;
97
const
char
*
name_short
;
98
100
const
char
*
help
;
101
109
void
*
val_saver
;
120
void
*
val_set
;
121
123
uint64_t
flags
;
124
};
125
140
typedef
int (*
rte_arg_parser_t
)(uint32_t index,
const
char
*value,
void
*opaque);
141
145
struct
rte_argparse
{
147
const
char
*
prog_name
;
149
const
char
*
usage
;
151
const
char
*
descriptor
;
153
const
char
*
epilog
;
155
bool
exit_on_error
;
157
rte_arg_parser_t
callback
;
159
void
*
opaque
;
161
void
*
reserved
[16];
163
struct
rte_argparse_arg
args
[];
164
};
165
166
#define ARGPARSE_ARG_END() { NULL }
167
184
__rte_experimental
185
int
rte_argparse_parse
(
struct
rte_argparse
*obj,
int
argc,
char
**argv);
186
203
__rte_experimental
204
int
rte_argparse_parse_type
(
const
char
*str, uint64_t val_type,
void
*val);
205
206
#ifdef __cplusplus
207
}
208
#endif
209
210
#endif
/* RTE_ARGPARSE_H */
rte_argparse_parse_type
__rte_experimental int rte_argparse_parse_type(const char *str, uint64_t val_type, void *val)
rte_argparse_parse
__rte_experimental int rte_argparse_parse(struct rte_argparse *obj, int argc, char **argv)
rte_arg_parser_t
int(* rte_arg_parser_t)(uint32_t index, const char *value, void *opaque)
Definition
rte_argparse.h:140
rte_bitops.h
rte_argparse_arg
Definition
rte_argparse.h:83
rte_argparse_arg::flags
uint64_t flags
Definition
rte_argparse.h:123
rte_argparse_arg::val_set
void * val_set
Definition
rte_argparse.h:120
rte_argparse_arg::name_long
const char * name_long
Definition
rte_argparse.h:90
rte_argparse_arg::val_saver
void * val_saver
Definition
rte_argparse.h:109
rte_argparse_arg::help
const char * help
Definition
rte_argparse.h:100
rte_argparse_arg::name_short
const char * name_short
Definition
rte_argparse.h:97
rte_argparse
Definition
rte_argparse.h:145
rte_argparse::epilog
const char * epilog
Definition
rte_argparse.h:153
rte_argparse::reserved
void * reserved[16]
Definition
rte_argparse.h:161
rte_argparse::callback
rte_arg_parser_t callback
Definition
rte_argparse.h:157
rte_argparse::prog_name
const char * prog_name
Definition
rte_argparse.h:147
rte_argparse::descriptor
const char * descriptor
Definition
rte_argparse.h:151
rte_argparse::args
struct rte_argparse_arg args[]
Definition
rte_argparse.h:163
rte_argparse::opaque
void * opaque
Definition
rte_argparse.h:159
rte_argparse::usage
const char * usage
Definition
rte_argparse.h:149
rte_argparse::exit_on_error
bool exit_on_error
Definition
rte_argparse.h:155
lib
argparse
rte_argparse.h
Generated by
1.17.0