Home | History | Annotate | Download | only in qapi-auto-generated
      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 (at) 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