diff options
author | Graeme Russ <graeme.russ@gmail.com> | 2011-08-29 02:14:05 +0000 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2011-10-04 14:47:54 -0700 |
commit | 56380ae05fc0b667d753528f764f3bb1144627c4 (patch) | |
tree | d8e99be14df741e96644ca4e68b14a4d4d10daf2 /common | |
parent | e16e7f0ba3e81f07ba877479b91388160dd2aa46 (diff) |
console: Squelch pre-console output in console functions
There are some locations in the code which anticipate printf() being called
before the console is ready by squelching printf() on gd->have_console.
Move this squelching into printf(), vprintf(), puts() and putc(). Also
make tstc() and getc() return 0 if console is not yet initialised
Signed-off-by: Graeme Russ <graeme.russ@gmail.com>
Change-Id: If62863017eaa48915b721675a5d520f9caa7e5e0
Reviewed-on: http://gerrit.chromium.org/gerrit/8685
Reviewed-by: Che-Liang Chiou <clchiou@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'common')
-rw-r--r-- | common/console.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/common/console.c b/common/console.c index dd44b9f09b4..5f91b79eab8 100644 --- a/common/console.c +++ b/common/console.c @@ -300,6 +300,9 @@ int getc(void) return 0; #endif + if (!gd->have_console) + return 0; + if (gd->flags & GD_FLG_DEVINIT) { /* Get from the standard input */ return fgetc(stdin); @@ -316,6 +319,9 @@ int tstc(void) return 0; #endif + if (!gd->have_console) + return 0; + if (gd->flags & GD_FLG_DEVINIT) { /* Test the standard input */ return ftstc(stdin); @@ -337,6 +343,9 @@ void putc(const char c) return; #endif + if (!gd->have_console) + return; + if (gd->flags & GD_FLG_DEVINIT) { /* Send to the standard output */ fputc(stdout, c); @@ -358,6 +367,9 @@ void puts(const char *s) return; #endif + if (!gd->have_console) + return; + if (gd->flags & GD_FLG_DEVINIT) { /* Send to the standard output */ fputs(stdout, s); @@ -373,6 +385,9 @@ int printf(const char *fmt, ...) uint i; char printbuffer[CONFIG_SYS_PBSIZE]; + if (!gd->have_console) + return 0; + va_start(args, fmt); /* For this to work, printbuffer must be larger than @@ -391,6 +406,9 @@ int vprintf(const char *fmt, va_list args) uint i; char printbuffer[CONFIG_SYS_PBSIZE]; + if (!gd->have_console) + return 0; + /* For this to work, printbuffer must be larger than * anything we ever want to print. */ |