[PATCH 15/27] console_simple: Use console_flush() from CONSOLE_FULL

Andrey Smirnov andrew.smirnov at gmail.com
Thu Jun 14 21:11:24 PDT 2018


Both implementations of console_flush() should behave the same way.
Arguably CONSOLE_FULL's implementation is a bit bulkier that what
CONSOLE_SIMPLE has, but this replacement allows us to share more code
between CONSOLE_SIMPLE and CONSOLE_FULL as well as reduce our
dependencies on global console pointer in CONSOLE_SIMPLE.

Signed-off-by: Andrey Smirnov <andrew.smirnov at gmail.com>
---
 common/console.c        | 14 --------------
 common/console_common.c | 11 +++++++++++
 common/console_simple.c |  9 ---------
 lib/console.c           |  2 ++
 4 files changed, 13 insertions(+), 23 deletions(-)

diff --git a/common/console.c b/common/console.c
index 6f195e882..f454f91c0 100644
--- a/common/console.c
+++ b/common/console.c
@@ -38,9 +38,6 @@
 #include <linux/stringify.h>
 #include <debug_ll.h>
 
-LIST_HEAD(console_list);
-EXPORT_SYMBOL(console_list);
-
 #define CONSOLE_UNINITIALIZED		0
 #define CONSOLE_INITIALIZED_BUFFER	1
 #define CONSOLE_INIT_FULL		2
@@ -560,16 +557,5 @@ int console_puts(unsigned int ch, const char *str)
 }
 EXPORT_SYMBOL(console_puts);
 
-void console_flush(void)
-{
-	struct console_device *cdev;
-
-	for_each_console(cdev) {
-		if (cdev->flush)
-			cdev->flush(cdev);
-	}
-}
-EXPORT_SYMBOL(console_flush);
-
 BAREBOX_MAGICVAR_NAMED(global_linux_bootargs_console, global.linux.bootargs.console,
 		"console= argument for Linux from the linux,stdout-path property in /chosen node");
diff --git a/common/console_common.c b/common/console_common.c
index 0131a1190..324d42915 100644
--- a/common/console_common.c
+++ b/common/console_common.c
@@ -315,6 +315,17 @@ struct console_device *console_get_first_active(void)
 }
 EXPORT_SYMBOL(console_get_first_active);
 
+void console_flush(void)
+{
+	struct console_device *cdev;
+
+	for_each_console(cdev) {
+		if (cdev->flush)
+			cdev->flush(cdev);
+	}
+}
+EXPORT_SYMBOL(console_flush);
+
 #endif /* !CONFIG_CONSOLE_NONE */
 
 int dprintf(int file, const char *fmt, ...)
diff --git a/common/console_simple.c b/common/console_simple.c
index e2456e987..9da516ee9 100644
--- a/common/console_simple.c
+++ b/common/console_simple.c
@@ -5,8 +5,6 @@
 #include <debug_ll.h>
 #include <console.h>
 
-LIST_HEAD(console_list);
-EXPORT_SYMBOL(console_list);
 extern struct console_device *console;
 
 int tstc(void)
@@ -26,13 +24,6 @@ int getchar(void)
 }
 EXPORT_SYMBOL(getchar);
 
-void console_flush(void)
-{
-	if (console && console->flush)
-		console->flush(console);
-}
-EXPORT_SYMBOL(console_flush);
-
 int console_register(struct console_device *newcdev)
 {
 	if (console)
diff --git a/lib/console.c b/lib/console.c
index 91c446d6e..b8d6456c9 100644
--- a/lib/console.c
+++ b/lib/console.c
@@ -29,6 +29,8 @@ __data struct console_device console_ll = {
 	.ctx  = NULL,
 };
 __data struct console_device *console;
+LIST_HEAD(console_list);
+EXPORT_SYMBOL(console_list);
 
 /**
  * __console_ll_putc - Early, most primitive putc() implemenatation
-- 
2.17.0




More information about the barebox mailing list