console-server: Enable multiple consoles

obmc-console can now support multiple consoles that can be configured.

The first console is the active console, if not configured otherwise.

This serves as preparation for uart mux support.

Change-Id: I6f350b8efe70c3b424bdadaa3fe1bbf89d310e5d
Signed-off-by: Alexander Hansen <alexander.hansen@9elements.com>
Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
diff --git a/console-server.h b/console-server.h
index 5213dd0..7c2e711 100644
--- a/console-server.h
+++ b/console-server.h
@@ -124,7 +124,18 @@
 	// index into pollfds
 	size_t tty_pollfd_index;
 
+	struct config *config;
+
+	// the currently active console
 	struct console *active;
+
+	struct console **consoles;
+	size_t n_consoles;
+
+	// index into (struct console_server)->pollfds
+	size_t dbus_pollfd_index;
+
+	struct sd_bus *bus;
 };
 
 struct console {
@@ -145,11 +156,6 @@
 
 	struct poller **pollers;
 	long n_pollers;
-
-	// index into (struct console_server)->pollfds
-	size_t dbus_pollfd_index;
-
-	struct sd_bus *bus;
 };
 
 /* poller API */
@@ -240,6 +246,10 @@
 /* utils */
 int write_buf_to_fd(int fd, const uint8_t *buf, size_t len);
 
+/* console_server dbus */
+int dbus_server_init(struct console_server *server);
+void dbus_server_fini(struct console_server *server);
+
 /* console-dbus API */
 int dbus_init(struct console *console,
 	      struct config *config __attribute__((unused)));