[klibc] 将函数签名与标准 libc 对齐以修复类型冲突 #10890

This commit is contained in:
Copilot
2025-11-07 15:48:51 +08:00
committed by GitHub
parent 4ee00eba9b
commit d39a439603
6 changed files with 35 additions and 34 deletions

View File

@@ -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, ...);

View File

@@ -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
}

View File

@@ -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);
}

View File

@@ -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)

View File

@@ -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 <float.h>
#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);

View File

@@ -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;