From d39a439603b582d4fc43536b344e6dae0b90f90a Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Fri, 7 Nov 2025 15:48:51 +0800 Subject: [PATCH] =?UTF-8?q?[klibc]=20=E5=B0=86=E5=87=BD=E6=95=B0=E7=AD=BE?= =?UTF-8?q?=E5=90=8D=E4=B8=8E=E6=A0=87=E5=87=86=20libc=20=E5=AF=B9?= =?UTF-8?q?=E9=BD=90=E4=BB=A5=E4=BF=AE=E5=A4=8D=E7=B1=BB=E5=9E=8B=E5=86=B2?= =?UTF-8?q?=E7=AA=81=20#10890?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/klibc/kstdio.h | 4 ++-- include/klibc/kstring.h | 20 ++++++++++---------- src/klibc/kstdio.c | 10 +++++----- src/klibc/kstring.c | 28 ++++++++++++++-------------- src/klibc/rt_vsnprintf_std.c | 3 ++- src/klibc/rt_vsnprintf_tiny.c | 4 ++-- 6 files changed, 35 insertions(+), 34 deletions(-) diff --git a/include/klibc/kstdio.h b/include/klibc/kstdio.h index 3eee8fa5b5..17568c518c 100644 --- a/include/klibc/kstdio.h +++ b/include/klibc/kstdio.h @@ -19,9 +19,9 @@ extern "C" { #endif 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_vsnprintf(char *buf, 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, ...); +int rt_snprintf(char *buf, size_t size, const char *format, ...); int rt_vsscanf(const char *buffer, const char *format, va_list ap); int rt_sscanf(const char *str, const char *format, ...); diff --git a/include/klibc/kstring.h b/include/klibc/kstring.h index fc6c3bfa7d..c91277f324 100644 --- a/include/klibc/kstring.h +++ b/include/klibc/kstring.h @@ -17,20 +17,20 @@ extern "C" { #endif -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); +void *rt_memset(void *s, int c, size_t n); +void *rt_memcpy(void *dest, const void *src, size_t n); +void *rt_memmove(void *dest, const void *src, size_t n); +int rt_memcmp(const void *cs, const void *ct, size_t count); char *rt_strdup(const char *s); -rt_size_t rt_strnlen(const char *s, rt_ubase_t maxlen); +size_t rt_strnlen(const char *s, size_t maxlen); char *rt_strstr(const char *str1, const char *str2); -rt_int32_t rt_strcasecmp(const char *a, const char *b); +int 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); +char *rt_strncpy(char *dest, const char *src, size_t n); +int rt_strncmp(const char *cs, const char *ct, size_t count); +int rt_strcmp(const char *cs, const char *ct); +size_t rt_strlen(const char *src); #ifdef __cplusplus } diff --git a/src/klibc/kstdio.c b/src/klibc/kstdio.c index df73eab49b..257b1ff1a8 100644 --- a/src/klibc/kstdio.c +++ b/src/klibc/kstdio.c @@ -25,9 +25,9 @@ * * @return The number of characters actually written to buffer. */ -int rt_snprintf(char *buf, rt_size_t size, const char *fmt, ...) +int rt_snprintf(char *buf, size_t size, const char *fmt, ...) { - rt_int32_t n = 0; + int n = 0; va_list args; va_start(args, fmt); @@ -51,7 +51,7 @@ RTM_EXPORT(rt_snprintf); */ int rt_vsprintf(char *buf, const char *format, va_list arg_ptr) { - return rt_vsnprintf(buf, (rt_size_t) - 1, format, arg_ptr); + return rt_vsnprintf(buf, (size_t) - 1, format, arg_ptr); } RTM_EXPORT(rt_vsprintf); @@ -66,7 +66,7 @@ RTM_EXPORT(rt_vsprintf); */ int rt_sprintf(char *buf, const char *format, ...) { - rt_int32_t n = 0; + int n = 0; va_list arg_ptr; va_start(arg_ptr, format); @@ -78,7 +78,7 @@ int rt_sprintf(char *buf, const char *format, ...) RTM_EXPORT(rt_sprintf); #ifdef RT_KLIBC_USING_LIBC_VSNPRINTF -int rt_vsnprintf(char *buf, rt_size_t size, const char *fmt, va_list args) +int rt_vsnprintf(char *buf, size_t size, const char *fmt, va_list args) { return vsnprintf(buf, size, fmt, args); } diff --git a/src/klibc/kstring.c b/src/klibc/kstring.c index d2988d629c..b6d553ffa3 100644 --- a/src/klibc/kstring.c +++ b/src/klibc/kstring.c @@ -36,7 +36,7 @@ * @return The address of source memory. */ #ifndef RT_KLIBC_USING_USER_MEMSET -void *rt_memset(void *s, int c, rt_ubase_t count) +void *rt_memset(void *s, int c, size_t count) { #if defined(RT_KLIBC_USING_LIBC_MEMSET) return memset(s, c, count); @@ -121,13 +121,13 @@ RTM_EXPORT(rt_memset); * @return The address of destination memory */ #ifndef RT_KLIBC_USING_USER_MEMCPY -void *rt_memcpy(void *dst, const void *src, rt_ubase_t count) +void *rt_memcpy(void *dst, const void *src, size_t count) { #if defined(RT_KLIBC_USING_LIBC_MEMCPY) return memcpy(dst, src, count); #elif defined(RT_KLIBC_USING_TINY_MEMCPY) char *tmp = (char *)dst, *s = (char *)src; - rt_ubase_t len = 0; + size_t len = 0; if (tmp <= s || tmp > (s + count)) { @@ -153,7 +153,7 @@ void *rt_memcpy(void *dst, const void *src, rt_ubase_t count) char *src_ptr = (char *)src; long *aligned_dst = RT_NULL; long *aligned_src = RT_NULL; - rt_ubase_t len = count; + size_t len = count; /* If the size is small, or either SRC or DST is unaligned, then punt into the byte copy loop. This should be rare. */ @@ -211,7 +211,7 @@ RTM_EXPORT(rt_memcpy); * @return The address of destination memory. */ #ifndef RT_KLIBC_USING_USER_MEMMOVE -void *rt_memmove(void *dest, const void *src, rt_size_t n) +void *rt_memmove(void *dest, const void *src, size_t n) { #ifdef RT_KLIBC_USING_LIBC_MEMMOVE return memmove(dest, src, n); @@ -253,7 +253,7 @@ RTM_EXPORT(rt_memmove); * If the result = 0, cs is equal to ct. */ #ifndef RT_KLIBC_USING_USER_MEMCMP -rt_int32_t rt_memcmp(const void *cs, const void *ct, rt_size_t count) +int rt_memcmp(const void *cs, const void *ct, size_t count) { #ifdef RT_KLIBC_USING_LIBC_MEMCMP return memcmp(cs, ct, count); @@ -326,7 +326,7 @@ RTM_EXPORT(rt_strstr); * If the result = 0, a is equal to a. */ #ifndef RT_KLIBC_USING_USER_STRCASECMP -rt_int32_t rt_strcasecmp(const char *a, const char *b) +int rt_strcasecmp(const char *a, const char *b) { int ca = 0, cb = 0; @@ -358,7 +358,7 @@ RTM_EXPORT(rt_strcasecmp); * @return The address where the copied content is stored. */ #ifndef RT_KLIBC_USING_USER_STRNCPY -char *rt_strncpy(char *dst, const char *src, rt_size_t n) +char *rt_strncpy(char *dst, const char *src, size_t n) { #ifdef RT_KLIBC_USING_LIBC_STRNCPY return strncpy(dst, src, n); @@ -435,7 +435,7 @@ RTM_EXPORT(rt_strcpy); * If the result = 0, cs is equal to ct. */ #ifndef RT_KLIBC_USING_USER_STRNCMP -rt_int32_t rt_strncmp(const char *cs, const char *ct, rt_size_t count) +int rt_strncmp(const char *cs, const char *ct, size_t count) { #ifdef RT_KLIBC_USING_LIBC_STRNCMP return strncmp(cs, ct, count); @@ -471,7 +471,7 @@ RTM_EXPORT(rt_strncmp); * If the result = 0, cs is equal to ct. */ #ifndef RT_KLIBC_USING_USER_STRCMP -rt_int32_t rt_strcmp(const char *cs, const char *ct) +int rt_strcmp(const char *cs, const char *ct) { #ifdef RT_KLIBC_USING_LIBC_STRCMP return strcmp(cs, ct); @@ -497,7 +497,7 @@ RTM_EXPORT(rt_strcmp); * @return The length of string. */ #ifndef RT_KLIBC_USING_USER_STRLEN -rt_size_t rt_strlen(const char *s) +size_t rt_strlen(const char *s) { #ifdef RT_KLIBC_USING_LIBC_STRLEN return strlen(s); @@ -524,10 +524,10 @@ RTM_EXPORT(rt_strlen); * @return The length of string. */ #ifndef RT_KLIBC_USING_USER_STRNLEN -rt_size_t rt_strnlen(const char *s, rt_ubase_t maxlen) +size_t rt_strnlen(const char *s, size_t maxlen) { const char *sc; - for (sc = s; *sc != '\0' && (rt_ubase_t)(sc - s) < maxlen; ++sc); + for (sc = s; *sc != '\0' && (size_t)(sc - s) < maxlen; ++sc); return sc - s; } #endif /* RT_KLIBC_USING_USER_STRNLEN */ @@ -543,7 +543,7 @@ RTM_EXPORT(rt_strnlen); */ char *rt_strdup(const char *s) { - rt_size_t len = rt_strlen(s) + 1; + size_t len = rt_strlen(s) + 1; char *tmp = (char *)rt_malloc(len); if (!tmp) diff --git a/src/klibc/rt_vsnprintf_std.c b/src/klibc/rt_vsnprintf_std.c index cedd7a9872..481c99013b 100644 --- a/src/klibc/rt_vsnprintf_std.c +++ b/src/klibc/rt_vsnprintf_std.c @@ -222,6 +222,7 @@ typedef unsigned int printf_size_t; #if defined(RT_KLIBC_USING_VSNPRINTF_DECIMAL_SPECIFIERS) || defined(RT_KLIBC_USING_VSNPRINTF_EXPONENTIAL_SPECIFIERS) #include #if FLT_RADIX != 2 +// cppcheck-suppress preprocessorErrorDirective #error "Non-binary-radix floating-point types are unsupported." #endif @@ -1344,7 +1345,7 @@ static int vsnprintf_impl(output_gadget_t* output, const char* format, va_list a * * @return The number of characters actually written to buffer. */ -int rt_vsnprintf(char *buf, rt_size_t size, const char *fmt, va_list args) +int rt_vsnprintf(char *buf, size_t size, const char *fmt, va_list args) { output_gadget_t gadget = buffer_gadget(buf, size); return vsnprintf_impl(&gadget, fmt, args); diff --git a/src/klibc/rt_vsnprintf_tiny.c b/src/klibc/rt_vsnprintf_tiny.c index 7ef610c51d..d614f1ce27 100644 --- a/src/klibc/rt_vsnprintf_tiny.c +++ b/src/klibc/rt_vsnprintf_tiny.c @@ -295,7 +295,7 @@ static char *print_number(char *buf, * * @return The number of characters actually written to buffer. */ -int rt_vsnprintf(char *buf, rt_size_t size, const char *fmt, va_list args) +int rt_vsnprintf(char *buf, size_t size, const char *fmt, va_list args) { #ifdef RT_KLIBC_USING_VSNPRINTF_LONGLONG unsigned long long num = 0; @@ -576,7 +576,7 @@ int rt_vsnprintf(char *buf, rt_size_t size, const char *fmt, va_list args) } else if (qualifier == 'z') { - num = va_arg(args, rt_size_t); + num = va_arg(args, size_t); if (flags & SIGN) { num = (rt_ssize_t)num;