浏览代码

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

Copilot 2 月之前
父节点
当前提交
d39a439603
共有 6 个文件被更改,包括 35 次插入34 次删除
  1. 2 2
      include/klibc/kstdio.h
  2. 10 10
      include/klibc/kstring.h
  3. 5 5
      src/klibc/kstdio.c
  4. 14 14
      src/klibc/kstring.c
  5. 2 1
      src/klibc/rt_vsnprintf_std.c
  6. 2 2
      src/klibc/rt_vsnprintf_tiny.c

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

+ 10 - 10
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
 }

+ 5 - 5
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);
 }

+ 14 - 14
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)

+ 2 - 1
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 <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);

+ 2 - 2
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;