diff options
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*/ |