• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* 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 
27 typedef struct strList
28 {
29     union {
30         char * value;
31         uint64_t padding;
32     };
33     struct strList *next;
34 } strList;
35 
36 typedef struct intList
37 {
38     union {
39         int64_t value;
40         uint64_t padding;
41     };
42     struct intList *next;
43 } intList;
44 
45 typedef struct numberList
46 {
47     union {
48         double value;
49         uint64_t padding;
50     };
51     struct numberList *next;
52 } numberList;
53 
54 typedef struct boolList
55 {
56     union {
57         bool value;
58         uint64_t padding;
59     };
60     struct boolList *next;
61 } boolList;
62 
63 typedef struct int8List
64 {
65     union {
66         int8_t value;
67         uint64_t padding;
68     };
69     struct int8List *next;
70 } int8List;
71 
72 typedef struct int16List
73 {
74     union {
75         int16_t value;
76         uint64_t padding;
77     };
78     struct int16List *next;
79 } int16List;
80 
81 typedef struct int32List
82 {
83     union {
84         int32_t value;
85         uint64_t padding;
86     };
87     struct int32List *next;
88 } int32List;
89 
90 typedef struct int64List
91 {
92     union {
93         int64_t value;
94         uint64_t padding;
95     };
96     struct int64List *next;
97 } int64List;
98 
99 typedef struct uint8List
100 {
101     union {
102         uint8_t value;
103         uint64_t padding;
104     };
105     struct uint8List *next;
106 } uint8List;
107 
108 typedef struct uint16List
109 {
110     union {
111         uint16_t value;
112         uint64_t padding;
113     };
114     struct uint16List *next;
115 } uint16List;
116 
117 typedef struct uint32List
118 {
119     union {
120         uint32_t value;
121         uint64_t padding;
122     };
123     struct uint32List *next;
124 } uint32List;
125 
126 typedef 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 
138 extern const char *ErrorClass_lookup[];
139 typedef 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 
150 typedef struct ErrorClassList
151 {
152     union {
153         ErrorClass value;
154         uint64_t padding;
155     };
156     struct ErrorClassList *next;
157 } ErrorClassList;
158 
159 
160 typedef struct NameInfo NameInfo;
161 
162 typedef struct NameInfoList
163 {
164     union {
165         NameInfo *value;
166         uint64_t padding;
167     };
168     struct NameInfoList *next;
169 } NameInfoList;
170 
171 
172 typedef struct VersionInfo VersionInfo;
173 
174 typedef struct VersionInfoList
175 {
176     union {
177         VersionInfo *value;
178         uint64_t padding;
179     };
180     struct VersionInfoList *next;
181 } VersionInfoList;
182 
183 
184 typedef struct KvmInfo KvmInfo;
185 
186 typedef struct KvmInfoList
187 {
188     union {
189         KvmInfo *value;
190         uint64_t padding;
191     };
192     struct KvmInfoList *next;
193 } KvmInfoList;
194 
195 extern const char *RunState_lookup[];
196 typedef 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 
216 typedef struct RunStateList
217 {
218     union {
219         RunState value;
220         uint64_t padding;
221     };
222     struct RunStateList *next;
223 } RunStateList;
224 
225 
226 typedef struct SnapshotInfo SnapshotInfo;
227 
228 typedef struct SnapshotInfoList
229 {
230     union {
231         SnapshotInfo *value;
232         uint64_t padding;
233     };
234     struct SnapshotInfoList *next;
235 } SnapshotInfoList;
236 
237 
238 typedef struct ImageInfoSpecificQCow2 ImageInfoSpecificQCow2;
239 
240 typedef struct ImageInfoSpecificQCow2List
241 {
242     union {
243         ImageInfoSpecificQCow2 *value;
244         uint64_t padding;
245     };
246     struct ImageInfoSpecificQCow2List *next;
247 } ImageInfoSpecificQCow2List;
248 
249 
250 typedef struct ImageInfoSpecificVmdk ImageInfoSpecificVmdk;
251 
252 typedef struct ImageInfoSpecificVmdkList
253 {
254     union {
255         ImageInfoSpecificVmdk *value;
256         uint64_t padding;
257     };
258     struct ImageInfoSpecificVmdkList *next;
259 } ImageInfoSpecificVmdkList;
260 
261 
262 typedef struct ImageInfoSpecific ImageInfoSpecific;
263 
264 typedef struct ImageInfoSpecificList
265 {
266     union {
267         ImageInfoSpecific *value;
268         uint64_t padding;
269     };
270     struct ImageInfoSpecificList *next;
271 } ImageInfoSpecificList;
272 
273 extern const char *ImageInfoSpecificKind_lookup[];
274 typedef 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 
282 typedef struct ImageInfo ImageInfo;
283 
284 typedef struct ImageInfoList
285 {
286     union {
287         ImageInfo *value;
288         uint64_t padding;
289     };
290     struct ImageInfoList *next;
291 } ImageInfoList;
292 
293 
294 typedef struct ImageCheck ImageCheck;
295 
296 typedef struct ImageCheckList
297 {
298     union {
299         ImageCheck *value;
300         uint64_t padding;
301     };
302     struct ImageCheckList *next;
303 } ImageCheckList;
304 
305 
306 typedef struct StatusInfo StatusInfo;
307 
308 typedef struct StatusInfoList
309 {
310     union {
311         StatusInfo *value;
312         uint64_t padding;
313     };
314     struct StatusInfoList *next;
315 } StatusInfoList;
316 
317 
318 typedef struct UuidInfo UuidInfo;
319 
320 typedef struct UuidInfoList
321 {
322     union {
323         UuidInfo *value;
324         uint64_t padding;
325     };
326     struct UuidInfoList *next;
327 } UuidInfoList;
328 
329 
330 typedef struct ChardevInfo ChardevInfo;
331 
332 typedef struct ChardevInfoList
333 {
334     union {
335         ChardevInfo *value;
336         uint64_t padding;
337     };
338     struct ChardevInfoList *next;
339 } ChardevInfoList;
340 
341 extern const char *DataFormat_lookup[];
342 typedef enum DataFormat
343 {
344     DATA_FORMAT_UTF8 = 0,
345     DATA_FORMAT_BASE64 = 1,
346     DATA_FORMAT_MAX = 2,
347 } DataFormat;
348 
349 typedef struct DataFormatList
350 {
351     union {
352         DataFormat value;
353         uint64_t padding;
354     };
355     struct DataFormatList *next;
356 } DataFormatList;
357 
358 
359 typedef struct CommandInfo CommandInfo;
360 
361 typedef struct CommandInfoList
362 {
363     union {
364         CommandInfo *value;
365         uint64_t padding;
366     };
367     struct CommandInfoList *next;
368 } CommandInfoList;
369 
370 
371 typedef struct EventInfo EventInfo;
372 
373 typedef struct EventInfoList
374 {
375     union {
376         EventInfo *value;
377         uint64_t padding;
378     };
379     struct EventInfoList *next;
380 } EventInfoList;
381 
382 
383 typedef struct MigrationStats MigrationStats;
384 
385 typedef struct MigrationStatsList
386 {
387     union {
388         MigrationStats *value;
389         uint64_t padding;
390     };
391     struct MigrationStatsList *next;
392 } MigrationStatsList;
393 
394 
395 typedef struct XBZRLECacheStats XBZRLECacheStats;
396 
397 typedef struct XBZRLECacheStatsList
398 {
399     union {
400         XBZRLECacheStats *value;
401         uint64_t padding;
402     };
403     struct XBZRLECacheStatsList *next;
404 } XBZRLECacheStatsList;
405 
406 
407 typedef struct MigrationInfo MigrationInfo;
408 
409 typedef struct MigrationInfoList
410 {
411     union {
412         MigrationInfo *value;
413         uint64_t padding;
414     };
415     struct MigrationInfoList *next;
416 } MigrationInfoList;
417 
418 extern const char *MigrationCapability_lookup[];
419 typedef 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 
428 typedef struct MigrationCapabilityList
429 {
430     union {
431         MigrationCapability value;
432         uint64_t padding;
433     };
434     struct MigrationCapabilityList *next;
435 } MigrationCapabilityList;
436 
437 
438 typedef struct MigrationCapabilityStatus MigrationCapabilityStatus;
439 
440 typedef struct MigrationCapabilityStatusList
441 {
442     union {
443         MigrationCapabilityStatus *value;
444         uint64_t padding;
445     };
446     struct MigrationCapabilityStatusList *next;
447 } MigrationCapabilityStatusList;
448 
449 
450 typedef struct MouseInfo MouseInfo;
451 
452 typedef struct MouseInfoList
453 {
454     union {
455         MouseInfo *value;
456         uint64_t padding;
457     };
458     struct MouseInfoList *next;
459 } MouseInfoList;
460 
461 
462 typedef struct CpuInfo CpuInfo;
463 
464 typedef struct CpuInfoList
465 {
466     union {
467         CpuInfo *value;
468         uint64_t padding;
469     };
470     struct CpuInfoList *next;
471 } CpuInfoList;
472 
473 
474 typedef struct BlockDeviceInfo BlockDeviceInfo;
475 
476 typedef struct BlockDeviceInfoList
477 {
478     union {
479         BlockDeviceInfo *value;
480         uint64_t padding;
481     };
482     struct BlockDeviceInfoList *next;
483 } BlockDeviceInfoList;
484 
485 extern const char *BlockDeviceIoStatus_lookup[];
486 typedef 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 
494 typedef struct BlockDeviceIoStatusList
495 {
496     union {
497         BlockDeviceIoStatus value;
498         uint64_t padding;
499     };
500     struct BlockDeviceIoStatusList *next;
501 } BlockDeviceIoStatusList;
502 
503 
504 typedef struct BlockDeviceMapEntry BlockDeviceMapEntry;
505 
506 typedef struct BlockDeviceMapEntryList
507 {
508     union {
509         BlockDeviceMapEntry *value;
510         uint64_t padding;
511     };
512     struct BlockDeviceMapEntryList *next;
513 } BlockDeviceMapEntryList;
514 
515 
516 typedef struct BlockDirtyInfo BlockDirtyInfo;
517 
518 typedef struct BlockDirtyInfoList
519 {
520     union {
521         BlockDirtyInfo *value;
522         uint64_t padding;
523     };
524     struct BlockDirtyInfoList *next;
525 } BlockDirtyInfoList;
526 
527 
528 typedef struct BlockInfo BlockInfo;
529 
530 typedef struct BlockInfoList
531 {
532     union {
533         BlockInfo *value;
534         uint64_t padding;
535     };
536     struct BlockInfoList *next;
537 } BlockInfoList;
538 
539 
540 typedef struct BlockDeviceStats BlockDeviceStats;
541 
542 typedef struct BlockDeviceStatsList
543 {
544     union {
545         BlockDeviceStats *value;
546         uint64_t padding;
547     };
548     struct BlockDeviceStatsList *next;
549 } BlockDeviceStatsList;
550 
551 
552 typedef struct BlockStats BlockStats;
553 
554 typedef struct BlockStatsList
555 {
556     union {
557         BlockStats *value;
558         uint64_t padding;
559     };
560     struct BlockStatsList *next;
561 } BlockStatsList;
562 
563 
564 typedef struct VncClientInfo VncClientInfo;
565 
566 typedef struct VncClientInfoList
567 {
568     union {
569         VncClientInfo *value;
570         uint64_t padding;
571     };
572     struct VncClientInfoList *next;
573 } VncClientInfoList;
574 
575 
576 typedef struct VncInfo VncInfo;
577 
578 typedef struct VncInfoList
579 {
580     union {
581         VncInfo *value;
582         uint64_t padding;
583     };
584     struct VncInfoList *next;
585 } VncInfoList;
586 
587 
588 typedef struct SpiceChannel SpiceChannel;
589 
590 typedef struct SpiceChannelList
591 {
592     union {
593         SpiceChannel *value;
594         uint64_t padding;
595     };
596     struct SpiceChannelList *next;
597 } SpiceChannelList;
598 
599 extern const char *SpiceQueryMouseMode_lookup[];
600 typedef 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 
608 typedef struct SpiceQueryMouseModeList
609 {
610     union {
611         SpiceQueryMouseMode value;
612         uint64_t padding;
613     };
614     struct SpiceQueryMouseModeList *next;
615 } SpiceQueryMouseModeList;
616 
617 
618 typedef struct SpiceInfo SpiceInfo;
619 
620 typedef struct SpiceInfoList
621 {
622     union {
623         SpiceInfo *value;
624         uint64_t padding;
625     };
626     struct SpiceInfoList *next;
627 } SpiceInfoList;
628 
629 
630 typedef struct BalloonInfo BalloonInfo;
631 
632 typedef struct BalloonInfoList
633 {
634     union {
635         BalloonInfo *value;
636         uint64_t padding;
637     };
638     struct BalloonInfoList *next;
639 } BalloonInfoList;
640 
641 
642 typedef struct PciMemoryRange PciMemoryRange;
643 
644 typedef struct PciMemoryRangeList
645 {
646     union {
647         PciMemoryRange *value;
648         uint64_t padding;
649     };
650     struct PciMemoryRangeList *next;
651 } PciMemoryRangeList;
652 
653 
654 typedef struct PciMemoryRegion PciMemoryRegion;
655 
656 typedef struct PciMemoryRegionList
657 {
658     union {
659         PciMemoryRegion *value;
660         uint64_t padding;
661     };
662     struct PciMemoryRegionList *next;
663 } PciMemoryRegionList;
664 
665 
666 typedef struct PciBridgeInfo PciBridgeInfo;
667 
668 typedef struct PciBridgeInfoList
669 {
670     union {
671         PciBridgeInfo *value;
672         uint64_t padding;
673     };
674     struct PciBridgeInfoList *next;
675 } PciBridgeInfoList;
676 
677 
678 typedef struct PciDeviceInfo PciDeviceInfo;
679 
680 typedef struct PciDeviceInfoList
681 {
682     union {
683         PciDeviceInfo *value;
684         uint64_t padding;
685     };
686     struct PciDeviceInfoList *next;
687 } PciDeviceInfoList;
688 
689 
690 typedef struct PciInfo PciInfo;
691 
692 typedef struct PciInfoList
693 {
694     union {
695         PciInfo *value;
696         uint64_t padding;
697     };
698     struct PciInfoList *next;
699 } PciInfoList;
700 
701 extern const char *BlockdevOnError_lookup[];
702 typedef 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 
711 typedef struct BlockdevOnErrorList
712 {
713     union {
714         BlockdevOnError value;
715         uint64_t padding;
716     };
717     struct BlockdevOnErrorList *next;
718 } BlockdevOnErrorList;
719 
720 extern const char *MirrorSyncMode_lookup[];
721 typedef 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 
729 typedef struct MirrorSyncModeList
730 {
731     union {
732         MirrorSyncMode value;
733         uint64_t padding;
734     };
735     struct MirrorSyncModeList *next;
736 } MirrorSyncModeList;
737 
738 extern const char *BlockJobType_lookup[];
739 typedef 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 
748 typedef struct BlockJobTypeList
749 {
750     union {
751         BlockJobType value;
752         uint64_t padding;
753     };
754     struct BlockJobTypeList *next;
755 } BlockJobTypeList;
756 
757 
758 typedef struct BlockJobInfo BlockJobInfo;
759 
760 typedef struct BlockJobInfoList
761 {
762     union {
763         BlockJobInfo *value;
764         uint64_t padding;
765     };
766     struct BlockJobInfoList *next;
767 } BlockJobInfoList;
768 
769 extern const char *NewImageMode_lookup[];
770 typedef 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 
777 typedef struct NewImageModeList
778 {
779     union {
780         NewImageMode value;
781         uint64_t padding;
782     };
783     struct NewImageModeList *next;
784 } NewImageModeList;
785 
786 
787 typedef struct BlockdevSnapshot BlockdevSnapshot;
788 
789 typedef struct BlockdevSnapshotList
790 {
791     union {
792         BlockdevSnapshot *value;
793         uint64_t padding;
794     };
795     struct BlockdevSnapshotList *next;
796 } BlockdevSnapshotList;
797 
798 
799 typedef struct BlockdevSnapshotInternal BlockdevSnapshotInternal;
800 
801 typedef struct BlockdevSnapshotInternalList
802 {
803     union {
804         BlockdevSnapshotInternal *value;
805         uint64_t padding;
806     };
807     struct BlockdevSnapshotInternalList *next;
808 } BlockdevSnapshotInternalList;
809 
810 
811 typedef struct DriveBackup DriveBackup;
812 
813 typedef struct DriveBackupList
814 {
815     union {
816         DriveBackup *value;
817         uint64_t padding;
818     };
819     struct DriveBackupList *next;
820 } DriveBackupList;
821 
822 
823 typedef struct Abort Abort;
824 
825 typedef struct AbortList
826 {
827     union {
828         Abort *value;
829         uint64_t padding;
830     };
831     struct AbortList *next;
832 } AbortList;
833 
834 
835 typedef struct TransactionAction TransactionAction;
836 
837 typedef struct TransactionActionList
838 {
839     union {
840         TransactionAction *value;
841         uint64_t padding;
842     };
843     struct TransactionActionList *next;
844 } TransactionActionList;
845 
846 extern const char *TransactionActionKind_lookup[];
847 typedef 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 
857 typedef struct ObjectPropertyInfo ObjectPropertyInfo;
858 
859 typedef struct ObjectPropertyInfoList
860 {
861     union {
862         ObjectPropertyInfo *value;
863         uint64_t padding;
864     };
865     struct ObjectPropertyInfoList *next;
866 } ObjectPropertyInfoList;
867 
868 
869 typedef struct ObjectTypeInfo ObjectTypeInfo;
870 
871 typedef struct ObjectTypeInfoList
872 {
873     union {
874         ObjectTypeInfo *value;
875         uint64_t padding;
876     };
877     struct ObjectTypeInfoList *next;
878 } ObjectTypeInfoList;
879 
880 
881 typedef struct DevicePropertyInfo DevicePropertyInfo;
882 
883 typedef struct DevicePropertyInfoList
884 {
885     union {
886         DevicePropertyInfo *value;
887         uint64_t padding;
888     };
889     struct DevicePropertyInfoList *next;
890 } DevicePropertyInfoList;
891 
892 
893 typedef struct NetdevNoneOptions NetdevNoneOptions;
894 
895 typedef struct NetdevNoneOptionsList
896 {
897     union {
898         NetdevNoneOptions *value;
899         uint64_t padding;
900     };
901     struct NetdevNoneOptionsList *next;
902 } NetdevNoneOptionsList;
903 
904 
905 typedef struct NetLegacyNicOptions NetLegacyNicOptions;
906 
907 typedef struct NetLegacyNicOptionsList
908 {
909     union {
910         NetLegacyNicOptions *value;
911         uint64_t padding;
912     };
913     struct NetLegacyNicOptionsList *next;
914 } NetLegacyNicOptionsList;
915 
916 
917 typedef struct String String;
918 
919 typedef struct StringList
920 {
921     union {
922         String *value;
923         uint64_t padding;
924     };
925     struct StringList *next;
926 } StringList;
927 
928 
929 typedef struct NetdevUserOptions NetdevUserOptions;
930 
931 typedef struct NetdevUserOptionsList
932 {
933     union {
934         NetdevUserOptions *value;
935         uint64_t padding;
936     };
937     struct NetdevUserOptionsList *next;
938 } NetdevUserOptionsList;
939 
940 
941 typedef struct NetdevTapOptions NetdevTapOptions;
942 
943 typedef struct NetdevTapOptionsList
944 {
945     union {
946         NetdevTapOptions *value;
947         uint64_t padding;
948     };
949     struct NetdevTapOptionsList *next;
950 } NetdevTapOptionsList;
951 
952 
953 typedef struct NetdevSocketOptions NetdevSocketOptions;
954 
955 typedef struct NetdevSocketOptionsList
956 {
957     union {
958         NetdevSocketOptions *value;
959         uint64_t padding;
960     };
961     struct NetdevSocketOptionsList *next;
962 } NetdevSocketOptionsList;
963 
964 
965 typedef struct NetdevVdeOptions NetdevVdeOptions;
966 
967 typedef struct NetdevVdeOptionsList
968 {
969     union {
970         NetdevVdeOptions *value;
971         uint64_t padding;
972     };
973     struct NetdevVdeOptionsList *next;
974 } NetdevVdeOptionsList;
975 
976 
977 typedef struct NetdevDumpOptions NetdevDumpOptions;
978 
979 typedef struct NetdevDumpOptionsList
980 {
981     union {
982         NetdevDumpOptions *value;
983         uint64_t padding;
984     };
985     struct NetdevDumpOptionsList *next;
986 } NetdevDumpOptionsList;
987 
988 
989 typedef struct NetdevBridgeOptions NetdevBridgeOptions;
990 
991 typedef struct NetdevBridgeOptionsList
992 {
993     union {
994         NetdevBridgeOptions *value;
995         uint64_t padding;
996     };
997     struct NetdevBridgeOptionsList *next;
998 } NetdevBridgeOptionsList;
999 
1000 
1001 typedef struct NetdevHubPortOptions NetdevHubPortOptions;
1002 
1003 typedef struct NetdevHubPortOptionsList
1004 {
1005     union {
1006         NetdevHubPortOptions *value;
1007         uint64_t padding;
1008     };
1009     struct NetdevHubPortOptionsList *next;
1010 } NetdevHubPortOptionsList;
1011 
1012 
1013 typedef struct NetdevNetmapOptions NetdevNetmapOptions;
1014 
1015 typedef struct NetdevNetmapOptionsList
1016 {
1017     union {
1018         NetdevNetmapOptions *value;
1019         uint64_t padding;
1020     };
1021     struct NetdevNetmapOptionsList *next;
1022 } NetdevNetmapOptionsList;
1023 
1024 
1025 typedef struct NetClientOptions NetClientOptions;
1026 
1027 typedef struct NetClientOptionsList
1028 {
1029     union {
1030         NetClientOptions *value;
1031         uint64_t padding;
1032     };
1033     struct NetClientOptionsList *next;
1034 } NetClientOptionsList;
1035 
1036 extern const char *NetClientOptionsKind_lookup[];
1037 typedef 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 
1053 typedef struct NetLegacy NetLegacy;
1054 
1055 typedef struct NetLegacyList
1056 {
1057     union {
1058         NetLegacy *value;
1059         uint64_t padding;
1060     };
1061     struct NetLegacyList *next;
1062 } NetLegacyList;
1063 
1064 
1065 typedef struct Netdev Netdev;
1066 
1067 typedef struct NetdevList
1068 {
1069     union {
1070         Netdev *value;
1071         uint64_t padding;
1072     };
1073     struct NetdevList *next;
1074 } NetdevList;
1075 
1076 
1077 typedef struct InetSocketAddress InetSocketAddress;
1078 
1079 typedef struct InetSocketAddressList
1080 {
1081     union {
1082         InetSocketAddress *value;
1083         uint64_t padding;
1084     };
1085     struct InetSocketAddressList *next;
1086 } InetSocketAddressList;
1087 
1088 
1089 typedef struct UnixSocketAddress UnixSocketAddress;
1090 
1091 typedef struct UnixSocketAddressList
1092 {
1093     union {
1094         UnixSocketAddress *value;
1095         uint64_t padding;
1096     };
1097     struct UnixSocketAddressList *next;
1098 } UnixSocketAddressList;
1099 
1100 
1101 typedef struct SocketAddress SocketAddress;
1102 
1103 typedef struct SocketAddressList
1104 {
1105     union {
1106         SocketAddress *value;
1107         uint64_t padding;
1108     };
1109     struct SocketAddressList *next;
1110 } SocketAddressList;
1111 
1112 extern const char *SocketAddressKind_lookup[];
1113 typedef 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 
1122 typedef struct MachineInfo MachineInfo;
1123 
1124 typedef struct MachineInfoList
1125 {
1126     union {
1127         MachineInfo *value;
1128         uint64_t padding;
1129     };
1130     struct MachineInfoList *next;
1131 } MachineInfoList;
1132 
1133 
1134 typedef struct CpuDefinitionInfo CpuDefinitionInfo;
1135 
1136 typedef struct CpuDefinitionInfoList
1137 {
1138     union {
1139         CpuDefinitionInfo *value;
1140         uint64_t padding;
1141     };
1142     struct CpuDefinitionInfoList *next;
1143 } CpuDefinitionInfoList;
1144 
1145 
1146 typedef struct AddfdInfo AddfdInfo;
1147 
1148 typedef struct AddfdInfoList
1149 {
1150     union {
1151         AddfdInfo *value;
1152         uint64_t padding;
1153     };
1154     struct AddfdInfoList *next;
1155 } AddfdInfoList;
1156 
1157 
1158 typedef struct FdsetFdInfo FdsetFdInfo;
1159 
1160 typedef struct FdsetFdInfoList
1161 {
1162     union {
1163         FdsetFdInfo *value;
1164         uint64_t padding;
1165     };
1166     struct FdsetFdInfoList *next;
1167 } FdsetFdInfoList;
1168 
1169 
1170 typedef struct FdsetInfo FdsetInfo;
1171 
1172 typedef struct FdsetInfoList
1173 {
1174     union {
1175         FdsetInfo *value;
1176         uint64_t padding;
1177     };
1178     struct FdsetInfoList *next;
1179 } FdsetInfoList;
1180 
1181 
1182 typedef struct TargetInfo TargetInfo;
1183 
1184 typedef struct TargetInfoList
1185 {
1186     union {
1187         TargetInfo *value;
1188         uint64_t padding;
1189     };
1190     struct TargetInfoList *next;
1191 } TargetInfoList;
1192 
1193 extern const char *QKeyCode_lookup[];
1194 typedef 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 
1320 typedef struct QKeyCodeList
1321 {
1322     union {
1323         QKeyCode value;
1324         uint64_t padding;
1325     };
1326     struct QKeyCodeList *next;
1327 } QKeyCodeList;
1328 
1329 
1330 typedef struct KeyValue KeyValue;
1331 
1332 typedef struct KeyValueList
1333 {
1334     union {
1335         KeyValue *value;
1336         uint64_t padding;
1337     };
1338     struct KeyValueList *next;
1339 } KeyValueList;
1340 
1341 extern const char *KeyValueKind_lookup[];
1342 typedef 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 
1350 typedef struct ChardevFile ChardevFile;
1351 
1352 typedef struct ChardevFileList
1353 {
1354     union {
1355         ChardevFile *value;
1356         uint64_t padding;
1357     };
1358     struct ChardevFileList *next;
1359 } ChardevFileList;
1360 
1361 
1362 typedef struct ChardevHostdev ChardevHostdev;
1363 
1364 typedef struct ChardevHostdevList
1365 {
1366     union {
1367         ChardevHostdev *value;
1368         uint64_t padding;
1369     };
1370     struct ChardevHostdevList *next;
1371 } ChardevHostdevList;
1372 
1373 
1374 typedef struct ChardevSocket ChardevSocket;
1375 
1376 typedef struct ChardevSocketList
1377 {
1378     union {
1379         ChardevSocket *value;
1380         uint64_t padding;
1381     };
1382     struct ChardevSocketList *next;
1383 } ChardevSocketList;
1384 
1385 
1386 typedef struct ChardevUdp ChardevUdp;
1387 
1388 typedef struct ChardevUdpList
1389 {
1390     union {
1391         ChardevUdp *value;
1392         uint64_t padding;
1393     };
1394     struct ChardevUdpList *next;
1395 } ChardevUdpList;
1396 
1397 
1398 typedef struct ChardevMux ChardevMux;
1399 
1400 typedef struct ChardevMuxList
1401 {
1402     union {
1403         ChardevMux *value;
1404         uint64_t padding;
1405     };
1406     struct ChardevMuxList *next;
1407 } ChardevMuxList;
1408 
1409 
1410 typedef struct ChardevStdio ChardevStdio;
1411 
1412 typedef struct ChardevStdioList
1413 {
1414     union {
1415         ChardevStdio *value;
1416         uint64_t padding;
1417     };
1418     struct ChardevStdioList *next;
1419 } ChardevStdioList;
1420 
1421 
1422 typedef struct ChardevSpiceChannel ChardevSpiceChannel;
1423 
1424 typedef struct ChardevSpiceChannelList
1425 {
1426     union {
1427         ChardevSpiceChannel *value;
1428         uint64_t padding;
1429     };
1430     struct ChardevSpiceChannelList *next;
1431 } ChardevSpiceChannelList;
1432 
1433 
1434 typedef struct ChardevSpicePort ChardevSpicePort;
1435 
1436 typedef struct ChardevSpicePortList
1437 {
1438     union {
1439         ChardevSpicePort *value;
1440         uint64_t padding;
1441     };
1442     struct ChardevSpicePortList *next;
1443 } ChardevSpicePortList;
1444 
1445 
1446 typedef struct ChardevVC ChardevVC;
1447 
1448 typedef struct ChardevVCList
1449 {
1450     union {
1451         ChardevVC *value;
1452         uint64_t padding;
1453     };
1454     struct ChardevVCList *next;
1455 } ChardevVCList;
1456 
1457 
1458 typedef struct ChardevRingbuf ChardevRingbuf;
1459 
1460 typedef struct ChardevRingbufList
1461 {
1462     union {
1463         ChardevRingbuf *value;
1464         uint64_t padding;
1465     };
1466     struct ChardevRingbufList *next;
1467 } ChardevRingbufList;
1468 
1469 
1470 typedef struct ChardevDummy ChardevDummy;
1471 
1472 typedef struct ChardevDummyList
1473 {
1474     union {
1475         ChardevDummy *value;
1476         uint64_t padding;
1477     };
1478     struct ChardevDummyList *next;
1479 } ChardevDummyList;
1480 
1481 
1482 typedef struct ChardevBackend ChardevBackend;
1483 
1484 typedef struct ChardevBackendList
1485 {
1486     union {
1487         ChardevBackend *value;
1488         uint64_t padding;
1489     };
1490     struct ChardevBackendList *next;
1491 } ChardevBackendList;
1492 
1493 extern const char *ChardevBackendKind_lookup[];
1494 typedef 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 
1518 typedef struct ChardevReturn ChardevReturn;
1519 
1520 typedef struct ChardevReturnList
1521 {
1522     union {
1523         ChardevReturn *value;
1524         uint64_t padding;
1525     };
1526     struct ChardevReturnList *next;
1527 } ChardevReturnList;
1528 
1529 extern const char *TpmModel_lookup[];
1530 typedef enum TpmModel
1531 {
1532     TPM_MODEL_TPM_TIS = 0,
1533     TPM_MODEL_MAX = 1,
1534 } TpmModel;
1535 
1536 typedef struct TpmModelList
1537 {
1538     union {
1539         TpmModel value;
1540         uint64_t padding;
1541     };
1542     struct TpmModelList *next;
1543 } TpmModelList;
1544 
1545 extern const char *TpmType_lookup[];
1546 typedef enum TpmType
1547 {
1548     TPM_TYPE_PASSTHROUGH = 0,
1549     TPM_TYPE_MAX = 1,
1550 } TpmType;
1551 
1552 typedef struct TpmTypeList
1553 {
1554     union {
1555         TpmType value;
1556         uint64_t padding;
1557     };
1558     struct TpmTypeList *next;
1559 } TpmTypeList;
1560 
1561 
1562 typedef struct TPMPassthroughOptions TPMPassthroughOptions;
1563 
1564 typedef struct TPMPassthroughOptionsList
1565 {
1566     union {
1567         TPMPassthroughOptions *value;
1568         uint64_t padding;
1569     };
1570     struct TPMPassthroughOptionsList *next;
1571 } TPMPassthroughOptionsList;
1572 
1573 
1574 typedef struct TpmTypeOptions TpmTypeOptions;
1575 
1576 typedef struct TpmTypeOptionsList
1577 {
1578     union {
1579         TpmTypeOptions *value;
1580         uint64_t padding;
1581     };
1582     struct TpmTypeOptionsList *next;
1583 } TpmTypeOptionsList;
1584 
1585 extern const char *TpmTypeOptionsKind_lookup[];
1586 typedef enum TpmTypeOptionsKind
1587 {
1588     TPM_TYPE_OPTIONS_KIND_PASSTHROUGH = 0,
1589     TPM_TYPE_OPTIONS_KIND_MAX = 1,
1590 } TpmTypeOptionsKind;
1591 
1592 
1593 typedef struct TPMInfo TPMInfo;
1594 
1595 typedef struct TPMInfoList
1596 {
1597     union {
1598         TPMInfo *value;
1599         uint64_t padding;
1600     };
1601     struct TPMInfoList *next;
1602 } TPMInfoList;
1603 
1604 
1605 typedef struct AcpiTableOptions AcpiTableOptions;
1606 
1607 typedef struct AcpiTableOptionsList
1608 {
1609     union {
1610         AcpiTableOptions *value;
1611         uint64_t padding;
1612     };
1613     struct AcpiTableOptionsList *next;
1614 } AcpiTableOptionsList;
1615 
1616 extern const char *CommandLineParameterType_lookup[];
1617 typedef 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 
1626 typedef struct CommandLineParameterTypeList
1627 {
1628     union {
1629         CommandLineParameterType value;
1630         uint64_t padding;
1631     };
1632     struct CommandLineParameterTypeList *next;
1633 } CommandLineParameterTypeList;
1634 
1635 
1636 typedef struct CommandLineParameterInfo CommandLineParameterInfo;
1637 
1638 typedef struct CommandLineParameterInfoList
1639 {
1640     union {
1641         CommandLineParameterInfo *value;
1642         uint64_t padding;
1643     };
1644     struct CommandLineParameterInfoList *next;
1645 } CommandLineParameterInfoList;
1646 
1647 
1648 typedef struct CommandLineOptionInfo CommandLineOptionInfo;
1649 
1650 typedef struct CommandLineOptionInfoList
1651 {
1652     union {
1653         CommandLineOptionInfo *value;
1654         uint64_t padding;
1655     };
1656     struct CommandLineOptionInfoList *next;
1657 } CommandLineOptionInfoList;
1658 
1659 extern const char *X86CPURegister32_lookup[];
1660 typedef 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 
1673 typedef struct X86CPURegister32List
1674 {
1675     union {
1676         X86CPURegister32 value;
1677         uint64_t padding;
1678     };
1679     struct X86CPURegister32List *next;
1680 } X86CPURegister32List;
1681 
1682 
1683 typedef struct X86CPUFeatureWordInfo X86CPUFeatureWordInfo;
1684 
1685 typedef struct X86CPUFeatureWordInfoList
1686 {
1687     union {
1688         X86CPUFeatureWordInfo *value;
1689         uint64_t padding;
1690     };
1691     struct X86CPUFeatureWordInfoList *next;
1692 } X86CPUFeatureWordInfoList;
1693 
1694 extern const char *RxState_lookup[];
1695 typedef 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 
1703 typedef struct RxStateList
1704 {
1705     union {
1706         RxState value;
1707         uint64_t padding;
1708     };
1709     struct RxStateList *next;
1710 } RxStateList;
1711 
1712 
1713 typedef struct RxFilterInfo RxFilterInfo;
1714 
1715 typedef struct RxFilterInfoList
1716 {
1717     union {
1718         RxFilterInfo *value;
1719         uint64_t padding;
1720     };
1721     struct RxFilterInfoList *next;
1722 } RxFilterInfoList;
1723 
1724 extern const char *BlockdevDiscardOptions_lookup[];
1725 typedef enum BlockdevDiscardOptions
1726 {
1727     BLOCKDEV_DISCARD_OPTIONS_IGNORE = 0,
1728     BLOCKDEV_DISCARD_OPTIONS_UNMAP = 1,
1729     BLOCKDEV_DISCARD_OPTIONS_MAX = 2,
1730 } BlockdevDiscardOptions;
1731 
1732 typedef struct BlockdevDiscardOptionsList
1733 {
1734     union {
1735         BlockdevDiscardOptions value;
1736         uint64_t padding;
1737     };
1738     struct BlockdevDiscardOptionsList *next;
1739 } BlockdevDiscardOptionsList;
1740 
1741 extern const char *BlockdevAioOptions_lookup[];
1742 typedef enum BlockdevAioOptions
1743 {
1744     BLOCKDEV_AIO_OPTIONS_THREADS = 0,
1745     BLOCKDEV_AIO_OPTIONS_NATIVE = 1,
1746     BLOCKDEV_AIO_OPTIONS_MAX = 2,
1747 } BlockdevAioOptions;
1748 
1749 typedef struct BlockdevAioOptionsList
1750 {
1751     union {
1752         BlockdevAioOptions value;
1753         uint64_t padding;
1754     };
1755     struct BlockdevAioOptionsList *next;
1756 } BlockdevAioOptionsList;
1757 
1758 
1759 typedef struct BlockdevCacheOptions BlockdevCacheOptions;
1760 
1761 typedef struct BlockdevCacheOptionsList
1762 {
1763     union {
1764         BlockdevCacheOptions *value;
1765         uint64_t padding;
1766     };
1767     struct BlockdevCacheOptionsList *next;
1768 } BlockdevCacheOptionsList;
1769 
1770 
1771 typedef struct BlockdevOptionsBase BlockdevOptionsBase;
1772 
1773 typedef struct BlockdevOptionsBaseList
1774 {
1775     union {
1776         BlockdevOptionsBase *value;
1777         uint64_t padding;
1778     };
1779     struct BlockdevOptionsBaseList *next;
1780 } BlockdevOptionsBaseList;
1781 
1782 
1783 typedef struct BlockdevOptionsFile BlockdevOptionsFile;
1784 
1785 typedef struct BlockdevOptionsFileList
1786 {
1787     union {
1788         BlockdevOptionsFile *value;
1789         uint64_t padding;
1790     };
1791     struct BlockdevOptionsFileList *next;
1792 } BlockdevOptionsFileList;
1793 
1794 
1795 typedef struct BlockdevOptionsVVFAT BlockdevOptionsVVFAT;
1796 
1797 typedef struct BlockdevOptionsVVFATList
1798 {
1799     union {
1800         BlockdevOptionsVVFAT *value;
1801         uint64_t padding;
1802     };
1803     struct BlockdevOptionsVVFATList *next;
1804 } BlockdevOptionsVVFATList;
1805 
1806 
1807 typedef struct BlockdevOptionsGenericFormat BlockdevOptionsGenericFormat;
1808 
1809 typedef struct BlockdevOptionsGenericFormatList
1810 {
1811     union {
1812         BlockdevOptionsGenericFormat *value;
1813         uint64_t padding;
1814     };
1815     struct BlockdevOptionsGenericFormatList *next;
1816 } BlockdevOptionsGenericFormatList;
1817 
1818 
1819 typedef struct BlockdevOptionsGenericCOWFormat BlockdevOptionsGenericCOWFormat;
1820 
1821 typedef struct BlockdevOptionsGenericCOWFormatList
1822 {
1823     union {
1824         BlockdevOptionsGenericCOWFormat *value;
1825         uint64_t padding;
1826     };
1827     struct BlockdevOptionsGenericCOWFormatList *next;
1828 } BlockdevOptionsGenericCOWFormatList;
1829 
1830 
1831 typedef struct BlockdevOptionsQcow2 BlockdevOptionsQcow2;
1832 
1833 typedef struct BlockdevOptionsQcow2List
1834 {
1835     union {
1836         BlockdevOptionsQcow2 *value;
1837         uint64_t padding;
1838     };
1839     struct BlockdevOptionsQcow2List *next;
1840 } BlockdevOptionsQcow2List;
1841 
1842 
1843 typedef struct BlockdevOptions BlockdevOptions;
1844 
1845 typedef struct BlockdevOptionsList
1846 {
1847     union {
1848         BlockdevOptions *value;
1849         uint64_t padding;
1850     };
1851     struct BlockdevOptionsList *next;
1852 } BlockdevOptionsList;
1853 
1854 extern const char *BlockdevOptionsKind_lookup[];
1855 typedef 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 
1881 typedef struct BlockdevRef BlockdevRef;
1882 
1883 typedef struct BlockdevRefList
1884 {
1885     union {
1886         BlockdevRef *value;
1887         uint64_t padding;
1888     };
1889     struct BlockdevRefList *next;
1890 } BlockdevRefList;
1891 
1892 extern const char *BlockdevRefKind_lookup[];
1893 typedef 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 
1903 void qapi_free_strList(strList * obj);
1904 void qapi_free_intList(intList * obj);
1905 void qapi_free_numberList(numberList * obj);
1906 void qapi_free_boolList(boolList * obj);
1907 void qapi_free_int8List(int8List * obj);
1908 void qapi_free_int16List(int16List * obj);
1909 void qapi_free_int32List(int32List * obj);
1910 void qapi_free_int64List(int64List * obj);
1911 void qapi_free_uint8List(uint8List * obj);
1912 void qapi_free_uint16List(uint16List * obj);
1913 void qapi_free_uint32List(uint32List * obj);
1914 void qapi_free_uint64List(uint64List * obj);
1915 
1916 #endif /* QAPI_TYPES_BUILTIN_CLEANUP_DECL_H */
1917 
1918 
1919 void qapi_free_ErrorClassList(ErrorClassList * obj);
1920 
1921 struct NameInfo
1922 {
1923     bool has_name;
1924     char * name;
1925 };
1926 
1927 void qapi_free_NameInfoList(NameInfoList * obj);
1928 void qapi_free_NameInfo(NameInfo * obj);
1929 
1930 struct VersionInfo
1931 {
1932     struct
1933     {
1934         int64_t major;
1935         int64_t minor;
1936         int64_t micro;
1937     } qemu;
1938     char * package;
1939 };
1940 
1941 void qapi_free_VersionInfoList(VersionInfoList * obj);
1942 void qapi_free_VersionInfo(VersionInfo * obj);
1943 
1944 struct KvmInfo
1945 {
1946     bool enabled;
1947     bool present;
1948 };
1949 
1950 void qapi_free_KvmInfoList(KvmInfoList * obj);
1951 void qapi_free_KvmInfo(KvmInfo * obj);
1952 
1953 void qapi_free_RunStateList(RunStateList * obj);
1954 
1955 struct 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 
1966 void qapi_free_SnapshotInfoList(SnapshotInfoList * obj);
1967 void qapi_free_SnapshotInfo(SnapshotInfo * obj);
1968 
1969 struct ImageInfoSpecificQCow2
1970 {
1971     char * compat;
1972     bool has_lazy_refcounts;
1973     bool lazy_refcounts;
1974 };
1975 
1976 void qapi_free_ImageInfoSpecificQCow2List(ImageInfoSpecificQCow2List * obj);
1977 void qapi_free_ImageInfoSpecificQCow2(ImageInfoSpecificQCow2 * obj);
1978 
1979 struct ImageInfoSpecificVmdk
1980 {
1981     char * create_type;
1982     int64_t cid;
1983     int64_t parent_cid;
1984     ImageInfoList * extents;
1985 };
1986 
1987 void qapi_free_ImageInfoSpecificVmdkList(ImageInfoSpecificVmdkList * obj);
1988 void qapi_free_ImageInfoSpecificVmdk(ImageInfoSpecificVmdk * obj);
1989 
1990 struct ImageInfoSpecific
1991 {
1992     ImageInfoSpecificKind kind;
1993     union {
1994         void *data;
1995         ImageInfoSpecificQCow2 * qcow2;
1996         ImageInfoSpecificVmdk * vmdk;
1997     };
1998 };
1999 void qapi_free_ImageInfoSpecificList(ImageInfoSpecificList * obj);
2000 void qapi_free_ImageInfoSpecific(ImageInfoSpecific * obj);
2001 
2002 struct 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 
2031 void qapi_free_ImageInfoList(ImageInfoList * obj);
2032 void qapi_free_ImageInfo(ImageInfo * obj);
2033 
2034 struct 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 
2059 void qapi_free_ImageCheckList(ImageCheckList * obj);
2060 void qapi_free_ImageCheck(ImageCheck * obj);
2061 
2062 struct StatusInfo
2063 {
2064     bool running;
2065     bool singlestep;
2066     RunState status;
2067 };
2068 
2069 void qapi_free_StatusInfoList(StatusInfoList * obj);
2070 void qapi_free_StatusInfo(StatusInfo * obj);
2071 
2072 struct UuidInfo
2073 {
2074     char * UUID;
2075 };
2076 
2077 void qapi_free_UuidInfoList(UuidInfoList * obj);
2078 void qapi_free_UuidInfo(UuidInfo * obj);
2079 
2080 struct ChardevInfo
2081 {
2082     char * label;
2083     char * filename;
2084 };
2085 
2086 void qapi_free_ChardevInfoList(ChardevInfoList * obj);
2087 void qapi_free_ChardevInfo(ChardevInfo * obj);
2088 
2089 void qapi_free_DataFormatList(DataFormatList * obj);
2090 
2091 struct CommandInfo
2092 {
2093     char * name;
2094 };
2095 
2096 void qapi_free_CommandInfoList(CommandInfoList * obj);
2097 void qapi_free_CommandInfo(CommandInfo * obj);
2098 
2099 struct EventInfo
2100 {
2101     char * name;
2102 };
2103 
2104 void qapi_free_EventInfoList(EventInfoList * obj);
2105 void qapi_free_EventInfo(EventInfo * obj);
2106 
2107 struct 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 
2120 void qapi_free_MigrationStatsList(MigrationStatsList * obj);
2121 void qapi_free_MigrationStats(MigrationStats * obj);
2122 
2123 struct 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 
2132 void qapi_free_XBZRLECacheStatsList(XBZRLECacheStatsList * obj);
2133 void qapi_free_XBZRLECacheStats(XBZRLECacheStats * obj);
2134 
2135 struct 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 
2155 void qapi_free_MigrationInfoList(MigrationInfoList * obj);
2156 void qapi_free_MigrationInfo(MigrationInfo * obj);
2157 
2158 void qapi_free_MigrationCapabilityList(MigrationCapabilityList * obj);
2159 
2160 struct MigrationCapabilityStatus
2161 {
2162     MigrationCapability capability;
2163     bool state;
2164 };
2165 
2166 void qapi_free_MigrationCapabilityStatusList(MigrationCapabilityStatusList * obj);
2167 void qapi_free_MigrationCapabilityStatus(MigrationCapabilityStatus * obj);
2168 
2169 struct MouseInfo
2170 {
2171     char * name;
2172     int64_t index;
2173     bool current;
2174     bool absolute;
2175 };
2176 
2177 void qapi_free_MouseInfoList(MouseInfoList * obj);
2178 void qapi_free_MouseInfo(MouseInfo * obj);
2179 
2180 struct 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 
2196 void qapi_free_CpuInfoList(CpuInfoList * obj);
2197 void qapi_free_CpuInfo(CpuInfo * obj);
2198 
2199 struct 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 
2232 void qapi_free_BlockDeviceInfoList(BlockDeviceInfoList * obj);
2233 void qapi_free_BlockDeviceInfo(BlockDeviceInfo * obj);
2234 
2235 void qapi_free_BlockDeviceIoStatusList(BlockDeviceIoStatusList * obj);
2236 
2237 struct 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 
2248 void qapi_free_BlockDeviceMapEntryList(BlockDeviceMapEntryList * obj);
2249 void qapi_free_BlockDeviceMapEntry(BlockDeviceMapEntry * obj);
2250 
2251 struct BlockDirtyInfo
2252 {
2253     int64_t count;
2254     int64_t granularity;
2255 };
2256 
2257 void qapi_free_BlockDirtyInfoList(BlockDirtyInfoList * obj);
2258 void qapi_free_BlockDirtyInfo(BlockDirtyInfo * obj);
2259 
2260 struct 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 
2276 void qapi_free_BlockInfoList(BlockInfoList * obj);
2277 void qapi_free_BlockInfo(BlockInfo * obj);
2278 
2279 struct 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 
2292 void qapi_free_BlockDeviceStatsList(BlockDeviceStatsList * obj);
2293 void qapi_free_BlockDeviceStats(BlockDeviceStats * obj);
2294 
2295 struct BlockStats
2296 {
2297     bool has_device;
2298     char * device;
2299     BlockDeviceStats * stats;
2300     bool has_parent;
2301     BlockStats * parent;
2302 };
2303 
2304 void qapi_free_BlockStatsList(BlockStatsList * obj);
2305 void qapi_free_BlockStats(BlockStats * obj);
2306 
2307 struct 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 
2318 void qapi_free_VncClientInfoList(VncClientInfoList * obj);
2319 void qapi_free_VncClientInfo(VncClientInfo * obj);
2320 
2321 struct 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 
2336 void qapi_free_VncInfoList(VncInfoList * obj);
2337 void qapi_free_VncInfo(VncInfo * obj);
2338 
2339 struct 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 
2350 void qapi_free_SpiceChannelList(SpiceChannelList * obj);
2351 void qapi_free_SpiceChannel(SpiceChannel * obj);
2352 
2353 void qapi_free_SpiceQueryMouseModeList(SpiceQueryMouseModeList * obj);
2354 
2355 struct 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 
2374 void qapi_free_SpiceInfoList(SpiceInfoList * obj);
2375 void qapi_free_SpiceInfo(SpiceInfo * obj);
2376 
2377 struct BalloonInfo
2378 {
2379     int64_t actual;
2380 };
2381 
2382 void qapi_free_BalloonInfoList(BalloonInfoList * obj);
2383 void qapi_free_BalloonInfo(BalloonInfo * obj);
2384 
2385 struct PciMemoryRange
2386 {
2387     int64_t base;
2388     int64_t limit;
2389 };
2390 
2391 void qapi_free_PciMemoryRangeList(PciMemoryRangeList * obj);
2392 void qapi_free_PciMemoryRange(PciMemoryRange * obj);
2393 
2394 struct 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 
2406 void qapi_free_PciMemoryRegionList(PciMemoryRegionList * obj);
2407 void qapi_free_PciMemoryRegion(PciMemoryRegion * obj);
2408 
2409 struct 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 
2424 void qapi_free_PciBridgeInfoList(PciBridgeInfoList * obj);
2425 void qapi_free_PciBridgeInfo(PciBridgeInfo * obj);
2426 
2427 struct 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 
2451 void qapi_free_PciDeviceInfoList(PciDeviceInfoList * obj);
2452 void qapi_free_PciDeviceInfo(PciDeviceInfo * obj);
2453 
2454 struct PciInfo
2455 {
2456     int64_t bus;
2457     PciDeviceInfoList * devices;
2458 };
2459 
2460 void qapi_free_PciInfoList(PciInfoList * obj);
2461 void qapi_free_PciInfo(PciInfo * obj);
2462 
2463 void qapi_free_BlockdevOnErrorList(BlockdevOnErrorList * obj);
2464 
2465 void qapi_free_MirrorSyncModeList(MirrorSyncModeList * obj);
2466 
2467 void qapi_free_BlockJobTypeList(BlockJobTypeList * obj);
2468 
2469 struct 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 
2481 void qapi_free_BlockJobInfoList(BlockJobInfoList * obj);
2482 void qapi_free_BlockJobInfo(BlockJobInfo * obj);
2483 
2484 void qapi_free_NewImageModeList(NewImageModeList * obj);
2485 
2486 struct 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 
2496 void qapi_free_BlockdevSnapshotList(BlockdevSnapshotList * obj);
2497 void qapi_free_BlockdevSnapshot(BlockdevSnapshot * obj);
2498 
2499 struct BlockdevSnapshotInternal
2500 {
2501     char * device;
2502     char * name;
2503 };
2504 
2505 void qapi_free_BlockdevSnapshotInternalList(BlockdevSnapshotInternalList * obj);
2506 void qapi_free_BlockdevSnapshotInternal(BlockdevSnapshotInternal * obj);
2507 
2508 struct 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 
2525 void qapi_free_DriveBackupList(DriveBackupList * obj);
2526 void qapi_free_DriveBackup(DriveBackup * obj);
2527 
2528 struct Abort
2529 {
2530 };
2531 
2532 void qapi_free_AbortList(AbortList * obj);
2533 void qapi_free_Abort(Abort * obj);
2534 
2535 struct 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 };
2546 void qapi_free_TransactionActionList(TransactionActionList * obj);
2547 void qapi_free_TransactionAction(TransactionAction * obj);
2548 
2549 struct ObjectPropertyInfo
2550 {
2551     char * name;
2552     char * type;
2553 };
2554 
2555 void qapi_free_ObjectPropertyInfoList(ObjectPropertyInfoList * obj);
2556 void qapi_free_ObjectPropertyInfo(ObjectPropertyInfo * obj);
2557 
2558 struct ObjectTypeInfo
2559 {
2560     char * name;
2561 };
2562 
2563 void qapi_free_ObjectTypeInfoList(ObjectTypeInfoList * obj);
2564 void qapi_free_ObjectTypeInfo(ObjectTypeInfo * obj);
2565 
2566 struct DevicePropertyInfo
2567 {
2568     char * name;
2569     char * type;
2570 };
2571 
2572 void qapi_free_DevicePropertyInfoList(DevicePropertyInfoList * obj);
2573 void qapi_free_DevicePropertyInfo(DevicePropertyInfo * obj);
2574 
2575 struct NetdevNoneOptions
2576 {
2577 };
2578 
2579 void qapi_free_NetdevNoneOptionsList(NetdevNoneOptionsList * obj);
2580 void qapi_free_NetdevNoneOptions(NetdevNoneOptions * obj);
2581 
2582 struct 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 
2596 void qapi_free_NetLegacyNicOptionsList(NetLegacyNicOptionsList * obj);
2597 void qapi_free_NetLegacyNicOptions(NetLegacyNicOptions * obj);
2598 
2599 struct String
2600 {
2601     char * str;
2602 };
2603 
2604 void qapi_free_StringList(StringList * obj);
2605 void qapi_free_String(String * obj);
2606 
2607 struct 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 
2639 void qapi_free_NetdevUserOptionsList(NetdevUserOptionsList * obj);
2640 void qapi_free_NetdevUserOptions(NetdevUserOptions * obj);
2641 
2642 struct 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 
2672 void qapi_free_NetdevTapOptionsList(NetdevTapOptionsList * obj);
2673 void qapi_free_NetdevTapOptions(NetdevTapOptions * obj);
2674 
2675 struct 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 
2691 void qapi_free_NetdevSocketOptionsList(NetdevSocketOptionsList * obj);
2692 void qapi_free_NetdevSocketOptions(NetdevSocketOptions * obj);
2693 
2694 struct 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 
2706 void qapi_free_NetdevVdeOptionsList(NetdevVdeOptionsList * obj);
2707 void qapi_free_NetdevVdeOptions(NetdevVdeOptions * obj);
2708 
2709 struct NetdevDumpOptions
2710 {
2711     bool has_len;
2712     uint64_t len;
2713     bool has_file;
2714     char * file;
2715 };
2716 
2717 void qapi_free_NetdevDumpOptionsList(NetdevDumpOptionsList * obj);
2718 void qapi_free_NetdevDumpOptions(NetdevDumpOptions * obj);
2719 
2720 struct NetdevBridgeOptions
2721 {
2722     bool has_br;
2723     char * br;
2724     bool has_helper;
2725     char * helper;
2726 };
2727 
2728 void qapi_free_NetdevBridgeOptionsList(NetdevBridgeOptionsList * obj);
2729 void qapi_free_NetdevBridgeOptions(NetdevBridgeOptions * obj);
2730 
2731 struct NetdevHubPortOptions
2732 {
2733     int32_t hubid;
2734 };
2735 
2736 void qapi_free_NetdevHubPortOptionsList(NetdevHubPortOptionsList * obj);
2737 void qapi_free_NetdevHubPortOptions(NetdevHubPortOptions * obj);
2738 
2739 struct NetdevNetmapOptions
2740 {
2741     char * ifname;
2742     bool has_devname;
2743     char * devname;
2744 };
2745 
2746 void qapi_free_NetdevNetmapOptionsList(NetdevNetmapOptionsList * obj);
2747 void qapi_free_NetdevNetmapOptions(NetdevNetmapOptions * obj);
2748 
2749 struct 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 };
2766 void qapi_free_NetClientOptionsList(NetClientOptionsList * obj);
2767 void qapi_free_NetClientOptions(NetClientOptions * obj);
2768 
2769 struct 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 
2780 void qapi_free_NetLegacyList(NetLegacyList * obj);
2781 void qapi_free_NetLegacy(NetLegacy * obj);
2782 
2783 struct Netdev
2784 {
2785     char * id;
2786     NetClientOptions * opts;
2787 };
2788 
2789 void qapi_free_NetdevList(NetdevList * obj);
2790 void qapi_free_Netdev(Netdev * obj);
2791 
2792 struct 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 
2804 void qapi_free_InetSocketAddressList(InetSocketAddressList * obj);
2805 void qapi_free_InetSocketAddress(InetSocketAddress * obj);
2806 
2807 struct UnixSocketAddress
2808 {
2809     char * path;
2810 };
2811 
2812 void qapi_free_UnixSocketAddressList(UnixSocketAddressList * obj);
2813 void qapi_free_UnixSocketAddress(UnixSocketAddress * obj);
2814 
2815 struct SocketAddress
2816 {
2817     SocketAddressKind kind;
2818     union {
2819         void *data;
2820         InetSocketAddress * inet;
2821         UnixSocketAddress * q_unix;
2822         String * fd;
2823     };
2824 };
2825 void qapi_free_SocketAddressList(SocketAddressList * obj);
2826 void qapi_free_SocketAddress(SocketAddress * obj);
2827 
2828 struct 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 
2838 void qapi_free_MachineInfoList(MachineInfoList * obj);
2839 void qapi_free_MachineInfo(MachineInfo * obj);
2840 
2841 struct CpuDefinitionInfo
2842 {
2843     char * name;
2844 };
2845 
2846 void qapi_free_CpuDefinitionInfoList(CpuDefinitionInfoList * obj);
2847 void qapi_free_CpuDefinitionInfo(CpuDefinitionInfo * obj);
2848 
2849 struct AddfdInfo
2850 {
2851     int64_t fdset_id;
2852     int64_t fd;
2853 };
2854 
2855 void qapi_free_AddfdInfoList(AddfdInfoList * obj);
2856 void qapi_free_AddfdInfo(AddfdInfo * obj);
2857 
2858 struct FdsetFdInfo
2859 {
2860     int64_t fd;
2861     bool has_opaque;
2862     char * opaque;
2863 };
2864 
2865 void qapi_free_FdsetFdInfoList(FdsetFdInfoList * obj);
2866 void qapi_free_FdsetFdInfo(FdsetFdInfo * obj);
2867 
2868 struct FdsetInfo
2869 {
2870     int64_t fdset_id;
2871     FdsetFdInfoList * fds;
2872 };
2873 
2874 void qapi_free_FdsetInfoList(FdsetInfoList * obj);
2875 void qapi_free_FdsetInfo(FdsetInfo * obj);
2876 
2877 struct TargetInfo
2878 {
2879     char * arch;
2880 };
2881 
2882 void qapi_free_TargetInfoList(TargetInfoList * obj);
2883 void qapi_free_TargetInfo(TargetInfo * obj);
2884 
2885 void qapi_free_QKeyCodeList(QKeyCodeList * obj);
2886 
2887 struct KeyValue
2888 {
2889     KeyValueKind kind;
2890     union {
2891         void *data;
2892         int64_t number;
2893         QKeyCode qcode;
2894     };
2895 };
2896 void qapi_free_KeyValueList(KeyValueList * obj);
2897 void qapi_free_KeyValue(KeyValue * obj);
2898 
2899 struct ChardevFile
2900 {
2901     bool has_in;
2902     char * in;
2903     char * out;
2904 };
2905 
2906 void qapi_free_ChardevFileList(ChardevFileList * obj);
2907 void qapi_free_ChardevFile(ChardevFile * obj);
2908 
2909 struct ChardevHostdev
2910 {
2911     char * device;
2912 };
2913 
2914 void qapi_free_ChardevHostdevList(ChardevHostdevList * obj);
2915 void qapi_free_ChardevHostdev(ChardevHostdev * obj);
2916 
2917 struct 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 
2930 void qapi_free_ChardevSocketList(ChardevSocketList * obj);
2931 void qapi_free_ChardevSocket(ChardevSocket * obj);
2932 
2933 struct ChardevUdp
2934 {
2935     SocketAddress * remote;
2936     bool has_local;
2937     SocketAddress * local;
2938 };
2939 
2940 void qapi_free_ChardevUdpList(ChardevUdpList * obj);
2941 void qapi_free_ChardevUdp(ChardevUdp * obj);
2942 
2943 struct ChardevMux
2944 {
2945     char * chardev;
2946 };
2947 
2948 void qapi_free_ChardevMuxList(ChardevMuxList * obj);
2949 void qapi_free_ChardevMux(ChardevMux * obj);
2950 
2951 struct ChardevStdio
2952 {
2953     bool has_signal;
2954     bool signal;
2955 };
2956 
2957 void qapi_free_ChardevStdioList(ChardevStdioList * obj);
2958 void qapi_free_ChardevStdio(ChardevStdio * obj);
2959 
2960 struct ChardevSpiceChannel
2961 {
2962     char * type;
2963 };
2964 
2965 void qapi_free_ChardevSpiceChannelList(ChardevSpiceChannelList * obj);
2966 void qapi_free_ChardevSpiceChannel(ChardevSpiceChannel * obj);
2967 
2968 struct ChardevSpicePort
2969 {
2970     char * fqdn;
2971 };
2972 
2973 void qapi_free_ChardevSpicePortList(ChardevSpicePortList * obj);
2974 void qapi_free_ChardevSpicePort(ChardevSpicePort * obj);
2975 
2976 struct 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 
2988 void qapi_free_ChardevVCList(ChardevVCList * obj);
2989 void qapi_free_ChardevVC(ChardevVC * obj);
2990 
2991 struct ChardevRingbuf
2992 {
2993     bool has_size;
2994     int64_t size;
2995 };
2996 
2997 void qapi_free_ChardevRingbufList(ChardevRingbufList * obj);
2998 void qapi_free_ChardevRingbuf(ChardevRingbuf * obj);
2999 
3000 struct ChardevDummy
3001 {
3002 };
3003 
3004 void qapi_free_ChardevDummyList(ChardevDummyList * obj);
3005 void qapi_free_ChardevDummy(ChardevDummy * obj);
3006 
3007 struct 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 };
3032 void qapi_free_ChardevBackendList(ChardevBackendList * obj);
3033 void qapi_free_ChardevBackend(ChardevBackend * obj);
3034 
3035 struct ChardevReturn
3036 {
3037     bool has_pty;
3038     char * pty;
3039 };
3040 
3041 void qapi_free_ChardevReturnList(ChardevReturnList * obj);
3042 void qapi_free_ChardevReturn(ChardevReturn * obj);
3043 
3044 void qapi_free_TpmModelList(TpmModelList * obj);
3045 
3046 void qapi_free_TpmTypeList(TpmTypeList * obj);
3047 
3048 struct TPMPassthroughOptions
3049 {
3050     bool has_path;
3051     char * path;
3052     bool has_cancel_path;
3053     char * cancel_path;
3054 };
3055 
3056 void qapi_free_TPMPassthroughOptionsList(TPMPassthroughOptionsList * obj);
3057 void qapi_free_TPMPassthroughOptions(TPMPassthroughOptions * obj);
3058 
3059 struct TpmTypeOptions
3060 {
3061     TpmTypeOptionsKind kind;
3062     union {
3063         void *data;
3064         TPMPassthroughOptions * passthrough;
3065     };
3066 };
3067 void qapi_free_TpmTypeOptionsList(TpmTypeOptionsList * obj);
3068 void qapi_free_TpmTypeOptions(TpmTypeOptions * obj);
3069 
3070 struct TPMInfo
3071 {
3072     char * id;
3073     TpmModel model;
3074     TpmTypeOptions * options;
3075 };
3076 
3077 void qapi_free_TPMInfoList(TPMInfoList * obj);
3078 void qapi_free_TPMInfo(TPMInfo * obj);
3079 
3080 struct 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 
3102 void qapi_free_AcpiTableOptionsList(AcpiTableOptionsList * obj);
3103 void qapi_free_AcpiTableOptions(AcpiTableOptions * obj);
3104 
3105 void qapi_free_CommandLineParameterTypeList(CommandLineParameterTypeList * obj);
3106 
3107 struct CommandLineParameterInfo
3108 {
3109     char * name;
3110     CommandLineParameterType type;
3111     bool has_help;
3112     char * help;
3113 };
3114 
3115 void qapi_free_CommandLineParameterInfoList(CommandLineParameterInfoList * obj);
3116 void qapi_free_CommandLineParameterInfo(CommandLineParameterInfo * obj);
3117 
3118 struct CommandLineOptionInfo
3119 {
3120     char * option;
3121     CommandLineParameterInfoList * parameters;
3122 };
3123 
3124 void qapi_free_CommandLineOptionInfoList(CommandLineOptionInfoList * obj);
3125 void qapi_free_CommandLineOptionInfo(CommandLineOptionInfo * obj);
3126 
3127 void qapi_free_X86CPURegister32List(X86CPURegister32List * obj);
3128 
3129 struct 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 
3138 void qapi_free_X86CPUFeatureWordInfoList(X86CPUFeatureWordInfoList * obj);
3139 void qapi_free_X86CPUFeatureWordInfo(X86CPUFeatureWordInfo * obj);
3140 
3141 void qapi_free_RxStateList(RxStateList * obj);
3142 
3143 struct 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 
3158 void qapi_free_RxFilterInfoList(RxFilterInfoList * obj);
3159 void qapi_free_RxFilterInfo(RxFilterInfo * obj);
3160 
3161 void qapi_free_BlockdevDiscardOptionsList(BlockdevDiscardOptionsList * obj);
3162 
3163 void qapi_free_BlockdevAioOptionsList(BlockdevAioOptionsList * obj);
3164 
3165 struct 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 
3175 void qapi_free_BlockdevCacheOptionsList(BlockdevCacheOptionsList * obj);
3176 void qapi_free_BlockdevCacheOptions(BlockdevCacheOptions * obj);
3177 
3178 struct 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 
3197 void qapi_free_BlockdevOptionsBaseList(BlockdevOptionsBaseList * obj);
3198 void qapi_free_BlockdevOptionsBase(BlockdevOptionsBase * obj);
3199 
3200 struct BlockdevOptionsFile
3201 {
3202     char * filename;
3203 };
3204 
3205 void qapi_free_BlockdevOptionsFileList(BlockdevOptionsFileList * obj);
3206 void qapi_free_BlockdevOptionsFile(BlockdevOptionsFile * obj);
3207 
3208 struct 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 
3219 void qapi_free_BlockdevOptionsVVFATList(BlockdevOptionsVVFATList * obj);
3220 void qapi_free_BlockdevOptionsVVFAT(BlockdevOptionsVVFAT * obj);
3221 
3222 struct BlockdevOptionsGenericFormat
3223 {
3224     BlockdevRef * file;
3225 };
3226 
3227 void qapi_free_BlockdevOptionsGenericFormatList(BlockdevOptionsGenericFormatList * obj);
3228 void qapi_free_BlockdevOptionsGenericFormat(BlockdevOptionsGenericFormat * obj);
3229 
3230 struct BlockdevOptionsGenericCOWFormat
3231 {
3232     BlockdevOptionsGenericFormat * base;
3233     bool has_backing;
3234     BlockdevRef * backing;
3235 };
3236 
3237 void qapi_free_BlockdevOptionsGenericCOWFormatList(BlockdevOptionsGenericCOWFormatList * obj);
3238 void qapi_free_BlockdevOptionsGenericCOWFormat(BlockdevOptionsGenericCOWFormat * obj);
3239 
3240 struct 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 
3253 void qapi_free_BlockdevOptionsQcow2List(BlockdevOptionsQcow2List * obj);
3254 void qapi_free_BlockdevOptionsQcow2(BlockdevOptionsQcow2 * obj);
3255 
3256 struct 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 };
3297 void qapi_free_BlockdevOptionsList(BlockdevOptionsList * obj);
3298 void qapi_free_BlockdevOptions(BlockdevOptions * obj);
3299 
3300 struct BlockdevRef
3301 {
3302     BlockdevRefKind kind;
3303     union {
3304         void *data;
3305         BlockdevOptions * definition;
3306         char * reference;
3307     };
3308 };
3309 extern const int BlockdevRef_qtypes[];
3310 void qapi_free_BlockdevRefList(BlockdevRefList * obj);
3311 void qapi_free_BlockdevRef(BlockdevRef * obj);
3312 
3313 #endif
3314