summaryrefslogtreecommitdiff
path: root/include/rtthread.h
diff options
context:
space:
mode:
authorBernard Xiong <[email protected]>2021-04-02 18:24:25 +0800
committerGitHub <[email protected]>2021-04-02 18:24:25 +0800
commitc3978ed9cea530f2b36c6e7056c9dd3e9a4142b8 (patch)
treec8cf1c0fda4539a4c14969ff75d8eb0a7d8cce8e /include/rtthread.h
parent08a4de57e2f5e2f0d770b569690616599eaaf5fe (diff)
parent58f000bdce1879154df911069e644f197ca893c7 (diff)
Merge pull request #4396 from mysterywolf/kservice
[kernel] add RT_KSERVICE_USING_STDLIB
Diffstat (limited to 'include/rtthread.h')
-rw-r--r--include/rtthread.h33
1 files changed, 24 insertions, 9 deletions
diff --git a/include/rtthread.h b/include/rtthread.h
index e80257a6e5..784b208a76 100644
--- a/include/rtthread.h
+++ b/include/rtthread.h
@@ -14,6 +14,7 @@
* 2013-06-24 Bernard add rt_kprintf re-define when not use RT_USING_CONSOLE.
* 2016-08-09 ArdaFu add new thread and interrupt hook.
* 2018-11-22 Jesven add all cpu's lock and ipi handler
+ * 2021-02-28 Meco Man add RT_KSERVICE_USING_STDLIB
*/
#ifndef __RT_THREAD_H__
@@ -515,10 +516,12 @@ void rt_components_board_init(void);
void rt_kprintf(const char *fmt, ...);
void rt_kputs(const char *str);
#endif
+
rt_int32_t rt_vsprintf(char *dest, const char *format, va_list arg_ptr);
rt_int32_t rt_vsnprintf(char *buf, rt_size_t size, const char *fmt, va_list args);
rt_int32_t rt_sprintf(char *buf, const char *format, ...);
rt_int32_t rt_snprintf(char *buf, rt_size_t size, const char *format, ...);
+rt_int32_t rt_sscanf(const char *buf, const char *fmt, ...);
#if defined(RT_USING_DEVICE) && defined(RT_USING_CONSOLE)
rt_device_t rt_console_set_device(const char *name);
@@ -539,23 +542,35 @@ int __rt_ffs(int value);
void *rt_memset(void *src, int c, rt_ubase_t n);
void *rt_memcpy(void *dest, const void *src, rt_ubase_t n);
+#ifndef RT_KSERVICE_USING_STDLIB
+void *rt_memmove(void *dest, const void *src, rt_ubase_t n);
+rt_int32_t rt_memcmp(const void *cs, const void *ct, rt_ubase_t count);
+char *rt_strstr(const char *str1, const char *str2);
+rt_int32_t rt_strcasecmp(const char *a, const char *b);
+char *rt_strncpy(char *dest, const char *src, rt_ubase_t n);
rt_int32_t rt_strncmp(const char *cs, const char *ct, rt_ubase_t count);
rt_int32_t rt_strcmp(const char *cs, const char *ct);
-rt_size_t rt_strlen(const char *src);
rt_size_t rt_strnlen(const char *s, rt_ubase_t maxlen);
+rt_size_t rt_strlen(const char *src);
+#else
+#include <string.h>
+#define rt_memmove(dest, src, n) memmove(dest, src, n)
+#define rt_memcmp(cs, ct, count) memcmp(cs, ct, count)
+#define rt_strstr(str1, str2) strstr(str1, str2)
+#define rt_strcasecmp(a, b) strcasecmp(a, b)
+#define rt_strncpy(dest, src, n) strncpy(dest, src, n)
+#define rt_strncmp(cs, ct, count) strncmp(cs, ct, count)
+#define rt_strcmp(cs, ct) strcmp(cs, ct)
+#define rt_strnlen(s, maxlen) strnlen(s, maxlen)
+#define rt_strlen(src) strlen(src)
+#endif /*RT_KSERVICE_USING_STDLIB*/
+
char *rt_strdup(const char *s);
#if defined(__CC_ARM) || defined(__CLANG_ARM)
-/* leak strdup interface */
+/* lack strdup interface */
char* strdup(const char* str);
#endif
-char *rt_strstr(const char *str1, const char *str2);
-rt_int32_t rt_sscanf(const char *buf, const char *fmt, ...);
-char *rt_strncpy(char *dest, const char *src, rt_ubase_t n);
-void *rt_memmove(void *dest, const void *src, rt_ubase_t n);
-rt_int32_t rt_memcmp(const void *cs, const void *ct, rt_ubase_t count);
-rt_int32_t rt_strcasecmp(const char *a, const char *b);
-
void rt_show_version(void);
#ifdef RT_DEBUG