Skip to content

Commit 6a6b43f

Browse files
authored
Merge pull request #5261 from mysterywolf/weak
[kernel] prepare to support full functional sprintf-family functions
2 parents f11113f + cefc77a commit 6a6b43f

File tree

5 files changed

+27
-20
lines changed

5 files changed

+27
-20
lines changed

components/drivers/spi/sfud/inc/sfud_cfg.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
#ifndef _SFUD_CFG_H_
3030
#define _SFUD_CFG_H_
3131

32-
#include <rtconfig.h>
32+
#include <rtthread.h>
3333

3434
/**
3535
* It will print more information on debug mode.
@@ -47,7 +47,6 @@
4747

4848
#define DBG_TAG "SFUD"
4949
#include <rtdbg.h>
50-
extern void rt_kprintf(const char *fmt, ...);
5150
#define SFUD_INFO(...) LOG_I(__VA_ARGS__)
5251

5352
/**

include/rtdef.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,11 +76,13 @@ typedef unsigned int rt_uint32_t; /**< 32bit unsigned inte
7676
#ifdef ARCH_CPU_64BIT
7777
typedef signed long rt_int64_t; /**< 64bit integer type */
7878
typedef unsigned long rt_uint64_t; /**< 64bit unsigned integer type */
79+
typedef unsigned long rt_size_t; /**< Type for size number */
7980
#else
8081
typedef signed long long rt_int64_t; /**< 64bit integer type */
8182
typedef unsigned long long rt_uint64_t; /**< 64bit unsigned integer type */
82-
#endif
83-
#endif
83+
typedef unsigned int rt_size_t; /**< Type for size number */
84+
#endif /* ARCH_CPU_64BIT */
85+
#endif /* RT_USING_ARCH_DATA_TYPE */
8486

8587
typedef int rt_bool_t; /**< boolean type */
8688
typedef long rt_base_t; /**< Nbit CPU related date type */
@@ -90,7 +92,6 @@ typedef rt_base_t rt_err_t; /**< Type for error numb
9092
typedef rt_uint32_t rt_time_t; /**< Type for time stamp */
9193
typedef rt_uint32_t rt_tick_t; /**< Type for tick count */
9294
typedef rt_base_t rt_flag_t; /**< Type for flags */
93-
typedef rt_ubase_t rt_size_t; /**< Type for size number */
9495
typedef rt_ubase_t rt_dev_t; /**< Type for device */
9596
typedef rt_base_t rt_off_t; /**< Type for offset */
9697

include/rtthread.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -541,14 +541,14 @@ void rt_components_board_init(void);
541541
#define rt_kprintf(...)
542542
#define rt_kputs(str)
543543
#else
544-
void rt_kprintf(const char *fmt, ...);
544+
int rt_kprintf(const char *fmt, ...);
545545
void rt_kputs(const char *str);
546546
#endif
547547

548-
rt_int32_t rt_vsprintf(char *dest, const char *format, va_list arg_ptr);
549-
rt_int32_t rt_vsnprintf(char *buf, rt_size_t size, const char *fmt, va_list args);
550-
rt_int32_t rt_sprintf(char *buf, const char *format, ...);
551-
rt_int32_t rt_snprintf(char *buf, rt_size_t size, const char *format, ...);
548+
int rt_vsprintf(char *dest, const char *format, va_list arg_ptr);
549+
int rt_vsnprintf(char *buf, rt_size_t size, const char *fmt, va_list args);
550+
int rt_sprintf(char *buf, const char *format, ...);
551+
int rt_snprintf(char *buf, rt_size_t size, const char *format, ...);
552552

553553
#if defined(RT_USING_DEVICE) && defined(RT_USING_CONSOLE)
554554
rt_device_t rt_console_set_device(const char *name);

src/Kconfig

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,10 @@ config RT_USING_ASM_MEMCPY
139139
bool
140140
default n
141141

142+
config RT_USING_ASM_MEMSET
143+
bool
144+
default n
145+
142146
config RT_USING_TINY_FFS
143147
bool "Enable kservice to use tiny ffs"
144148
default n

src/kservice.c

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ int *_rt_errno(void)
115115
}
116116
RTM_EXPORT(_rt_errno);
117117

118+
#ifndef RT_USING_ASM_MEMSET
118119
/**
119120
* This function will set the content of memory to specified value.
120121
*
@@ -127,7 +128,7 @@ RTM_EXPORT(_rt_errno);
127128
*
128129
* @return The address of source memory.
129130
*/
130-
RT_WEAK void *rt_memset(void *s, int c, rt_ubase_t count)
131+
void *rt_memset(void *s, int c, rt_ubase_t count)
131132
{
132133
#ifdef RT_KSERVICE_USING_TINY_SIZE
133134
char *xs = (char *)s;
@@ -200,6 +201,7 @@ RT_WEAK void *rt_memset(void *s, int c, rt_ubase_t count)
200201
#endif /* RT_KSERVICE_USING_TINY_SIZE */
201202
}
202203
RTM_EXPORT(rt_memset);
204+
#endif /* RT_USING_ASM_MEMSET */
203205

204206
#ifndef RT_USING_ASM_MEMCPY
205207
/**
@@ -338,7 +340,7 @@ RTM_EXPORT(rt_memmove);
338340
* If the result > 0, cs is greater than ct.
339341
* If the result = 0, cs is equal to ct.
340342
*/
341-
RT_WEAK rt_int32_t rt_memcmp(const void *cs, const void *ct, rt_ubase_t count)
343+
rt_int32_t rt_memcmp(const void *cs, const void *ct, rt_ubase_t count)
342344
{
343345
const unsigned char *su1, *su2;
344346
int res = 0;
@@ -842,10 +844,7 @@ static char *print_number(char *buf,
842844
*
843845
* @return The number of characters actually written to buffer.
844846
*/
845-
rt_int32_t rt_vsnprintf(char *buf,
846-
rt_size_t size,
847-
const char *fmt,
848-
va_list args)
847+
RT_WEAK int rt_vsnprintf(char *buf, rt_size_t size, const char *fmt, va_list args)
849848
{
850849
#ifdef RT_PRINTF_LONGLONG
851850
unsigned long long num;
@@ -1119,7 +1118,7 @@ RTM_EXPORT(rt_vsnprintf);
11191118
*
11201119
* @return The number of characters actually written to buffer.
11211120
*/
1122-
rt_int32_t rt_snprintf(char *buf, rt_size_t size, const char *fmt, ...)
1121+
int rt_snprintf(char *buf, rt_size_t size, const char *fmt, ...)
11231122
{
11241123
rt_int32_t n;
11251124
va_list args;
@@ -1143,7 +1142,7 @@ RTM_EXPORT(rt_snprintf);
11431142
*
11441143
* @return The number of characters actually written to buffer.
11451144
*/
1146-
rt_int32_t rt_vsprintf(char *buf, const char *format, va_list arg_ptr)
1145+
int rt_vsprintf(char *buf, const char *format, va_list arg_ptr)
11471146
{
11481147
return rt_vsnprintf(buf, (rt_size_t) - 1, format, arg_ptr);
11491148
}
@@ -1158,7 +1157,7 @@ RTM_EXPORT(rt_vsprintf);
11581157
*
11591158
* @return The number of characters actually written to buffer.
11601159
*/
1161-
rt_int32_t rt_sprintf(char *buf, const char *format, ...)
1160+
int rt_sprintf(char *buf, const char *format, ...)
11621161
{
11631162
rt_int32_t n;
11641163
va_list arg_ptr;
@@ -1258,8 +1257,10 @@ void rt_kputs(const char *str)
12581257
* This function will print a formatted string on system console.
12591258
*
12601259
* @param fmt is the format parameters.
1260+
*
1261+
* @return The number of characters actually written to buffer.
12611262
*/
1262-
RT_WEAK void rt_kprintf(const char *fmt, ...)
1263+
RT_WEAK int rt_kprintf(const char *fmt, ...)
12631264
{
12641265
va_list args;
12651266
rt_size_t length;
@@ -1287,6 +1288,8 @@ RT_WEAK void rt_kprintf(const char *fmt, ...)
12871288
rt_hw_console_output(rt_log_buf);
12881289
#endif /* RT_USING_DEVICE */
12891290
va_end(args);
1291+
1292+
return length;
12901293
}
12911294
RTM_EXPORT(rt_kprintf);
12921295
#endif /* RT_USING_CONSOLE */

0 commit comments

Comments
 (0)