Add a shell_strtoull function that works similar to shell_strtoul except that it calls strtoull instead of strtoul. Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
90 lines
2.6 KiB
C
90 lines
2.6 KiB
C
/*
|
|
* Copyright (c) 2022 Nordic Semiconductor ASA
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
#ifndef SHELL_STRING_CONV_H__
|
|
#define SHELL_STRING_CONV_H__
|
|
|
|
#include <stdbool.h>
|
|
#include <stdint.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/** @brief String to long conversion with error check.
|
|
*
|
|
* @warning On success the passed err reference will not be altered
|
|
* to avoid err check bloating. Passed err reference should be initialized
|
|
* to zero.
|
|
*
|
|
* @param str Input string.
|
|
* @param base Conversion base.
|
|
* @param err Error code pointer:
|
|
* -EINVAL on invalid string input.
|
|
* -ERANGE if numeric string input is to large to convert.
|
|
* Unchanged on success.
|
|
*
|
|
* @return Converted long value.
|
|
*/
|
|
long shell_strtol(const char *str, int base, int *err);
|
|
|
|
/** @brief String to unsigned long conversion with error check.
|
|
*
|
|
* @warning On success the passed err reference will not be altered
|
|
* to avoid err check bloating. Passed err reference should be initialized
|
|
* to zero.
|
|
*
|
|
* @param str Input string.
|
|
* @param base Conversion base.
|
|
* @param err Error code pointer:
|
|
* Set to -EINVAL on invalid string input.
|
|
* Set to -ERANGE if numeric string input is to large to convert.
|
|
* Unchanged on success.
|
|
*
|
|
* @return Converted unsigned long value.
|
|
*/
|
|
unsigned long shell_strtoul(const char *str, int base, int *err);
|
|
|
|
/** @brief String to unsigned long long conversion with error check.
|
|
*
|
|
* @warning On success the passed err reference will not be altered
|
|
* to avoid err check bloating. Passed err reference should be initialized
|
|
* to zero.
|
|
*
|
|
* @param str Input string.
|
|
* @param base Conversion base.
|
|
* @param err Error code pointer:
|
|
* Set to -EINVAL on invalid string input.
|
|
* Set to -ERANGE if numeric string input is to large to convert.
|
|
* Unchanged on success.
|
|
*
|
|
* @return Converted unsigned long long value.
|
|
*/
|
|
unsigned long long shell_strtoull(const char *str, int base, int *err);
|
|
|
|
/** @brief String to boolean conversion with error check.
|
|
*
|
|
* @warning On success the passed err reference will not be altered
|
|
* to avoid err check bloating. Passed err reference should be initialized
|
|
* to zero.
|
|
*
|
|
* @param str Input string.
|
|
* @param base Conversion base.
|
|
* @param err Error code pointer:
|
|
* Set to -EINVAL on invalid string input.
|
|
* Set to -ERANGE if numeric string input is to large to convert.
|
|
* Unchanged on success.
|
|
*
|
|
* @return Converted boolean value.
|
|
*/
|
|
bool shell_strtobool(const char *str, int base, int *err);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* SHELL_STRING_CONV_H__ */
|