diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2009-06-17 07:22:18 +0100 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2009-06-17 07:22:18 +0100 |
commit | c12b25aa7ddb70cefacb119e1ff7573906a7284d (patch) | |
tree | 17b41bba8abef28a1c38977d920f7a8e961d7036 /extras/mini-os/include | |
parent | 6f1d3ce238905fc7b4c563a3611576ca25a09a49 (diff) | |
download | xen-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.h | 46 | ||||
-rw-r--r-- | extras/mini-os/include/lib.h | 4 |
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. */ |