kernel: lib: Add convert functions for hex strings and binary arrays
Move duplicate hex2bin and add bin2hex function so that application can use the functions and avoid code duplication. Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
This commit is contained in:
parent
743f3dbae0
commit
7a93e948a9
9 changed files with 161 additions and 140 deletions
|
@ -18,6 +18,7 @@
|
|||
|
||||
#include <zephyr/types.h>
|
||||
#include <stdbool.h>
|
||||
#include <stddef.h>
|
||||
|
||||
/* Helper to pass a int as a pointer or vice-versa. */
|
||||
#define POINTER_TO_UINT(x) ((uintptr_t) (x))
|
||||
|
@ -122,6 +123,56 @@ static inline s64_t arithmetic_shift_right(s64_t value, u8_t shift)
|
|||
return (value >> shift) | (sign_ext << (64 - shift));
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Convert a single character into a hexadecimal nibble.
|
||||
*
|
||||
* @param[in] c The character to convert
|
||||
* @param x The address of storage for the converted number.
|
||||
*
|
||||
* @return Zero on success or (negative) error code otherwise.
|
||||
*/
|
||||
int char2hex(char c, u8_t *x);
|
||||
|
||||
/**
|
||||
* @brief Convert a single hexadecimal nibble into a character.
|
||||
*
|
||||
* @param[in] c The number to convert
|
||||
* @param x The address of storage for the converted character.
|
||||
*
|
||||
* @return Zero on success or (negative) error code otherwise.
|
||||
*/
|
||||
int hex2char(u8_t x, char *c);
|
||||
|
||||
/**
|
||||
* @brief Convert a binary array into string representation.
|
||||
*
|
||||
* @param[in] buf The binary array to convert
|
||||
* @param[in] buflen The length of the binary array to convert
|
||||
* @param[out] hex Address of where to store the string representation.
|
||||
* @param[in] hexlen Size of the storage area for string representation.
|
||||
*
|
||||
* @return The length of the converted string, or 0 if an error occurred.
|
||||
*/
|
||||
size_t bin2hex(const u8_t *buf, size_t buflen, char *hex, size_t hexlen);
|
||||
|
||||
/*
|
||||
* Convert hex string to byte string
|
||||
* Return number of bytes written to buf, or 0 on error
|
||||
* @return The length of the converted array, or 0 if an error occurred.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @brief Convert a hexadecimal string into a binary array.
|
||||
*
|
||||
* @param[in] hex The hexadecimal string to convert
|
||||
* @param[in] hexlen The length of the hexadecimal string to convert.
|
||||
* @param[out] buf Address of where to store the binary data
|
||||
* @param[in] buflen Size of the storage area for binary data
|
||||
*
|
||||
* @return The length of the binary array , or 0 if an error occurred.
|
||||
*/
|
||||
size_t hex2bin(const char *hex, size_t hexlen, u8_t *buf, size_t buflen);
|
||||
|
||||
#endif /* !_ASMLANGUAGE */
|
||||
|
||||
/* KB, MB, GB */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue