Line data Source code
1 0 : /* 2 : * Copyright (c) 2022 Nordic Semiconductor ASA 3 : * 4 : * SPDX-License-Identifier: Apache-2.0 5 : */ 6 : 7 : #ifndef ZEPHYR_INCLUDE_SHELL_STRING_CONV_H_ 8 : #define ZEPHYR_INCLUDE_SHELL_STRING_CONV_H_ 9 : 10 : #include <stdbool.h> 11 : #include <stdint.h> 12 : 13 : #ifdef __cplusplus 14 : extern "C" { 15 : #endif 16 : 17 : /** @brief String to long conversion with error check. 18 : * 19 : * @warning On success the passed err reference will not be altered 20 : * to avoid err check bloating. Passed err reference should be initialized 21 : * to zero. 22 : * 23 : * @param str Input string. 24 : * @param base Conversion base. 25 : * @param err Error code pointer: 26 : * -EINVAL on invalid string input. 27 : * -ERANGE if numeric string input is to large to convert. 28 : * Unchanged on success. 29 : * 30 : * @return Converted long value. 31 : */ 32 1 : long shell_strtol(const char *str, int base, int *err); 33 : 34 : /** @brief String to unsigned long conversion with error check. 35 : * 36 : * @warning On success the passed err reference will not be altered 37 : * to avoid err check bloating. Passed err reference should be initialized 38 : * to zero. 39 : * 40 : * @param str Input string. 41 : * @param base Conversion base. 42 : * @param err Error code pointer: 43 : * Set to -EINVAL on invalid string input. 44 : * Set to -ERANGE if numeric string input is to large to convert. 45 : * Unchanged on success. 46 : * 47 : * @return Converted unsigned long value. 48 : */ 49 1 : unsigned long shell_strtoul(const char *str, int base, int *err); 50 : 51 : /** @brief String to unsigned long long conversion with error check. 52 : * 53 : * @warning On success the passed err reference will not be altered 54 : * to avoid err check bloating. Passed err reference should be initialized 55 : * to zero. 56 : * 57 : * @param str Input string. 58 : * @param base Conversion base. 59 : * @param err Error code pointer: 60 : * Set to -EINVAL on invalid string input. 61 : * Set to -ERANGE if numeric string input is to large to convert. 62 : * Unchanged on success. 63 : * 64 : * @return Converted unsigned long long value. 65 : */ 66 1 : unsigned long long shell_strtoull(const char *str, int base, int *err); 67 : 68 : /** @brief String to boolean conversion with error check. 69 : * 70 : * @warning On success the passed err reference will not be altered 71 : * to avoid err check bloating. Passed err reference should be initialized 72 : * to zero. 73 : * 74 : * @param str Input string. 75 : * @param base Conversion base. 76 : * @param err Error code pointer: 77 : * Set to -EINVAL on invalid string input. 78 : * Set to -ERANGE if numeric string input is to large to convert. 79 : * Unchanged on success. 80 : * 81 : * @return Converted boolean value. 82 : */ 83 1 : bool shell_strtobool(const char *str, int base, int *err); 84 : 85 : #ifdef __cplusplus 86 : } 87 : #endif 88 : 89 : #endif /* ZEPHYR_INCLUDE_SHELL_STRING_CONV_H_ */