xref: /dpdk/lib/cmdline/cmdline_parse_num.h (revision 99a2dd955fba6e4cc23b77d590a033650ced9c45)
1*99a2dd95SBruce Richardson /* SPDX-License-Identifier: BSD-3-Clause
2*99a2dd95SBruce Richardson  * Copyright(c) 2010-2014 Intel Corporation.
3*99a2dd95SBruce Richardson  * Copyright (c) 2009, Olivier MATZ <zer0@droids-corp.org>
4*99a2dd95SBruce Richardson  * All rights reserved.
5*99a2dd95SBruce Richardson  */
6*99a2dd95SBruce Richardson 
7*99a2dd95SBruce Richardson #ifndef _PARSE_NUM_H_
8*99a2dd95SBruce Richardson #define _PARSE_NUM_H_
9*99a2dd95SBruce Richardson 
10*99a2dd95SBruce Richardson #include <cmdline_parse.h>
11*99a2dd95SBruce Richardson 
12*99a2dd95SBruce Richardson #ifdef __cplusplus
13*99a2dd95SBruce Richardson extern "C" {
14*99a2dd95SBruce Richardson #endif
15*99a2dd95SBruce Richardson 
16*99a2dd95SBruce Richardson enum cmdline_numtype {
17*99a2dd95SBruce Richardson 	RTE_UINT8 = 0,
18*99a2dd95SBruce Richardson 	RTE_UINT16,
19*99a2dd95SBruce Richardson 	RTE_UINT32,
20*99a2dd95SBruce Richardson 	RTE_UINT64,
21*99a2dd95SBruce Richardson 	RTE_INT8,
22*99a2dd95SBruce Richardson 	RTE_INT16,
23*99a2dd95SBruce Richardson 	RTE_INT32,
24*99a2dd95SBruce Richardson 	RTE_INT64
25*99a2dd95SBruce Richardson };
26*99a2dd95SBruce Richardson 
27*99a2dd95SBruce Richardson struct cmdline_token_num_data {
28*99a2dd95SBruce Richardson 	enum cmdline_numtype type;
29*99a2dd95SBruce Richardson };
30*99a2dd95SBruce Richardson 
31*99a2dd95SBruce Richardson struct cmdline_token_num {
32*99a2dd95SBruce Richardson 	struct cmdline_token_hdr hdr;
33*99a2dd95SBruce Richardson 	struct cmdline_token_num_data num_data;
34*99a2dd95SBruce Richardson };
35*99a2dd95SBruce Richardson typedef struct cmdline_token_num cmdline_parse_token_num_t;
36*99a2dd95SBruce Richardson 
37*99a2dd95SBruce Richardson extern struct cmdline_token_ops cmdline_token_num_ops;
38*99a2dd95SBruce Richardson 
39*99a2dd95SBruce Richardson int cmdline_parse_num(cmdline_parse_token_hdr_t *tk,
40*99a2dd95SBruce Richardson 	const char *srcbuf, void *res, unsigned ressize);
41*99a2dd95SBruce Richardson int cmdline_get_help_num(cmdline_parse_token_hdr_t *tk,
42*99a2dd95SBruce Richardson 	char *dstbuf, unsigned int size);
43*99a2dd95SBruce Richardson 
44*99a2dd95SBruce Richardson #define TOKEN_NUM_INITIALIZER(structure, field, numtype)    \
45*99a2dd95SBruce Richardson {                                                           \
46*99a2dd95SBruce Richardson 	/* hdr */                                               \
47*99a2dd95SBruce Richardson 	{                                                       \
48*99a2dd95SBruce Richardson 		&cmdline_token_num_ops,         /* ops */           \
49*99a2dd95SBruce Richardson 		offsetof(structure, field),     /* offset */        \
50*99a2dd95SBruce Richardson 	},                                                      \
51*99a2dd95SBruce Richardson 	/* num_data */                                          \
52*99a2dd95SBruce Richardson 	{                                                       \
53*99a2dd95SBruce Richardson 		numtype,                        /* type */          \
54*99a2dd95SBruce Richardson 	},                                                      \
55*99a2dd95SBruce Richardson }
56*99a2dd95SBruce Richardson 
57*99a2dd95SBruce Richardson #ifdef __cplusplus
58*99a2dd95SBruce Richardson }
59*99a2dd95SBruce Richardson #endif
60*99a2dd95SBruce Richardson 
61*99a2dd95SBruce Richardson #endif /* _PARSE_NUM_H_ */
62