Make *printf() return "int" instead of "void"
Change the return type of the *printf() functions to the standard
"int"; no changes are needed but returning the already available
length count.
This will save a few additional strlen() calls later...
Signed-off-by: Wolfgang Denk <wd@denx.de>
diff --git a/common/console.c b/common/console.c
index b09b7d1..7e01886 100644
--- a/common/console.c
+++ b/common/console.c
@@ -201,7 +201,7 @@
/** U-Boot INITIAL CONSOLE-NOT COMPATIBLE FUNCTIONS *************************/
-void serial_printf(const char *fmt, ...)
+int serial_printf(const char *fmt, ...)
{
va_list args;
uint i;
@@ -216,6 +216,7 @@
va_end(args);
serial_puts(printbuffer);
+ return i;
}
int fgetc(int file)
@@ -269,7 +270,7 @@
console_puts(file, s);
}
-void fprintf(int file, const char *fmt, ...)
+int fprintf(int file, const char *fmt, ...)
{
va_list args;
uint i;
@@ -285,6 +286,7 @@
/* Send to desired file */
fputs(file, printbuffer);
+ return i;
}
/** U-Boot INITIAL CONSOLE-COMPATIBLE FUNCTION *****************************/
@@ -363,7 +365,7 @@
}
}
-void printf(const char *fmt, ...)
+int printf(const char *fmt, ...)
{
va_list args;
uint i;
@@ -379,9 +381,10 @@
/* Print the string */
puts(printbuffer);
+ return i;
}
-void vprintf(const char *fmt, va_list args)
+int vprintf(const char *fmt, va_list args)
{
uint i;
char printbuffer[CONFIG_SYS_PBSIZE];
@@ -393,6 +396,7 @@
/* Print the string */
puts(printbuffer);
+ return i;
}
/* test if ctrl-c was pressed */
diff --git a/examples/api/libgenwrap.c b/examples/api/libgenwrap.c
index b435dde..9733bbc 100644
--- a/examples/api/libgenwrap.c
+++ b/examples/api/libgenwrap.c
@@ -37,7 +37,7 @@
/*
* printf() and vprintf() are stolen from u-boot/common/console.c
*/
-void printf (const char *fmt, ...)
+int printf (const char *fmt, ...)
{
va_list args;
uint i;
@@ -53,9 +53,10 @@
/* Print the string */
ub_puts (printbuffer);
+ return i;
}
-void vprintf (const char *fmt, va_list args)
+int vprintf (const char *fmt, va_list args)
{
uint i;
char printbuffer[256];
@@ -67,6 +68,7 @@
/* Print the string */
ub_puts (printbuffer);
+ return i;
}
void putc (const char c)
diff --git a/include/common.h b/include/common.h
index 8bca04f..48f6a1a 100644
--- a/include/common.h
+++ b/include/common.h
@@ -663,7 +663,7 @@
* STDIO based functions (can always be used)
*/
/* serial stuff */
-void serial_printf (const char *fmt, ...)
+int serial_printf (const char *fmt, ...)
__attribute__ ((format (__printf__, 1, 2)));
/* stdin */
int getc(void);
@@ -672,9 +672,9 @@
/* stdout */
void putc(const char c);
void puts(const char *s);
-void printf(const char *fmt, ...)
+int printf(const char *fmt, ...)
__attribute__ ((format (__printf__, 1, 2)));
-void vprintf(const char *fmt, va_list args);
+int vprintf(const char *fmt, va_list args);
/* stderr */
#define eputc(c) fputc(stderr, c)
@@ -689,7 +689,7 @@
#define stderr 2
#define MAX_FILES 3
-void fprintf(int file, const char *fmt, ...)
+int fprintf(int file, const char *fmt, ...)
__attribute__ ((format (__printf__, 2, 3)));
void fputs(int file, const char *s);
void fputc(int file, const char c);
diff --git a/include/exports.h b/include/exports.h
index c3a5d2f..9588bc9 100644
--- a/include/exports.h
+++ b/include/exports.h
@@ -11,14 +11,14 @@
int tstc(void);
void putc(const char);
void puts(const char*);
-void printf(const char* fmt, ...);
+int printf(const char* fmt, ...);
void install_hdlr(int, interrupt_handler_t*, void*);
void free_hdlr(int);
void *malloc(size_t);
void free(void*);
void __udelay(unsigned long);
unsigned long get_timer(unsigned long);
-void vprintf(const char *, va_list);
+int vprintf(const char *, va_list);
void do_reset (void);
unsigned long simple_strtoul(const char *cp,char **endp,unsigned int base);
char *getenv (char *name);