From 2935e386bbab8934a5bf930280495cd1a98d49f5 Mon Sep 17 00:00:00 2001 From: Meco Man <920369182@qq.com> Date: Wed, 13 Sep 2023 22:00:39 -0400 Subject: [PATCH] [rtdef] add RT_USING_LIBC_ISO_ONLY macro --- include/rtdef.h | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/include/rtdef.h b/include/rtdef.h index dd33473123..6d5b3fab64 100644 --- a/include/rtdef.h +++ b/include/rtdef.h @@ -49,17 +49,26 @@ * 2022-12-20 Meco Man add const name for rt_object * 2023-04-01 Chushicheng change version number to v5.0.1 * 2023-05-20 Bernard add stdc atomic detection. + * 2023-09-17 Meco Man add RT_USING_LIBC_ISO_ONLY macro */ #ifndef __RT_DEF_H__ #define __RT_DEF_H__ #include + #ifdef RT_USING_LIBC +#if !defined(RT_USING_LIBC_ISO_ONLY) && !defined(RT_VER_NUM) +#define RT_USING_LIBC_ISO_ONLY (1) +#else +#define RT_USING_LIBC_ISO_ONLY (0) +#endif /* !defined(RT_USING_LIBC_ISO_ONLY) && !defined(RT_VER_NUM) */ #include #include #include +#if !RT_USING_LIBC_ISO_ONLY #include +#endif /* !RT_USING_LIBC_ISO_ONLY */ #endif /* RT_USING_LIBC */ #ifdef __cplusplus @@ -99,8 +108,6 @@ typedef uint16_t rt_uint16_t; /**< 16bit unsigned inte typedef uint32_t rt_uint32_t; /**< 32bit unsigned integer type */ typedef int64_t rt_int64_t; /**< 64bit integer type */ typedef uint64_t rt_uint64_t; /**< 64bit unsigned integer type */ -typedef size_t rt_size_t; /**< Type for size number */ -typedef ssize_t rt_ssize_t; /**< Used for a count of bytes or an error indication */ #else typedef signed char rt_int8_t; /**< 8bit integer type */ typedef signed short rt_int16_t; /**< 16bit integer type */ @@ -115,11 +122,17 @@ typedef unsigned long rt_uint64_t; /**< 64bit unsigned inte typedef signed long long rt_int64_t; /**< 64bit integer type */ typedef unsigned long long rt_uint64_t; /**< 64bit unsigned integer type */ #endif /* ARCH_CPU_64BIT */ -typedef rt_ubase_t rt_size_t; /**< Type for size number */ -typedef rt_base_t rt_ssize_t; /**< Used for a count of bytes or an error indication */ #endif /* RT_USING_LIBC */ #endif /* RT_USING_ARCH_DATA_TYPE */ +#if defined(RT_USING_LIBC) && !RT_USING_LIBC_ISO_ONLY +typedef size_t rt_size_t; /**< Type for size number */ +typedef ssize_t rt_ssize_t; /**< Used for a count of bytes or an error indication */ +#else +typedef rt_ubase_t rt_size_t; /**< Type for size number */ +typedef rt_base_t rt_ssize_t; /**< Used for a count of bytes or an error indication */ +#endif /* defined(RT_USING_LIBC) && !RT_USING_LIBC_ISO_ONLY */ + typedef rt_base_t rt_err_t; /**< Type for error number */ typedef rt_uint32_t rt_time_t; /**< Type for time stamp */ typedef rt_uint32_t rt_tick_t; /**< Type for tick count */