xref: /f-stack/dpdk/app/test-eventdev/parser.h (revision d30ea906)
1*d30ea906Sjfb8856606 /* SPDX-License-Identifier: BSD-3-Clause
2*d30ea906Sjfb8856606  * Copyright(c) 2010-2016 Intel Corporation
32bfe3f2eSlogwang  */
42bfe3f2eSlogwang 
52bfe3f2eSlogwang #ifndef __INCLUDE_PARSER_H__
62bfe3f2eSlogwang #define __INCLUDE_PARSER_H__
72bfe3f2eSlogwang 
82bfe3f2eSlogwang #include <stdint.h>
92bfe3f2eSlogwang 
102bfe3f2eSlogwang #define PARSE_DELIMITER				" \f\n\r\t\v"
112bfe3f2eSlogwang 
122bfe3f2eSlogwang #define skip_white_spaces(pos)			\
132bfe3f2eSlogwang ({						\
142bfe3f2eSlogwang 	__typeof__(pos) _p = (pos);		\
152bfe3f2eSlogwang 	for ( ; isspace(*_p); _p++)		\
162bfe3f2eSlogwang 		;				\
172bfe3f2eSlogwang 	_p;					\
182bfe3f2eSlogwang })
192bfe3f2eSlogwang 
202bfe3f2eSlogwang static inline size_t
skip_digits(const char * src)212bfe3f2eSlogwang skip_digits(const char *src)
222bfe3f2eSlogwang {
232bfe3f2eSlogwang 	size_t i;
242bfe3f2eSlogwang 
252bfe3f2eSlogwang 	for (i = 0; isdigit(src[i]); i++)
262bfe3f2eSlogwang 		;
272bfe3f2eSlogwang 
282bfe3f2eSlogwang 	return i;
292bfe3f2eSlogwang }
302bfe3f2eSlogwang 
312bfe3f2eSlogwang int parser_read_arg_bool(const char *p);
322bfe3f2eSlogwang 
332bfe3f2eSlogwang int parser_read_uint64(uint64_t *value, const char *p);
342bfe3f2eSlogwang int parser_read_uint32(uint32_t *value, const char *p);
352bfe3f2eSlogwang int parser_read_uint16(uint16_t *value, const char *p);
362bfe3f2eSlogwang int parser_read_uint8(uint8_t *value, const char *p);
372bfe3f2eSlogwang 
382bfe3f2eSlogwang int parser_read_uint64_hex(uint64_t *value, const char *p);
392bfe3f2eSlogwang int parser_read_uint32_hex(uint32_t *value, const char *p);
402bfe3f2eSlogwang int parser_read_uint16_hex(uint16_t *value, const char *p);
412bfe3f2eSlogwang int parser_read_uint8_hex(uint8_t *value, const char *p);
422bfe3f2eSlogwang 
432bfe3f2eSlogwang int parser_read_int32(int32_t *value, const char *p);
442bfe3f2eSlogwang 
452bfe3f2eSlogwang int parse_hex_string(char *src, uint8_t *dst, uint32_t *size);
462bfe3f2eSlogwang 
472bfe3f2eSlogwang int parse_tokenize_string(char *string, char *tokens[], uint32_t *n_tokens);
482bfe3f2eSlogwang 
492bfe3f2eSlogwang int parse_lcores_list(bool lcores[], const char *corelist);
502bfe3f2eSlogwang #endif
51