zephyr/include/zephyr/shell/shell_string_conv.h
Emil Gydesen de3e709b50 Shell: Add shell_strtoull
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>
2023-06-05 07:05:20 -04:00

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__ */