struct qemu_window; struct qemu_mq { struct qemu_mq *next; char cmd[128]; }; enum vnc_state { VNC_NONE = 0, VNC_CONNECTED, VNC_INITIALIZED, VNC_DISCONNECTED, }; struct qemu_conn { int handle; GIOChannel *ch; guint id; GtkWidget *vte; struct qemu_window *win; char name[32]; char hostname[128]; struct qemu_conn *next; }; struct qemu_menu { GtkActionGroup *ag; guint id; }; struct qemu_window { /* widgets */ GtkWidget *toplevel; GtkWidget *status, *fstatus; GtkWidget *tab, *vnc; GtkUIManager *ui; gboolean fullscreen; /* vnc (gfx) */ char vnc_display[128]; char vnc_hostname[128]; char vnc_tcpport[16]; enum vnc_state vnc_state; int vnc_grab; int vnc_width; int vnc_height; char *vnc_password; int vnc_send_password; /* text terminals */ struct qemu_conn *terms; char *sercon; /* monitor */ struct qemu_conn monitor; char *mbuf; int msize; int mused; struct qemu_mq *mqueue; struct qemu_mq *mrun; /* devices */ struct qemu_menu mc; struct qemu_menu usb; struct qemu_menu usbhost; struct qemu_menu chardev; /* gdb */ GtkWidget *gdb_vte; pid_t gdb_pid; /* vm info */ char version[32]; char name[128]; /* options */ gboolean quit_on_shutdown; gboolean sercon_tab; gboolean vnc_scale; gboolean vnc_grab_mouse; gboolean vnc_grab_kbd; gboolean tty_blink; char *tty_font; char *tty_fg; char *tty_bg; }; /* qemu-gtk.c */ extern int debug; void update_status(struct qemu_window *win); void vnc_connect(struct qemu_window *win); int conn_init(struct qemu_conn *conn, char *name, char *dest); int conn_open_term(struct qemu_window *win, char *name, char *dest, int pos); void qemu_vnc_tab(struct qemu_window *win); void qemu_conn_tab(struct qemu_window *win, struct qemu_conn *conn, int pos); /* monitor.c */ int monitor_connect(struct qemu_window *win, char *dest); void monitor_append(struct qemu_window *win, char *cmd); /* devices.c */ void devices_parse_info_block(struct qemu_window *win, char *str); void devices_parse_info_usb(struct qemu_window *win, char *str); void devices_parse_info_usbhost(struct qemu_window *win, char *str); void devices_parse_info_chardev(struct qemu_window *win, char *str); void devices_rescan(struct qemu_window *win);