1/* AUTOMATICALLY GENERATED, DO NOT MODIFY */
2
3/*
4 * Schema-defined QAPI types
5 *
6 * Copyright IBM, Corp. 2011
7 * Copyright (c) 2013-2018 Red Hat Inc.
8 *
9 * This work is licensed under the terms of the GNU LGPL, version 2.1 or later.
10 * See the COPYING.LIB file in the top-level directory.
11 */
12
13#ifndef QAPI_TYPES_UI_H
14#define QAPI_TYPES_UI_H
15
16#include "qapi/qapi-builtin-types.h"
17#include "qapi-types-sockets.h"
18
19typedef struct q_obj_set_password_arg q_obj_set_password_arg;
20
21typedef struct q_obj_expire_password_arg q_obj_expire_password_arg;
22
23typedef struct q_obj_screendump_arg q_obj_screendump_arg;
24
25#if defined(CONFIG_SPICE)
26typedef struct SpiceBasicInfo SpiceBasicInfo;
27#endif /* defined(CONFIG_SPICE) */
28
29#if defined(CONFIG_SPICE)
30typedef struct SpiceServerInfo SpiceServerInfo;
31#endif /* defined(CONFIG_SPICE) */
32
33#if defined(CONFIG_SPICE)
34typedef struct SpiceChannel SpiceChannel;
35#endif /* defined(CONFIG_SPICE) */
36
37#if defined(CONFIG_SPICE)
38typedef enum SpiceQueryMouseMode {
39 SPICE_QUERY_MOUSE_MODE_CLIENT,
40 SPICE_QUERY_MOUSE_MODE_SERVER,
41 SPICE_QUERY_MOUSE_MODE_UNKNOWN,
42 SPICE_QUERY_MOUSE_MODE__MAX,
43} SpiceQueryMouseMode;
44
45#define SpiceQueryMouseMode_str(val) \
46 qapi_enum_lookup(&SpiceQueryMouseMode_lookup, (val))
47
48extern const QEnumLookup SpiceQueryMouseMode_lookup;
49#endif /* defined(CONFIG_SPICE) */
50
51#if defined(CONFIG_SPICE)
52typedef struct SpiceChannelList SpiceChannelList;
53#endif /* defined(CONFIG_SPICE) */
54
55#if defined(CONFIG_SPICE)
56typedef struct SpiceInfo SpiceInfo;
57#endif /* defined(CONFIG_SPICE) */
58
59#if defined(CONFIG_SPICE)
60typedef struct q_obj_SPICE_CONNECTED_arg q_obj_SPICE_CONNECTED_arg;
61#endif /* defined(CONFIG_SPICE) */
62
63#if defined(CONFIG_SPICE)
64typedef struct q_obj_SPICE_INITIALIZED_arg q_obj_SPICE_INITIALIZED_arg;
65#endif /* defined(CONFIG_SPICE) */
66
67#if defined(CONFIG_SPICE)
68typedef struct q_obj_SPICE_DISCONNECTED_arg q_obj_SPICE_DISCONNECTED_arg;
69#endif /* defined(CONFIG_SPICE) */
70
71#if defined(CONFIG_VNC)
72typedef struct VncBasicInfo VncBasicInfo;
73#endif /* defined(CONFIG_VNC) */
74
75#if defined(CONFIG_VNC)
76typedef struct VncServerInfo VncServerInfo;
77#endif /* defined(CONFIG_VNC) */
78
79#if defined(CONFIG_VNC)
80typedef struct VncClientInfo VncClientInfo;
81#endif /* defined(CONFIG_VNC) */
82
83#if defined(CONFIG_VNC)
84typedef struct VncClientInfoList VncClientInfoList;
85#endif /* defined(CONFIG_VNC) */
86
87#if defined(CONFIG_VNC)
88typedef struct VncInfo VncInfo;
89#endif /* defined(CONFIG_VNC) */
90
91#if defined(CONFIG_VNC)
92typedef enum VncPrimaryAuth {
93 VNC_PRIMARY_AUTH_NONE,
94 VNC_PRIMARY_AUTH_VNC,
95 VNC_PRIMARY_AUTH_RA2,
96 VNC_PRIMARY_AUTH_RA2NE,
97 VNC_PRIMARY_AUTH_TIGHT,
98 VNC_PRIMARY_AUTH_ULTRA,
99 VNC_PRIMARY_AUTH_TLS,
100 VNC_PRIMARY_AUTH_VENCRYPT,
101 VNC_PRIMARY_AUTH_SASL,
102 VNC_PRIMARY_AUTH__MAX,
103} VncPrimaryAuth;
104
105#define VncPrimaryAuth_str(val) \
106 qapi_enum_lookup(&VncPrimaryAuth_lookup, (val))
107
108extern const QEnumLookup VncPrimaryAuth_lookup;
109#endif /* defined(CONFIG_VNC) */
110
111#if defined(CONFIG_VNC)
112typedef enum VncVencryptSubAuth {
113 VNC_VENCRYPT_SUB_AUTH_PLAIN,
114 VNC_VENCRYPT_SUB_AUTH_TLS_NONE,
115 VNC_VENCRYPT_SUB_AUTH_X509_NONE,
116 VNC_VENCRYPT_SUB_AUTH_TLS_VNC,
117 VNC_VENCRYPT_SUB_AUTH_X509_VNC,
118 VNC_VENCRYPT_SUB_AUTH_TLS_PLAIN,
119 VNC_VENCRYPT_SUB_AUTH_X509_PLAIN,
120 VNC_VENCRYPT_SUB_AUTH_TLS_SASL,
121 VNC_VENCRYPT_SUB_AUTH_X509_SASL,
122 VNC_VENCRYPT_SUB_AUTH__MAX,
123} VncVencryptSubAuth;
124
125#define VncVencryptSubAuth_str(val) \
126 qapi_enum_lookup(&VncVencryptSubAuth_lookup, (val))
127
128extern const QEnumLookup VncVencryptSubAuth_lookup;
129#endif /* defined(CONFIG_VNC) */
130
131#if defined(CONFIG_VNC)
132typedef struct VncServerInfo2 VncServerInfo2;
133#endif /* defined(CONFIG_VNC) */
134
135#if defined(CONFIG_VNC)
136typedef struct VncServerInfo2List VncServerInfo2List;
137#endif /* defined(CONFIG_VNC) */
138
139#if defined(CONFIG_VNC)
140typedef struct VncInfo2 VncInfo2;
141#endif /* defined(CONFIG_VNC) */
142
143#if defined(CONFIG_VNC)
144typedef struct VncInfo2List VncInfo2List;
145#endif /* defined(CONFIG_VNC) */
146
147#if defined(CONFIG_VNC)
148typedef struct q_obj_change_vnc_password_arg q_obj_change_vnc_password_arg;
149#endif /* defined(CONFIG_VNC) */
150
151#if defined(CONFIG_VNC)
152typedef struct q_obj_VNC_CONNECTED_arg q_obj_VNC_CONNECTED_arg;
153#endif /* defined(CONFIG_VNC) */
154
155#if defined(CONFIG_VNC)
156typedef struct q_obj_VNC_INITIALIZED_arg q_obj_VNC_INITIALIZED_arg;
157#endif /* defined(CONFIG_VNC) */
158
159#if defined(CONFIG_VNC)
160typedef struct q_obj_VNC_DISCONNECTED_arg q_obj_VNC_DISCONNECTED_arg;
161#endif /* defined(CONFIG_VNC) */
162
163typedef struct MouseInfo MouseInfo;
164
165typedef struct MouseInfoList MouseInfoList;
166
167typedef enum QKeyCode {
168 Q_KEY_CODE_UNMAPPED,
169 Q_KEY_CODE_SHIFT,
170 Q_KEY_CODE_SHIFT_R,
171 Q_KEY_CODE_ALT,
172 Q_KEY_CODE_ALT_R,
173 Q_KEY_CODE_CTRL,
174 Q_KEY_CODE_CTRL_R,
175 Q_KEY_CODE_MENU,
176 Q_KEY_CODE_ESC,
177 Q_KEY_CODE_1,
178 Q_KEY_CODE_2,
179 Q_KEY_CODE_3,
180 Q_KEY_CODE_4,
181 Q_KEY_CODE_5,
182 Q_KEY_CODE_6,
183 Q_KEY_CODE_7,
184 Q_KEY_CODE_8,
185 Q_KEY_CODE_9,
186 Q_KEY_CODE_0,
187 Q_KEY_CODE_MINUS,
188 Q_KEY_CODE_EQUAL,
189 Q_KEY_CODE_BACKSPACE,
190 Q_KEY_CODE_TAB,
191 Q_KEY_CODE_Q,
192 Q_KEY_CODE_W,
193 Q_KEY_CODE_E,
194 Q_KEY_CODE_R,
195 Q_KEY_CODE_T,
196 Q_KEY_CODE_Y,
197 Q_KEY_CODE_U,
198 Q_KEY_CODE_I,
199 Q_KEY_CODE_O,
200 Q_KEY_CODE_P,
201 Q_KEY_CODE_BRACKET_LEFT,
202 Q_KEY_CODE_BRACKET_RIGHT,
203 Q_KEY_CODE_RET,
204 Q_KEY_CODE_A,
205 Q_KEY_CODE_S,
206 Q_KEY_CODE_D,
207 Q_KEY_CODE_F,
208 Q_KEY_CODE_G,
209 Q_KEY_CODE_H,
210 Q_KEY_CODE_J,
211 Q_KEY_CODE_K,
212 Q_KEY_CODE_L,
213 Q_KEY_CODE_SEMICOLON,
214 Q_KEY_CODE_APOSTROPHE,
215 Q_KEY_CODE_GRAVE_ACCENT,
216 Q_KEY_CODE_BACKSLASH,
217 Q_KEY_CODE_Z,
218 Q_KEY_CODE_X,
219 Q_KEY_CODE_C,
220 Q_KEY_CODE_V,
221 Q_KEY_CODE_B,
222 Q_KEY_CODE_N,
223 Q_KEY_CODE_M,
224 Q_KEY_CODE_COMMA,
225 Q_KEY_CODE_DOT,
226 Q_KEY_CODE_SLASH,
227 Q_KEY_CODE_ASTERISK,
228 Q_KEY_CODE_SPC,
229 Q_KEY_CODE_CAPS_LOCK,
230 Q_KEY_CODE_F1,
231 Q_KEY_CODE_F2,
232 Q_KEY_CODE_F3,
233 Q_KEY_CODE_F4,
234 Q_KEY_CODE_F5,
235 Q_KEY_CODE_F6,
236 Q_KEY_CODE_F7,
237 Q_KEY_CODE_F8,
238 Q_KEY_CODE_F9,
239 Q_KEY_CODE_F10,
240 Q_KEY_CODE_NUM_LOCK,
241 Q_KEY_CODE_SCROLL_LOCK,
242 Q_KEY_CODE_KP_DIVIDE,
243 Q_KEY_CODE_KP_MULTIPLY,
244 Q_KEY_CODE_KP_SUBTRACT,
245 Q_KEY_CODE_KP_ADD,
246 Q_KEY_CODE_KP_ENTER,
247 Q_KEY_CODE_KP_DECIMAL,
248 Q_KEY_CODE_SYSRQ,
249 Q_KEY_CODE_KP_0,
250 Q_KEY_CODE_KP_1,
251 Q_KEY_CODE_KP_2,
252 Q_KEY_CODE_KP_3,
253 Q_KEY_CODE_KP_4,
254 Q_KEY_CODE_KP_5,
255 Q_KEY_CODE_KP_6,
256 Q_KEY_CODE_KP_7,
257 Q_KEY_CODE_KP_8,
258 Q_KEY_CODE_KP_9,
259 Q_KEY_CODE_LESS,
260 Q_KEY_CODE_F11,
261 Q_KEY_CODE_F12,
262 Q_KEY_CODE_PRINT,
263 Q_KEY_CODE_HOME,
264 Q_KEY_CODE_PGUP,
265 Q_KEY_CODE_PGDN,
266 Q_KEY_CODE_END,
267 Q_KEY_CODE_LEFT,
268 Q_KEY_CODE_UP,
269 Q_KEY_CODE_DOWN,
270 Q_KEY_CODE_RIGHT,
271 Q_KEY_CODE_INSERT,
272 Q_KEY_CODE_DELETE,
273 Q_KEY_CODE_STOP,
274 Q_KEY_CODE_AGAIN,
275 Q_KEY_CODE_PROPS,
276 Q_KEY_CODE_UNDO,
277 Q_KEY_CODE_FRONT,
278 Q_KEY_CODE_COPY,
279 Q_KEY_CODE_OPEN,
280 Q_KEY_CODE_PASTE,
281 Q_KEY_CODE_FIND,
282 Q_KEY_CODE_CUT,
283 Q_KEY_CODE_LF,
284 Q_KEY_CODE_HELP,
285 Q_KEY_CODE_META_L,
286 Q_KEY_CODE_META_R,
287 Q_KEY_CODE_COMPOSE,
288 Q_KEY_CODE_PAUSE,
289 Q_KEY_CODE_RO,
290 Q_KEY_CODE_HIRAGANA,
291 Q_KEY_CODE_HENKAN,
292 Q_KEY_CODE_YEN,
293 Q_KEY_CODE_MUHENKAN,
294 Q_KEY_CODE_KATAKANAHIRAGANA,
295 Q_KEY_CODE_KP_COMMA,
296 Q_KEY_CODE_KP_EQUALS,
297 Q_KEY_CODE_POWER,
298 Q_KEY_CODE_SLEEP,
299 Q_KEY_CODE_WAKE,
300 Q_KEY_CODE_AUDIONEXT,
301 Q_KEY_CODE_AUDIOPREV,
302 Q_KEY_CODE_AUDIOSTOP,
303 Q_KEY_CODE_AUDIOPLAY,
304 Q_KEY_CODE_AUDIOMUTE,
305 Q_KEY_CODE_VOLUMEUP,
306 Q_KEY_CODE_VOLUMEDOWN,
307 Q_KEY_CODE_MEDIASELECT,
308 Q_KEY_CODE_MAIL,
309 Q_KEY_CODE_CALCULATOR,
310 Q_KEY_CODE_COMPUTER,
311 Q_KEY_CODE_AC_HOME,
312 Q_KEY_CODE_AC_BACK,
313 Q_KEY_CODE_AC_FORWARD,
314 Q_KEY_CODE_AC_REFRESH,
315 Q_KEY_CODE_AC_BOOKMARKS,
316 Q_KEY_CODE__MAX,
317} QKeyCode;
318
319#define QKeyCode_str(val) \
320 qapi_enum_lookup(&QKeyCode_lookup, (val))
321
322extern const QEnumLookup QKeyCode_lookup;
323
324typedef struct q_obj_int_wrapper q_obj_int_wrapper;
325
326typedef struct q_obj_QKeyCode_wrapper q_obj_QKeyCode_wrapper;
327
328typedef enum KeyValueKind {
329 KEY_VALUE_KIND_NUMBER,
330 KEY_VALUE_KIND_QCODE,
331 KEY_VALUE_KIND__MAX,
332} KeyValueKind;
333
334#define KeyValueKind_str(val) \
335 qapi_enum_lookup(&KeyValueKind_lookup, (val))
336
337extern const QEnumLookup KeyValueKind_lookup;
338
339typedef struct KeyValue KeyValue;
340
341typedef struct KeyValueList KeyValueList;
342
343typedef struct q_obj_send_key_arg q_obj_send_key_arg;
344
345typedef enum InputButton {
346 INPUT_BUTTON_LEFT,
347 INPUT_BUTTON_MIDDLE,
348 INPUT_BUTTON_RIGHT,
349 INPUT_BUTTON_WHEEL_UP,
350 INPUT_BUTTON_WHEEL_DOWN,
351 INPUT_BUTTON_SIDE,
352 INPUT_BUTTON_EXTRA,
353 INPUT_BUTTON__MAX,
354} InputButton;
355
356#define InputButton_str(val) \
357 qapi_enum_lookup(&InputButton_lookup, (val))
358
359extern const QEnumLookup InputButton_lookup;
360
361typedef enum InputAxis {
362 INPUT_AXIS_X,
363 INPUT_AXIS_Y,
364 INPUT_AXIS__MAX,
365} InputAxis;
366
367#define InputAxis_str(val) \
368 qapi_enum_lookup(&InputAxis_lookup, (val))
369
370extern const QEnumLookup InputAxis_lookup;
371
372typedef struct InputKeyEvent InputKeyEvent;
373
374typedef struct InputBtnEvent InputBtnEvent;
375
376typedef struct InputMoveEvent InputMoveEvent;
377
378typedef struct q_obj_InputKeyEvent_wrapper q_obj_InputKeyEvent_wrapper;
379
380typedef struct q_obj_InputBtnEvent_wrapper q_obj_InputBtnEvent_wrapper;
381
382typedef struct q_obj_InputMoveEvent_wrapper q_obj_InputMoveEvent_wrapper;
383
384typedef enum InputEventKind {
385 INPUT_EVENT_KIND_KEY,
386 INPUT_EVENT_KIND_BTN,
387 INPUT_EVENT_KIND_REL,
388 INPUT_EVENT_KIND_ABS,
389 INPUT_EVENT_KIND__MAX,
390} InputEventKind;
391
392#define InputEventKind_str(val) \
393 qapi_enum_lookup(&InputEventKind_lookup, (val))
394
395extern const QEnumLookup InputEventKind_lookup;
396
397typedef struct InputEvent InputEvent;
398
399typedef struct InputEventList InputEventList;
400
401typedef struct q_obj_input_send_event_arg q_obj_input_send_event_arg;
402
403typedef enum GrabToggleKeys {
404 GRAB_TOGGLE_KEYS_CTRL_CTRL,
405 GRAB_TOGGLE_KEYS_ALT_ALT,
406 GRAB_TOGGLE_KEYS_SHIFT_SHIFT,
407 GRAB_TOGGLE_KEYS_META_META,
408 GRAB_TOGGLE_KEYS_SCROLLLOCK,
409 GRAB_TOGGLE_KEYS_CTRL_SCROLLLOCK,
410 GRAB_TOGGLE_KEYS__MAX,
411} GrabToggleKeys;
412
413#define GrabToggleKeys_str(val) \
414 qapi_enum_lookup(&GrabToggleKeys_lookup, (val))
415
416extern const QEnumLookup GrabToggleKeys_lookup;
417
418typedef struct DisplayGTK DisplayGTK;
419
420typedef struct DisplayEGLHeadless DisplayEGLHeadless;
421
422typedef enum DisplayGLMode {
423 DISPLAYGL_MODE_OFF,
424 DISPLAYGL_MODE_ON,
425 DISPLAYGL_MODE_CORE,
426 DISPLAYGL_MODE_ES,
427 DISPLAYGL_MODE__MAX,
428} DisplayGLMode;
429
430#define DisplayGLMode_str(val) \
431 qapi_enum_lookup(&DisplayGLMode_lookup, (val))
432
433extern const QEnumLookup DisplayGLMode_lookup;
434
435typedef struct DisplayCurses DisplayCurses;
436
437typedef enum DisplayType {
438 DISPLAY_TYPE_DEFAULT,
439 DISPLAY_TYPE_NONE,
440 DISPLAY_TYPE_GTK,
441 DISPLAY_TYPE_SDL,
442 DISPLAY_TYPE_EGL_HEADLESS,
443 DISPLAY_TYPE_CURSES,
444 DISPLAY_TYPE_COCOA,
445 DISPLAY_TYPE_SPICE_APP,
446 DISPLAY_TYPE__MAX,
447} DisplayType;
448
449#define DisplayType_str(val) \
450 qapi_enum_lookup(&DisplayType_lookup, (val))
451
452extern const QEnumLookup DisplayType_lookup;
453
454typedef struct q_obj_DisplayOptions_base q_obj_DisplayOptions_base;
455
456typedef struct DisplayOptions DisplayOptions;
457
458struct q_obj_set_password_arg {
459 char *protocol;
460 char *password;
461 bool has_connected;
462 char *connected;
463};
464
465struct q_obj_expire_password_arg {
466 char *protocol;
467 char *time;
468};
469
470struct q_obj_screendump_arg {
471 char *filename;
472 bool has_device;
473 char *device;
474 bool has_head;
475 int64_t head;
476};
477
478#if defined(CONFIG_SPICE)
479struct SpiceBasicInfo {
480 char *host;
481 char *port;
482 NetworkAddressFamily family;
483};
484#endif /* defined(CONFIG_SPICE) */
485
486#if defined(CONFIG_SPICE)
487void qapi_free_SpiceBasicInfo(SpiceBasicInfo *obj);
488#endif /* defined(CONFIG_SPICE) */
489
490#if defined(CONFIG_SPICE)
491struct SpiceServerInfo {
492 /* Members inherited from SpiceBasicInfo: */
493 char *host;
494 char *port;
495 NetworkAddressFamily family;
496 /* Own members: */
497 bool has_auth;
498 char *auth;
499};
500#endif /* defined(CONFIG_SPICE) */
501
502#if defined(CONFIG_SPICE)
503static inline SpiceBasicInfo *qapi_SpiceServerInfo_base(const SpiceServerInfo *obj)
504{
505 return (SpiceBasicInfo *)obj;
506}
507
508void qapi_free_SpiceServerInfo(SpiceServerInfo *obj);
509#endif /* defined(CONFIG_SPICE) */
510
511#if defined(CONFIG_SPICE)
512struct SpiceChannel {
513 /* Members inherited from SpiceBasicInfo: */
514 char *host;
515 char *port;
516 NetworkAddressFamily family;
517 /* Own members: */
518 int64_t connection_id;
519 int64_t channel_type;
520 int64_t channel_id;
521 bool tls;
522};
523#endif /* defined(CONFIG_SPICE) */
524
525#if defined(CONFIG_SPICE)
526static inline SpiceBasicInfo *qapi_SpiceChannel_base(const SpiceChannel *obj)
527{
528 return (SpiceBasicInfo *)obj;
529}
530
531void qapi_free_SpiceChannel(SpiceChannel *obj);
532#endif /* defined(CONFIG_SPICE) */
533
534#if defined(CONFIG_SPICE)
535struct SpiceChannelList {
536 SpiceChannelList *next;
537 SpiceChannel *value;
538};
539
540void qapi_free_SpiceChannelList(SpiceChannelList *obj);
541#endif /* defined(CONFIG_SPICE) */
542
543#if defined(CONFIG_SPICE)
544struct SpiceInfo {
545 bool enabled;
546 bool migrated;
547 bool has_host;
548 char *host;
549 bool has_port;
550 int64_t port;
551 bool has_tls_port;
552 int64_t tls_port;
553 bool has_auth;
554 char *auth;
555 bool has_compiled_version;
556 char *compiled_version;
557 SpiceQueryMouseMode mouse_mode;
558 bool has_channels;
559 SpiceChannelList *channels;
560};
561#endif /* defined(CONFIG_SPICE) */
562
563#if defined(CONFIG_SPICE)
564void qapi_free_SpiceInfo(SpiceInfo *obj);
565#endif /* defined(CONFIG_SPICE) */
566
567#if defined(CONFIG_SPICE)
568struct q_obj_SPICE_CONNECTED_arg {
569 SpiceBasicInfo *server;
570 SpiceBasicInfo *client;
571};
572#endif /* defined(CONFIG_SPICE) */
573
574#if defined(CONFIG_SPICE)
575struct q_obj_SPICE_INITIALIZED_arg {
576 SpiceServerInfo *server;
577 SpiceChannel *client;
578};
579#endif /* defined(CONFIG_SPICE) */
580
581#if defined(CONFIG_SPICE)
582struct q_obj_SPICE_DISCONNECTED_arg {
583 SpiceBasicInfo *server;
584 SpiceBasicInfo *client;
585};
586#endif /* defined(CONFIG_SPICE) */
587
588#if defined(CONFIG_VNC)
589struct VncBasicInfo {
590 char *host;
591 char *service;
592 NetworkAddressFamily family;
593 bool websocket;
594};
595#endif /* defined(CONFIG_VNC) */
596
597#if defined(CONFIG_VNC)
598void qapi_free_VncBasicInfo(VncBasicInfo *obj);
599#endif /* defined(CONFIG_VNC) */
600
601#if defined(CONFIG_VNC)
602struct VncServerInfo {
603 /* Members inherited from VncBasicInfo: */
604 char *host;
605 char *service;
606 NetworkAddressFamily family;
607 bool websocket;
608 /* Own members: */
609 bool has_auth;
610 char *auth;
611};
612#endif /* defined(CONFIG_VNC) */
613
614#if defined(CONFIG_VNC)
615static inline VncBasicInfo *qapi_VncServerInfo_base(const VncServerInfo *obj)
616{
617 return (VncBasicInfo *)obj;
618}
619
620void qapi_free_VncServerInfo(VncServerInfo *obj);
621#endif /* defined(CONFIG_VNC) */
622
623#if defined(CONFIG_VNC)
624struct VncClientInfo {
625 /* Members inherited from VncBasicInfo: */
626 char *host;
627 char *service;
628 NetworkAddressFamily family;
629 bool websocket;
630 /* Own members: */
631 bool has_x509_dname;
632 char *x509_dname;
633 bool has_sasl_username;
634 char *sasl_username;
635};
636#endif /* defined(CONFIG_VNC) */
637
638#if defined(CONFIG_VNC)
639static inline VncBasicInfo *qapi_VncClientInfo_base(const VncClientInfo *obj)
640{
641 return (VncBasicInfo *)obj;
642}
643
644void qapi_free_VncClientInfo(VncClientInfo *obj);
645#endif /* defined(CONFIG_VNC) */
646
647#if defined(CONFIG_VNC)
648struct VncClientInfoList {
649 VncClientInfoList *next;
650 VncClientInfo *value;
651};
652
653void qapi_free_VncClientInfoList(VncClientInfoList *obj);
654#endif /* defined(CONFIG_VNC) */
655
656#if defined(CONFIG_VNC)
657struct VncInfo {
658 bool enabled;
659 bool has_host;
660 char *host;
661 bool has_family;
662 NetworkAddressFamily family;
663 bool has_service;
664 char *service;
665 bool has_auth;
666 char *auth;
667 bool has_clients;
668 VncClientInfoList *clients;
669};
670#endif /* defined(CONFIG_VNC) */
671
672#if defined(CONFIG_VNC)
673void qapi_free_VncInfo(VncInfo *obj);
674#endif /* defined(CONFIG_VNC) */
675
676#if defined(CONFIG_VNC)
677struct VncServerInfo2 {
678 /* Members inherited from VncBasicInfo: */
679 char *host;
680 char *service;
681 NetworkAddressFamily family;
682 bool websocket;
683 /* Own members: */
684 VncPrimaryAuth auth;
685 bool has_vencrypt;
686 VncVencryptSubAuth vencrypt;
687};
688#endif /* defined(CONFIG_VNC) */
689
690#if defined(CONFIG_VNC)
691static inline VncBasicInfo *qapi_VncServerInfo2_base(const VncServerInfo2 *obj)
692{
693 return (VncBasicInfo *)obj;
694}
695
696void qapi_free_VncServerInfo2(VncServerInfo2 *obj);
697#endif /* defined(CONFIG_VNC) */
698
699#if defined(CONFIG_VNC)
700struct VncServerInfo2List {
701 VncServerInfo2List *next;
702 VncServerInfo2 *value;
703};
704
705void qapi_free_VncServerInfo2List(VncServerInfo2List *obj);
706#endif /* defined(CONFIG_VNC) */
707
708#if defined(CONFIG_VNC)
709struct VncInfo2 {
710 char *id;
711 VncServerInfo2List *server;
712 VncClientInfoList *clients;
713 VncPrimaryAuth auth;
714 bool has_vencrypt;
715 VncVencryptSubAuth vencrypt;
716 bool has_display;
717 char *display;
718};
719#endif /* defined(CONFIG_VNC) */
720
721#if defined(CONFIG_VNC)
722void qapi_free_VncInfo2(VncInfo2 *obj);
723#endif /* defined(CONFIG_VNC) */
724
725#if defined(CONFIG_VNC)
726struct VncInfo2List {
727 VncInfo2List *next;
728 VncInfo2 *value;
729};
730
731void qapi_free_VncInfo2List(VncInfo2List *obj);
732#endif /* defined(CONFIG_VNC) */
733
734#if defined(CONFIG_VNC)
735struct q_obj_change_vnc_password_arg {
736 char *password;
737};
738#endif /* defined(CONFIG_VNC) */
739
740#if defined(CONFIG_VNC)
741struct q_obj_VNC_CONNECTED_arg {
742 VncServerInfo *server;
743 VncBasicInfo *client;
744};
745#endif /* defined(CONFIG_VNC) */
746
747#if defined(CONFIG_VNC)
748struct q_obj_VNC_INITIALIZED_arg {
749 VncServerInfo *server;
750 VncClientInfo *client;
751};
752#endif /* defined(CONFIG_VNC) */
753
754#if defined(CONFIG_VNC)
755struct q_obj_VNC_DISCONNECTED_arg {
756 VncServerInfo *server;
757 VncClientInfo *client;
758};
759#endif /* defined(CONFIG_VNC) */
760
761struct MouseInfo {
762 char *name;
763 int64_t index;
764 bool current;
765 bool absolute;
766};
767
768void qapi_free_MouseInfo(MouseInfo *obj);
769
770struct MouseInfoList {
771 MouseInfoList *next;
772 MouseInfo *value;
773};
774
775void qapi_free_MouseInfoList(MouseInfoList *obj);
776
777struct q_obj_int_wrapper {
778 int64_t data;
779};
780
781struct q_obj_QKeyCode_wrapper {
782 QKeyCode data;
783};
784
785struct KeyValue {
786 KeyValueKind type;
787 union { /* union tag is @type */
788 q_obj_int_wrapper number;
789 q_obj_QKeyCode_wrapper qcode;
790 } u;
791};
792
793void qapi_free_KeyValue(KeyValue *obj);
794
795struct KeyValueList {
796 KeyValueList *next;
797 KeyValue *value;
798};
799
800void qapi_free_KeyValueList(KeyValueList *obj);
801
802struct q_obj_send_key_arg {
803 KeyValueList *keys;
804 bool has_hold_time;
805 int64_t hold_time;
806};
807
808struct InputKeyEvent {
809 KeyValue *key;
810 bool down;
811};
812
813void qapi_free_InputKeyEvent(InputKeyEvent *obj);
814
815struct InputBtnEvent {
816 InputButton button;
817 bool down;
818};
819
820void qapi_free_InputBtnEvent(InputBtnEvent *obj);
821
822struct InputMoveEvent {
823 InputAxis axis;
824 int64_t value;
825};
826
827void qapi_free_InputMoveEvent(InputMoveEvent *obj);
828
829struct q_obj_InputKeyEvent_wrapper {
830 InputKeyEvent *data;
831};
832
833struct q_obj_InputBtnEvent_wrapper {
834 InputBtnEvent *data;
835};
836
837struct q_obj_InputMoveEvent_wrapper {
838 InputMoveEvent *data;
839};
840
841struct InputEvent {
842 InputEventKind type;
843 union { /* union tag is @type */
844 q_obj_InputKeyEvent_wrapper key;
845 q_obj_InputBtnEvent_wrapper btn;
846 q_obj_InputMoveEvent_wrapper rel;
847 q_obj_InputMoveEvent_wrapper abs;
848 } u;
849};
850
851void qapi_free_InputEvent(InputEvent *obj);
852
853struct InputEventList {
854 InputEventList *next;
855 InputEvent *value;
856};
857
858void qapi_free_InputEventList(InputEventList *obj);
859
860struct q_obj_input_send_event_arg {
861 bool has_device;
862 char *device;
863 bool has_head;
864 int64_t head;
865 InputEventList *events;
866};
867
868struct DisplayGTK {
869 bool has_grab_on_hover;
870 bool grab_on_hover;
871 bool has_zoom_to_fit;
872 bool zoom_to_fit;
873};
874
875void qapi_free_DisplayGTK(DisplayGTK *obj);
876
877struct DisplayEGLHeadless {
878 bool has_rendernode;
879 char *rendernode;
880};
881
882void qapi_free_DisplayEGLHeadless(DisplayEGLHeadless *obj);
883
884struct DisplayCurses {
885 bool has_charset;
886 char *charset;
887};
888
889void qapi_free_DisplayCurses(DisplayCurses *obj);
890
891struct q_obj_DisplayOptions_base {
892 DisplayType type;
893 bool has_full_screen;
894 bool full_screen;
895 bool has_window_close;
896 bool window_close;
897 bool has_gl;
898 DisplayGLMode gl;
899};
900
901struct DisplayOptions {
902 DisplayType type;
903 bool has_full_screen;
904 bool full_screen;
905 bool has_window_close;
906 bool window_close;
907 bool has_gl;
908 DisplayGLMode gl;
909 union { /* union tag is @type */
910 DisplayGTK gtk;
911 DisplayCurses curses;
912 DisplayEGLHeadless egl_headless;
913 } u;
914};
915
916void qapi_free_DisplayOptions(DisplayOptions *obj);
917
918#endif /* QAPI_TYPES_UI_H */
919