X-Git-Url: http://git.maemo.org/git/?p=qemu;a=blobdiff_plain;f=qemu-char.h;h=e1aa8dbafaf6ee129e38e1699d9dc60b1a971e63;hp=2746472d58a0df633a60bbbf7838ac37170fda48;hb=HEAD;hpb=81174dae3f9189519cd60c7b79e91c291b021bbe diff --git a/qemu-char.h b/qemu-char.h index 2746472..e1aa8db 100644 --- a/qemu-char.h +++ b/qemu-char.h @@ -1,11 +1,16 @@ #ifndef QEMU_CHAR_H #define QEMU_CHAR_H +#include "qemu-common.h" +#include "sys-queue.h" + /* character device */ -#define CHR_EVENT_BREAK 0 /* serial break char */ -#define CHR_EVENT_FOCUS 1 /* focus to this terminal (modal input needed) */ -#define CHR_EVENT_RESET 2 /* new connection established */ +#define CHR_EVENT_BREAK 0 /* serial break char */ +#define CHR_EVENT_FOCUS 1 /* focus to this terminal (modal input needed) */ +#define CHR_EVENT_RESET 2 /* new connection established */ +#define CHR_EVENT_MUX_IN 3 /* mux-focus was set to this terminal */ +#define CHR_EVENT_MUX_OUT 4 /* mux-focus will move on */ #define CHR_IOCTL_SERIAL_SET_PARAMS 1 @@ -27,9 +32,10 @@ typedef struct { #define CHR_IOCTL_PP_EPP_READ 9 #define CHR_IOCTL_PP_EPP_WRITE_ADDR 10 #define CHR_IOCTL_PP_EPP_WRITE 11 +#define CHR_IOCTL_PP_DATA_DIR 12 -#define CHR_IOCTL_SERIAL_SET_TIOCM 12 -#define CHR_IOCTL_SERIAL_GET_TIOCM 13 +#define CHR_IOCTL_SERIAL_SET_TIOCM 13 +#define CHR_IOCTL_SERIAL_GET_TIOCM 14 #define CHR_TIOCM_CTS 0x020 #define CHR_TIOCM_CAR 0x040 @@ -41,6 +47,7 @@ typedef struct { typedef void IOEventHandler(void *opaque, int event); struct CharDriverState { + void (*init)(struct CharDriverState *s); int (*chr_write)(struct CharDriverState *s, const uint8_t *buf, int len); void (*chr_update_read_handler)(struct CharDriverState *s); int (*chr_ioctl)(struct CharDriverState *s, int cmd, void *arg); @@ -54,9 +61,12 @@ struct CharDriverState { void *opaque; int focus; QEMUBH *bh; + char *label; + char *filename; + TAILQ_ENTRY(CharDriverState) next; }; -CharDriverState *qemu_chr_open(const char *filename); +CharDriverState *qemu_chr_open(const char *label, const char *filename, void (*init)(struct CharDriverState *s)); void qemu_chr_close(CharDriverState *chr); void qemu_chr_printf(CharDriverState *s, const char *fmt, ...); int qemu_chr_write(CharDriverState *s, const uint8_t *buf, int len); @@ -68,9 +78,13 @@ void qemu_chr_add_handlers(CharDriverState *s, void *opaque); int qemu_chr_ioctl(CharDriverState *s, int cmd, void *arg); void qemu_chr_reset(CharDriverState *s); +void qemu_chr_initial_reset(void); int qemu_chr_can_read(CharDriverState *s); void qemu_chr_read(CharDriverState *s, uint8_t *buf, int len); void qemu_chr_accept_input(CharDriverState *s); +void qemu_chr_info(Monitor *mon); + +extern int term_escape_char; /* async I/O support */