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