aboutsummaryrefslogtreecommitdiffstats
path: root/extras/mini-os/include
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2009-06-17 07:22:18 +0100
committerKeir Fraser <keir.fraser@citrix.com>2009-06-17 07:22:18 +0100
commitc12b25aa7ddb70cefacb119e1ff7573906a7284d (patch)
tree17b41bba8abef28a1c38977d920f7a8e961d7036 /extras/mini-os/include
parent6f1d3ce238905fc7b4c563a3611576ca25a09a49 (diff)
downloadxen-c12b25aa7ddb70cefacb119e1ff7573906a7284d.tar.gz
xen-c12b25aa7ddb70cefacb119e1ff7573906a7284d.tar.bz2
xen-c12b25aa7ddb70cefacb119e1ff7573906a7284d.zip
minios: support secondary guest consoles.
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Diffstat (limited to 'extras/mini-os/include')
-rw-r--r--extras/mini-os/include/console.h46
-rw-r--r--extras/mini-os/include/lib.h4
2 files changed, 39 insertions, 11 deletions
diff --git a/extras/mini-os/include/console.h b/extras/mini-os/include/console.h
index e9e5161166..3755b6655d 100644
--- a/extras/mini-os/include/console.h
+++ b/extras/mini-os/include/console.h
@@ -36,9 +36,32 @@
#ifndef _LIB_CONSOLE_H_
#define _LIB_CONSOLE_H_
-#include<mini-os/os.h>
-#include<mini-os/traps.h>
-#include<stdarg.h>
+#include <mini-os/os.h>
+#include <mini-os/traps.h>
+#include <mini-os/types.h>
+#include <xen/grant_table.h>
+#include <xenbus.h>
+#include <xen/io/console.h>
+#include <stdarg.h>
+
+struct consfront_dev {
+ domid_t dom;
+
+ struct xencons_interface *ring;
+ grant_ref_t ring_ref;
+ evtchn_port_t evtchn;
+
+ char *nodename;
+ char *backend;
+
+ xenbus_event_queue events;
+
+#ifdef HAVE_LIBC
+ int fd;
+#endif
+};
+
+
void print(int direct, const char *fmt, va_list args);
void printk(const char *fmt, ...);
@@ -50,16 +73,17 @@ void xencons_rx(char *buf, unsigned len, struct pt_regs *regs);
void xencons_tx(void);
void init_console(void);
-void console_print(char *data, int length);
-void fini_console(void);
+void console_print(struct consfront_dev *dev, char *data, int length);
+void fini_console(struct consfront_dev *dev);
/* Low level functions defined in xencons_ring.c */
extern struct wait_queue_head console_queue;
-int xencons_ring_init(void);
-int xencons_ring_send(const char *data, unsigned len);
-int xencons_ring_send_no_notify(const char *data, unsigned len);
-int xencons_ring_avail(void);
-int xencons_ring_recv(char *data, unsigned len);
-
+struct consfront_dev *xencons_ring_init(void);
+struct consfront_dev *init_consfront(char *_nodename);
+int xencons_ring_send(struct consfront_dev *dev, const char *data, unsigned len);
+int xencons_ring_send_no_notify(struct consfront_dev *dev, const char *data, unsigned len);
+int xencons_ring_avail(struct consfront_dev *dev);
+int xencons_ring_recv(struct consfront_dev *dev, char *data, unsigned len);
+void free_consfront(struct consfront_dev *dev);
#endif /* _LIB_CONSOLE_H_ */
diff --git a/extras/mini-os/include/lib.h b/extras/mini-os/include/lib.h
index 8822dd14a7..4aa34d4e7c 100644
--- a/extras/mini-os/include/lib.h
+++ b/extras/mini-os/include/lib.h
@@ -101,6 +101,7 @@ char * strcat(char * dest, const char * src);
char *strdup(const char *s);
#endif
#include <mini-os/console.h>
+int openpty(void);
#define RAND_MIX 2654435769U
@@ -183,6 +184,9 @@ extern struct file {
struct {
struct fbfront_dev *dev;
} fb;
+ struct {
+ struct consfront_dev *dev;
+ } cons;
struct {
/* To each xenbus FD is associated a queue of watch events for this
* FD. */