diff --git a/src/console/vsprintf.c b/src/console/vsprintf.c index 4edb3ea6e6..7071611ef9 100644 --- a/src/console/vsprintf.c +++ b/src/console/vsprintf.c @@ -34,7 +34,7 @@ static void str_tx_byte(unsigned char byte, void *data) } } -static int vsnprintf(char *buf, size_t size, const char *fmt, va_list args) +int vsnprintf(char *buf, size_t size, const char *fmt, va_list args) { int i; struct vsnprintf_context ctx; diff --git a/src/include/string.h b/src/include/string.h index d2d7bb8781..fc96393c48 100644 --- a/src/include/string.h +++ b/src/include/string.h @@ -4,6 +4,10 @@ #include #include +#if !defined(__ROMCC__) +#include +#endif + /* Stringify a token */ #ifndef STRINGIFY #define _STRINGIFY(x) #x @@ -17,6 +21,7 @@ int memcmp(const void *s1, const void *s2, size_t n); void *memchr(const void *s, int c, size_t n); #if !defined(__ROMCC__) int snprintf(char *buf, size_t size, const char *fmt, ...); +int vsnprintf(char *buf, size_t size, const char *fmt, va_list args); #endif // simple string functions diff --git a/src/southbridge/amd/cimx/sb800/AmdSbLib.h b/src/southbridge/amd/cimx/sb800/AmdSbLib.h index cc75353f3d..c13eda4e58 100644 --- a/src/southbridge/amd/cimx/sb800/AmdSbLib.h +++ b/src/southbridge/amd/cimx/sb800/AmdSbLib.h @@ -20,18 +20,7 @@ #ifndef _AMD_SB_LIB_H_ #define _AMD_SB_LIB_H_ -typedef signed char *va_list; -#ifndef _INTSIZEOF - #define _INTSIZEOF (n) ( (sizeof(n) + sizeof(UINTN) - 1) & ~(sizeof(UINTN) - 1) ) -#endif - -// Also support coding convention rules for var arg macros -#ifndef va_start - #define va_start(ap, v) ( ap = (va_list)&(v) + _INTSIZEOF (v) ) -#endif -#define va_arg(ap, t) ( *(t *) ((ap += _INTSIZEOF (t)) - _INTSIZEOF (t)) ) -#define va_end(ap) ( ap = (va_list)0 ) - +#include #pragma pack (push, 1) diff --git a/src/southbridge/amd/cimx/sb900/AmdSbLib.h b/src/southbridge/amd/cimx/sb900/AmdSbLib.h index cc75353f3d..c13eda4e58 100644 --- a/src/southbridge/amd/cimx/sb900/AmdSbLib.h +++ b/src/southbridge/amd/cimx/sb900/AmdSbLib.h @@ -20,18 +20,7 @@ #ifndef _AMD_SB_LIB_H_ #define _AMD_SB_LIB_H_ -typedef signed char *va_list; -#ifndef _INTSIZEOF - #define _INTSIZEOF (n) ( (sizeof(n) + sizeof(UINTN) - 1) & ~(sizeof(UINTN) - 1) ) -#endif - -// Also support coding convention rules for var arg macros -#ifndef va_start - #define va_start(ap, v) ( ap = (va_list)&(v) + _INTSIZEOF (v) ) -#endif -#define va_arg(ap, t) ( *(t *) ((ap += _INTSIZEOF (t)) - _INTSIZEOF (t)) ) -#define va_end(ap) ( ap = (va_list)0 ) - +#include #pragma pack (push, 1)