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