diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/rtklibc.h | 67 | ||||
| -rw-r--r-- | include/rtsched.h | 8 | ||||
| -rw-r--r-- | include/rtthread.h | 40 | ||||
| -rw-r--r-- | include/rttypes.h | 8 |
4 files changed, 85 insertions, 38 deletions
diff --git a/include/rtklibc.h b/include/rtklibc.h new file mode 100644 index 0000000000..dea2fdbb27 --- /dev/null +++ b/include/rtklibc.h @@ -0,0 +1,67 @@ +/* + * Copyright (c) 2006-2024, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2024-03-10 Meco Man the first version + */ + +#ifndef __RT_KLIBC_H__ +#define __RT_KLIBC_H__ + +#include <rtconfig.h> +#include <rtdef.h> + +#ifdef __cplusplus +extern "C" { +#endif + +/* kstdio */ + +int rt_vsprintf(char *dest, const char *format, va_list arg_ptr); +int rt_vsnprintf(char *buf, rt_size_t size, const char *fmt, va_list args); +int rt_sprintf(char *buf, const char *format, ...); +int rt_snprintf(char *buf, rt_size_t size, const char *format, ...); + +/* kstring */ + +#ifndef RT_KSERVICE_USING_STDLIB_MEMORY +void *rt_memset(void *src, int c, rt_ubase_t n); +void *rt_memcpy(void *dest, const void *src, rt_ubase_t n); +void *rt_memmove(void *dest, const void *src, rt_size_t n); +rt_int32_t rt_memcmp(const void *cs, const void *ct, rt_size_t count); +#endif /* RT_KSERVICE_USING_STDLIB_MEMORY */ +char *rt_strdup(const char *s); +rt_size_t rt_strnlen(const char *s, rt_ubase_t maxlen); +#ifndef RT_KSERVICE_USING_STDLIB +char *rt_strstr(const char *str1, const char *str2); +rt_int32_t rt_strcasecmp(const char *a, const char *b); +char *rt_strcpy(char *dst, const char *src); +char *rt_strncpy(char *dest, const char *src, rt_size_t n); +rt_int32_t rt_strncmp(const char *cs, const char *ct, rt_size_t count); +rt_int32_t rt_strcmp(const char *cs, const char *ct); +rt_size_t rt_strlen(const char *src); +#else +#include <string.h> +#ifdef RT_KSERVICE_USING_STDLIB_MEMORY +#define rt_memset(s, c, count) memset(s, c, count) +#define rt_memcpy(dst, src, count) memcpy(dst, src, count) +#define rt_memmove(dest, src, n) memmove(dest, src, n) +#define rt_memcmp(cs, ct, count) memcmp(cs, ct, count) +#endif /* RT_KSERVICE_USING_STDLIB_MEMORY */ +#define rt_strstr(str1, str2) strstr(str1, str2) +#define rt_strcasecmp(a, b) strcasecmp(a, b) +#define rt_strcpy(dest, src) strcpy(dest, src) +#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_strlen(src) strlen(src) +#endif /*RT_KSERVICE_USING_STDLIB*/ + +#ifdef __cplusplus +} +#endif + +#endif /* __RT_KLIBC_H__ */ diff --git a/include/rtsched.h b/include/rtsched.h index d3c590230f..9e31320095 100644 --- a/include/rtsched.h +++ b/include/rtsched.h @@ -14,6 +14,10 @@ #include "rttypes.h" #include "rtcompiler.h" +#ifdef __cplusplus +extern "C" { +#endif + struct rt_thread; typedef rt_uint8_t rt_sched_thread_status_t; @@ -169,4 +173,8 @@ void rt_sched_remove_thread(struct rt_thread *thread); #endif /* defined(__RT_KERNEL_SOURCE__) || defined(__RT_IPC_SOURCE__) */ +#ifdef __cplusplus +} +#endif + #endif /* __RT_SCHED_H__ */ diff --git a/include/rtthread.h b/include/rtthread.h index 08ad243960..5ae44c836c 100644 --- a/include/rtthread.h +++ b/include/rtthread.h @@ -22,6 +22,7 @@ * 2023-10-16 Shell Support a new backtrace framework * 2023-12-10 xqyjlj fix spinlock in up * 2024-01-25 Shell Add rt_susp_list for IPC primitives + * 2024-03-10 Meco Man move std libc related functions to rtklibc */ #ifndef __RT_THREAD_H__ @@ -32,6 +33,7 @@ #include <rtservice.h> #include <rtm.h> #include <rtatomic.h> +#include <rtklibc.h> #ifdef RT_USING_LEGACY #include <rtlegacy.h> #endif @@ -736,11 +738,6 @@ rt_err_t rt_backtrace(void); rt_err_t rt_backtrace_thread(rt_thread_t thread); rt_err_t rt_backtrace_frame(struct rt_hw_backtrace_frame *frame); -int rt_vsprintf(char *dest, const char *format, va_list arg_ptr); -int rt_vsnprintf(char *buf, rt_size_t size, const char *fmt, va_list args); -int rt_sprintf(char *buf, const char *format, ...); -int rt_snprintf(char *buf, rt_size_t size, const char *format, ...); - #if defined(RT_USING_DEVICE) && defined(RT_USING_CONSOLE) rt_device_t rt_console_set_device(const char *name); rt_device_t rt_console_get_device(void); @@ -763,39 +760,6 @@ const char *rt_strerror(rt_err_t error); int __rt_ffs(int value); -#ifndef RT_KSERVICE_USING_STDLIB_MEMORY -void *rt_memset(void *src, int c, rt_ubase_t n); -void *rt_memcpy(void *dest, const void *src, rt_ubase_t n); -void *rt_memmove(void *dest, const void *src, rt_size_t n); -rt_int32_t rt_memcmp(const void *cs, const void *ct, rt_size_t count); -#endif /* RT_KSERVICE_USING_STDLIB_MEMORY */ -char *rt_strdup(const char *s); -rt_size_t rt_strnlen(const char *s, rt_ubase_t maxlen); -#ifndef RT_KSERVICE_USING_STDLIB -char *rt_strstr(const char *str1, const char *str2); -rt_int32_t rt_strcasecmp(const char *a, const char *b); -char *rt_strcpy(char *dst, const char *src); -char *rt_strncpy(char *dest, const char *src, rt_size_t n); -rt_int32_t rt_strncmp(const char *cs, const char *ct, rt_size_t count); -rt_int32_t rt_strcmp(const char *cs, const char *ct); -rt_size_t rt_strlen(const char *src); -#else -#include <string.h> -#ifdef RT_KSERVICE_USING_STDLIB_MEMORY -#define rt_memset(s, c, count) memset(s, c, count) -#define rt_memcpy(dst, src, count) memcpy(dst, src, count) -#define rt_memmove(dest, src, n) memmove(dest, src, n) -#define rt_memcmp(cs, ct, count) memcmp(cs, ct, count) -#endif /* RT_KSERVICE_USING_STDLIB_MEMORY */ -#define rt_strstr(str1, str2) strstr(str1, str2) -#define rt_strcasecmp(a, b) strcasecmp(a, b) -#define rt_strcpy(dest, src) strcpy(dest, src) -#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_strlen(src) strlen(src) -#endif /*RT_KSERVICE_USING_STDLIB*/ - void rt_show_version(void); #ifdef RT_USING_DEBUG diff --git a/include/rttypes.h b/include/rttypes.h index c9b172208d..9e21ba3170 100644 --- a/include/rttypes.h +++ b/include/rttypes.h @@ -24,6 +24,10 @@ #endif /* defined(RT_USING_SIGNALS) || defined(RT_USING_SMART) */ #endif /* RT_USING_NANO */ +#ifdef __cplusplus +extern "C" { +#endif + /** * RT-Thread basic data types definition */ @@ -220,4 +224,8 @@ typedef struct rt_spinlock rt_spinlock_t; #define RT_DEFINE_SPINLOCK(x) struct rt_spinlock x = RT_SPINLOCK_INIT +#ifdef __cplusplus +} +#endif + #endif /* __RT_TYPES_H__ */ |
