diff options
author | lhdjply <1029652979@qq.com> | 2023-11-10 20:41:00 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-10 13:41:00 +0100 |
commit | df910893e4c0661358642047e223b23a3b438bee (patch) | |
tree | 193a704e86c7b5862acb477212582070912fb610 /src/stdlib/rtthread/lv_string_rtthread.c | |
parent | 17d1da62aff77ee98e52d61770ff92678cbc28ff (diff) | |
download | lvgl-df910893e4c0661358642047e223b23a3b438bee.tar.gz lvgl-df910893e4c0661358642047e223b23a3b438bee.zip |
feat(stdlib):add rtthread function to stdlib (#4777)
Diffstat (limited to 'src/stdlib/rtthread/lv_string_rtthread.c')
-rw-r--r-- | src/stdlib/rtthread/lv_string_rtthread.c | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/src/stdlib/rtthread/lv_string_rtthread.c b/src/stdlib/rtthread/lv_string_rtthread.c new file mode 100644 index 000000000..8b23922ab --- /dev/null +++ b/src/stdlib/rtthread/lv_string_rtthread.c @@ -0,0 +1,85 @@ +/** + * @file lv_string_rtthread.c + */ + +/********************* + * INCLUDES + *********************/ +#include "../../lv_conf_internal.h" +#if LV_USE_STDLIB_STRING == LV_STDLIB_RTTHREAD +#include "../lv_string.h" +#include <rtthread.h> + +#if LV_USE_STDLIB_MALLOC == LV_STDLIB_BUILTIN + #include "../lv_mem.h" +#endif + +/********************* + * DEFINES + *********************/ + +/********************** + * TYPEDEFS + **********************/ + +/********************** + * STATIC PROTOTYPES + **********************/ + +/********************** + * STATIC VARIABLES + **********************/ + +/********************** + * MACROS + **********************/ + +/********************** + * GLOBAL FUNCTIONS + **********************/ + +LV_ATTRIBUTE_FAST_MEM void * lv_memcpy(void * dst, const void * src, size_t len) +{ + return rt_memcpy(dst, src, len); +} + +LV_ATTRIBUTE_FAST_MEM void lv_memset(void * dst, uint8_t v, size_t len) +{ + rt_memset(dst, v, len); +} + +size_t lv_strlen(const char * str) +{ + return rt_strlen(str); +} + +char * lv_strncpy(char * dst, const char * src, size_t dest_size) +{ + return rt_strncpy(dst, src, dest_size); +} + +char * lv_strcpy(char * dst, const char * src) +{ + return rt_strcpy(dst, src); +} + +char * lv_strdup(const char * src) +{ + /*strdup uses malloc, so use the built in malloc if it's enabled */ +#if LV_USE_STDLIB_MALLOC == LV_STDLIB_BUILTIN + size_t len = lv_strlen(src) + 1; + char * dst = lv_malloc(len); + if(dst == NULL) return NULL; + + lv_memcpy(dst, src, len); /*do memcpy is faster than strncpy when length is known*/ + return dst; +#else + return rt_strdup(src); +#endif +} + +/********************** + * STATIC FUNCTIONS + **********************/ + +#endif /*LV_USE_STDLIB_STRING*/ |