From 19459369913c921991d20e1d180a6358abeed857 Mon Sep 17 00:00:00 2001 From: Peter Korsgaard Date: Fri, 10 Dec 2010 13:50:12 +0100 Subject: 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 Signed-off-by: Sascha Hauer --- common/console_simple.c | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) (limited to 'common/console_simple.c') 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 #include +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; } -- cgit v1.2.3