diff options
author | Peter Korsgaard <jacmet@sunsite.dk> | 2010-12-10 13:50:12 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2010-12-12 09:27:40 +0100 |
commit | 19459369913c921991d20e1d180a6358abeed857 (patch) | |
tree | f3db862da18e087f19b67b16ee5de9566941e009 | |
parent | adcebd48f6a4387354a099a3c20daac560e635dd (diff) | |
download | barebox-19459369913c921991d20e1d180a6358abeed857.tar.gz barebox-19459369913c921991d20e1d180a6358abeed857.tar.xz |
console_simple: add fprintf / console_list for commands/loadb.c
commands/loadb.c doesn't build with CONFIG_CONSOLE_SIMPLE, because it uses
fprintf / for_each_console (which uses console_list).
Fix it by adding trivial implementations of both in console_simple.
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r-- | common/console_simple.c | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/common/console_simple.c b/common/console_simple.c index 7695e05ecb..1b58deaff7 100644 --- a/common/console_simple.c +++ b/common/console_simple.c @@ -3,6 +3,8 @@ #include <fs.h> #include <errno.h> +LIST_HEAD(console_list); +EXPORT_SYMBOL(console_list); static struct console_device *console; int printf (const char *fmt, ...) @@ -43,6 +45,25 @@ int vprintf (const char *fmt, va_list args) } EXPORT_SYMBOL(vprintf); +void fprintf (int file, const char *fmt, ...) +{ + va_list args; + uint i; + char printbuffer[CFG_PBSIZE]; + + va_start (args, fmt); + + /* For this to work, printbuffer must be larger than + * anything we ever want to print. + */ + i = vsprintf (printbuffer, fmt, args); + va_end (args); + + /* Print the string */ + fputs(file, printbuffer); +} +EXPORT_SYMBOL(fprintf); + void console_puts(unsigned int ch, const char *str) { const char *s = str; @@ -127,7 +148,10 @@ EXPORT_SYMBOL(ctrlc); int console_register(struct console_device *newcdev) { - if (!console) + if (!console) { console = newcdev; + console_list.prev = console_list.next = &newcdev->list; + newcdev->list.prev = newcdev->list.next = &console_list; + } return 0; } |