mirror of
https://github.com/No-Chicken/Power-Pico.git
synced 2026-04-03 13:02:36 +08:00
159 lines
5.7 KiB
C
159 lines
5.7 KiB
C
/**
|
|
* @file lv_string.h
|
|
*
|
|
*/
|
|
|
|
#ifndef LV_STRING_H
|
|
#define LV_STRING_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/*********************
|
|
* INCLUDES
|
|
*********************/
|
|
#include "../lv_conf_internal.h"
|
|
#include "../misc/lv_types.h"
|
|
|
|
/*********************
|
|
* DEFINES
|
|
*********************/
|
|
|
|
/**********************
|
|
* TYPEDEFS
|
|
**********************/
|
|
|
|
/**********************
|
|
* GLOBAL PROTOTYPES
|
|
**********************/
|
|
|
|
/**
|
|
* @brief Copies a block of memory from a source address to a destination address.
|
|
* @param dst Pointer to the destination array where the content is to be copied.
|
|
* @param src Pointer to the source of data to be copied.
|
|
* @param len Number of bytes to copy.
|
|
* @return Pointer to the destination array.
|
|
* @note The function does not check for any overlapping of the source and destination memory blocks.
|
|
*/
|
|
void * lv_memcpy(void * dst, const void * src, size_t len);
|
|
|
|
/**
|
|
* @brief Fills a block of memory with a specified value.
|
|
* @param dst Pointer to the destination array to fill with the specified value.
|
|
* @param v Value to be set. The value is passed as an int, but the function fills
|
|
* the block of memory using the unsigned char conversion of this value.
|
|
* @param len Number of bytes to be set to the value.
|
|
*/
|
|
void lv_memset(void * dst, uint8_t v, size_t len);
|
|
|
|
/**
|
|
* @brief Move a block of memory from source to destination
|
|
* @param dst Pointer to the destination array where the content is to be copied.
|
|
* @param src Pointer to the source of data to be copied.
|
|
* @param len Number of bytes to copy
|
|
* @return Pointer to the destination array.
|
|
*/
|
|
void * lv_memmove(void * dst, const void * src, size_t len);
|
|
|
|
/**
|
|
* @brief This function will compare two memory blocks
|
|
* @param p1 Pointer to the first memory block
|
|
* @param p2 Pointer to the second memory block
|
|
* @param len Number of bytes to compare
|
|
* @return The difference between the value of the first unmatching byte.
|
|
*/
|
|
int lv_memcmp(const void * p1, const void * p2, size_t len);
|
|
|
|
/**
|
|
* Same as `memset(dst, 0x00, len)`.
|
|
* @param dst pointer to the destination buffer
|
|
* @param len number of byte to set
|
|
*/
|
|
static inline void lv_memzero(void * dst, size_t len)
|
|
{
|
|
lv_memset(dst, 0x00, len);
|
|
}
|
|
|
|
/**
|
|
* @brief Computes the length of the string str up to, but not including the terminating null character.
|
|
* @param str Pointer to the null-terminated byte string to be examined.
|
|
* @return The length of the string in bytes.
|
|
*/
|
|
size_t lv_strlen(const char * str);
|
|
|
|
/**
|
|
* @brief Copies up to dst_size-1 (non-null) characters from src to dst. A null terminator is always added.
|
|
* @param dst Pointer to the destination array where the content is to be copied.
|
|
* @param src Pointer to the source of data to be copied.
|
|
* @param dst_size Maximum number of characters to be copied to dst, including the null character.
|
|
* @return The length of src. The return value is equivalent to the value returned by lv_strlen(src)
|
|
*/
|
|
size_t lv_strlcpy(char * dst, const char * src, size_t dst_size);
|
|
|
|
/**
|
|
* @brief Copies up to dest_size characters from the string pointed to by src to the character array pointed to by dst
|
|
* and fills the remaining length with null bytes.
|
|
* @param dst Pointer to the destination array where the content is to be copied.
|
|
* @param src Pointer to the source of data to be copied.
|
|
* @param dest_size Maximum number of characters to be copied to dst.
|
|
* @return A pointer to the destination array, which is dst.
|
|
* @note dst will not be null terminated if dest_size bytes were copied from src before the end of src was reached.
|
|
*/
|
|
char * lv_strncpy(char * dst, const char * src, size_t dest_size);
|
|
|
|
/**
|
|
* @brief Copies the string pointed to by src, including the terminating null character,
|
|
* to the character array pointed to by dst.
|
|
* @param dst Pointer to the destination array where the content is to be copied.
|
|
* @param src Pointer to the source of data to be copied.
|
|
* @return A pointer to the destination array, which is dst.
|
|
*/
|
|
char * lv_strcpy(char * dst, const char * src);
|
|
|
|
/**
|
|
* @brief This function will compare two strings without specified length.
|
|
* @param s1 pointer to the first string
|
|
* @param s2 pointer to the second string
|
|
* @return the difference between the value of the first unmatching character.
|
|
*/
|
|
int lv_strcmp(const char * s1, const char * s2);
|
|
|
|
/**
|
|
* @brief Duplicate a string by allocating a new one and copying the content.
|
|
* @param src Pointer to the source of data to be copied.
|
|
* @return A pointer to the new allocated string. NULL if failed.
|
|
*/
|
|
char * lv_strdup(const char * src);
|
|
|
|
/**
|
|
* @brief Copies the string pointed to by src, including the terminating null character,
|
|
* to the end of the string pointed to by dst.
|
|
* @param dst Pointer to the destination string where the content is to be appended.
|
|
* @param src Pointer to the source of data to be copied.
|
|
* @return A pointer to the destination string, which is dst.
|
|
*/
|
|
char * lv_strcat(char * dst, const char * src);
|
|
|
|
/**
|
|
* @brief Copies up to src_len characters from the string pointed to by src
|
|
* to the end of the string pointed to by dst.
|
|
* A terminating null character is appended to dst even if no null character
|
|
* was encountered in src after src_len characters were copied.
|
|
* @param dst Pointer to the destination string where the content is to be appended.
|
|
* @param src Pointer to the source of data to be copied.
|
|
* @param src_len Maximum number of characters from src to be copied to the end of dst.
|
|
* @return A pointer to the destination string, which is dst.
|
|
*/
|
|
char * lv_strncat(char * dst, const char * src, size_t src_len);
|
|
|
|
/**********************
|
|
* MACROS
|
|
**********************/
|
|
|
|
#ifdef __cplusplus
|
|
} /*extern "C"*/
|
|
#endif
|
|
|
|
#endif /*LV_STRING_H*/
|