Skip to content

Commit d39a439

Browse files
authored
[klibc] 将函数签名与标准 libc 对齐以修复类型冲突 #10890
1 parent 4ee00eb commit d39a439

6 files changed

Lines changed: 35 additions & 34 deletions

File tree

include/klibc/kstdio.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ extern "C" {
1919
#endif
2020

2121
int rt_vsprintf(char *dest, const char *format, va_list arg_ptr);
22-
int rt_vsnprintf(char *buf, rt_size_t size, const char *fmt, va_list args);
22+
int rt_vsnprintf(char *buf, size_t size, const char *fmt, va_list args);
2323
int rt_sprintf(char *buf, const char *format, ...);
24-
int rt_snprintf(char *buf, rt_size_t size, const char *format, ...);
24+
int rt_snprintf(char *buf, size_t size, const char *format, ...);
2525
int rt_vsscanf(const char *buffer, const char *format, va_list ap);
2626
int rt_sscanf(const char *str, const char *format, ...);
2727

include/klibc/kstring.h

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,20 +17,20 @@
1717
extern "C" {
1818
#endif
1919

20-
void *rt_memset(void *src, int c, rt_ubase_t n);
21-
void *rt_memcpy(void *dest, const void *src, rt_ubase_t n);
22-
void *rt_memmove(void *dest, const void *src, rt_size_t n);
23-
rt_int32_t rt_memcmp(const void *cs, const void *ct, rt_size_t count);
20+
void *rt_memset(void *s, int c, size_t n);
21+
void *rt_memcpy(void *dest, const void *src, size_t n);
22+
void *rt_memmove(void *dest, const void *src, size_t n);
23+
int rt_memcmp(const void *cs, const void *ct, size_t count);
2424

2525
char *rt_strdup(const char *s);
26-
rt_size_t rt_strnlen(const char *s, rt_ubase_t maxlen);
26+
size_t rt_strnlen(const char *s, size_t maxlen);
2727
char *rt_strstr(const char *str1, const char *str2);
28-
rt_int32_t rt_strcasecmp(const char *a, const char *b);
28+
int rt_strcasecmp(const char *a, const char *b);
2929
char *rt_strcpy(char *dst, const char *src);
30-
char *rt_strncpy(char *dest, const char *src, rt_size_t n);
31-
rt_int32_t rt_strncmp(const char *cs, const char *ct, rt_size_t count);
32-
rt_int32_t rt_strcmp(const char *cs, const char *ct);
33-
rt_size_t rt_strlen(const char *src);
30+
char *rt_strncpy(char *dest, const char *src, size_t n);
31+
int rt_strncmp(const char *cs, const char *ct, size_t count);
32+
int rt_strcmp(const char *cs, const char *ct);
33+
size_t rt_strlen(const char *src);
3434

3535
#ifdef __cplusplus
3636
}

src/klibc/kstdio.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@
2525
*
2626
* @return The number of characters actually written to buffer.
2727
*/
28-
int rt_snprintf(char *buf, rt_size_t size, const char *fmt, ...)
28+
int rt_snprintf(char *buf, size_t size, const char *fmt, ...)
2929
{
30-
rt_int32_t n = 0;
30+
int n = 0;
3131
va_list args;
3232

3333
va_start(args, fmt);
@@ -51,7 +51,7 @@ RTM_EXPORT(rt_snprintf);
5151
*/
5252
int rt_vsprintf(char *buf, const char *format, va_list arg_ptr)
5353
{
54-
return rt_vsnprintf(buf, (rt_size_t) - 1, format, arg_ptr);
54+
return rt_vsnprintf(buf, (size_t) - 1, format, arg_ptr);
5555
}
5656
RTM_EXPORT(rt_vsprintf);
5757

@@ -66,7 +66,7 @@ RTM_EXPORT(rt_vsprintf);
6666
*/
6767
int rt_sprintf(char *buf, const char *format, ...)
6868
{
69-
rt_int32_t n = 0;
69+
int n = 0;
7070
va_list arg_ptr;
7171

7272
va_start(arg_ptr, format);
@@ -78,7 +78,7 @@ int rt_sprintf(char *buf, const char *format, ...)
7878
RTM_EXPORT(rt_sprintf);
7979

8080
#ifdef RT_KLIBC_USING_LIBC_VSNPRINTF
81-
int rt_vsnprintf(char *buf, rt_size_t size, const char *fmt, va_list args)
81+
int rt_vsnprintf(char *buf, size_t size, const char *fmt, va_list args)
8282
{
8383
return vsnprintf(buf, size, fmt, args);
8484
}

src/klibc/kstring.c

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
* @return The address of source memory.
3737
*/
3838
#ifndef RT_KLIBC_USING_USER_MEMSET
39-
void *rt_memset(void *s, int c, rt_ubase_t count)
39+
void *rt_memset(void *s, int c, size_t count)
4040
{
4141
#if defined(RT_KLIBC_USING_LIBC_MEMSET)
4242
return memset(s, c, count);
@@ -121,13 +121,13 @@ RTM_EXPORT(rt_memset);
121121
* @return The address of destination memory
122122
*/
123123
#ifndef RT_KLIBC_USING_USER_MEMCPY
124-
void *rt_memcpy(void *dst, const void *src, rt_ubase_t count)
124+
void *rt_memcpy(void *dst, const void *src, size_t count)
125125
{
126126
#if defined(RT_KLIBC_USING_LIBC_MEMCPY)
127127
return memcpy(dst, src, count);
128128
#elif defined(RT_KLIBC_USING_TINY_MEMCPY)
129129
char *tmp = (char *)dst, *s = (char *)src;
130-
rt_ubase_t len = 0;
130+
size_t len = 0;
131131

132132
if (tmp <= s || tmp > (s + count))
133133
{
@@ -153,7 +153,7 @@ void *rt_memcpy(void *dst, const void *src, rt_ubase_t count)
153153
char *src_ptr = (char *)src;
154154
long *aligned_dst = RT_NULL;
155155
long *aligned_src = RT_NULL;
156-
rt_ubase_t len = count;
156+
size_t len = count;
157157

158158
/* If the size is small, or either SRC or DST is unaligned,
159159
then punt into the byte copy loop. This should be rare. */
@@ -211,7 +211,7 @@ RTM_EXPORT(rt_memcpy);
211211
* @return The address of destination memory.
212212
*/
213213
#ifndef RT_KLIBC_USING_USER_MEMMOVE
214-
void *rt_memmove(void *dest, const void *src, rt_size_t n)
214+
void *rt_memmove(void *dest, const void *src, size_t n)
215215
{
216216
#ifdef RT_KLIBC_USING_LIBC_MEMMOVE
217217
return memmove(dest, src, n);
@@ -253,7 +253,7 @@ RTM_EXPORT(rt_memmove);
253253
* If the result = 0, cs is equal to ct.
254254
*/
255255
#ifndef RT_KLIBC_USING_USER_MEMCMP
256-
rt_int32_t rt_memcmp(const void *cs, const void *ct, rt_size_t count)
256+
int rt_memcmp(const void *cs, const void *ct, size_t count)
257257
{
258258
#ifdef RT_KLIBC_USING_LIBC_MEMCMP
259259
return memcmp(cs, ct, count);
@@ -326,7 +326,7 @@ RTM_EXPORT(rt_strstr);
326326
* If the result = 0, a is equal to a.
327327
*/
328328
#ifndef RT_KLIBC_USING_USER_STRCASECMP
329-
rt_int32_t rt_strcasecmp(const char *a, const char *b)
329+
int rt_strcasecmp(const char *a, const char *b)
330330
{
331331
int ca = 0, cb = 0;
332332

@@ -358,7 +358,7 @@ RTM_EXPORT(rt_strcasecmp);
358358
* @return The address where the copied content is stored.
359359
*/
360360
#ifndef RT_KLIBC_USING_USER_STRNCPY
361-
char *rt_strncpy(char *dst, const char *src, rt_size_t n)
361+
char *rt_strncpy(char *dst, const char *src, size_t n)
362362
{
363363
#ifdef RT_KLIBC_USING_LIBC_STRNCPY
364364
return strncpy(dst, src, n);
@@ -435,7 +435,7 @@ RTM_EXPORT(rt_strcpy);
435435
* If the result = 0, cs is equal to ct.
436436
*/
437437
#ifndef RT_KLIBC_USING_USER_STRNCMP
438-
rt_int32_t rt_strncmp(const char *cs, const char *ct, rt_size_t count)
438+
int rt_strncmp(const char *cs, const char *ct, size_t count)
439439
{
440440
#ifdef RT_KLIBC_USING_LIBC_STRNCMP
441441
return strncmp(cs, ct, count);
@@ -471,7 +471,7 @@ RTM_EXPORT(rt_strncmp);
471471
* If the result = 0, cs is equal to ct.
472472
*/
473473
#ifndef RT_KLIBC_USING_USER_STRCMP
474-
rt_int32_t rt_strcmp(const char *cs, const char *ct)
474+
int rt_strcmp(const char *cs, const char *ct)
475475
{
476476
#ifdef RT_KLIBC_USING_LIBC_STRCMP
477477
return strcmp(cs, ct);
@@ -497,7 +497,7 @@ RTM_EXPORT(rt_strcmp);
497497
* @return The length of string.
498498
*/
499499
#ifndef RT_KLIBC_USING_USER_STRLEN
500-
rt_size_t rt_strlen(const char *s)
500+
size_t rt_strlen(const char *s)
501501
{
502502
#ifdef RT_KLIBC_USING_LIBC_STRLEN
503503
return strlen(s);
@@ -524,10 +524,10 @@ RTM_EXPORT(rt_strlen);
524524
* @return The length of string.
525525
*/
526526
#ifndef RT_KLIBC_USING_USER_STRNLEN
527-
rt_size_t rt_strnlen(const char *s, rt_ubase_t maxlen)
527+
size_t rt_strnlen(const char *s, size_t maxlen)
528528
{
529529
const char *sc;
530-
for (sc = s; *sc != '\0' && (rt_ubase_t)(sc - s) < maxlen; ++sc);
530+
for (sc = s; *sc != '\0' && (size_t)(sc - s) < maxlen; ++sc);
531531
return sc - s;
532532
}
533533
#endif /* RT_KLIBC_USING_USER_STRNLEN */
@@ -543,7 +543,7 @@ RTM_EXPORT(rt_strnlen);
543543
*/
544544
char *rt_strdup(const char *s)
545545
{
546-
rt_size_t len = rt_strlen(s) + 1;
546+
size_t len = rt_strlen(s) + 1;
547547
char *tmp = (char *)rt_malloc(len);
548548

549549
if (!tmp)

src/klibc/rt_vsnprintf_std.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,7 @@ typedef unsigned int printf_size_t;
222222
#if defined(RT_KLIBC_USING_VSNPRINTF_DECIMAL_SPECIFIERS) || defined(RT_KLIBC_USING_VSNPRINTF_EXPONENTIAL_SPECIFIERS)
223223
#include <float.h>
224224
#if FLT_RADIX != 2
225+
// cppcheck-suppress preprocessorErrorDirective
225226
#error "Non-binary-radix floating-point types are unsupported."
226227
#endif
227228

@@ -1344,7 +1345,7 @@ static int vsnprintf_impl(output_gadget_t* output, const char* format, va_list a
13441345
*
13451346
* @return The number of characters actually written to buffer.
13461347
*/
1347-
int rt_vsnprintf(char *buf, rt_size_t size, const char *fmt, va_list args)
1348+
int rt_vsnprintf(char *buf, size_t size, const char *fmt, va_list args)
13481349
{
13491350
output_gadget_t gadget = buffer_gadget(buf, size);
13501351
return vsnprintf_impl(&gadget, fmt, args);

src/klibc/rt_vsnprintf_tiny.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -295,7 +295,7 @@ static char *print_number(char *buf,
295295
*
296296
* @return The number of characters actually written to buffer.
297297
*/
298-
int rt_vsnprintf(char *buf, rt_size_t size, const char *fmt, va_list args)
298+
int rt_vsnprintf(char *buf, size_t size, const char *fmt, va_list args)
299299
{
300300
#ifdef RT_KLIBC_USING_VSNPRINTF_LONGLONG
301301
unsigned long long num = 0;
@@ -576,7 +576,7 @@ int rt_vsnprintf(char *buf, rt_size_t size, const char *fmt, va_list args)
576576
}
577577
else if (qualifier == 'z')
578578
{
579-
num = va_arg(args, rt_size_t);
579+
num = va_arg(args, size_t);
580580
if (flags & SIGN)
581581
{
582582
num = (rt_ssize_t)num;

0 commit comments

Comments
 (0)