New upstream version 18.02
[deb_dpdk.git] / app / test-eventdev / parser.h
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2010-2016 Intel Corporation
3  */
4
5 #ifndef __INCLUDE_PARSER_H__
6 #define __INCLUDE_PARSER_H__
7
8 #include <stdint.h>
9
10 #define PARSE_DELIMITER                         " \f\n\r\t\v"
11
12 #define skip_white_spaces(pos)                  \
13 ({                                              \
14         __typeof__(pos) _p = (pos);             \
15         for ( ; isspace(*_p); _p++)             \
16                 ;                               \
17         _p;                                     \
18 })
19
20 static inline size_t
21 skip_digits(const char *src)
22 {
23         size_t i;
24
25         for (i = 0; isdigit(src[i]); i++)
26                 ;
27
28         return i;
29 }
30
31 int parser_read_arg_bool(const char *p);
32
33 int parser_read_uint64(uint64_t *value, const char *p);
34 int parser_read_uint32(uint32_t *value, const char *p);
35 int parser_read_uint16(uint16_t *value, const char *p);
36 int parser_read_uint8(uint8_t *value, const char *p);
37
38 int parser_read_uint64_hex(uint64_t *value, const char *p);
39 int parser_read_uint32_hex(uint32_t *value, const char *p);
40 int parser_read_uint16_hex(uint16_t *value, const char *p);
41 int parser_read_uint8_hex(uint8_t *value, const char *p);
42
43 int parser_read_int32(int32_t *value, const char *p);
44
45 int parse_hex_string(char *src, uint8_t *dst, uint32_t *size);
46
47 int parse_tokenize_string(char *string, char *tokens[], uint32_t *n_tokens);
48
49 int parse_lcores_list(bool lcores[], const char *corelist);
50 #endif