1
2
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
20static inline size_t
21skip_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
31int parser_read_arg_bool(const char *p);
32
33int parser_read_uint64(uint64_t *value, const char *p);
34int parser_read_uint32(uint32_t *value, const char *p);
35int parser_read_uint16(uint16_t *value, const char *p);
36int parser_read_uint8(uint8_t *value, const char *p);
37
38int parser_read_uint64_hex(uint64_t *value, const char *p);
39int parser_read_uint32_hex(uint32_t *value, const char *p);
40int parser_read_uint16_hex(uint16_t *value, const char *p);
41int parser_read_uint8_hex(uint8_t *value, const char *p);
42
43int parser_read_int32(int32_t *value, const char *p);
44
45int parse_hex_string(char *src, uint8_t *dst, uint32_t *size);
46
47int parse_tokenize_string(char *string, char *tokens[], uint32_t *n_tokens);
48
49int parse_lcores_list(bool lcores[], int lcores_num, const char *corelist);
50#endif
51