1 /* 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 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 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 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 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_ */ 90