]>
Commit | Line | Data |
---|---|---|
9f95a23c TL |
1 | /* SPDX-License-Identifier: BSD-3-Clause |
2 | * Copyright(c) 2010-2016 Intel Corporation | |
7c673cae FG |
3 | */ |
4 | ||
5 | #ifndef __INCLUDE_PARSER_H__ | |
6 | #define __INCLUDE_PARSER_H__ | |
7 | ||
8 | #include <stdint.h> | |
9 | ||
10 | #include <rte_ip.h> | |
11 | #include <rte_ether.h> | |
12 | ||
13 | #define PARSE_DELIMITER " \f\n\r\t\v" | |
14 | ||
15 | #define skip_white_spaces(pos) \ | |
16 | ({ \ | |
17 | __typeof__(pos) _p = (pos); \ | |
18 | for ( ; isspace(*_p); _p++) \ | |
19 | ; \ | |
20 | _p; \ | |
21 | }) | |
22 | ||
23 | static inline size_t | |
24 | skip_digits(const char *src) | |
25 | { | |
26 | size_t i; | |
27 | ||
28 | for (i = 0; isdigit(src[i]); i++) | |
29 | ; | |
30 | ||
31 | return i; | |
32 | } | |
33 | ||
34 | int parser_read_arg_bool(const char *p); | |
35 | ||
36 | int parser_read_uint64(uint64_t *value, const char *p); | |
37 | int parser_read_uint32(uint32_t *value, const char *p); | |
38 | int parser_read_uint16(uint16_t *value, const char *p); | |
39 | int parser_read_uint8(uint8_t *value, const char *p); | |
40 | ||
41 | int parser_read_uint64_hex(uint64_t *value, const char *p); | |
42 | int parser_read_uint32_hex(uint32_t *value, const char *p); | |
43 | int parser_read_uint16_hex(uint16_t *value, const char *p); | |
44 | int parser_read_uint8_hex(uint8_t *value, const char *p); | |
45 | ||
46 | int parse_hex_string(char *src, uint8_t *dst, uint32_t *size); | |
47 | ||
48 | int parse_ipv4_addr(const char *token, struct in_addr *ipv4); | |
49 | int parse_ipv6_addr(const char *token, struct in6_addr *ipv6); | |
50 | int parse_mac_addr(const char *token, struct ether_addr *addr); | |
51 | int parse_mpls_labels(char *string, uint32_t *labels, uint32_t *n_labels); | |
52 | ||
9f95a23c TL |
53 | struct cpu_core_params { |
54 | uint32_t socket_id; | |
55 | uint32_t core_id; | |
56 | uint32_t thread_id; | |
57 | }; | |
58 | ||
59 | int parse_cpu_core(const char *entry, struct cpu_core_params *p); | |
60 | ||
7c673cae FG |
61 | int parse_tokenize_string(char *string, char *tokens[], uint32_t *n_tokens); |
62 | ||
63 | #endif |