1174a1631SBruce Richardson /* SPDX-License-Identifier: BSD-3-Clause
2174a1631SBruce Richardson * Copyright(c) 2010-2016 Intel Corporation
389e5eb11SGuduri Prathyusha */
489e5eb11SGuduri Prathyusha
589e5eb11SGuduri Prathyusha #ifndef __INCLUDE_PARSER_H__
689e5eb11SGuduri Prathyusha #define __INCLUDE_PARSER_H__
789e5eb11SGuduri Prathyusha
889e5eb11SGuduri Prathyusha #include <stdint.h>
989e5eb11SGuduri Prathyusha
1089e5eb11SGuduri Prathyusha #define PARSE_DELIMITER " \f\n\r\t\v"
1189e5eb11SGuduri Prathyusha
1289e5eb11SGuduri Prathyusha #define skip_white_spaces(pos) \
1389e5eb11SGuduri Prathyusha ({ \
1489e5eb11SGuduri Prathyusha __typeof__(pos) _p = (pos); \
1589e5eb11SGuduri Prathyusha for ( ; isspace(*_p); _p++) \
1689e5eb11SGuduri Prathyusha ; \
1789e5eb11SGuduri Prathyusha _p; \
1889e5eb11SGuduri Prathyusha })
1989e5eb11SGuduri Prathyusha
2089e5eb11SGuduri Prathyusha static inline size_t
skip_digits(const char * src)2189e5eb11SGuduri Prathyusha skip_digits(const char *src)
2289e5eb11SGuduri Prathyusha {
2389e5eb11SGuduri Prathyusha size_t i;
2489e5eb11SGuduri Prathyusha
2589e5eb11SGuduri Prathyusha for (i = 0; isdigit(src[i]); i++)
2689e5eb11SGuduri Prathyusha ;
2789e5eb11SGuduri Prathyusha
2889e5eb11SGuduri Prathyusha return i;
2989e5eb11SGuduri Prathyusha }
3089e5eb11SGuduri Prathyusha
3189e5eb11SGuduri Prathyusha int parser_read_arg_bool(const char *p);
3289e5eb11SGuduri Prathyusha
3389e5eb11SGuduri Prathyusha int parser_read_uint64(uint64_t *value, const char *p);
3489e5eb11SGuduri Prathyusha int parser_read_uint32(uint32_t *value, const char *p);
3589e5eb11SGuduri Prathyusha int parser_read_uint16(uint16_t *value, const char *p);
3689e5eb11SGuduri Prathyusha int parser_read_uint8(uint8_t *value, const char *p);
3789e5eb11SGuduri Prathyusha
3889e5eb11SGuduri Prathyusha int parser_read_uint64_hex(uint64_t *value, const char *p);
3989e5eb11SGuduri Prathyusha int parser_read_uint32_hex(uint32_t *value, const char *p);
4089e5eb11SGuduri Prathyusha int parser_read_uint16_hex(uint16_t *value, const char *p);
4189e5eb11SGuduri Prathyusha int parser_read_uint8_hex(uint8_t *value, const char *p);
4289e5eb11SGuduri Prathyusha
4389e5eb11SGuduri Prathyusha int parser_read_int32(int32_t *value, const char *p);
4489e5eb11SGuduri Prathyusha
4589e5eb11SGuduri Prathyusha int parse_hex_string(char *src, uint8_t *dst, uint32_t *size);
4689e5eb11SGuduri Prathyusha
4789e5eb11SGuduri Prathyusha int parse_tokenize_string(char *string, char *tokens[], uint32_t *n_tokens);
4889e5eb11SGuduri Prathyusha
49*32d7dbf2SMin Hu (Connor) int parse_lcores_list(bool lcores[], int lcores_num, const char *corelist);
5089e5eb11SGuduri Prathyusha #endif
51