blob: 38376835eaa6b0cc4bbe9b7b3961656cff4b7c4d [file] [log] [blame]
David 'Digit' Turner910aea92014-01-15 16:53:38 +01001/* AUTOMATICALLY GENERATED, DO NOT MODIFY */
2
3/*
4 * schema-defined QAPI types
5 *
6 * Copyright IBM, Corp. 2011
7 *
8 * Authors:
9 * Anthony Liguori <aliguori@us.ibm.com>
10 *
11 * This work is licensed under the terms of the GNU LGPL, version 2.1 or later.
12 * See the COPYING.LIB file in the top-level directory.
13 *
14 */
15
16#ifndef QAPI_TYPES_H
17#define QAPI_TYPES_H
18
19#include <stdbool.h>
20#include <stdint.h>
21
22
23#ifndef QAPI_TYPES_BUILTIN_STRUCT_DECL_H
24#define QAPI_TYPES_BUILTIN_STRUCT_DECL_H
25
26
27typedef struct strList
28{
29 union {
30 char * value;
31 uint64_t padding;
32 };
33 struct strList *next;
34} strList;
35
36typedef struct intList
37{
38 union {
39 int64_t value;
40 uint64_t padding;
41 };
42 struct intList *next;
43} intList;
44
45typedef struct numberList
46{
47 union {
48 double value;
49 uint64_t padding;
50 };
51 struct numberList *next;
52} numberList;
53
54typedef struct boolList
55{
56 union {
57 bool value;
58 uint64_t padding;
59 };
60 struct boolList *next;
61} boolList;
62
63typedef struct int8List
64{
65 union {
66 int8_t value;
67 uint64_t padding;
68 };
69 struct int8List *next;
70} int8List;
71
72typedef struct int16List
73{
74 union {
75 int16_t value;
76 uint64_t padding;
77 };
78 struct int16List *next;
79} int16List;
80
81typedef struct int32List
82{
83 union {
84 int32_t value;
85 uint64_t padding;
86 };
87 struct int32List *next;
88} int32List;
89
90typedef struct int64List
91{
92 union {
93 int64_t value;
94 uint64_t padding;
95 };
96 struct int64List *next;
97} int64List;
98
99typedef struct uint8List
100{
101 union {
102 uint8_t value;
103 uint64_t padding;
104 };
105 struct uint8List *next;
106} uint8List;
107
108typedef struct uint16List
109{
110 union {
111 uint16_t value;
112 uint64_t padding;
113 };
114 struct uint16List *next;
115} uint16List;
116
117typedef struct uint32List
118{
119 union {
120 uint32_t value;
121 uint64_t padding;
122 };
123 struct uint32List *next;
124} uint32List;
125
126typedef struct uint64List
127{
128 union {
129 uint64_t value;
130 uint64_t padding;
131 };
132 struct uint64List *next;
133} uint64List;
134
135#endif /* QAPI_TYPES_BUILTIN_STRUCT_DECL_H */
136
137
138extern const char *ErrorClass_lookup[];
139typedef enum ErrorClass
140{
141 ERROR_CLASS_GENERIC_ERROR = 0,
142 ERROR_CLASS_COMMAND_NOT_FOUND = 1,
143 ERROR_CLASS_DEVICE_ENCRYPTED = 2,
144 ERROR_CLASS_DEVICE_NOT_ACTIVE = 3,
145 ERROR_CLASS_DEVICE_NOT_FOUND = 4,
146 ERROR_CLASS_K_V_M_MISSING_CAP = 5,
147 ERROR_CLASS_MAX = 6,
148} ErrorClass;
149
150typedef struct ErrorClassList
151{
152 union {
153 ErrorClass value;
154 uint64_t padding;
155 };
156 struct ErrorClassList *next;
157} ErrorClassList;
158
159
160typedef struct NameInfo NameInfo;
161
162typedef struct NameInfoList
163{
164 union {
165 NameInfo *value;
166 uint64_t padding;
167 };
168 struct NameInfoList *next;
169} NameInfoList;
170
171
172typedef struct VersionInfo VersionInfo;
173
174typedef struct VersionInfoList
175{
176 union {
177 VersionInfo *value;
178 uint64_t padding;
179 };
180 struct VersionInfoList *next;
181} VersionInfoList;
182
183
184typedef struct KvmInfo KvmInfo;
185
186typedef struct KvmInfoList
187{
188 union {
189 KvmInfo *value;
190 uint64_t padding;
191 };
192 struct KvmInfoList *next;
193} KvmInfoList;
194
195extern const char *RunState_lookup[];
196typedef enum RunState
197{
198 RUN_STATE_DEBUG = 0,
199 RUN_STATE_INMIGRATE = 1,
200 RUN_STATE_INTERNAL_ERROR = 2,
201 RUN_STATE_IO_ERROR = 3,
202 RUN_STATE_PAUSED = 4,
203 RUN_STATE_POSTMIGRATE = 5,
204 RUN_STATE_PRELAUNCH = 6,
205 RUN_STATE_FINISH_MIGRATE = 7,
206 RUN_STATE_RESTORE_VM = 8,
207 RUN_STATE_RUNNING = 9,
208 RUN_STATE_SAVE_VM = 10,
209 RUN_STATE_SHUTDOWN = 11,
210 RUN_STATE_SUSPENDED = 12,
211 RUN_STATE_WATCHDOG = 13,
212 RUN_STATE_GUEST_PANICKED = 14,
213 RUN_STATE_MAX = 15,
214} RunState;
215
216typedef struct RunStateList
217{
218 union {
219 RunState value;
220 uint64_t padding;
221 };
222 struct RunStateList *next;
223} RunStateList;
224
225
226typedef struct SnapshotInfo SnapshotInfo;
227
228typedef struct SnapshotInfoList
229{
230 union {
231 SnapshotInfo *value;
232 uint64_t padding;
233 };
234 struct SnapshotInfoList *next;
235} SnapshotInfoList;
236
237
238typedef struct ImageInfoSpecificQCow2 ImageInfoSpecificQCow2;
239
240typedef struct ImageInfoSpecificQCow2List
241{
242 union {
243 ImageInfoSpecificQCow2 *value;
244 uint64_t padding;
245 };
246 struct ImageInfoSpecificQCow2List *next;
247} ImageInfoSpecificQCow2List;
248
249
250typedef struct ImageInfoSpecificVmdk ImageInfoSpecificVmdk;
251
252typedef struct ImageInfoSpecificVmdkList
253{
254 union {
255 ImageInfoSpecificVmdk *value;
256 uint64_t padding;
257 };
258 struct ImageInfoSpecificVmdkList *next;
259} ImageInfoSpecificVmdkList;
260
261
262typedef struct ImageInfoSpecific ImageInfoSpecific;
263
264typedef struct ImageInfoSpecificList
265{
266 union {
267 ImageInfoSpecific *value;
268 uint64_t padding;
269 };
270 struct ImageInfoSpecificList *next;
271} ImageInfoSpecificList;
272
273extern const char *ImageInfoSpecificKind_lookup[];
274typedef enum ImageInfoSpecificKind
275{
276 IMAGE_INFO_SPECIFIC_KIND_QCOW2 = 0,
277 IMAGE_INFO_SPECIFIC_KIND_VMDK = 1,
278 IMAGE_INFO_SPECIFIC_KIND_MAX = 2,
279} ImageInfoSpecificKind;
280
281
282typedef struct ImageInfo ImageInfo;
283
284typedef struct ImageInfoList
285{
286 union {
287 ImageInfo *value;
288 uint64_t padding;
289 };
290 struct ImageInfoList *next;
291} ImageInfoList;
292
293
294typedef struct ImageCheck ImageCheck;
295
296typedef struct ImageCheckList
297{
298 union {
299 ImageCheck *value;
300 uint64_t padding;
301 };
302 struct ImageCheckList *next;
303} ImageCheckList;
304
305
306typedef struct StatusInfo StatusInfo;
307
308typedef struct StatusInfoList
309{
310 union {
311 StatusInfo *value;
312 uint64_t padding;
313 };
314 struct StatusInfoList *next;
315} StatusInfoList;
316
317
318typedef struct UuidInfo UuidInfo;
319
320typedef struct UuidInfoList
321{
322 union {
323 UuidInfo *value;
324 uint64_t padding;
325 };
326 struct UuidInfoList *next;
327} UuidInfoList;
328
329
330typedef struct ChardevInfo ChardevInfo;
331
332typedef struct ChardevInfoList
333{
334 union {
335 ChardevInfo *value;
336 uint64_t padding;
337 };
338 struct ChardevInfoList *next;
339} ChardevInfoList;
340
341extern const char *DataFormat_lookup[];
342typedef enum DataFormat
343{
344 DATA_FORMAT_UTF8 = 0,
345 DATA_FORMAT_BASE64 = 1,
346 DATA_FORMAT_MAX = 2,
347} DataFormat;
348
349typedef struct DataFormatList
350{
351 union {
352 DataFormat value;
353 uint64_t padding;
354 };
355 struct DataFormatList *next;
356} DataFormatList;
357
358
359typedef struct CommandInfo CommandInfo;
360
361typedef struct CommandInfoList
362{
363 union {
364 CommandInfo *value;
365 uint64_t padding;
366 };
367 struct CommandInfoList *next;
368} CommandInfoList;
369
370
371typedef struct EventInfo EventInfo;
372
373typedef struct EventInfoList
374{
375 union {
376 EventInfo *value;
377 uint64_t padding;
378 };
379 struct EventInfoList *next;
380} EventInfoList;
381
382
383typedef struct MigrationStats MigrationStats;
384
385typedef struct MigrationStatsList
386{
387 union {
388 MigrationStats *value;
389 uint64_t padding;
390 };
391 struct MigrationStatsList *next;
392} MigrationStatsList;
393
394
395typedef struct XBZRLECacheStats XBZRLECacheStats;
396
397typedef struct XBZRLECacheStatsList
398{
399 union {
400 XBZRLECacheStats *value;
401 uint64_t padding;
402 };
403 struct XBZRLECacheStatsList *next;
404} XBZRLECacheStatsList;
405
406
407typedef struct MigrationInfo MigrationInfo;
408
409typedef struct MigrationInfoList
410{
411 union {
412 MigrationInfo *value;
413 uint64_t padding;
414 };
415 struct MigrationInfoList *next;
416} MigrationInfoList;
417
418extern const char *MigrationCapability_lookup[];
419typedef enum MigrationCapability
420{
421 MIGRATION_CAPABILITY_XBZRLE = 0,
422 MIGRATION_CAPABILITY_X_RDMA_PIN_ALL = 1,
423 MIGRATION_CAPABILITY_AUTO_CONVERGE = 2,
424 MIGRATION_CAPABILITY_ZERO_BLOCKS = 3,
425 MIGRATION_CAPABILITY_MAX = 4,
426} MigrationCapability;
427
428typedef struct MigrationCapabilityList
429{
430 union {
431 MigrationCapability value;
432 uint64_t padding;
433 };
434 struct MigrationCapabilityList *next;
435} MigrationCapabilityList;
436
437
438typedef struct MigrationCapabilityStatus MigrationCapabilityStatus;
439
440typedef struct MigrationCapabilityStatusList
441{
442 union {
443 MigrationCapabilityStatus *value;
444 uint64_t padding;
445 };
446 struct MigrationCapabilityStatusList *next;
447} MigrationCapabilityStatusList;
448
449
450typedef struct MouseInfo MouseInfo;
451
452typedef struct MouseInfoList
453{
454 union {
455 MouseInfo *value;
456 uint64_t padding;
457 };
458 struct MouseInfoList *next;
459} MouseInfoList;
460
461
462typedef struct CpuInfo CpuInfo;
463
464typedef struct CpuInfoList
465{
466 union {
467 CpuInfo *value;
468 uint64_t padding;
469 };
470 struct CpuInfoList *next;
471} CpuInfoList;
472
473
474typedef struct BlockDeviceInfo BlockDeviceInfo;
475
476typedef struct BlockDeviceInfoList
477{
478 union {
479 BlockDeviceInfo *value;
480 uint64_t padding;
481 };
482 struct BlockDeviceInfoList *next;
483} BlockDeviceInfoList;
484
485extern const char *BlockDeviceIoStatus_lookup[];
486typedef enum BlockDeviceIoStatus
487{
488 BLOCK_DEVICE_IO_STATUS_OK = 0,
489 BLOCK_DEVICE_IO_STATUS_FAILED = 1,
490 BLOCK_DEVICE_IO_STATUS_NOSPACE = 2,
491 BLOCK_DEVICE_IO_STATUS_MAX = 3,
492} BlockDeviceIoStatus;
493
494typedef struct BlockDeviceIoStatusList
495{
496 union {
497 BlockDeviceIoStatus value;
498 uint64_t padding;
499 };
500 struct BlockDeviceIoStatusList *next;
501} BlockDeviceIoStatusList;
502
503
504typedef struct BlockDeviceMapEntry BlockDeviceMapEntry;
505
506typedef struct BlockDeviceMapEntryList
507{
508 union {
509 BlockDeviceMapEntry *value;
510 uint64_t padding;
511 };
512 struct BlockDeviceMapEntryList *next;
513} BlockDeviceMapEntryList;
514
515
516typedef struct BlockDirtyInfo BlockDirtyInfo;
517
518typedef struct BlockDirtyInfoList
519{
520 union {
521 BlockDirtyInfo *value;
522 uint64_t padding;
523 };
524 struct BlockDirtyInfoList *next;
525} BlockDirtyInfoList;
526
527
528typedef struct BlockInfo BlockInfo;
529
530typedef struct BlockInfoList
531{
532 union {
533 BlockInfo *value;
534 uint64_t padding;
535 };
536 struct BlockInfoList *next;
537} BlockInfoList;
538
539
540typedef struct BlockDeviceStats BlockDeviceStats;
541
542typedef struct BlockDeviceStatsList
543{
544 union {
545 BlockDeviceStats *value;
546 uint64_t padding;
547 };
548 struct BlockDeviceStatsList *next;
549} BlockDeviceStatsList;
550
551
552typedef struct BlockStats BlockStats;
553
554typedef struct BlockStatsList
555{
556 union {
557 BlockStats *value;
558 uint64_t padding;
559 };
560 struct BlockStatsList *next;
561} BlockStatsList;
562
563
564typedef struct VncClientInfo VncClientInfo;
565
566typedef struct VncClientInfoList
567{
568 union {
569 VncClientInfo *value;
570 uint64_t padding;
571 };
572 struct VncClientInfoList *next;
573} VncClientInfoList;
574
575
576typedef struct VncInfo VncInfo;
577
578typedef struct VncInfoList
579{
580 union {
581 VncInfo *value;
582 uint64_t padding;
583 };
584 struct VncInfoList *next;
585} VncInfoList;
586
587
588typedef struct SpiceChannel SpiceChannel;
589
590typedef struct SpiceChannelList
591{
592 union {
593 SpiceChannel *value;
594 uint64_t padding;
595 };
596 struct SpiceChannelList *next;
597} SpiceChannelList;
598
599extern const char *SpiceQueryMouseMode_lookup[];
600typedef enum SpiceQueryMouseMode
601{
602 SPICE_QUERY_MOUSE_MODE_CLIENT = 0,
603 SPICE_QUERY_MOUSE_MODE_SERVER = 1,
604 SPICE_QUERY_MOUSE_MODE_UNKNOWN = 2,
605 SPICE_QUERY_MOUSE_MODE_MAX = 3,
606} SpiceQueryMouseMode;
607
608typedef struct SpiceQueryMouseModeList
609{
610 union {
611 SpiceQueryMouseMode value;
612 uint64_t padding;
613 };
614 struct SpiceQueryMouseModeList *next;
615} SpiceQueryMouseModeList;
616
617
618typedef struct SpiceInfo SpiceInfo;
619
620typedef struct SpiceInfoList
621{
622 union {
623 SpiceInfo *value;
624 uint64_t padding;
625 };
626 struct SpiceInfoList *next;
627} SpiceInfoList;
628
629
630typedef struct BalloonInfo BalloonInfo;
631
632typedef struct BalloonInfoList
633{
634 union {
635 BalloonInfo *value;
636 uint64_t padding;
637 };
638 struct BalloonInfoList *next;
639} BalloonInfoList;
640
641
642typedef struct PciMemoryRange PciMemoryRange;
643
644typedef struct PciMemoryRangeList
645{
646 union {
647 PciMemoryRange *value;
648 uint64_t padding;
649 };
650 struct PciMemoryRangeList *next;
651} PciMemoryRangeList;
652
653
654typedef struct PciMemoryRegion PciMemoryRegion;
655
656typedef struct PciMemoryRegionList
657{
658 union {
659 PciMemoryRegion *value;
660 uint64_t padding;
661 };
662 struct PciMemoryRegionList *next;
663} PciMemoryRegionList;
664
665
666typedef struct PciBridgeInfo PciBridgeInfo;
667
668typedef struct PciBridgeInfoList
669{
670 union {
671 PciBridgeInfo *value;
672 uint64_t padding;
673 };
674 struct PciBridgeInfoList *next;
675} PciBridgeInfoList;
676
677
678typedef struct PciDeviceInfo PciDeviceInfo;
679
680typedef struct PciDeviceInfoList
681{
682 union {
683 PciDeviceInfo *value;
684 uint64_t padding;
685 };
686 struct PciDeviceInfoList *next;
687} PciDeviceInfoList;
688
689
690typedef struct PciInfo PciInfo;
691
692typedef struct PciInfoList
693{
694 union {
695 PciInfo *value;
696 uint64_t padding;
697 };
698 struct PciInfoList *next;
699} PciInfoList;
700
701extern const char *BlockdevOnError_lookup[];
702typedef enum BlockdevOnError
703{
704 BLOCKDEV_ON_ERROR_REPORT = 0,
705 BLOCKDEV_ON_ERROR_IGNORE = 1,
706 BLOCKDEV_ON_ERROR_ENOSPC = 2,
707 BLOCKDEV_ON_ERROR_STOP = 3,
708 BLOCKDEV_ON_ERROR_MAX = 4,
709} BlockdevOnError;
710
711typedef struct BlockdevOnErrorList
712{
713 union {
714 BlockdevOnError value;
715 uint64_t padding;
716 };
717 struct BlockdevOnErrorList *next;
718} BlockdevOnErrorList;
719
720extern const char *MirrorSyncMode_lookup[];
721typedef enum MirrorSyncMode
722{
723 MIRROR_SYNC_MODE_TOP = 0,
724 MIRROR_SYNC_MODE_FULL = 1,
725 MIRROR_SYNC_MODE_NONE = 2,
726 MIRROR_SYNC_MODE_MAX = 3,
727} MirrorSyncMode;
728
729typedef struct MirrorSyncModeList
730{
731 union {
732 MirrorSyncMode value;
733 uint64_t padding;
734 };
735 struct MirrorSyncModeList *next;
736} MirrorSyncModeList;
737
738extern const char *BlockJobType_lookup[];
739typedef enum BlockJobType
740{
741 BLOCK_JOB_TYPE_COMMIT = 0,
742 BLOCK_JOB_TYPE_STREAM = 1,
743 BLOCK_JOB_TYPE_MIRROR = 2,
744 BLOCK_JOB_TYPE_BACKUP = 3,
745 BLOCK_JOB_TYPE_MAX = 4,
746} BlockJobType;
747
748typedef struct BlockJobTypeList
749{
750 union {
751 BlockJobType value;
752 uint64_t padding;
753 };
754 struct BlockJobTypeList *next;
755} BlockJobTypeList;
756
757
758typedef struct BlockJobInfo BlockJobInfo;
759
760typedef struct BlockJobInfoList
761{
762 union {
763 BlockJobInfo *value;
764 uint64_t padding;
765 };
766 struct BlockJobInfoList *next;
767} BlockJobInfoList;
768
769extern const char *NewImageMode_lookup[];
770typedef enum NewImageMode
771{
772 NEW_IMAGE_MODE_EXISTING = 0,
773 NEW_IMAGE_MODE_ABSOLUTE_PATHS = 1,
774 NEW_IMAGE_MODE_MAX = 2,
775} NewImageMode;
776
777typedef struct NewImageModeList
778{
779 union {
780 NewImageMode value;
781 uint64_t padding;
782 };
783 struct NewImageModeList *next;
784} NewImageModeList;
785
786
787typedef struct BlockdevSnapshot BlockdevSnapshot;
788
789typedef struct BlockdevSnapshotList
790{
791 union {
792 BlockdevSnapshot *value;
793 uint64_t padding;
794 };
795 struct BlockdevSnapshotList *next;
796} BlockdevSnapshotList;
797
798
799typedef struct BlockdevSnapshotInternal BlockdevSnapshotInternal;
800
801typedef struct BlockdevSnapshotInternalList
802{
803 union {
804 BlockdevSnapshotInternal *value;
805 uint64_t padding;
806 };
807 struct BlockdevSnapshotInternalList *next;
808} BlockdevSnapshotInternalList;
809
810
811typedef struct DriveBackup DriveBackup;
812
813typedef struct DriveBackupList
814{
815 union {
816 DriveBackup *value;
817 uint64_t padding;
818 };
819 struct DriveBackupList *next;
820} DriveBackupList;
821
822
823typedef struct Abort Abort;
824
825typedef struct AbortList
826{
827 union {
828 Abort *value;
829 uint64_t padding;
830 };
831 struct AbortList *next;
832} AbortList;
833
834
835typedef struct TransactionAction TransactionAction;
836
837typedef struct TransactionActionList
838{
839 union {
840 TransactionAction *value;
841 uint64_t padding;
842 };
843 struct TransactionActionList *next;
844} TransactionActionList;
845
846extern const char *TransactionActionKind_lookup[];
847typedef enum TransactionActionKind
848{
849 TRANSACTION_ACTION_KIND_BLOCKDEV_SNAPSHOT_SYNC = 0,
850 TRANSACTION_ACTION_KIND_DRIVE_BACKUP = 1,
851 TRANSACTION_ACTION_KIND_ABORT = 2,
852 TRANSACTION_ACTION_KIND_BLOCKDEV_SNAPSHOT_INTERNAL_SYNC = 3,
853 TRANSACTION_ACTION_KIND_MAX = 4,
854} TransactionActionKind;
855
856
857typedef struct ObjectPropertyInfo ObjectPropertyInfo;
858
859typedef struct ObjectPropertyInfoList
860{
861 union {
862 ObjectPropertyInfo *value;
863 uint64_t padding;
864 };
865 struct ObjectPropertyInfoList *next;
866} ObjectPropertyInfoList;
867
868
869typedef struct ObjectTypeInfo ObjectTypeInfo;
870
871typedef struct ObjectTypeInfoList
872{
873 union {
874 ObjectTypeInfo *value;
875 uint64_t padding;
876 };
877 struct ObjectTypeInfoList *next;
878} ObjectTypeInfoList;
879
880
881typedef struct DevicePropertyInfo DevicePropertyInfo;
882
883typedef struct DevicePropertyInfoList
884{
885 union {
886 DevicePropertyInfo *value;
887 uint64_t padding;
888 };
889 struct DevicePropertyInfoList *next;
890} DevicePropertyInfoList;
891
892
893typedef struct NetdevNoneOptions NetdevNoneOptions;
894
895typedef struct NetdevNoneOptionsList
896{
897 union {
898 NetdevNoneOptions *value;
899 uint64_t padding;
900 };
901 struct NetdevNoneOptionsList *next;
902} NetdevNoneOptionsList;
903
904
905typedef struct NetLegacyNicOptions NetLegacyNicOptions;
906
907typedef struct NetLegacyNicOptionsList
908{
909 union {
910 NetLegacyNicOptions *value;
911 uint64_t padding;
912 };
913 struct NetLegacyNicOptionsList *next;
914} NetLegacyNicOptionsList;
915
916
917typedef struct String String;
918
919typedef struct StringList
920{
921 union {
922 String *value;
923 uint64_t padding;
924 };
925 struct StringList *next;
926} StringList;
927
928
929typedef struct NetdevUserOptions NetdevUserOptions;
930
931typedef struct NetdevUserOptionsList
932{
933 union {
934 NetdevUserOptions *value;
935 uint64_t padding;
936 };
937 struct NetdevUserOptionsList *next;
938} NetdevUserOptionsList;
939
940
941typedef struct NetdevTapOptions NetdevTapOptions;
942
943typedef struct NetdevTapOptionsList
944{
945 union {
946 NetdevTapOptions *value;
947 uint64_t padding;
948 };
949 struct NetdevTapOptionsList *next;
950} NetdevTapOptionsList;
951
952
953typedef struct NetdevSocketOptions NetdevSocketOptions;
954
955typedef struct NetdevSocketOptionsList
956{
957 union {
958 NetdevSocketOptions *value;
959 uint64_t padding;
960 };
961 struct NetdevSocketOptionsList *next;
962} NetdevSocketOptionsList;
963
964
965typedef struct NetdevVdeOptions NetdevVdeOptions;
966
967typedef struct NetdevVdeOptionsList
968{
969 union {
970 NetdevVdeOptions *value;
971 uint64_t padding;
972 };
973 struct NetdevVdeOptionsList *next;
974} NetdevVdeOptionsList;
975
976
977typedef struct NetdevDumpOptions NetdevDumpOptions;
978
979typedef struct NetdevDumpOptionsList
980{
981 union {
982 NetdevDumpOptions *value;
983 uint64_t padding;
984 };
985 struct NetdevDumpOptionsList *next;
986} NetdevDumpOptionsList;
987
988
989typedef struct NetdevBridgeOptions NetdevBridgeOptions;
990
991typedef struct NetdevBridgeOptionsList
992{
993 union {
994 NetdevBridgeOptions *value;
995 uint64_t padding;
996 };
997 struct NetdevBridgeOptionsList *next;
998} NetdevBridgeOptionsList;
999
1000
1001typedef struct NetdevHubPortOptions NetdevHubPortOptions;
1002
1003typedef struct NetdevHubPortOptionsList
1004{
1005 union {
1006 NetdevHubPortOptions *value;
1007 uint64_t padding;
1008 };
1009 struct NetdevHubPortOptionsList *next;
1010} NetdevHubPortOptionsList;
1011
1012
1013typedef struct NetdevNetmapOptions NetdevNetmapOptions;
1014
1015typedef struct NetdevNetmapOptionsList
1016{
1017 union {
1018 NetdevNetmapOptions *value;
1019 uint64_t padding;
1020 };
1021 struct NetdevNetmapOptionsList *next;
1022} NetdevNetmapOptionsList;
1023
1024
1025typedef struct NetClientOptions NetClientOptions;
1026
1027typedef struct NetClientOptionsList
1028{
1029 union {
1030 NetClientOptions *value;
1031 uint64_t padding;
1032 };
1033 struct NetClientOptionsList *next;
1034} NetClientOptionsList;
1035
1036extern const char *NetClientOptionsKind_lookup[];
1037typedef enum NetClientOptionsKind
1038{
1039 NET_CLIENT_OPTIONS_KIND_NONE = 0,
1040 NET_CLIENT_OPTIONS_KIND_NIC = 1,
1041 NET_CLIENT_OPTIONS_KIND_USER = 2,
1042 NET_CLIENT_OPTIONS_KIND_TAP = 3,
1043 NET_CLIENT_OPTIONS_KIND_SOCKET = 4,
1044 NET_CLIENT_OPTIONS_KIND_VDE = 5,
1045 NET_CLIENT_OPTIONS_KIND_DUMP = 6,
1046 NET_CLIENT_OPTIONS_KIND_BRIDGE = 7,
1047 NET_CLIENT_OPTIONS_KIND_HUBPORT = 8,
1048 NET_CLIENT_OPTIONS_KIND_NETMAP = 9,
1049 NET_CLIENT_OPTIONS_KIND_MAX = 10,
1050} NetClientOptionsKind;
1051
1052
1053typedef struct NetLegacy NetLegacy;
1054
1055typedef struct NetLegacyList
1056{
1057 union {
1058 NetLegacy *value;
1059 uint64_t padding;
1060 };
1061 struct NetLegacyList *next;
1062} NetLegacyList;
1063
1064
1065typedef struct Netdev Netdev;
1066
1067typedef struct NetdevList
1068{
1069 union {
1070 Netdev *value;
1071 uint64_t padding;
1072 };
1073 struct NetdevList *next;
1074} NetdevList;
1075
1076
1077typedef struct InetSocketAddress InetSocketAddress;
1078
1079typedef struct InetSocketAddressList
1080{
1081 union {
1082 InetSocketAddress *value;
1083 uint64_t padding;
1084 };
1085 struct InetSocketAddressList *next;
1086} InetSocketAddressList;
1087
1088
1089typedef struct UnixSocketAddress UnixSocketAddress;
1090
1091typedef struct UnixSocketAddressList
1092{
1093 union {
1094 UnixSocketAddress *value;
1095 uint64_t padding;
1096 };
1097 struct UnixSocketAddressList *next;
1098} UnixSocketAddressList;
1099
1100
1101typedef struct SocketAddress SocketAddress;
1102
1103typedef struct SocketAddressList
1104{
1105 union {
1106 SocketAddress *value;
1107 uint64_t padding;
1108 };
1109 struct SocketAddressList *next;
1110} SocketAddressList;
1111
1112extern const char *SocketAddressKind_lookup[];
1113typedef enum SocketAddressKind
1114{
1115 SOCKET_ADDRESS_KIND_INET = 0,
1116 SOCKET_ADDRESS_KIND_UNIX = 1,
1117 SOCKET_ADDRESS_KIND_FD = 2,
1118 SOCKET_ADDRESS_KIND_MAX = 3,
1119} SocketAddressKind;
1120
1121
1122typedef struct MachineInfo MachineInfo;
1123
1124typedef struct MachineInfoList
1125{
1126 union {
1127 MachineInfo *value;
1128 uint64_t padding;
1129 };
1130 struct MachineInfoList *next;
1131} MachineInfoList;
1132
1133
1134typedef struct CpuDefinitionInfo CpuDefinitionInfo;
1135
1136typedef struct CpuDefinitionInfoList
1137{
1138 union {
1139 CpuDefinitionInfo *value;
1140 uint64_t padding;
1141 };
1142 struct CpuDefinitionInfoList *next;
1143} CpuDefinitionInfoList;
1144
1145
1146typedef struct AddfdInfo AddfdInfo;
1147
1148typedef struct AddfdInfoList
1149{
1150 union {
1151 AddfdInfo *value;
1152 uint64_t padding;
1153 };
1154 struct AddfdInfoList *next;
1155} AddfdInfoList;
1156
1157
1158typedef struct FdsetFdInfo FdsetFdInfo;
1159
1160typedef struct FdsetFdInfoList
1161{
1162 union {
1163 FdsetFdInfo *value;
1164 uint64_t padding;
1165 };
1166 struct FdsetFdInfoList *next;
1167} FdsetFdInfoList;
1168
1169
1170typedef struct FdsetInfo FdsetInfo;
1171
1172typedef struct FdsetInfoList
1173{
1174 union {
1175 FdsetInfo *value;
1176 uint64_t padding;
1177 };
1178 struct FdsetInfoList *next;
1179} FdsetInfoList;
1180
1181
1182typedef struct TargetInfo TargetInfo;
1183
1184typedef struct TargetInfoList
1185{
1186 union {
1187 TargetInfo *value;
1188 uint64_t padding;
1189 };
1190 struct TargetInfoList *next;
1191} TargetInfoList;
1192
1193extern const char *QKeyCode_lookup[];
1194typedef enum QKeyCode
1195{
1196 Q_KEY_CODE_SHIFT = 0,
1197 Q_KEY_CODE_SHIFT_R = 1,
1198 Q_KEY_CODE_ALT = 2,
1199 Q_KEY_CODE_ALT_R = 3,
1200 Q_KEY_CODE_ALTGR = 4,
1201 Q_KEY_CODE_ALTGR_R = 5,
1202 Q_KEY_CODE_CTRL = 6,
1203 Q_KEY_CODE_CTRL_R = 7,
1204 Q_KEY_CODE_MENU = 8,
1205 Q_KEY_CODE_ESC = 9,
1206 Q_KEY_CODE_1 = 10,
1207 Q_KEY_CODE_2 = 11,
1208 Q_KEY_CODE_3 = 12,
1209 Q_KEY_CODE_4 = 13,
1210 Q_KEY_CODE_5 = 14,
1211 Q_KEY_CODE_6 = 15,
1212 Q_KEY_CODE_7 = 16,
1213 Q_KEY_CODE_8 = 17,
1214 Q_KEY_CODE_9 = 18,
1215 Q_KEY_CODE_0 = 19,
1216 Q_KEY_CODE_MINUS = 20,
1217 Q_KEY_CODE_EQUAL = 21,
1218 Q_KEY_CODE_BACKSPACE = 22,
1219 Q_KEY_CODE_TAB = 23,
1220 Q_KEY_CODE_Q = 24,
1221 Q_KEY_CODE_W = 25,
1222 Q_KEY_CODE_E = 26,
1223 Q_KEY_CODE_R = 27,
1224 Q_KEY_CODE_T = 28,
1225 Q_KEY_CODE_Y = 29,
1226 Q_KEY_CODE_U = 30,
1227 Q_KEY_CODE_I = 31,
1228 Q_KEY_CODE_O = 32,
1229 Q_KEY_CODE_P = 33,
1230 Q_KEY_CODE_BRACKET_LEFT = 34,
1231 Q_KEY_CODE_BRACKET_RIGHT = 35,
1232 Q_KEY_CODE_RET = 36,
1233 Q_KEY_CODE_A = 37,
1234 Q_KEY_CODE_S = 38,
1235 Q_KEY_CODE_D = 39,
1236 Q_KEY_CODE_F = 40,
1237 Q_KEY_CODE_G = 41,
1238 Q_KEY_CODE_H = 42,
1239 Q_KEY_CODE_J = 43,
1240 Q_KEY_CODE_K = 44,
1241 Q_KEY_CODE_L = 45,
1242 Q_KEY_CODE_SEMICOLON = 46,
1243 Q_KEY_CODE_APOSTROPHE = 47,
1244 Q_KEY_CODE_GRAVE_ACCENT = 48,
1245 Q_KEY_CODE_BACKSLASH = 49,
1246 Q_KEY_CODE_Z = 50,
1247 Q_KEY_CODE_X = 51,
1248 Q_KEY_CODE_C = 52,
1249 Q_KEY_CODE_V = 53,
1250 Q_KEY_CODE_B = 54,
1251 Q_KEY_CODE_N = 55,
1252 Q_KEY_CODE_M = 56,
1253 Q_KEY_CODE_COMMA = 57,
1254 Q_KEY_CODE_DOT = 58,
1255 Q_KEY_CODE_SLASH = 59,
1256 Q_KEY_CODE_ASTERISK = 60,
1257 Q_KEY_CODE_SPC = 61,
1258 Q_KEY_CODE_CAPS_LOCK = 62,
1259 Q_KEY_CODE_F1 = 63,
1260 Q_KEY_CODE_F2 = 64,
1261 Q_KEY_CODE_F3 = 65,
1262 Q_KEY_CODE_F4 = 66,
1263 Q_KEY_CODE_F5 = 67,
1264 Q_KEY_CODE_F6 = 68,
1265 Q_KEY_CODE_F7 = 69,
1266 Q_KEY_CODE_F8 = 70,
1267 Q_KEY_CODE_F9 = 71,
1268 Q_KEY_CODE_F10 = 72,
1269 Q_KEY_CODE_NUM_LOCK = 73,
1270 Q_KEY_CODE_SCROLL_LOCK = 74,
1271 Q_KEY_CODE_KP_DIVIDE = 75,
1272 Q_KEY_CODE_KP_MULTIPLY = 76,
1273 Q_KEY_CODE_KP_SUBTRACT = 77,
1274 Q_KEY_CODE_KP_ADD = 78,
1275 Q_KEY_CODE_KP_ENTER = 79,
1276 Q_KEY_CODE_KP_DECIMAL = 80,
1277 Q_KEY_CODE_SYSRQ = 81,
1278 Q_KEY_CODE_KP_0 = 82,
1279 Q_KEY_CODE_KP_1 = 83,
1280 Q_KEY_CODE_KP_2 = 84,
1281 Q_KEY_CODE_KP_3 = 85,
1282 Q_KEY_CODE_KP_4 = 86,
1283 Q_KEY_CODE_KP_5 = 87,
1284 Q_KEY_CODE_KP_6 = 88,
1285 Q_KEY_CODE_KP_7 = 89,
1286 Q_KEY_CODE_KP_8 = 90,
1287 Q_KEY_CODE_KP_9 = 91,
1288 Q_KEY_CODE_LESS = 92,
1289 Q_KEY_CODE_F11 = 93,
1290 Q_KEY_CODE_F12 = 94,
1291 Q_KEY_CODE_PRINT = 95,
1292 Q_KEY_CODE_HOME = 96,
1293 Q_KEY_CODE_PGUP = 97,
1294 Q_KEY_CODE_PGDN = 98,
1295 Q_KEY_CODE_END = 99,
1296 Q_KEY_CODE_LEFT = 100,
1297 Q_KEY_CODE_UP = 101,
1298 Q_KEY_CODE_DOWN = 102,
1299 Q_KEY_CODE_RIGHT = 103,
1300 Q_KEY_CODE_INSERT = 104,
1301 Q_KEY_CODE_DELETE = 105,
1302 Q_KEY_CODE_STOP = 106,
1303 Q_KEY_CODE_AGAIN = 107,
1304 Q_KEY_CODE_PROPS = 108,
1305 Q_KEY_CODE_UNDO = 109,
1306 Q_KEY_CODE_FRONT = 110,
1307 Q_KEY_CODE_COPY = 111,
1308 Q_KEY_CODE_OPEN = 112,
1309 Q_KEY_CODE_PASTE = 113,
1310 Q_KEY_CODE_FIND = 114,
1311 Q_KEY_CODE_CUT = 115,
1312 Q_KEY_CODE_LF = 116,
1313 Q_KEY_CODE_HELP = 117,
1314 Q_KEY_CODE_META_L = 118,
1315 Q_KEY_CODE_META_R = 119,
1316 Q_KEY_CODE_COMPOSE = 120,
1317 Q_KEY_CODE_MAX = 121,
1318} QKeyCode;
1319
1320typedef struct QKeyCodeList
1321{
1322 union {
1323 QKeyCode value;
1324 uint64_t padding;
1325 };
1326 struct QKeyCodeList *next;
1327} QKeyCodeList;
1328
1329
1330typedef struct KeyValue KeyValue;
1331
1332typedef struct KeyValueList
1333{
1334 union {
1335 KeyValue *value;
1336 uint64_t padding;
1337 };
1338 struct KeyValueList *next;
1339} KeyValueList;
1340
1341extern const char *KeyValueKind_lookup[];
1342typedef enum KeyValueKind
1343{
1344 KEY_VALUE_KIND_NUMBER = 0,
1345 KEY_VALUE_KIND_QCODE = 1,
1346 KEY_VALUE_KIND_MAX = 2,
1347} KeyValueKind;
1348
1349
1350typedef struct ChardevFile ChardevFile;
1351
1352typedef struct ChardevFileList
1353{
1354 union {
1355 ChardevFile *value;
1356 uint64_t padding;
1357 };
1358 struct ChardevFileList *next;
1359} ChardevFileList;
1360
1361
1362typedef struct ChardevHostdev ChardevHostdev;
1363
1364typedef struct ChardevHostdevList
1365{
1366 union {
1367 ChardevHostdev *value;
1368 uint64_t padding;
1369 };
1370 struct ChardevHostdevList *next;
1371} ChardevHostdevList;
1372
1373
1374typedef struct ChardevSocket ChardevSocket;
1375
1376typedef struct ChardevSocketList
1377{
1378 union {
1379 ChardevSocket *value;
1380 uint64_t padding;
1381 };
1382 struct ChardevSocketList *next;
1383} ChardevSocketList;
1384
1385
1386typedef struct ChardevUdp ChardevUdp;
1387
1388typedef struct ChardevUdpList
1389{
1390 union {
1391 ChardevUdp *value;
1392 uint64_t padding;
1393 };
1394 struct ChardevUdpList *next;
1395} ChardevUdpList;
1396
1397
1398typedef struct ChardevMux ChardevMux;
1399
1400typedef struct ChardevMuxList
1401{
1402 union {
1403 ChardevMux *value;
1404 uint64_t padding;
1405 };
1406 struct ChardevMuxList *next;
1407} ChardevMuxList;
1408
1409
1410typedef struct ChardevStdio ChardevStdio;
1411
1412typedef struct ChardevStdioList
1413{
1414 union {
1415 ChardevStdio *value;
1416 uint64_t padding;
1417 };
1418 struct ChardevStdioList *next;
1419} ChardevStdioList;
1420
1421
1422typedef struct ChardevSpiceChannel ChardevSpiceChannel;
1423
1424typedef struct ChardevSpiceChannelList
1425{
1426 union {
1427 ChardevSpiceChannel *value;
1428 uint64_t padding;
1429 };
1430 struct ChardevSpiceChannelList *next;
1431} ChardevSpiceChannelList;
1432
1433
1434typedef struct ChardevSpicePort ChardevSpicePort;
1435
1436typedef struct ChardevSpicePortList
1437{
1438 union {
1439 ChardevSpicePort *value;
1440 uint64_t padding;
1441 };
1442 struct ChardevSpicePortList *next;
1443} ChardevSpicePortList;
1444
1445
1446typedef struct ChardevVC ChardevVC;
1447
1448typedef struct ChardevVCList
1449{
1450 union {
1451 ChardevVC *value;
1452 uint64_t padding;
1453 };
1454 struct ChardevVCList *next;
1455} ChardevVCList;
1456
1457
1458typedef struct ChardevRingbuf ChardevRingbuf;
1459
1460typedef struct ChardevRingbufList
1461{
1462 union {
1463 ChardevRingbuf *value;
1464 uint64_t padding;
1465 };
1466 struct ChardevRingbufList *next;
1467} ChardevRingbufList;
1468
1469
1470typedef struct ChardevDummy ChardevDummy;
1471
1472typedef struct ChardevDummyList
1473{
1474 union {
1475 ChardevDummy *value;
1476 uint64_t padding;
1477 };
1478 struct ChardevDummyList *next;
1479} ChardevDummyList;
1480
1481
1482typedef struct ChardevBackend ChardevBackend;
1483
1484typedef struct ChardevBackendList
1485{
1486 union {
1487 ChardevBackend *value;
1488 uint64_t padding;
1489 };
1490 struct ChardevBackendList *next;
1491} ChardevBackendList;
1492
1493extern const char *ChardevBackendKind_lookup[];
1494typedef enum ChardevBackendKind
1495{
1496 CHARDEV_BACKEND_KIND_FILE = 0,
1497 CHARDEV_BACKEND_KIND_SERIAL = 1,
1498 CHARDEV_BACKEND_KIND_PARALLEL = 2,
1499 CHARDEV_BACKEND_KIND_PIPE = 3,
1500 CHARDEV_BACKEND_KIND_SOCKET = 4,
1501 CHARDEV_BACKEND_KIND_UDP = 5,
1502 CHARDEV_BACKEND_KIND_PTY = 6,
1503 CHARDEV_BACKEND_KIND_NULL = 7,
1504 CHARDEV_BACKEND_KIND_MUX = 8,
1505 CHARDEV_BACKEND_KIND_MSMOUSE = 9,
1506 CHARDEV_BACKEND_KIND_BRAILLE = 10,
1507 CHARDEV_BACKEND_KIND_STDIO = 11,
1508 CHARDEV_BACKEND_KIND_CONSOLE = 12,
1509 CHARDEV_BACKEND_KIND_SPICEVMC = 13,
1510 CHARDEV_BACKEND_KIND_SPICEPORT = 14,
1511 CHARDEV_BACKEND_KIND_VC = 15,
1512 CHARDEV_BACKEND_KIND_RINGBUF = 16,
1513 CHARDEV_BACKEND_KIND_MEMORY = 17,
1514 CHARDEV_BACKEND_KIND_MAX = 18,
1515} ChardevBackendKind;
1516
1517
1518typedef struct ChardevReturn ChardevReturn;
1519
1520typedef struct ChardevReturnList
1521{
1522 union {
1523 ChardevReturn *value;
1524 uint64_t padding;
1525 };
1526 struct ChardevReturnList *next;
1527} ChardevReturnList;
1528
1529extern const char *TpmModel_lookup[];
1530typedef enum TpmModel
1531{
1532 TPM_MODEL_TPM_TIS = 0,
1533 TPM_MODEL_MAX = 1,
1534} TpmModel;
1535
1536typedef struct TpmModelList
1537{
1538 union {
1539 TpmModel value;
1540 uint64_t padding;
1541 };
1542 struct TpmModelList *next;
1543} TpmModelList;
1544
1545extern const char *TpmType_lookup[];
1546typedef enum TpmType
1547{
1548 TPM_TYPE_PASSTHROUGH = 0,
1549 TPM_TYPE_MAX = 1,
1550} TpmType;
1551
1552typedef struct TpmTypeList
1553{
1554 union {
1555 TpmType value;
1556 uint64_t padding;
1557 };
1558 struct TpmTypeList *next;
1559} TpmTypeList;
1560
1561
1562typedef struct TPMPassthroughOptions TPMPassthroughOptions;
1563
1564typedef struct TPMPassthroughOptionsList
1565{
1566 union {
1567 TPMPassthroughOptions *value;
1568 uint64_t padding;
1569 };
1570 struct TPMPassthroughOptionsList *next;
1571} TPMPassthroughOptionsList;
1572
1573
1574typedef struct TpmTypeOptions TpmTypeOptions;
1575
1576typedef struct TpmTypeOptionsList
1577{
1578 union {
1579 TpmTypeOptions *value;
1580 uint64_t padding;
1581 };
1582 struct TpmTypeOptionsList *next;
1583} TpmTypeOptionsList;
1584
1585extern const char *TpmTypeOptionsKind_lookup[];
1586typedef enum TpmTypeOptionsKind
1587{
1588 TPM_TYPE_OPTIONS_KIND_PASSTHROUGH = 0,
1589 TPM_TYPE_OPTIONS_KIND_MAX = 1,
1590} TpmTypeOptionsKind;
1591
1592
1593typedef struct TPMInfo TPMInfo;
1594
1595typedef struct TPMInfoList
1596{
1597 union {
1598 TPMInfo *value;
1599 uint64_t padding;
1600 };
1601 struct TPMInfoList *next;
1602} TPMInfoList;
1603
1604
1605typedef struct AcpiTableOptions AcpiTableOptions;
1606
1607typedef struct AcpiTableOptionsList
1608{
1609 union {
1610 AcpiTableOptions *value;
1611 uint64_t padding;
1612 };
1613 struct AcpiTableOptionsList *next;
1614} AcpiTableOptionsList;
1615
1616extern const char *CommandLineParameterType_lookup[];
1617typedef enum CommandLineParameterType
1618{
1619 COMMAND_LINE_PARAMETER_TYPE_STRING = 0,
1620 COMMAND_LINE_PARAMETER_TYPE_BOOLEAN = 1,
1621 COMMAND_LINE_PARAMETER_TYPE_NUMBER = 2,
1622 COMMAND_LINE_PARAMETER_TYPE_SIZE = 3,
1623 COMMAND_LINE_PARAMETER_TYPE_MAX = 4,
1624} CommandLineParameterType;
1625
1626typedef struct CommandLineParameterTypeList
1627{
1628 union {
1629 CommandLineParameterType value;
1630 uint64_t padding;
1631 };
1632 struct CommandLineParameterTypeList *next;
1633} CommandLineParameterTypeList;
1634
1635
1636typedef struct CommandLineParameterInfo CommandLineParameterInfo;
1637
1638typedef struct CommandLineParameterInfoList
1639{
1640 union {
1641 CommandLineParameterInfo *value;
1642 uint64_t padding;
1643 };
1644 struct CommandLineParameterInfoList *next;
1645} CommandLineParameterInfoList;
1646
1647
1648typedef struct CommandLineOptionInfo CommandLineOptionInfo;
1649
1650typedef struct CommandLineOptionInfoList
1651{
1652 union {
1653 CommandLineOptionInfo *value;
1654 uint64_t padding;
1655 };
1656 struct CommandLineOptionInfoList *next;
1657} CommandLineOptionInfoList;
1658
1659extern const char *X86CPURegister32_lookup[];
1660typedef enum X86CPURegister32
1661{
1662 X86_C_P_U_REGISTER32_EAX = 0,
1663 X86_C_P_U_REGISTER32_EBX = 1,
1664 X86_C_P_U_REGISTER32_ECX = 2,
1665 X86_C_P_U_REGISTER32_EDX = 3,
1666 X86_C_P_U_REGISTER32_ESP = 4,
1667 X86_C_P_U_REGISTER32_EBP = 5,
1668 X86_C_P_U_REGISTER32_ESI = 6,
1669 X86_C_P_U_REGISTER32_EDI = 7,
1670 X86_C_P_U_REGISTER32_MAX = 8,
1671} X86CPURegister32;
1672
1673typedef struct X86CPURegister32List
1674{
1675 union {
1676 X86CPURegister32 value;
1677 uint64_t padding;
1678 };
1679 struct X86CPURegister32List *next;
1680} X86CPURegister32List;
1681
1682
1683typedef struct X86CPUFeatureWordInfo X86CPUFeatureWordInfo;
1684
1685typedef struct X86CPUFeatureWordInfoList
1686{
1687 union {
1688 X86CPUFeatureWordInfo *value;
1689 uint64_t padding;
1690 };
1691 struct X86CPUFeatureWordInfoList *next;
1692} X86CPUFeatureWordInfoList;
1693
1694extern const char *RxState_lookup[];
1695typedef enum RxState
1696{
1697 RX_STATE_NORMAL = 0,
1698 RX_STATE_NONE = 1,
1699 RX_STATE_ALL = 2,
1700 RX_STATE_MAX = 3,
1701} RxState;
1702
1703typedef struct RxStateList
1704{
1705 union {
1706 RxState value;
1707 uint64_t padding;
1708 };
1709 struct RxStateList *next;
1710} RxStateList;
1711
1712
1713typedef struct RxFilterInfo RxFilterInfo;
1714
1715typedef struct RxFilterInfoList
1716{
1717 union {
1718 RxFilterInfo *value;
1719 uint64_t padding;
1720 };
1721 struct RxFilterInfoList *next;
1722} RxFilterInfoList;
1723
1724extern const char *BlockdevDiscardOptions_lookup[];
1725typedef enum BlockdevDiscardOptions
1726{
1727 BLOCKDEV_DISCARD_OPTIONS_IGNORE = 0,
1728 BLOCKDEV_DISCARD_OPTIONS_UNMAP = 1,
1729 BLOCKDEV_DISCARD_OPTIONS_MAX = 2,
1730} BlockdevDiscardOptions;
1731
1732typedef struct BlockdevDiscardOptionsList
1733{
1734 union {
1735 BlockdevDiscardOptions value;
1736 uint64_t padding;
1737 };
1738 struct BlockdevDiscardOptionsList *next;
1739} BlockdevDiscardOptionsList;
1740
1741extern const char *BlockdevAioOptions_lookup[];
1742typedef enum BlockdevAioOptions
1743{
1744 BLOCKDEV_AIO_OPTIONS_THREADS = 0,
1745 BLOCKDEV_AIO_OPTIONS_NATIVE = 1,
1746 BLOCKDEV_AIO_OPTIONS_MAX = 2,
1747} BlockdevAioOptions;
1748
1749typedef struct BlockdevAioOptionsList
1750{
1751 union {
1752 BlockdevAioOptions value;
1753 uint64_t padding;
1754 };
1755 struct BlockdevAioOptionsList *next;
1756} BlockdevAioOptionsList;
1757
1758
1759typedef struct BlockdevCacheOptions BlockdevCacheOptions;
1760
1761typedef struct BlockdevCacheOptionsList
1762{
1763 union {
1764 BlockdevCacheOptions *value;
1765 uint64_t padding;
1766 };
1767 struct BlockdevCacheOptionsList *next;
1768} BlockdevCacheOptionsList;
1769
1770
1771typedef struct BlockdevOptionsBase BlockdevOptionsBase;
1772
1773typedef struct BlockdevOptionsBaseList
1774{
1775 union {
1776 BlockdevOptionsBase *value;
1777 uint64_t padding;
1778 };
1779 struct BlockdevOptionsBaseList *next;
1780} BlockdevOptionsBaseList;
1781
1782
1783typedef struct BlockdevOptionsFile BlockdevOptionsFile;
1784
1785typedef struct BlockdevOptionsFileList
1786{
1787 union {
1788 BlockdevOptionsFile *value;
1789 uint64_t padding;
1790 };
1791 struct BlockdevOptionsFileList *next;
1792} BlockdevOptionsFileList;
1793
1794
1795typedef struct BlockdevOptionsVVFAT BlockdevOptionsVVFAT;
1796
1797typedef struct BlockdevOptionsVVFATList
1798{
1799 union {
1800 BlockdevOptionsVVFAT *value;
1801 uint64_t padding;
1802 };
1803 struct BlockdevOptionsVVFATList *next;
1804} BlockdevOptionsVVFATList;
1805
1806
1807typedef struct BlockdevOptionsGenericFormat BlockdevOptionsGenericFormat;
1808
1809typedef struct BlockdevOptionsGenericFormatList
1810{
1811 union {
1812 BlockdevOptionsGenericFormat *value;
1813 uint64_t padding;
1814 };
1815 struct BlockdevOptionsGenericFormatList *next;
1816} BlockdevOptionsGenericFormatList;
1817
1818
1819typedef struct BlockdevOptionsGenericCOWFormat BlockdevOptionsGenericCOWFormat;
1820
1821typedef struct BlockdevOptionsGenericCOWFormatList
1822{
1823 union {
1824 BlockdevOptionsGenericCOWFormat *value;
1825 uint64_t padding;
1826 };
1827 struct BlockdevOptionsGenericCOWFormatList *next;
1828} BlockdevOptionsGenericCOWFormatList;
1829
1830
1831typedef struct BlockdevOptionsQcow2 BlockdevOptionsQcow2;
1832
1833typedef struct BlockdevOptionsQcow2List
1834{
1835 union {
1836 BlockdevOptionsQcow2 *value;
1837 uint64_t padding;
1838 };
1839 struct BlockdevOptionsQcow2List *next;
1840} BlockdevOptionsQcow2List;
1841
1842
1843typedef struct BlockdevOptions BlockdevOptions;
1844
1845typedef struct BlockdevOptionsList
1846{
1847 union {
1848 BlockdevOptions *value;
1849 uint64_t padding;
1850 };
1851 struct BlockdevOptionsList *next;
1852} BlockdevOptionsList;
1853
1854extern const char *BlockdevOptionsKind_lookup[];
1855typedef enum BlockdevOptionsKind
1856{
1857 BLOCKDEV_OPTIONS_KIND_FILE = 0,
1858 BLOCKDEV_OPTIONS_KIND_HTTP = 1,
1859 BLOCKDEV_OPTIONS_KIND_HTTPS = 2,
1860 BLOCKDEV_OPTIONS_KIND_FTP = 3,
1861 BLOCKDEV_OPTIONS_KIND_FTPS = 4,
1862 BLOCKDEV_OPTIONS_KIND_TFTP = 5,
1863 BLOCKDEV_OPTIONS_KIND_VVFAT = 6,
1864 BLOCKDEV_OPTIONS_KIND_BOCHS = 7,
1865 BLOCKDEV_OPTIONS_KIND_CLOOP = 8,
1866 BLOCKDEV_OPTIONS_KIND_COW = 9,
1867 BLOCKDEV_OPTIONS_KIND_DMG = 10,
1868 BLOCKDEV_OPTIONS_KIND_PARALLELS = 11,
1869 BLOCKDEV_OPTIONS_KIND_QCOW = 12,
1870 BLOCKDEV_OPTIONS_KIND_QCOW2 = 13,
1871 BLOCKDEV_OPTIONS_KIND_QED = 14,
1872 BLOCKDEV_OPTIONS_KIND_RAW = 15,
1873 BLOCKDEV_OPTIONS_KIND_VDI = 16,
1874 BLOCKDEV_OPTIONS_KIND_VHDX = 17,
1875 BLOCKDEV_OPTIONS_KIND_VMDK = 18,
1876 BLOCKDEV_OPTIONS_KIND_VPC = 19,
1877 BLOCKDEV_OPTIONS_KIND_MAX = 20,
1878} BlockdevOptionsKind;
1879
1880
1881typedef struct BlockdevRef BlockdevRef;
1882
1883typedef struct BlockdevRefList
1884{
1885 union {
1886 BlockdevRef *value;
1887 uint64_t padding;
1888 };
1889 struct BlockdevRefList *next;
1890} BlockdevRefList;
1891
1892extern const char *BlockdevRefKind_lookup[];
1893typedef enum BlockdevRefKind
1894{
1895 BLOCKDEV_REF_KIND_DEFINITION = 0,
1896 BLOCKDEV_REF_KIND_REFERENCE = 1,
1897 BLOCKDEV_REF_KIND_MAX = 2,
1898} BlockdevRefKind;
1899
1900#ifndef QAPI_TYPES_BUILTIN_CLEANUP_DECL_H
1901#define QAPI_TYPES_BUILTIN_CLEANUP_DECL_H
1902
1903void qapi_free_strList(strList * obj);
1904void qapi_free_intList(intList * obj);
1905void qapi_free_numberList(numberList * obj);
1906void qapi_free_boolList(boolList * obj);
1907void qapi_free_int8List(int8List * obj);
1908void qapi_free_int16List(int16List * obj);
1909void qapi_free_int32List(int32List * obj);
1910void qapi_free_int64List(int64List * obj);
1911void qapi_free_uint8List(uint8List * obj);
1912void qapi_free_uint16List(uint16List * obj);
1913void qapi_free_uint32List(uint32List * obj);
1914void qapi_free_uint64List(uint64List * obj);
1915
1916#endif /* QAPI_TYPES_BUILTIN_CLEANUP_DECL_H */
1917
1918
1919void qapi_free_ErrorClassList(ErrorClassList * obj);
1920
1921struct NameInfo
1922{
1923 bool has_name;
1924 char * name;
1925};
1926
1927void qapi_free_NameInfoList(NameInfoList * obj);
1928void qapi_free_NameInfo(NameInfo * obj);
1929
1930struct VersionInfo
1931{
1932 struct
1933 {
1934 int64_t major;
1935 int64_t minor;
1936 int64_t micro;
1937 } qemu;
1938 char * package;
1939};
1940
1941void qapi_free_VersionInfoList(VersionInfoList * obj);
1942void qapi_free_VersionInfo(VersionInfo * obj);
1943
1944struct KvmInfo
1945{
1946 bool enabled;
1947 bool present;
1948};
1949
1950void qapi_free_KvmInfoList(KvmInfoList * obj);
1951void qapi_free_KvmInfo(KvmInfo * obj);
1952
1953void qapi_free_RunStateList(RunStateList * obj);
1954
1955struct SnapshotInfo
1956{
1957 char * id;
1958 char * name;
1959 int64_t vm_state_size;
1960 int64_t date_sec;
1961 int64_t date_nsec;
1962 int64_t vm_clock_sec;
1963 int64_t vm_clock_nsec;
1964};
1965
1966void qapi_free_SnapshotInfoList(SnapshotInfoList * obj);
1967void qapi_free_SnapshotInfo(SnapshotInfo * obj);
1968
1969struct ImageInfoSpecificQCow2
1970{
1971 char * compat;
1972 bool has_lazy_refcounts;
1973 bool lazy_refcounts;
1974};
1975
1976void qapi_free_ImageInfoSpecificQCow2List(ImageInfoSpecificQCow2List * obj);
1977void qapi_free_ImageInfoSpecificQCow2(ImageInfoSpecificQCow2 * obj);
1978
1979struct ImageInfoSpecificVmdk
1980{
1981 char * create_type;
1982 int64_t cid;
1983 int64_t parent_cid;
1984 ImageInfoList * extents;
1985};
1986
1987void qapi_free_ImageInfoSpecificVmdkList(ImageInfoSpecificVmdkList * obj);
1988void qapi_free_ImageInfoSpecificVmdk(ImageInfoSpecificVmdk * obj);
1989
1990struct ImageInfoSpecific
1991{
1992 ImageInfoSpecificKind kind;
1993 union {
1994 void *data;
1995 ImageInfoSpecificQCow2 * qcow2;
1996 ImageInfoSpecificVmdk * vmdk;
1997 };
1998};
1999void qapi_free_ImageInfoSpecificList(ImageInfoSpecificList * obj);
2000void qapi_free_ImageInfoSpecific(ImageInfoSpecific * obj);
2001
2002struct ImageInfo
2003{
2004 char * filename;
2005 char * format;
2006 bool has_dirty_flag;
2007 bool dirty_flag;
2008 bool has_actual_size;
2009 int64_t actual_size;
2010 int64_t virtual_size;
2011 bool has_cluster_size;
2012 int64_t cluster_size;
2013 bool has_encrypted;
2014 bool encrypted;
2015 bool has_compressed;
2016 bool compressed;
2017 bool has_backing_filename;
2018 char * backing_filename;
2019 bool has_full_backing_filename;
2020 char * full_backing_filename;
2021 bool has_backing_filename_format;
2022 char * backing_filename_format;
2023 bool has_snapshots;
2024 SnapshotInfoList * snapshots;
2025 bool has_backing_image;
2026 ImageInfo * backing_image;
2027 bool has_format_specific;
2028 ImageInfoSpecific * format_specific;
2029};
2030
2031void qapi_free_ImageInfoList(ImageInfoList * obj);
2032void qapi_free_ImageInfo(ImageInfo * obj);
2033
2034struct ImageCheck
2035{
2036 char * filename;
2037 char * format;
2038 int64_t check_errors;
2039 bool has_image_end_offset;
2040 int64_t image_end_offset;
2041 bool has_corruptions;
2042 int64_t corruptions;
2043 bool has_leaks;
2044 int64_t leaks;
2045 bool has_corruptions_fixed;
2046 int64_t corruptions_fixed;
2047 bool has_leaks_fixed;
2048 int64_t leaks_fixed;
2049 bool has_total_clusters;
2050 int64_t total_clusters;
2051 bool has_allocated_clusters;
2052 int64_t allocated_clusters;
2053 bool has_fragmented_clusters;
2054 int64_t fragmented_clusters;
2055 bool has_compressed_clusters;
2056 int64_t compressed_clusters;
2057};
2058
2059void qapi_free_ImageCheckList(ImageCheckList * obj);
2060void qapi_free_ImageCheck(ImageCheck * obj);
2061
2062struct StatusInfo
2063{
2064 bool running;
2065 bool singlestep;
2066 RunState status;
2067};
2068
2069void qapi_free_StatusInfoList(StatusInfoList * obj);
2070void qapi_free_StatusInfo(StatusInfo * obj);
2071
2072struct UuidInfo
2073{
2074 char * UUID;
2075};
2076
2077void qapi_free_UuidInfoList(UuidInfoList * obj);
2078void qapi_free_UuidInfo(UuidInfo * obj);
2079
2080struct ChardevInfo
2081{
2082 char * label;
2083 char * filename;
2084};
2085
2086void qapi_free_ChardevInfoList(ChardevInfoList * obj);
2087void qapi_free_ChardevInfo(ChardevInfo * obj);
2088
2089void qapi_free_DataFormatList(DataFormatList * obj);
2090
2091struct CommandInfo
2092{
2093 char * name;
2094};
2095
2096void qapi_free_CommandInfoList(CommandInfoList * obj);
2097void qapi_free_CommandInfo(CommandInfo * obj);
2098
2099struct EventInfo
2100{
2101 char * name;
2102};
2103
2104void qapi_free_EventInfoList(EventInfoList * obj);
2105void qapi_free_EventInfo(EventInfo * obj);
2106
2107struct MigrationStats
2108{
2109 int64_t transferred;
2110 int64_t remaining;
2111 int64_t total;
2112 int64_t duplicate;
2113 int64_t skipped;
2114 int64_t normal;
2115 int64_t normal_bytes;
2116 int64_t dirty_pages_rate;
2117 double mbps;
2118};
2119
2120void qapi_free_MigrationStatsList(MigrationStatsList * obj);
2121void qapi_free_MigrationStats(MigrationStats * obj);
2122
2123struct XBZRLECacheStats
2124{
2125 int64_t cache_size;
2126 int64_t bytes;
2127 int64_t pages;
2128 int64_t cache_miss;
2129 int64_t overflow;
2130};
2131
2132void qapi_free_XBZRLECacheStatsList(XBZRLECacheStatsList * obj);
2133void qapi_free_XBZRLECacheStats(XBZRLECacheStats * obj);
2134
2135struct MigrationInfo
2136{
2137 bool has_status;
2138 char * status;
2139 bool has_ram;
2140 MigrationStats * ram;
2141 bool has_disk;
2142 MigrationStats * disk;
2143 bool has_xbzrle_cache;
2144 XBZRLECacheStats * xbzrle_cache;
2145 bool has_total_time;
2146 int64_t total_time;
2147 bool has_expected_downtime;
2148 int64_t expected_downtime;
2149 bool has_downtime;
2150 int64_t downtime;
2151 bool has_setup_time;
2152 int64_t setup_time;
2153};
2154
2155void qapi_free_MigrationInfoList(MigrationInfoList * obj);
2156void qapi_free_MigrationInfo(MigrationInfo * obj);
2157
2158void qapi_free_MigrationCapabilityList(MigrationCapabilityList * obj);
2159
2160struct MigrationCapabilityStatus
2161{
2162 MigrationCapability capability;
2163 bool state;
2164};
2165
2166void qapi_free_MigrationCapabilityStatusList(MigrationCapabilityStatusList * obj);
2167void qapi_free_MigrationCapabilityStatus(MigrationCapabilityStatus * obj);
2168
2169struct MouseInfo
2170{
2171 char * name;
2172 int64_t index;
2173 bool current;
2174 bool absolute;
2175};
2176
2177void qapi_free_MouseInfoList(MouseInfoList * obj);
2178void qapi_free_MouseInfo(MouseInfo * obj);
2179
2180struct CpuInfo
2181{
2182 int64_t CPU;
2183 bool current;
2184 bool halted;
2185 bool has_pc;
2186 int64_t pc;
2187 bool has_nip;
2188 int64_t nip;
2189 bool has_npc;
2190 int64_t npc;
2191 bool has_PC;
2192 int64_t PC;
2193 int64_t thread_id;
2194};
2195
2196void qapi_free_CpuInfoList(CpuInfoList * obj);
2197void qapi_free_CpuInfo(CpuInfo * obj);
2198
2199struct BlockDeviceInfo
2200{
2201 char * file;
2202 bool ro;
2203 char * drv;
2204 bool has_backing_file;
2205 char * backing_file;
2206 int64_t backing_file_depth;
2207 bool encrypted;
2208 bool encryption_key_missing;
2209 int64_t bps;
2210 int64_t bps_rd;
2211 int64_t bps_wr;
2212 int64_t iops;
2213 int64_t iops_rd;
2214 int64_t iops_wr;
2215 ImageInfo * image;
2216 bool has_bps_max;
2217 int64_t bps_max;
2218 bool has_bps_rd_max;
2219 int64_t bps_rd_max;
2220 bool has_bps_wr_max;
2221 int64_t bps_wr_max;
2222 bool has_iops_max;
2223 int64_t iops_max;
2224 bool has_iops_rd_max;
2225 int64_t iops_rd_max;
2226 bool has_iops_wr_max;
2227 int64_t iops_wr_max;
2228 bool has_iops_size;
2229 int64_t iops_size;
2230};
2231
2232void qapi_free_BlockDeviceInfoList(BlockDeviceInfoList * obj);
2233void qapi_free_BlockDeviceInfo(BlockDeviceInfo * obj);
2234
2235void qapi_free_BlockDeviceIoStatusList(BlockDeviceIoStatusList * obj);
2236
2237struct BlockDeviceMapEntry
2238{
2239 int64_t start;
2240 int64_t length;
2241 int64_t depth;
2242 bool zero;
2243 bool data;
2244 bool has_offset;
2245 int64_t offset;
2246};
2247
2248void qapi_free_BlockDeviceMapEntryList(BlockDeviceMapEntryList * obj);
2249void qapi_free_BlockDeviceMapEntry(BlockDeviceMapEntry * obj);
2250
2251struct BlockDirtyInfo
2252{
2253 int64_t count;
2254 int64_t granularity;
2255};
2256
2257void qapi_free_BlockDirtyInfoList(BlockDirtyInfoList * obj);
2258void qapi_free_BlockDirtyInfo(BlockDirtyInfo * obj);
2259
2260struct BlockInfo
2261{
2262 char * device;
2263 char * type;
2264 bool removable;
2265 bool locked;
2266 bool has_inserted;
2267 BlockDeviceInfo * inserted;
2268 bool has_tray_open;
2269 bool tray_open;
2270 bool has_io_status;
2271 BlockDeviceIoStatus io_status;
2272 bool has_dirty_bitmaps;
2273 BlockDirtyInfoList * dirty_bitmaps;
2274};
2275
2276void qapi_free_BlockInfoList(BlockInfoList * obj);
2277void qapi_free_BlockInfo(BlockInfo * obj);
2278
2279struct BlockDeviceStats
2280{
2281 int64_t rd_bytes;
2282 int64_t wr_bytes;
2283 int64_t rd_operations;
2284 int64_t wr_operations;
2285 int64_t flush_operations;
2286 int64_t flush_total_time_ns;
2287 int64_t wr_total_time_ns;
2288 int64_t rd_total_time_ns;
2289 int64_t wr_highest_offset;
2290};
2291
2292void qapi_free_BlockDeviceStatsList(BlockDeviceStatsList * obj);
2293void qapi_free_BlockDeviceStats(BlockDeviceStats * obj);
2294
2295struct BlockStats
2296{
2297 bool has_device;
2298 char * device;
2299 BlockDeviceStats * stats;
2300 bool has_parent;
2301 BlockStats * parent;
2302};
2303
2304void qapi_free_BlockStatsList(BlockStatsList * obj);
2305void qapi_free_BlockStats(BlockStats * obj);
2306
2307struct VncClientInfo
2308{
2309 char * host;
2310 char * family;
2311 char * service;
2312 bool has_x509_dname;
2313 char * x509_dname;
2314 bool has_sasl_username;
2315 char * sasl_username;
2316};
2317
2318void qapi_free_VncClientInfoList(VncClientInfoList * obj);
2319void qapi_free_VncClientInfo(VncClientInfo * obj);
2320
2321struct VncInfo
2322{
2323 bool enabled;
2324 bool has_host;
2325 char * host;
2326 bool has_family;
2327 char * family;
2328 bool has_service;
2329 char * service;
2330 bool has_auth;
2331 char * auth;
2332 bool has_clients;
2333 VncClientInfoList * clients;
2334};
2335
2336void qapi_free_VncInfoList(VncInfoList * obj);
2337void qapi_free_VncInfo(VncInfo * obj);
2338
2339struct SpiceChannel
2340{
2341 char * host;
2342 char * family;
2343 char * port;
2344 int64_t connection_id;
2345 int64_t channel_type;
2346 int64_t channel_id;
2347 bool tls;
2348};
2349
2350void qapi_free_SpiceChannelList(SpiceChannelList * obj);
2351void qapi_free_SpiceChannel(SpiceChannel * obj);
2352
2353void qapi_free_SpiceQueryMouseModeList(SpiceQueryMouseModeList * obj);
2354
2355struct SpiceInfo
2356{
2357 bool enabled;
2358 bool migrated;
2359 bool has_host;
2360 char * host;
2361 bool has_port;
2362 int64_t port;
2363 bool has_tls_port;
2364 int64_t tls_port;
2365 bool has_auth;
2366 char * auth;
2367 bool has_compiled_version;
2368 char * compiled_version;
2369 SpiceQueryMouseMode mouse_mode;
2370 bool has_channels;
2371 SpiceChannelList * channels;
2372};
2373
2374void qapi_free_SpiceInfoList(SpiceInfoList * obj);
2375void qapi_free_SpiceInfo(SpiceInfo * obj);
2376
2377struct BalloonInfo
2378{
2379 int64_t actual;
2380};
2381
2382void qapi_free_BalloonInfoList(BalloonInfoList * obj);
2383void qapi_free_BalloonInfo(BalloonInfo * obj);
2384
2385struct PciMemoryRange
2386{
2387 int64_t base;
2388 int64_t limit;
2389};
2390
2391void qapi_free_PciMemoryRangeList(PciMemoryRangeList * obj);
2392void qapi_free_PciMemoryRange(PciMemoryRange * obj);
2393
2394struct PciMemoryRegion
2395{
2396 int64_t bar;
2397 char * type;
2398 int64_t address;
2399 int64_t size;
2400 bool has_prefetch;
2401 bool prefetch;
2402 bool has_mem_type_64;
2403 bool mem_type_64;
2404};
2405
2406void qapi_free_PciMemoryRegionList(PciMemoryRegionList * obj);
2407void qapi_free_PciMemoryRegion(PciMemoryRegion * obj);
2408
2409struct PciBridgeInfo
2410{
2411 struct
2412 {
2413 int64_t number;
2414 int64_t secondary;
2415 int64_t subordinate;
2416 PciMemoryRange * io_range;
2417 PciMemoryRange * memory_range;
2418 PciMemoryRange * prefetchable_range;
2419 } bus;
2420 bool has_devices;
2421 PciDeviceInfoList * devices;
2422};
2423
2424void qapi_free_PciBridgeInfoList(PciBridgeInfoList * obj);
2425void qapi_free_PciBridgeInfo(PciBridgeInfo * obj);
2426
2427struct PciDeviceInfo
2428{
2429 int64_t bus;
2430 int64_t slot;
2431 int64_t function;
2432 struct
2433 {
2434 bool has_desc;
2435 char * desc;
2436 int64_t q_class;
2437 } class_info;
2438 struct
2439 {
2440 int64_t device;
2441 int64_t vendor;
2442 } id;
2443 bool has_irq;
2444 int64_t irq;
2445 char * qdev_id;
2446 bool has_pci_bridge;
2447 PciBridgeInfo * pci_bridge;
2448 PciMemoryRegionList * regions;
2449};
2450
2451void qapi_free_PciDeviceInfoList(PciDeviceInfoList * obj);
2452void qapi_free_PciDeviceInfo(PciDeviceInfo * obj);
2453
2454struct PciInfo
2455{
2456 int64_t bus;
2457 PciDeviceInfoList * devices;
2458};
2459
2460void qapi_free_PciInfoList(PciInfoList * obj);
2461void qapi_free_PciInfo(PciInfo * obj);
2462
2463void qapi_free_BlockdevOnErrorList(BlockdevOnErrorList * obj);
2464
2465void qapi_free_MirrorSyncModeList(MirrorSyncModeList * obj);
2466
2467void qapi_free_BlockJobTypeList(BlockJobTypeList * obj);
2468
2469struct BlockJobInfo
2470{
2471 char * type;
2472 char * device;
2473 int64_t len;
2474 int64_t offset;
2475 bool busy;
2476 bool paused;
2477 int64_t speed;
2478 BlockDeviceIoStatus io_status;
2479};
2480
2481void qapi_free_BlockJobInfoList(BlockJobInfoList * obj);
2482void qapi_free_BlockJobInfo(BlockJobInfo * obj);
2483
2484void qapi_free_NewImageModeList(NewImageModeList * obj);
2485
2486struct BlockdevSnapshot
2487{
2488 char * device;
2489 char * snapshot_file;
2490 bool has_format;
2491 char * format;
2492 bool has_mode;
2493 NewImageMode mode;
2494};
2495
2496void qapi_free_BlockdevSnapshotList(BlockdevSnapshotList * obj);
2497void qapi_free_BlockdevSnapshot(BlockdevSnapshot * obj);
2498
2499struct BlockdevSnapshotInternal
2500{
2501 char * device;
2502 char * name;
2503};
2504
2505void qapi_free_BlockdevSnapshotInternalList(BlockdevSnapshotInternalList * obj);
2506void qapi_free_BlockdevSnapshotInternal(BlockdevSnapshotInternal * obj);
2507
2508struct DriveBackup
2509{
2510 char * device;
2511 char * target;
2512 bool has_format;
2513 char * format;
2514 MirrorSyncMode sync;
2515 bool has_mode;
2516 NewImageMode mode;
2517 bool has_speed;
2518 int64_t speed;
2519 bool has_on_source_error;
2520 BlockdevOnError on_source_error;
2521 bool has_on_target_error;
2522 BlockdevOnError on_target_error;
2523};
2524
2525void qapi_free_DriveBackupList(DriveBackupList * obj);
2526void qapi_free_DriveBackup(DriveBackup * obj);
2527
2528struct Abort
2529{
2530};
2531
2532void qapi_free_AbortList(AbortList * obj);
2533void qapi_free_Abort(Abort * obj);
2534
2535struct TransactionAction
2536{
2537 TransactionActionKind kind;
2538 union {
2539 void *data;
2540 BlockdevSnapshot * blockdev_snapshot_sync;
2541 DriveBackup * drive_backup;
2542 Abort * abort;
2543 BlockdevSnapshotInternal * blockdev_snapshot_internal_sync;
2544 };
2545};
2546void qapi_free_TransactionActionList(TransactionActionList * obj);
2547void qapi_free_TransactionAction(TransactionAction * obj);
2548
2549struct ObjectPropertyInfo
2550{
2551 char * name;
2552 char * type;
2553};
2554
2555void qapi_free_ObjectPropertyInfoList(ObjectPropertyInfoList * obj);
2556void qapi_free_ObjectPropertyInfo(ObjectPropertyInfo * obj);
2557
2558struct ObjectTypeInfo
2559{
2560 char * name;
2561};
2562
2563void qapi_free_ObjectTypeInfoList(ObjectTypeInfoList * obj);
2564void qapi_free_ObjectTypeInfo(ObjectTypeInfo * obj);
2565
2566struct DevicePropertyInfo
2567{
2568 char * name;
2569 char * type;
2570};
2571
2572void qapi_free_DevicePropertyInfoList(DevicePropertyInfoList * obj);
2573void qapi_free_DevicePropertyInfo(DevicePropertyInfo * obj);
2574
2575struct NetdevNoneOptions
2576{
2577};
2578
2579void qapi_free_NetdevNoneOptionsList(NetdevNoneOptionsList * obj);
2580void qapi_free_NetdevNoneOptions(NetdevNoneOptions * obj);
2581
2582struct NetLegacyNicOptions
2583{
2584 bool has_netdev;
2585 char * netdev;
2586 bool has_macaddr;
2587 char * macaddr;
2588 bool has_model;
2589 char * model;
2590 bool has_addr;
2591 char * addr;
2592 bool has_vectors;
2593 uint32_t vectors;
2594};
2595
2596void qapi_free_NetLegacyNicOptionsList(NetLegacyNicOptionsList * obj);
2597void qapi_free_NetLegacyNicOptions(NetLegacyNicOptions * obj);
2598
2599struct String
2600{
2601 char * str;
2602};
2603
2604void qapi_free_StringList(StringList * obj);
2605void qapi_free_String(String * obj);
2606
2607struct NetdevUserOptions
2608{
2609 bool has_hostname;
2610 char * hostname;
2611 bool has_q_restrict;
2612 bool q_restrict;
2613 bool has_ip;
2614 char * ip;
2615 bool has_net;
2616 char * net;
2617 bool has_host;
2618 char * host;
2619 bool has_tftp;
2620 char * tftp;
2621 bool has_bootfile;
2622 char * bootfile;
2623 bool has_dhcpstart;
2624 char * dhcpstart;
2625 bool has_dns;
2626 char * dns;
2627 bool has_dnssearch;
2628 StringList * dnssearch;
2629 bool has_smb;
2630 char * smb;
2631 bool has_smbserver;
2632 char * smbserver;
2633 bool has_hostfwd;
2634 StringList * hostfwd;
2635 bool has_guestfwd;
2636 StringList * guestfwd;
2637};
2638
2639void qapi_free_NetdevUserOptionsList(NetdevUserOptionsList * obj);
2640void qapi_free_NetdevUserOptions(NetdevUserOptions * obj);
2641
2642struct NetdevTapOptions
2643{
2644 bool has_ifname;
2645 char * ifname;
2646 bool has_fd;
2647 char * fd;
2648 bool has_fds;
2649 char * fds;
2650 bool has_script;
2651 char * script;
2652 bool has_downscript;
2653 char * downscript;
2654 bool has_helper;
2655 char * helper;
2656 bool has_sndbuf;
2657 uint64_t sndbuf;
2658 bool has_vnet_hdr;
2659 bool vnet_hdr;
2660 bool has_vhost;
2661 bool vhost;
2662 bool has_vhostfd;
2663 char * vhostfd;
2664 bool has_vhostfds;
2665 char * vhostfds;
2666 bool has_vhostforce;
2667 bool vhostforce;
2668 bool has_queues;
2669 uint32_t queues;
2670};
2671
2672void qapi_free_NetdevTapOptionsList(NetdevTapOptionsList * obj);
2673void qapi_free_NetdevTapOptions(NetdevTapOptions * obj);
2674
2675struct NetdevSocketOptions
2676{
2677 bool has_fd;
2678 char * fd;
2679 bool has_listen;
2680 char * listen;
2681 bool has_connect;
2682 char * connect;
2683 bool has_mcast;
2684 char * mcast;
2685 bool has_localaddr;
2686 char * localaddr;
2687 bool has_udp;
2688 char * udp;
2689};
2690
2691void qapi_free_NetdevSocketOptionsList(NetdevSocketOptionsList * obj);
2692void qapi_free_NetdevSocketOptions(NetdevSocketOptions * obj);
2693
2694struct NetdevVdeOptions
2695{
2696 bool has_sock;
2697 char * sock;
2698 bool has_port;
2699 uint16_t port;
2700 bool has_group;
2701 char * group;
2702 bool has_mode;
2703 uint16_t mode;
2704};
2705
2706void qapi_free_NetdevVdeOptionsList(NetdevVdeOptionsList * obj);
2707void qapi_free_NetdevVdeOptions(NetdevVdeOptions * obj);
2708
2709struct NetdevDumpOptions
2710{
2711 bool has_len;
2712 uint64_t len;
2713 bool has_file;
2714 char * file;
2715};
2716
2717void qapi_free_NetdevDumpOptionsList(NetdevDumpOptionsList * obj);
2718void qapi_free_NetdevDumpOptions(NetdevDumpOptions * obj);
2719
2720struct NetdevBridgeOptions
2721{
2722 bool has_br;
2723 char * br;
2724 bool has_helper;
2725 char * helper;
2726};
2727
2728void qapi_free_NetdevBridgeOptionsList(NetdevBridgeOptionsList * obj);
2729void qapi_free_NetdevBridgeOptions(NetdevBridgeOptions * obj);
2730
2731struct NetdevHubPortOptions
2732{
2733 int32_t hubid;
2734};
2735
2736void qapi_free_NetdevHubPortOptionsList(NetdevHubPortOptionsList * obj);
2737void qapi_free_NetdevHubPortOptions(NetdevHubPortOptions * obj);
2738
2739struct NetdevNetmapOptions
2740{
2741 char * ifname;
2742 bool has_devname;
2743 char * devname;
2744};
2745
2746void qapi_free_NetdevNetmapOptionsList(NetdevNetmapOptionsList * obj);
2747void qapi_free_NetdevNetmapOptions(NetdevNetmapOptions * obj);
2748
2749struct NetClientOptions
2750{
2751 NetClientOptionsKind kind;
2752 union {
2753 void *data;
2754 NetdevNoneOptions * none;
2755 NetLegacyNicOptions * nic;
2756 NetdevUserOptions * user;
2757 NetdevTapOptions * tap;
2758 NetdevSocketOptions * socket;
2759 NetdevVdeOptions * vde;
2760 NetdevDumpOptions * dump;
2761 NetdevBridgeOptions * bridge;
2762 NetdevHubPortOptions * hubport;
2763 NetdevNetmapOptions * netmap;
2764 };
2765};
2766void qapi_free_NetClientOptionsList(NetClientOptionsList * obj);
2767void qapi_free_NetClientOptions(NetClientOptions * obj);
2768
2769struct NetLegacy
2770{
2771 bool has_vlan;
2772 int32_t vlan;
2773 bool has_id;
2774 char * id;
2775 bool has_name;
2776 char * name;
2777 NetClientOptions * opts;
2778};
2779
2780void qapi_free_NetLegacyList(NetLegacyList * obj);
2781void qapi_free_NetLegacy(NetLegacy * obj);
2782
2783struct Netdev
2784{
2785 char * id;
2786 NetClientOptions * opts;
2787};
2788
2789void qapi_free_NetdevList(NetdevList * obj);
2790void qapi_free_Netdev(Netdev * obj);
2791
2792struct InetSocketAddress
2793{
2794 char * host;
2795 char * port;
2796 bool has_to;
2797 uint16_t to;
2798 bool has_ipv4;
2799 bool ipv4;
2800 bool has_ipv6;
2801 bool ipv6;
2802};
2803
2804void qapi_free_InetSocketAddressList(InetSocketAddressList * obj);
2805void qapi_free_InetSocketAddress(InetSocketAddress * obj);
2806
2807struct UnixSocketAddress
2808{
2809 char * path;
2810};
2811
2812void qapi_free_UnixSocketAddressList(UnixSocketAddressList * obj);
2813void qapi_free_UnixSocketAddress(UnixSocketAddress * obj);
2814
2815struct SocketAddress
2816{
2817 SocketAddressKind kind;
2818 union {
2819 void *data;
2820 InetSocketAddress * inet;
2821 UnixSocketAddress * q_unix;
2822 String * fd;
2823 };
2824};
2825void qapi_free_SocketAddressList(SocketAddressList * obj);
2826void qapi_free_SocketAddress(SocketAddress * obj);
2827
2828struct MachineInfo
2829{
2830 char * name;
2831 bool has_alias;
2832 char * alias;
2833 bool has_is_default;
2834 bool is_default;
2835 int64_t cpu_max;
2836};
2837
2838void qapi_free_MachineInfoList(MachineInfoList * obj);
2839void qapi_free_MachineInfo(MachineInfo * obj);
2840
2841struct CpuDefinitionInfo
2842{
2843 char * name;
2844};
2845
2846void qapi_free_CpuDefinitionInfoList(CpuDefinitionInfoList * obj);
2847void qapi_free_CpuDefinitionInfo(CpuDefinitionInfo * obj);
2848
2849struct AddfdInfo
2850{
2851 int64_t fdset_id;
2852 int64_t fd;
2853};
2854
2855void qapi_free_AddfdInfoList(AddfdInfoList * obj);
2856void qapi_free_AddfdInfo(AddfdInfo * obj);
2857
2858struct FdsetFdInfo
2859{
2860 int64_t fd;
2861 bool has_opaque;
2862 char * opaque;
2863};
2864
2865void qapi_free_FdsetFdInfoList(FdsetFdInfoList * obj);
2866void qapi_free_FdsetFdInfo(FdsetFdInfo * obj);
2867
2868struct FdsetInfo
2869{
2870 int64_t fdset_id;
2871 FdsetFdInfoList * fds;
2872};
2873
2874void qapi_free_FdsetInfoList(FdsetInfoList * obj);
2875void qapi_free_FdsetInfo(FdsetInfo * obj);
2876
2877struct TargetInfo
2878{
2879 char * arch;
2880};
2881
2882void qapi_free_TargetInfoList(TargetInfoList * obj);
2883void qapi_free_TargetInfo(TargetInfo * obj);
2884
2885void qapi_free_QKeyCodeList(QKeyCodeList * obj);
2886
2887struct KeyValue
2888{
2889 KeyValueKind kind;
2890 union {
2891 void *data;
2892 int64_t number;
2893 QKeyCode qcode;
2894 };
2895};
2896void qapi_free_KeyValueList(KeyValueList * obj);
2897void qapi_free_KeyValue(KeyValue * obj);
2898
2899struct ChardevFile
2900{
2901 bool has_in;
2902 char * in;
2903 char * out;
2904};
2905
2906void qapi_free_ChardevFileList(ChardevFileList * obj);
2907void qapi_free_ChardevFile(ChardevFile * obj);
2908
2909struct ChardevHostdev
2910{
2911 char * device;
2912};
2913
2914void qapi_free_ChardevHostdevList(ChardevHostdevList * obj);
2915void qapi_free_ChardevHostdev(ChardevHostdev * obj);
2916
2917struct ChardevSocket
2918{
2919 SocketAddress * addr;
2920 bool has_server;
2921 bool server;
2922 bool has_wait;
2923 bool wait;
2924 bool has_nodelay;
2925 bool nodelay;
2926 bool has_telnet;
2927 bool telnet;
2928};
2929
2930void qapi_free_ChardevSocketList(ChardevSocketList * obj);
2931void qapi_free_ChardevSocket(ChardevSocket * obj);
2932
2933struct ChardevUdp
2934{
2935 SocketAddress * remote;
2936 bool has_local;
2937 SocketAddress * local;
2938};
2939
2940void qapi_free_ChardevUdpList(ChardevUdpList * obj);
2941void qapi_free_ChardevUdp(ChardevUdp * obj);
2942
2943struct ChardevMux
2944{
2945 char * chardev;
2946};
2947
2948void qapi_free_ChardevMuxList(ChardevMuxList * obj);
2949void qapi_free_ChardevMux(ChardevMux * obj);
2950
2951struct ChardevStdio
2952{
2953 bool has_signal;
2954 bool signal;
2955};
2956
2957void qapi_free_ChardevStdioList(ChardevStdioList * obj);
2958void qapi_free_ChardevStdio(ChardevStdio * obj);
2959
2960struct ChardevSpiceChannel
2961{
2962 char * type;
2963};
2964
2965void qapi_free_ChardevSpiceChannelList(ChardevSpiceChannelList * obj);
2966void qapi_free_ChardevSpiceChannel(ChardevSpiceChannel * obj);
2967
2968struct ChardevSpicePort
2969{
2970 char * fqdn;
2971};
2972
2973void qapi_free_ChardevSpicePortList(ChardevSpicePortList * obj);
2974void qapi_free_ChardevSpicePort(ChardevSpicePort * obj);
2975
2976struct ChardevVC
2977{
2978 bool has_width;
2979 int64_t width;
2980 bool has_height;
2981 int64_t height;
2982 bool has_cols;
2983 int64_t cols;
2984 bool has_rows;
2985 int64_t rows;
2986};
2987
2988void qapi_free_ChardevVCList(ChardevVCList * obj);
2989void qapi_free_ChardevVC(ChardevVC * obj);
2990
2991struct ChardevRingbuf
2992{
2993 bool has_size;
2994 int64_t size;
2995};
2996
2997void qapi_free_ChardevRingbufList(ChardevRingbufList * obj);
2998void qapi_free_ChardevRingbuf(ChardevRingbuf * obj);
2999
3000struct ChardevDummy
3001{
3002};
3003
3004void qapi_free_ChardevDummyList(ChardevDummyList * obj);
3005void qapi_free_ChardevDummy(ChardevDummy * obj);
3006
3007struct ChardevBackend
3008{
3009 ChardevBackendKind kind;
3010 union {
3011 void *data;
3012 ChardevFile * file;
3013 ChardevHostdev * serial;
3014 ChardevHostdev * parallel;
3015 ChardevHostdev * pipe;
3016 ChardevSocket * socket;
3017 ChardevUdp * udp;
3018 ChardevDummy * pty;
3019 ChardevDummy * null;
3020 ChardevMux * mux;
3021 ChardevDummy * msmouse;
3022 ChardevDummy * braille;
3023 ChardevStdio * stdio;
3024 ChardevDummy * console;
3025 ChardevSpiceChannel * spicevmc;
3026 ChardevSpicePort * spiceport;
3027 ChardevVC * vc;
3028 ChardevRingbuf * ringbuf;
3029 ChardevRingbuf * memory;
3030 };
3031};
3032void qapi_free_ChardevBackendList(ChardevBackendList * obj);
3033void qapi_free_ChardevBackend(ChardevBackend * obj);
3034
3035struct ChardevReturn
3036{
3037 bool has_pty;
3038 char * pty;
3039};
3040
3041void qapi_free_ChardevReturnList(ChardevReturnList * obj);
3042void qapi_free_ChardevReturn(ChardevReturn * obj);
3043
3044void qapi_free_TpmModelList(TpmModelList * obj);
3045
3046void qapi_free_TpmTypeList(TpmTypeList * obj);
3047
3048struct TPMPassthroughOptions
3049{
3050 bool has_path;
3051 char * path;
3052 bool has_cancel_path;
3053 char * cancel_path;
3054};
3055
3056void qapi_free_TPMPassthroughOptionsList(TPMPassthroughOptionsList * obj);
3057void qapi_free_TPMPassthroughOptions(TPMPassthroughOptions * obj);
3058
3059struct TpmTypeOptions
3060{
3061 TpmTypeOptionsKind kind;
3062 union {
3063 void *data;
3064 TPMPassthroughOptions * passthrough;
3065 };
3066};
3067void qapi_free_TpmTypeOptionsList(TpmTypeOptionsList * obj);
3068void qapi_free_TpmTypeOptions(TpmTypeOptions * obj);
3069
3070struct TPMInfo
3071{
3072 char * id;
3073 TpmModel model;
3074 TpmTypeOptions * options;
3075};
3076
3077void qapi_free_TPMInfoList(TPMInfoList * obj);
3078void qapi_free_TPMInfo(TPMInfo * obj);
3079
3080struct AcpiTableOptions
3081{
3082 bool has_sig;
3083 char * sig;
3084 bool has_rev;
3085 uint8_t rev;
3086 bool has_oem_id;
3087 char * oem_id;
3088 bool has_oem_table_id;
3089 char * oem_table_id;
3090 bool has_oem_rev;
3091 uint32_t oem_rev;
3092 bool has_asl_compiler_id;
3093 char * asl_compiler_id;
3094 bool has_asl_compiler_rev;
3095 uint32_t asl_compiler_rev;
3096 bool has_file;
3097 char * file;
3098 bool has_data;
3099 char * data;
3100};
3101
3102void qapi_free_AcpiTableOptionsList(AcpiTableOptionsList * obj);
3103void qapi_free_AcpiTableOptions(AcpiTableOptions * obj);
3104
3105void qapi_free_CommandLineParameterTypeList(CommandLineParameterTypeList * obj);
3106
3107struct CommandLineParameterInfo
3108{
3109 char * name;
3110 CommandLineParameterType type;
3111 bool has_help;
3112 char * help;
3113};
3114
3115void qapi_free_CommandLineParameterInfoList(CommandLineParameterInfoList * obj);
3116void qapi_free_CommandLineParameterInfo(CommandLineParameterInfo * obj);
3117
3118struct CommandLineOptionInfo
3119{
3120 char * option;
3121 CommandLineParameterInfoList * parameters;
3122};
3123
3124void qapi_free_CommandLineOptionInfoList(CommandLineOptionInfoList * obj);
3125void qapi_free_CommandLineOptionInfo(CommandLineOptionInfo * obj);
3126
3127void qapi_free_X86CPURegister32List(X86CPURegister32List * obj);
3128
3129struct X86CPUFeatureWordInfo
3130{
3131 int64_t cpuid_input_eax;
3132 bool has_cpuid_input_ecx;
3133 int64_t cpuid_input_ecx;
3134 X86CPURegister32 cpuid_register;
3135 int64_t features;
3136};
3137
3138void qapi_free_X86CPUFeatureWordInfoList(X86CPUFeatureWordInfoList * obj);
3139void qapi_free_X86CPUFeatureWordInfo(X86CPUFeatureWordInfo * obj);
3140
3141void qapi_free_RxStateList(RxStateList * obj);
3142
3143struct RxFilterInfo
3144{
3145 char * name;
3146 bool promiscuous;
3147 RxState multicast;
3148 RxState unicast;
3149 bool broadcast_allowed;
3150 bool multicast_overflow;
3151 bool unicast_overflow;
3152 char * main_mac;
3153 intList * vlan_table;
3154 strList * unicast_table;
3155 strList * multicast_table;
3156};
3157
3158void qapi_free_RxFilterInfoList(RxFilterInfoList * obj);
3159void qapi_free_RxFilterInfo(RxFilterInfo * obj);
3160
3161void qapi_free_BlockdevDiscardOptionsList(BlockdevDiscardOptionsList * obj);
3162
3163void qapi_free_BlockdevAioOptionsList(BlockdevAioOptionsList * obj);
3164
3165struct BlockdevCacheOptions
3166{
3167 bool has_writeback;
3168 bool writeback;
3169 bool has_direct;
3170 bool direct;
3171 bool has_no_flush;
3172 bool no_flush;
3173};
3174
3175void qapi_free_BlockdevCacheOptionsList(BlockdevCacheOptionsList * obj);
3176void qapi_free_BlockdevCacheOptions(BlockdevCacheOptions * obj);
3177
3178struct BlockdevOptionsBase
3179{
3180 char * driver;
3181 bool has_id;
3182 char * id;
3183 bool has_discard;
3184 BlockdevDiscardOptions discard;
3185 bool has_cache;
3186 BlockdevCacheOptions * cache;
3187 bool has_aio;
3188 BlockdevAioOptions aio;
3189 bool has_rerror;
3190 BlockdevOnError rerror;
3191 bool has_werror;
3192 BlockdevOnError werror;
3193 bool has_read_only;
3194 bool read_only;
3195};
3196
3197void qapi_free_BlockdevOptionsBaseList(BlockdevOptionsBaseList * obj);
3198void qapi_free_BlockdevOptionsBase(BlockdevOptionsBase * obj);
3199
3200struct BlockdevOptionsFile
3201{
3202 char * filename;
3203};
3204
3205void qapi_free_BlockdevOptionsFileList(BlockdevOptionsFileList * obj);
3206void qapi_free_BlockdevOptionsFile(BlockdevOptionsFile * obj);
3207
3208struct BlockdevOptionsVVFAT
3209{
3210 char * dir;
3211 bool has_fat_type;
3212 int64_t fat_type;
3213 bool has_floppy;
3214 bool floppy;
3215 bool has_rw;
3216 bool rw;
3217};
3218
3219void qapi_free_BlockdevOptionsVVFATList(BlockdevOptionsVVFATList * obj);
3220void qapi_free_BlockdevOptionsVVFAT(BlockdevOptionsVVFAT * obj);
3221
3222struct BlockdevOptionsGenericFormat
3223{
3224 BlockdevRef * file;
3225};
3226
3227void qapi_free_BlockdevOptionsGenericFormatList(BlockdevOptionsGenericFormatList * obj);
3228void qapi_free_BlockdevOptionsGenericFormat(BlockdevOptionsGenericFormat * obj);
3229
3230struct BlockdevOptionsGenericCOWFormat
3231{
3232 BlockdevOptionsGenericFormat * base;
3233 bool has_backing;
3234 BlockdevRef * backing;
3235};
3236
3237void qapi_free_BlockdevOptionsGenericCOWFormatList(BlockdevOptionsGenericCOWFormatList * obj);
3238void qapi_free_BlockdevOptionsGenericCOWFormat(BlockdevOptionsGenericCOWFormat * obj);
3239
3240struct BlockdevOptionsQcow2
3241{
3242 BlockdevOptionsGenericCOWFormat * base;
3243 bool has_lazy_refcounts;
3244 bool lazy_refcounts;
3245 bool has_pass_discard_request;
3246 bool pass_discard_request;
3247 bool has_pass_discard_snapshot;
3248 bool pass_discard_snapshot;
3249 bool has_pass_discard_other;
3250 bool pass_discard_other;
3251};
3252
3253void qapi_free_BlockdevOptionsQcow2List(BlockdevOptionsQcow2List * obj);
3254void qapi_free_BlockdevOptionsQcow2(BlockdevOptionsQcow2 * obj);
3255
3256struct BlockdevOptions
3257{
3258 BlockdevOptionsKind kind;
3259 union {
3260 void *data;
3261 BlockdevOptionsFile * file;
3262 BlockdevOptionsFile * http;
3263 BlockdevOptionsFile * https;
3264 BlockdevOptionsFile * ftp;
3265 BlockdevOptionsFile * ftps;
3266 BlockdevOptionsFile * tftp;
3267 BlockdevOptionsVVFAT * vvfat;
3268 BlockdevOptionsGenericFormat * bochs;
3269 BlockdevOptionsGenericFormat * cloop;
3270 BlockdevOptionsGenericCOWFormat * cow;
3271 BlockdevOptionsGenericFormat * dmg;
3272 BlockdevOptionsGenericFormat * parallels;
3273 BlockdevOptionsGenericCOWFormat * qcow;
3274 BlockdevOptionsQcow2 * qcow2;
3275 BlockdevOptionsGenericCOWFormat * qed;
3276 BlockdevOptionsGenericFormat * raw;
3277 BlockdevOptionsGenericFormat * vdi;
3278 BlockdevOptionsGenericFormat * vhdx;
3279 BlockdevOptionsGenericCOWFormat * vmdk;
3280 BlockdevOptionsGenericFormat * vpc;
3281 };
3282 bool has_id;
3283 char * id;
3284 bool has_discard;
3285 BlockdevDiscardOptions discard;
3286 bool has_cache;
3287 BlockdevCacheOptions * cache;
3288 bool has_aio;
3289 BlockdevAioOptions aio;
3290 bool has_rerror;
3291 BlockdevOnError rerror;
3292 bool has_werror;
3293 BlockdevOnError werror;
3294 bool has_read_only;
3295 bool read_only;
3296};
3297void qapi_free_BlockdevOptionsList(BlockdevOptionsList * obj);
3298void qapi_free_BlockdevOptions(BlockdevOptions * obj);
3299
3300struct BlockdevRef
3301{
3302 BlockdevRefKind kind;
3303 union {
3304 void *data;
3305 BlockdevOptions * definition;
3306 char * reference;
3307 };
3308};
3309extern const int BlockdevRef_qtypes[];
3310void qapi_free_BlockdevRefList(BlockdevRefList * obj);
3311void qapi_free_BlockdevRef(BlockdevRef * obj);
3312
3313#endif