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_CHAR_H |
14 | #define QAPI_TYPES_CHAR_H |
15 | |
16 | #include "qapi/qapi-builtin-types.h" |
17 | #include "qapi-types-sockets.h" |
18 | |
19 | typedef struct ChardevInfo ChardevInfo; |
20 | |
21 | typedef struct ChardevInfoList ChardevInfoList; |
22 | |
23 | typedef struct ChardevBackendInfo ChardevBackendInfo; |
24 | |
25 | typedef struct ChardevBackendInfoList ChardevBackendInfoList; |
26 | |
27 | typedef enum DataFormat { |
28 | DATA_FORMAT_UTF8, |
29 | DATA_FORMAT_BASE64, |
30 | DATA_FORMAT__MAX, |
31 | } DataFormat; |
32 | |
33 | #define DataFormat_str(val) \ |
34 | qapi_enum_lookup(&DataFormat_lookup, (val)) |
35 | |
36 | extern const QEnumLookup DataFormat_lookup; |
37 | |
38 | typedef struct q_obj_ringbuf_write_arg q_obj_ringbuf_write_arg; |
39 | |
40 | typedef struct q_obj_ringbuf_read_arg q_obj_ringbuf_read_arg; |
41 | |
42 | typedef struct ChardevCommon ChardevCommon; |
43 | |
44 | typedef struct ChardevFile ChardevFile; |
45 | |
46 | typedef struct ChardevHostdev ChardevHostdev; |
47 | |
48 | typedef struct ChardevSocket ChardevSocket; |
49 | |
50 | typedef struct ChardevUdp ChardevUdp; |
51 | |
52 | typedef struct ChardevMux ChardevMux; |
53 | |
54 | typedef struct ChardevStdio ChardevStdio; |
55 | |
56 | #if defined(CONFIG_SPICE) |
57 | typedef struct ChardevSpiceChannel ChardevSpiceChannel; |
58 | #endif /* defined(CONFIG_SPICE) */ |
59 | |
60 | #if defined(CONFIG_SPICE) |
61 | typedef struct ChardevSpicePort ChardevSpicePort; |
62 | #endif /* defined(CONFIG_SPICE) */ |
63 | |
64 | typedef struct ChardevVC ChardevVC; |
65 | |
66 | typedef struct ChardevRingbuf ChardevRingbuf; |
67 | |
68 | typedef struct q_obj_ChardevFile_wrapper q_obj_ChardevFile_wrapper; |
69 | |
70 | typedef struct q_obj_ChardevHostdev_wrapper q_obj_ChardevHostdev_wrapper; |
71 | |
72 | typedef struct q_obj_ChardevSocket_wrapper q_obj_ChardevSocket_wrapper; |
73 | |
74 | typedef struct q_obj_ChardevUdp_wrapper q_obj_ChardevUdp_wrapper; |
75 | |
76 | typedef struct q_obj_ChardevCommon_wrapper q_obj_ChardevCommon_wrapper; |
77 | |
78 | typedef struct q_obj_ChardevMux_wrapper q_obj_ChardevMux_wrapper; |
79 | |
80 | typedef struct q_obj_ChardevStdio_wrapper q_obj_ChardevStdio_wrapper; |
81 | |
82 | #if defined(CONFIG_SPICE) |
83 | typedef struct q_obj_ChardevSpiceChannel_wrapper q_obj_ChardevSpiceChannel_wrapper; |
84 | #endif /* defined(CONFIG_SPICE) */ |
85 | |
86 | #if defined(CONFIG_SPICE) |
87 | typedef struct q_obj_ChardevSpicePort_wrapper q_obj_ChardevSpicePort_wrapper; |
88 | #endif /* defined(CONFIG_SPICE) */ |
89 | |
90 | typedef struct q_obj_ChardevVC_wrapper q_obj_ChardevVC_wrapper; |
91 | |
92 | typedef struct q_obj_ChardevRingbuf_wrapper q_obj_ChardevRingbuf_wrapper; |
93 | |
94 | typedef enum ChardevBackendKind { |
95 | CHARDEV_BACKEND_KIND_FILE, |
96 | CHARDEV_BACKEND_KIND_SERIAL, |
97 | CHARDEV_BACKEND_KIND_PARALLEL, |
98 | CHARDEV_BACKEND_KIND_PIPE, |
99 | CHARDEV_BACKEND_KIND_SOCKET, |
100 | CHARDEV_BACKEND_KIND_UDP, |
101 | CHARDEV_BACKEND_KIND_PTY, |
102 | CHARDEV_BACKEND_KIND_NULL, |
103 | CHARDEV_BACKEND_KIND_MUX, |
104 | CHARDEV_BACKEND_KIND_MSMOUSE, |
105 | CHARDEV_BACKEND_KIND_WCTABLET, |
106 | CHARDEV_BACKEND_KIND_BRAILLE, |
107 | CHARDEV_BACKEND_KIND_TESTDEV, |
108 | CHARDEV_BACKEND_KIND_STDIO, |
109 | CHARDEV_BACKEND_KIND_CONSOLE, |
110 | #if defined(CONFIG_SPICE) |
111 | CHARDEV_BACKEND_KIND_SPICEVMC, |
112 | #endif /* defined(CONFIG_SPICE) */ |
113 | #if defined(CONFIG_SPICE) |
114 | CHARDEV_BACKEND_KIND_SPICEPORT, |
115 | #endif /* defined(CONFIG_SPICE) */ |
116 | CHARDEV_BACKEND_KIND_VC, |
117 | CHARDEV_BACKEND_KIND_RINGBUF, |
118 | CHARDEV_BACKEND_KIND_MEMORY, |
119 | CHARDEV_BACKEND_KIND__MAX, |
120 | } ChardevBackendKind; |
121 | |
122 | #define ChardevBackendKind_str(val) \ |
123 | qapi_enum_lookup(&ChardevBackendKind_lookup, (val)) |
124 | |
125 | extern const QEnumLookup ChardevBackendKind_lookup; |
126 | |
127 | typedef struct ChardevBackend ChardevBackend; |
128 | |
129 | typedef struct ChardevReturn ChardevReturn; |
130 | |
131 | typedef struct q_obj_chardev_add_arg q_obj_chardev_add_arg; |
132 | |
133 | typedef struct q_obj_chardev_change_arg q_obj_chardev_change_arg; |
134 | |
135 | typedef struct q_obj_chardev_remove_arg q_obj_chardev_remove_arg; |
136 | |
137 | typedef struct q_obj_chardev_send_break_arg q_obj_chardev_send_break_arg; |
138 | |
139 | typedef struct q_obj_VSERPORT_CHANGE_arg q_obj_VSERPORT_CHANGE_arg; |
140 | |
141 | struct ChardevInfo { |
142 | char *label; |
143 | char *filename; |
144 | bool frontend_open; |
145 | }; |
146 | |
147 | void qapi_free_ChardevInfo(ChardevInfo *obj); |
148 | |
149 | struct ChardevInfoList { |
150 | ChardevInfoList *next; |
151 | ChardevInfo *value; |
152 | }; |
153 | |
154 | void qapi_free_ChardevInfoList(ChardevInfoList *obj); |
155 | |
156 | struct ChardevBackendInfo { |
157 | char *name; |
158 | }; |
159 | |
160 | void qapi_free_ChardevBackendInfo(ChardevBackendInfo *obj); |
161 | |
162 | struct ChardevBackendInfoList { |
163 | ChardevBackendInfoList *next; |
164 | ChardevBackendInfo *value; |
165 | }; |
166 | |
167 | void qapi_free_ChardevBackendInfoList(ChardevBackendInfoList *obj); |
168 | |
169 | struct q_obj_ringbuf_write_arg { |
170 | char *device; |
171 | char *data; |
172 | bool has_format; |
173 | DataFormat format; |
174 | }; |
175 | |
176 | struct q_obj_ringbuf_read_arg { |
177 | char *device; |
178 | int64_t size; |
179 | bool has_format; |
180 | DataFormat format; |
181 | }; |
182 | |
183 | struct ChardevCommon { |
184 | bool has_logfile; |
185 | char *logfile; |
186 | bool has_logappend; |
187 | bool logappend; |
188 | }; |
189 | |
190 | void qapi_free_ChardevCommon(ChardevCommon *obj); |
191 | |
192 | struct ChardevFile { |
193 | /* Members inherited from ChardevCommon: */ |
194 | bool has_logfile; |
195 | char *logfile; |
196 | bool has_logappend; |
197 | bool logappend; |
198 | /* Own members: */ |
199 | bool has_in; |
200 | char *in; |
201 | char *out; |
202 | bool has_append; |
203 | bool append; |
204 | }; |
205 | |
206 | static inline ChardevCommon *qapi_ChardevFile_base(const ChardevFile *obj) |
207 | { |
208 | return (ChardevCommon *)obj; |
209 | } |
210 | |
211 | void qapi_free_ChardevFile(ChardevFile *obj); |
212 | |
213 | struct ChardevHostdev { |
214 | /* Members inherited from ChardevCommon: */ |
215 | bool has_logfile; |
216 | char *logfile; |
217 | bool has_logappend; |
218 | bool logappend; |
219 | /* Own members: */ |
220 | char *device; |
221 | }; |
222 | |
223 | static inline ChardevCommon *qapi_ChardevHostdev_base(const ChardevHostdev *obj) |
224 | { |
225 | return (ChardevCommon *)obj; |
226 | } |
227 | |
228 | void qapi_free_ChardevHostdev(ChardevHostdev *obj); |
229 | |
230 | struct ChardevSocket { |
231 | /* Members inherited from ChardevCommon: */ |
232 | bool has_logfile; |
233 | char *logfile; |
234 | bool has_logappend; |
235 | bool logappend; |
236 | /* Own members: */ |
237 | SocketAddressLegacy *addr; |
238 | bool has_tls_creds; |
239 | char *tls_creds; |
240 | bool has_tls_authz; |
241 | char *tls_authz; |
242 | bool has_server; |
243 | bool server; |
244 | bool has_wait; |
245 | bool wait; |
246 | bool has_nodelay; |
247 | bool nodelay; |
248 | bool has_telnet; |
249 | bool telnet; |
250 | bool has_tn3270; |
251 | bool tn3270; |
252 | bool has_websocket; |
253 | bool websocket; |
254 | bool has_reconnect; |
255 | int64_t reconnect; |
256 | }; |
257 | |
258 | static inline ChardevCommon *qapi_ChardevSocket_base(const ChardevSocket *obj) |
259 | { |
260 | return (ChardevCommon *)obj; |
261 | } |
262 | |
263 | void qapi_free_ChardevSocket(ChardevSocket *obj); |
264 | |
265 | struct ChardevUdp { |
266 | /* Members inherited from ChardevCommon: */ |
267 | bool has_logfile; |
268 | char *logfile; |
269 | bool has_logappend; |
270 | bool logappend; |
271 | /* Own members: */ |
272 | SocketAddressLegacy *remote; |
273 | bool has_local; |
274 | SocketAddressLegacy *local; |
275 | }; |
276 | |
277 | static inline ChardevCommon *qapi_ChardevUdp_base(const ChardevUdp *obj) |
278 | { |
279 | return (ChardevCommon *)obj; |
280 | } |
281 | |
282 | void qapi_free_ChardevUdp(ChardevUdp *obj); |
283 | |
284 | struct ChardevMux { |
285 | /* Members inherited from ChardevCommon: */ |
286 | bool has_logfile; |
287 | char *logfile; |
288 | bool has_logappend; |
289 | bool logappend; |
290 | /* Own members: */ |
291 | char *chardev; |
292 | }; |
293 | |
294 | static inline ChardevCommon *qapi_ChardevMux_base(const ChardevMux *obj) |
295 | { |
296 | return (ChardevCommon *)obj; |
297 | } |
298 | |
299 | void qapi_free_ChardevMux(ChardevMux *obj); |
300 | |
301 | struct ChardevStdio { |
302 | /* Members inherited from ChardevCommon: */ |
303 | bool has_logfile; |
304 | char *logfile; |
305 | bool has_logappend; |
306 | bool logappend; |
307 | /* Own members: */ |
308 | bool has_signal; |
309 | bool signal; |
310 | }; |
311 | |
312 | static inline ChardevCommon *qapi_ChardevStdio_base(const ChardevStdio *obj) |
313 | { |
314 | return (ChardevCommon *)obj; |
315 | } |
316 | |
317 | void qapi_free_ChardevStdio(ChardevStdio *obj); |
318 | |
319 | #if defined(CONFIG_SPICE) |
320 | struct ChardevSpiceChannel { |
321 | /* Members inherited from ChardevCommon: */ |
322 | bool has_logfile; |
323 | char *logfile; |
324 | bool has_logappend; |
325 | bool logappend; |
326 | /* Own members: */ |
327 | char *type; |
328 | }; |
329 | #endif /* defined(CONFIG_SPICE) */ |
330 | |
331 | #if defined(CONFIG_SPICE) |
332 | static inline ChardevCommon *qapi_ChardevSpiceChannel_base(const ChardevSpiceChannel *obj) |
333 | { |
334 | return (ChardevCommon *)obj; |
335 | } |
336 | |
337 | void qapi_free_ChardevSpiceChannel(ChardevSpiceChannel *obj); |
338 | #endif /* defined(CONFIG_SPICE) */ |
339 | |
340 | #if defined(CONFIG_SPICE) |
341 | struct ChardevSpicePort { |
342 | /* Members inherited from ChardevCommon: */ |
343 | bool has_logfile; |
344 | char *logfile; |
345 | bool has_logappend; |
346 | bool logappend; |
347 | /* Own members: */ |
348 | char *fqdn; |
349 | }; |
350 | #endif /* defined(CONFIG_SPICE) */ |
351 | |
352 | #if defined(CONFIG_SPICE) |
353 | static inline ChardevCommon *qapi_ChardevSpicePort_base(const ChardevSpicePort *obj) |
354 | { |
355 | return (ChardevCommon *)obj; |
356 | } |
357 | |
358 | void qapi_free_ChardevSpicePort(ChardevSpicePort *obj); |
359 | #endif /* defined(CONFIG_SPICE) */ |
360 | |
361 | struct ChardevVC { |
362 | /* Members inherited from ChardevCommon: */ |
363 | bool has_logfile; |
364 | char *logfile; |
365 | bool has_logappend; |
366 | bool logappend; |
367 | /* Own members: */ |
368 | bool has_width; |
369 | int64_t width; |
370 | bool has_height; |
371 | int64_t height; |
372 | bool has_cols; |
373 | int64_t cols; |
374 | bool has_rows; |
375 | int64_t rows; |
376 | }; |
377 | |
378 | static inline ChardevCommon *qapi_ChardevVC_base(const ChardevVC *obj) |
379 | { |
380 | return (ChardevCommon *)obj; |
381 | } |
382 | |
383 | void qapi_free_ChardevVC(ChardevVC *obj); |
384 | |
385 | struct ChardevRingbuf { |
386 | /* Members inherited from ChardevCommon: */ |
387 | bool has_logfile; |
388 | char *logfile; |
389 | bool has_logappend; |
390 | bool logappend; |
391 | /* Own members: */ |
392 | bool has_size; |
393 | int64_t size; |
394 | }; |
395 | |
396 | static inline ChardevCommon *qapi_ChardevRingbuf_base(const ChardevRingbuf *obj) |
397 | { |
398 | return (ChardevCommon *)obj; |
399 | } |
400 | |
401 | void qapi_free_ChardevRingbuf(ChardevRingbuf *obj); |
402 | |
403 | struct q_obj_ChardevFile_wrapper { |
404 | ChardevFile *data; |
405 | }; |
406 | |
407 | struct q_obj_ChardevHostdev_wrapper { |
408 | ChardevHostdev *data; |
409 | }; |
410 | |
411 | struct q_obj_ChardevSocket_wrapper { |
412 | ChardevSocket *data; |
413 | }; |
414 | |
415 | struct q_obj_ChardevUdp_wrapper { |
416 | ChardevUdp *data; |
417 | }; |
418 | |
419 | struct q_obj_ChardevCommon_wrapper { |
420 | ChardevCommon *data; |
421 | }; |
422 | |
423 | struct q_obj_ChardevMux_wrapper { |
424 | ChardevMux *data; |
425 | }; |
426 | |
427 | struct q_obj_ChardevStdio_wrapper { |
428 | ChardevStdio *data; |
429 | }; |
430 | |
431 | #if defined(CONFIG_SPICE) |
432 | struct q_obj_ChardevSpiceChannel_wrapper { |
433 | ChardevSpiceChannel *data; |
434 | }; |
435 | #endif /* defined(CONFIG_SPICE) */ |
436 | |
437 | #if defined(CONFIG_SPICE) |
438 | struct q_obj_ChardevSpicePort_wrapper { |
439 | ChardevSpicePort *data; |
440 | }; |
441 | #endif /* defined(CONFIG_SPICE) */ |
442 | |
443 | struct q_obj_ChardevVC_wrapper { |
444 | ChardevVC *data; |
445 | }; |
446 | |
447 | struct q_obj_ChardevRingbuf_wrapper { |
448 | ChardevRingbuf *data; |
449 | }; |
450 | |
451 | struct ChardevBackend { |
452 | ChardevBackendKind type; |
453 | union { /* union tag is @type */ |
454 | q_obj_ChardevFile_wrapper file; |
455 | q_obj_ChardevHostdev_wrapper serial; |
456 | q_obj_ChardevHostdev_wrapper parallel; |
457 | q_obj_ChardevHostdev_wrapper pipe; |
458 | q_obj_ChardevSocket_wrapper socket; |
459 | q_obj_ChardevUdp_wrapper udp; |
460 | q_obj_ChardevCommon_wrapper pty; |
461 | q_obj_ChardevCommon_wrapper null; |
462 | q_obj_ChardevMux_wrapper mux; |
463 | q_obj_ChardevCommon_wrapper msmouse; |
464 | q_obj_ChardevCommon_wrapper wctablet; |
465 | q_obj_ChardevCommon_wrapper braille; |
466 | q_obj_ChardevCommon_wrapper testdev; |
467 | q_obj_ChardevStdio_wrapper stdio; |
468 | q_obj_ChardevCommon_wrapper console; |
469 | #if defined(CONFIG_SPICE) |
470 | q_obj_ChardevSpiceChannel_wrapper spicevmc; |
471 | #endif /* defined(CONFIG_SPICE) */ |
472 | #if defined(CONFIG_SPICE) |
473 | q_obj_ChardevSpicePort_wrapper spiceport; |
474 | #endif /* defined(CONFIG_SPICE) */ |
475 | q_obj_ChardevVC_wrapper vc; |
476 | q_obj_ChardevRingbuf_wrapper ringbuf; |
477 | q_obj_ChardevRingbuf_wrapper memory; |
478 | } u; |
479 | }; |
480 | |
481 | void qapi_free_ChardevBackend(ChardevBackend *obj); |
482 | |
483 | struct ChardevReturn { |
484 | bool has_pty; |
485 | char *pty; |
486 | }; |
487 | |
488 | void qapi_free_ChardevReturn(ChardevReturn *obj); |
489 | |
490 | struct q_obj_chardev_add_arg { |
491 | char *id; |
492 | ChardevBackend *backend; |
493 | }; |
494 | |
495 | struct q_obj_chardev_change_arg { |
496 | char *id; |
497 | ChardevBackend *backend; |
498 | }; |
499 | |
500 | struct q_obj_chardev_remove_arg { |
501 | char *id; |
502 | }; |
503 | |
504 | struct q_obj_chardev_send_break_arg { |
505 | char *id; |
506 | }; |
507 | |
508 | struct q_obj_VSERPORT_CHANGE_arg { |
509 | char *id; |
510 | bool open; |
511 | }; |
512 | |
513 | #endif /* QAPI_TYPES_CHAR_H */ |
514 | |