1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
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);
|