diff options
| author | Bernard Xiong <[email protected]> | 2021-11-24 17:38:15 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2021-11-24 17:38:15 +0800 |
| commit | 6a6b43fe3e3e75b3bbcc838f7f3d0060e33c5386 (patch) | |
| tree | 82603ece690c334261268e93731cce4daa8f9559 /src | |
| parent | f11113f55780a71345bbd0dffda6e3b904fc76da (diff) | |
| parent | cefc77ad11039eb0f93162fde3b8584c880dcf12 (diff) | |
Merge pull request #5261 from mysterywolf/weak
[kernel] prepare to support full functional sprintf-family functions
Diffstat (limited to 'src')
| -rw-r--r-- | src/Kconfig | 4 | ||||
| -rw-r--r-- | src/kservice.c | 23 |
2 files changed, 17 insertions, 10 deletions
diff --git a/src/Kconfig b/src/Kconfig index f225796220..427a65eb74 100644 --- a/src/Kconfig +++ b/src/Kconfig @@ -139,6 +139,10 @@ config RT_USING_ASM_MEMCPY bool default n +config RT_USING_ASM_MEMSET + bool + default n + config RT_USING_TINY_FFS bool "Enable kservice to use tiny ffs" default n diff --git a/src/kservice.c b/src/kservice.c index 6a42b92047..aa5b39075c 100644 --- a/src/kservice.c +++ b/src/kservice.c @@ -115,6 +115,7 @@ int *_rt_errno(void) } RTM_EXPORT(_rt_errno); +#ifndef RT_USING_ASM_MEMSET /** * This function will set the content of memory to specified value. * @@ -127,7 +128,7 @@ RTM_EXPORT(_rt_errno); * * @return The address of source memory. */ -RT_WEAK void *rt_memset(void *s, int c, rt_ubase_t count) +void *rt_memset(void *s, int c, rt_ubase_t count) { #ifdef RT_KSERVICE_USING_TINY_SIZE char *xs = (char *)s; @@ -200,6 +201,7 @@ RT_WEAK void *rt_memset(void *s, int c, rt_ubase_t count) #endif /* RT_KSERVICE_USING_TINY_SIZE */ } RTM_EXPORT(rt_memset); +#endif /* RT_USING_ASM_MEMSET */ #ifndef RT_USING_ASM_MEMCPY /** @@ -338,7 +340,7 @@ RTM_EXPORT(rt_memmove); * If the result > 0, cs is greater than ct. * If the result = 0, cs is equal to ct. */ -RT_WEAK rt_int32_t rt_memcmp(const void *cs, const void *ct, rt_ubase_t count) +rt_int32_t rt_memcmp(const void *cs, const void *ct, rt_ubase_t count) { const unsigned char *su1, *su2; int res = 0; @@ -842,10 +844,7 @@ static char *print_number(char *buf, * * @return The number of characters actually written to buffer. */ -rt_int32_t rt_vsnprintf(char *buf, - rt_size_t size, - const char *fmt, - va_list args) +RT_WEAK int rt_vsnprintf(char *buf, rt_size_t size, const char *fmt, va_list args) { #ifdef RT_PRINTF_LONGLONG unsigned long long num; @@ -1119,7 +1118,7 @@ RTM_EXPORT(rt_vsnprintf); * * @return The number of characters actually written to buffer. */ -rt_int32_t rt_snprintf(char *buf, rt_size_t size, const char *fmt, ...) +int rt_snprintf(char *buf, rt_size_t size, const char *fmt, ...) { rt_int32_t n; va_list args; @@ -1143,7 +1142,7 @@ RTM_EXPORT(rt_snprintf); * * @return The number of characters actually written to buffer. */ -rt_int32_t rt_vsprintf(char *buf, const char *format, va_list arg_ptr) +int rt_vsprintf(char *buf, const char *format, va_list arg_ptr) { return rt_vsnprintf(buf, (rt_size_t) - 1, format, arg_ptr); } @@ -1158,7 +1157,7 @@ RTM_EXPORT(rt_vsprintf); * * @return The number of characters actually written to buffer. */ -rt_int32_t rt_sprintf(char *buf, const char *format, ...) +int rt_sprintf(char *buf, const char *format, ...) { rt_int32_t n; va_list arg_ptr; @@ -1258,8 +1257,10 @@ void rt_kputs(const char *str) * This function will print a formatted string on system console. * * @param fmt is the format parameters. + * + * @return The number of characters actually written to buffer. */ -RT_WEAK void rt_kprintf(const char *fmt, ...) +RT_WEAK int rt_kprintf(const char *fmt, ...) { va_list args; rt_size_t length; @@ -1287,6 +1288,8 @@ RT_WEAK void rt_kprintf(const char *fmt, ...) rt_hw_console_output(rt_log_buf); #endif /* RT_USING_DEVICE */ va_end(args); + + return length; } RTM_EXPORT(rt_kprintf); #endif /* RT_USING_CONSOLE */ |
