mirror of https://github.com/xemu-project/xemu.git
qapi: make 'if' condition strings simple identifiers
Change the 'if' condition strings to be C-agnostic. It will accept '[A-Z][A-Z0-9_]*' identifiers. This allows to express configuration conditions in other languages (Rust or Python for ex) or other more suitable forms. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Tested-by: John Snow <jsnow@redhat.com> Message-Id: <20210804083105.97531-11-marcandre.lureau@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> [Rebased with semantic conflict in redefined-event.json] Signed-off-by: Markus Armbruster <armbru@redhat.com>
This commit is contained in:
parent
2b7d214536
commit
8a9f1e1d9c
|
@ -914,7 +914,7 @@
|
|||
'data': {
|
||||
'file': 'BlockStatsSpecificFile',
|
||||
'host_device': { 'type': 'BlockStatsSpecificFile',
|
||||
'if': 'defined(HAVE_HOST_BLOCK_DEVICE)' },
|
||||
'if': 'HAVE_HOST_BLOCK_DEVICE' },
|
||||
'nvme': 'BlockStatsSpecificNvme' } }
|
||||
|
||||
##
|
||||
|
@ -2796,7 +2796,7 @@
|
|||
##
|
||||
{ 'enum': 'BlockdevAioOptions',
|
||||
'data': [ 'threads', 'native',
|
||||
{ 'name': 'io_uring', 'if': 'defined(CONFIG_LINUX_IO_URING)' } ] }
|
||||
{ 'name': 'io_uring', 'if': 'CONFIG_LINUX_IO_URING' } ] }
|
||||
|
||||
##
|
||||
# @BlockdevCacheOptions:
|
||||
|
@ -2832,12 +2832,12 @@
|
|||
'data': [ 'blkdebug', 'blklogwrites', 'blkreplay', 'blkverify', 'bochs',
|
||||
'cloop', 'compress', 'copy-on-read', 'dmg', 'file', 'ftp', 'ftps',
|
||||
'gluster',
|
||||
{'name': 'host_cdrom', 'if': 'defined(HAVE_HOST_BLOCK_DEVICE)' },
|
||||
{'name': 'host_device', 'if': 'defined(HAVE_HOST_BLOCK_DEVICE)' },
|
||||
{'name': 'host_cdrom', 'if': 'HAVE_HOST_BLOCK_DEVICE' },
|
||||
{'name': 'host_device', 'if': 'HAVE_HOST_BLOCK_DEVICE' },
|
||||
'http', 'https', 'iscsi',
|
||||
'luks', 'nbd', 'nfs', 'null-aio', 'null-co', 'nvme', 'parallels',
|
||||
'preallocate', 'qcow', 'qcow2', 'qed', 'quorum', 'raw', 'rbd',
|
||||
{ 'name': 'replication', 'if': 'defined(CONFIG_REPLICATION)' },
|
||||
{ 'name': 'replication', 'if': 'CONFIG_REPLICATION' },
|
||||
'ssh', 'throttle', 'vdi', 'vhdx', 'vmdk', 'vpc', 'vvfat' ] }
|
||||
|
||||
##
|
||||
|
@ -2879,10 +2879,10 @@
|
|||
'*locking': 'OnOffAuto',
|
||||
'*aio': 'BlockdevAioOptions',
|
||||
'*drop-cache': {'type': 'bool',
|
||||
'if': 'defined(CONFIG_LINUX)'},
|
||||
'if': 'CONFIG_LINUX'},
|
||||
'*x-check-cache-dropped': 'bool' },
|
||||
'features': [ { 'name': 'dynamic-auto-read-only',
|
||||
'if': 'defined(CONFIG_POSIX)' } ] }
|
||||
'if': 'CONFIG_POSIX' } ] }
|
||||
|
||||
##
|
||||
# @BlockdevOptionsNull:
|
||||
|
@ -3774,7 +3774,7 @@
|
|||
# Since: 2.9
|
||||
##
|
||||
{ 'enum' : 'ReplicationMode', 'data' : [ 'primary', 'secondary' ],
|
||||
'if': 'defined(CONFIG_REPLICATION)' }
|
||||
'if': 'CONFIG_REPLICATION' }
|
||||
|
||||
##
|
||||
# @BlockdevOptionsReplication:
|
||||
|
@ -3793,7 +3793,7 @@
|
|||
'base': 'BlockdevOptionsGenericFormat',
|
||||
'data': { 'mode': 'ReplicationMode',
|
||||
'*top-id': 'str' },
|
||||
'if': 'defined(CONFIG_REPLICATION)' }
|
||||
'if': 'CONFIG_REPLICATION' }
|
||||
|
||||
##
|
||||
# @NFSTransport:
|
||||
|
@ -4108,9 +4108,9 @@
|
|||
'ftps': 'BlockdevOptionsCurlFtps',
|
||||
'gluster': 'BlockdevOptionsGluster',
|
||||
'host_cdrom': { 'type': 'BlockdevOptionsFile',
|
||||
'if': 'defined(HAVE_HOST_BLOCK_DEVICE)' },
|
||||
'if': 'HAVE_HOST_BLOCK_DEVICE' },
|
||||
'host_device': { 'type': 'BlockdevOptionsFile',
|
||||
'if': 'defined(HAVE_HOST_BLOCK_DEVICE)' },
|
||||
'if': 'HAVE_HOST_BLOCK_DEVICE' },
|
||||
'http': 'BlockdevOptionsCurlHttp',
|
||||
'https': 'BlockdevOptionsCurlHttps',
|
||||
'iscsi': 'BlockdevOptionsIscsi',
|
||||
|
@ -4129,7 +4129,7 @@
|
|||
'raw': 'BlockdevOptionsRaw',
|
||||
'rbd': 'BlockdevOptionsRbd',
|
||||
'replication': { 'type': 'BlockdevOptionsReplication',
|
||||
'if': 'defined(CONFIG_REPLICATION)' },
|
||||
'if': 'CONFIG_REPLICATION' },
|
||||
'ssh': 'BlockdevOptionsSsh',
|
||||
'throttle': 'BlockdevOptionsThrottle',
|
||||
'vdi': 'BlockdevOptionsGenericFormat',
|
||||
|
@ -4307,8 +4307,8 @@
|
|||
# @size: Size of the virtual disk in bytes
|
||||
# @preallocation: Preallocation mode for the new image (default: off;
|
||||
# allowed values: off,
|
||||
# falloc (if defined CONFIG_POSIX_FALLOCATE),
|
||||
# full (if defined CONFIG_POSIX))
|
||||
# falloc (if CONFIG_POSIX_FALLOCATE),
|
||||
# full (if CONFIG_POSIX))
|
||||
# @nocow: Turn off copy-on-write (valid only on btrfs; default: off)
|
||||
# @extent-size-hint: Extent size hint to add to the image file; 0 for not
|
||||
# adding an extent size hint (default: 1 MB, since 5.1)
|
||||
|
@ -4331,8 +4331,8 @@
|
|||
# @size: Size of the virtual disk in bytes
|
||||
# @preallocation: Preallocation mode for the new image (default: off;
|
||||
# allowed values: off,
|
||||
# falloc (if defined CONFIG_GLUSTERFS_FALLOCATE),
|
||||
# full (if defined CONFIG_GLUSTERFS_ZEROFILL))
|
||||
# falloc (if CONFIG_GLUSTERFS_FALLOCATE),
|
||||
# full (if CONFIG_GLUSTERFS_ZEROFILL))
|
||||
#
|
||||
# Since: 2.12
|
||||
##
|
||||
|
@ -4432,7 +4432,7 @@
|
|||
# Since: 5.1
|
||||
##
|
||||
{ 'enum': 'Qcow2CompressionType',
|
||||
'data': [ 'zlib', { 'name': 'zstd', 'if': 'defined(CONFIG_ZSTD)' } ] }
|
||||
'data': [ 'zlib', { 'name': 'zstd', 'if': 'CONFIG_ZSTD' } ] }
|
||||
|
||||
##
|
||||
# @BlockdevCreateOptionsQcow2:
|
||||
|
|
|
@ -168,7 +168,7 @@
|
|||
'data': { 'mountpoint': 'str',
|
||||
'*growable': 'bool',
|
||||
'*allow-other': 'FuseExportAllowOther' },
|
||||
'if': 'defined(CONFIG_FUSE)' }
|
||||
'if': 'CONFIG_FUSE' }
|
||||
|
||||
##
|
||||
# @NbdServerAddOptions:
|
||||
|
@ -278,7 +278,7 @@
|
|||
##
|
||||
{ 'enum': 'BlockExportType',
|
||||
'data': [ 'nbd', 'vhost-user-blk',
|
||||
{ 'name': 'fuse', 'if': 'defined(CONFIG_FUSE)' } ] }
|
||||
{ 'name': 'fuse', 'if': 'CONFIG_FUSE' } ] }
|
||||
|
||||
##
|
||||
# @BlockExportOptions:
|
||||
|
@ -321,7 +321,7 @@
|
|||
'nbd': 'BlockExportOptionsNbd',
|
||||
'vhost-user-blk': 'BlockExportOptionsVhostUserBlk',
|
||||
'fuse': { 'type': 'BlockExportOptionsFuse',
|
||||
'if': 'defined(CONFIG_FUSE)' }
|
||||
'if': 'CONFIG_FUSE' }
|
||||
} }
|
||||
|
||||
##
|
||||
|
|
|
@ -342,7 +342,7 @@
|
|||
{ 'struct': 'ChardevSpiceChannel',
|
||||
'data': { 'type': 'str' },
|
||||
'base': 'ChardevCommon',
|
||||
'if': 'defined(CONFIG_SPICE)' }
|
||||
'if': 'CONFIG_SPICE' }
|
||||
|
||||
##
|
||||
# @ChardevSpicePort:
|
||||
|
@ -356,7 +356,7 @@
|
|||
{ 'struct': 'ChardevSpicePort',
|
||||
'data': { 'fqdn': 'str' },
|
||||
'base': 'ChardevCommon',
|
||||
'if': 'defined(CONFIG_SPICE)' }
|
||||
'if': 'CONFIG_SPICE' }
|
||||
|
||||
##
|
||||
# @ChardevVC:
|
||||
|
@ -405,7 +405,7 @@
|
|||
'data': { '*mouse': 'bool',
|
||||
'*clipboard': 'bool' },
|
||||
'base': 'ChardevCommon',
|
||||
'if': 'defined(CONFIG_SPICE_PROTOCOL)' }
|
||||
'if': 'CONFIG_SPICE_PROTOCOL' }
|
||||
|
||||
##
|
||||
# @ChardevBackend:
|
||||
|
@ -431,11 +431,11 @@
|
|||
'stdio': 'ChardevStdio',
|
||||
'console': 'ChardevCommon',
|
||||
'spicevmc': { 'type': 'ChardevSpiceChannel',
|
||||
'if': 'defined(CONFIG_SPICE)' },
|
||||
'if': 'CONFIG_SPICE' },
|
||||
'spiceport': { 'type': 'ChardevSpicePort',
|
||||
'if': 'defined(CONFIG_SPICE)' },
|
||||
'if': 'CONFIG_SPICE' },
|
||||
'qemu-vdagent': { 'type': 'ChardevQemuVDAgent',
|
||||
'if': 'defined(CONFIG_SPICE_PROTOCOL)' },
|
||||
'if': 'CONFIG_SPICE_PROTOCOL' },
|
||||
'vc': 'ChardevVC',
|
||||
'ringbuf': 'ChardevRingbuf',
|
||||
# next one is just for compatibility
|
||||
|
|
|
@ -89,7 +89,7 @@
|
|||
##
|
||||
{ 'struct': 'CpuModelBaselineInfo',
|
||||
'data': { 'model': 'CpuModelInfo' },
|
||||
'if': 'defined(TARGET_S390X)' }
|
||||
'if': 'TARGET_S390X' }
|
||||
|
||||
##
|
||||
# @CpuModelCompareInfo:
|
||||
|
@ -112,7 +112,7 @@
|
|||
{ 'struct': 'CpuModelCompareInfo',
|
||||
'data': { 'result': 'CpuModelCompareResult',
|
||||
'responsible-properties': ['str'] },
|
||||
'if': 'defined(TARGET_S390X)' }
|
||||
'if': 'TARGET_S390X' }
|
||||
|
||||
##
|
||||
# @query-cpu-model-comparison:
|
||||
|
@ -156,7 +156,7 @@
|
|||
{ 'command': 'query-cpu-model-comparison',
|
||||
'data': { 'modela': 'CpuModelInfo', 'modelb': 'CpuModelInfo' },
|
||||
'returns': 'CpuModelCompareInfo',
|
||||
'if': 'defined(TARGET_S390X)' }
|
||||
'if': 'TARGET_S390X' }
|
||||
|
||||
##
|
||||
# @query-cpu-model-baseline:
|
||||
|
@ -200,7 +200,7 @@
|
|||
'data': { 'modela': 'CpuModelInfo',
|
||||
'modelb': 'CpuModelInfo' },
|
||||
'returns': 'CpuModelBaselineInfo',
|
||||
'if': 'defined(TARGET_S390X)' }
|
||||
'if': 'TARGET_S390X' }
|
||||
|
||||
##
|
||||
# @CpuModelExpansionInfo:
|
||||
|
@ -213,9 +213,9 @@
|
|||
##
|
||||
{ 'struct': 'CpuModelExpansionInfo',
|
||||
'data': { 'model': 'CpuModelInfo' },
|
||||
'if': { 'any': [ 'defined(TARGET_S390X)',
|
||||
'defined(TARGET_I386)',
|
||||
'defined(TARGET_ARM)'] } }
|
||||
'if': { 'any': [ 'TARGET_S390X',
|
||||
'TARGET_I386',
|
||||
'TARGET_ARM' ] } }
|
||||
|
||||
##
|
||||
# @query-cpu-model-expansion:
|
||||
|
@ -254,9 +254,9 @@
|
|||
'data': { 'type': 'CpuModelExpansionType',
|
||||
'model': 'CpuModelInfo' },
|
||||
'returns': 'CpuModelExpansionInfo',
|
||||
'if': { 'any': [ 'defined(TARGET_S390X)',
|
||||
'defined(TARGET_I386)',
|
||||
'defined(TARGET_ARM)' ] } }
|
||||
'if': { 'any': [ 'TARGET_S390X',
|
||||
'TARGET_I386',
|
||||
'TARGET_ARM' ] } }
|
||||
|
||||
##
|
||||
# @CpuDefinitionInfo:
|
||||
|
@ -320,11 +320,11 @@
|
|||
'typename': 'str',
|
||||
'*alias-of' : 'str',
|
||||
'deprecated' : 'bool' },
|
||||
'if': { 'any': [ 'defined(TARGET_PPC)',
|
||||
'defined(TARGET_ARM)',
|
||||
'defined(TARGET_I386)',
|
||||
'defined(TARGET_S390X)',
|
||||
'defined(TARGET_MIPS)' ] } }
|
||||
'if': { 'any': [ 'TARGET_PPC',
|
||||
'TARGET_ARM',
|
||||
'TARGET_I386',
|
||||
'TARGET_S390X',
|
||||
'TARGET_MIPS' ] } }
|
||||
|
||||
##
|
||||
# @query-cpu-definitions:
|
||||
|
@ -336,8 +336,8 @@
|
|||
# Since: 1.2
|
||||
##
|
||||
{ 'command': 'query-cpu-definitions', 'returns': ['CpuDefinitionInfo'],
|
||||
'if': { 'any': [ 'defined(TARGET_PPC)',
|
||||
'defined(TARGET_ARM)',
|
||||
'defined(TARGET_I386)',
|
||||
'defined(TARGET_S390X)',
|
||||
'defined(TARGET_MIPS)' ] } }
|
||||
'if': { 'any': [ 'TARGET_PPC',
|
||||
'TARGET_ARM',
|
||||
'TARGET_I386',
|
||||
'TARGET_S390X',
|
||||
'TARGET_MIPS' ] } }
|
||||
|
|
|
@ -533,7 +533,7 @@
|
|||
##
|
||||
{ 'enum': 'MultiFDCompression',
|
||||
'data': [ 'none', 'zlib',
|
||||
{ 'name': 'zstd', 'if': 'defined(CONFIG_ZSTD)' } ] }
|
||||
{ 'name': 'zstd', 'if': 'CONFIG_ZSTD' } ] }
|
||||
|
||||
##
|
||||
# @BitmapMigrationBitmapAliasTransform:
|
||||
|
@ -1562,7 +1562,7 @@
|
|||
##
|
||||
{ 'command': 'xen-set-replication',
|
||||
'data': { 'enable': 'bool', 'primary': 'bool', '*failover' : 'bool' },
|
||||
'if': 'defined(CONFIG_REPLICATION)' }
|
||||
'if': 'CONFIG_REPLICATION' }
|
||||
|
||||
##
|
||||
# @ReplicationStatus:
|
||||
|
@ -1578,7 +1578,7 @@
|
|||
##
|
||||
{ 'struct': 'ReplicationStatus',
|
||||
'data': { 'error': 'bool', '*desc': 'str' },
|
||||
'if': 'defined(CONFIG_REPLICATION)' }
|
||||
'if': 'CONFIG_REPLICATION' }
|
||||
|
||||
##
|
||||
# @query-xen-replication-status:
|
||||
|
@ -1596,7 +1596,7 @@
|
|||
##
|
||||
{ 'command': 'query-xen-replication-status',
|
||||
'returns': 'ReplicationStatus',
|
||||
'if': 'defined(CONFIG_REPLICATION)' }
|
||||
'if': 'CONFIG_REPLICATION' }
|
||||
|
||||
##
|
||||
# @xen-colo-do-checkpoint:
|
||||
|
@ -1613,7 +1613,7 @@
|
|||
# Since: 2.9
|
||||
##
|
||||
{ 'command': 'xen-colo-do-checkpoint',
|
||||
'if': 'defined(CONFIG_REPLICATION)' }
|
||||
'if': 'CONFIG_REPLICATION' }
|
||||
|
||||
##
|
||||
# @COLOStatus:
|
||||
|
|
|
@ -23,17 +23,17 @@
|
|||
##
|
||||
{ 'event': 'RTC_CHANGE',
|
||||
'data': { 'offset': 'int' },
|
||||
'if': { 'any': [ 'defined(TARGET_ALPHA)',
|
||||
'defined(TARGET_ARM)',
|
||||
'defined(TARGET_HPPA)',
|
||||
'defined(TARGET_I386)',
|
||||
'defined(TARGET_MIPS)',
|
||||
'defined(TARGET_MIPS64)',
|
||||
'defined(TARGET_PPC)',
|
||||
'defined(TARGET_PPC64)',
|
||||
'defined(TARGET_S390X)',
|
||||
'defined(TARGET_SH4)',
|
||||
'defined(TARGET_SPARC)' ] } }
|
||||
'if': { 'any': [ 'TARGET_ALPHA',
|
||||
'TARGET_ARM',
|
||||
'TARGET_HPPA',
|
||||
'TARGET_I386',
|
||||
'TARGET_MIPS',
|
||||
'TARGET_MIPS64',
|
||||
'TARGET_PPC',
|
||||
'TARGET_PPC64',
|
||||
'TARGET_S390X',
|
||||
'TARGET_SH4',
|
||||
'TARGET_SPARC' ] } }
|
||||
|
||||
##
|
||||
# @rtc-reset-reinjection:
|
||||
|
@ -52,7 +52,7 @@
|
|||
#
|
||||
##
|
||||
{ 'command': 'rtc-reset-reinjection',
|
||||
'if': 'defined(TARGET_I386)' }
|
||||
'if': 'TARGET_I386' }
|
||||
|
||||
|
||||
##
|
||||
|
@ -79,7 +79,7 @@
|
|||
{ 'enum': 'SevState',
|
||||
'data': ['uninit', 'launch-update', 'launch-secret', 'running',
|
||||
'send-update', 'receive-update' ],
|
||||
'if': 'defined(TARGET_I386)' }
|
||||
'if': 'TARGET_I386' }
|
||||
|
||||
##
|
||||
# @SevInfo:
|
||||
|
@ -111,7 +111,7 @@
|
|||
'state' : 'SevState',
|
||||
'handle' : 'uint32'
|
||||
},
|
||||
'if': 'defined(TARGET_I386)'
|
||||
'if': 'TARGET_I386'
|
||||
}
|
||||
|
||||
##
|
||||
|
@ -132,7 +132,7 @@
|
|||
#
|
||||
##
|
||||
{ 'command': 'query-sev', 'returns': 'SevInfo',
|
||||
'if': 'defined(TARGET_I386)' }
|
||||
'if': 'TARGET_I386' }
|
||||
|
||||
|
||||
##
|
||||
|
@ -146,7 +146,7 @@
|
|||
#
|
||||
##
|
||||
{ 'struct': 'SevLaunchMeasureInfo', 'data': {'data': 'str'},
|
||||
'if': 'defined(TARGET_I386)' }
|
||||
'if': 'TARGET_I386' }
|
||||
|
||||
##
|
||||
# @query-sev-launch-measure:
|
||||
|
@ -164,7 +164,7 @@
|
|||
#
|
||||
##
|
||||
{ 'command': 'query-sev-launch-measure', 'returns': 'SevLaunchMeasureInfo',
|
||||
'if': 'defined(TARGET_I386)' }
|
||||
'if': 'TARGET_I386' }
|
||||
|
||||
|
||||
##
|
||||
|
@ -189,7 +189,7 @@
|
|||
'cert-chain': 'str',
|
||||
'cbitpos': 'int',
|
||||
'reduced-phys-bits': 'int'},
|
||||
'if': 'defined(TARGET_I386)' }
|
||||
'if': 'TARGET_I386' }
|
||||
|
||||
##
|
||||
# @query-sev-capabilities:
|
||||
|
@ -209,7 +209,7 @@
|
|||
#
|
||||
##
|
||||
{ 'command': 'query-sev-capabilities', 'returns': 'SevCapability',
|
||||
'if': 'defined(TARGET_I386)' }
|
||||
'if': 'TARGET_I386' }
|
||||
|
||||
##
|
||||
# @sev-inject-launch-secret:
|
||||
|
@ -227,7 +227,7 @@
|
|||
##
|
||||
{ 'command': 'sev-inject-launch-secret',
|
||||
'data': { 'packet-header': 'str', 'secret': 'str', '*gpa': 'uint64' },
|
||||
'if': 'defined(TARGET_I386)' }
|
||||
'if': 'TARGET_I386' }
|
||||
|
||||
##
|
||||
# @dump-skeys:
|
||||
|
@ -249,7 +249,7 @@
|
|||
##
|
||||
{ 'command': 'dump-skeys',
|
||||
'data': { 'filename': 'str' },
|
||||
'if': 'defined(TARGET_S390X)' }
|
||||
'if': 'TARGET_S390X' }
|
||||
|
||||
##
|
||||
# @GICCapability:
|
||||
|
@ -274,7 +274,7 @@
|
|||
'data': { 'version': 'int',
|
||||
'emulated': 'bool',
|
||||
'kernel': 'bool' },
|
||||
'if': 'defined(TARGET_ARM)' }
|
||||
'if': 'TARGET_ARM' }
|
||||
|
||||
##
|
||||
# @query-gic-capabilities:
|
||||
|
@ -294,7 +294,7 @@
|
|||
#
|
||||
##
|
||||
{ 'command': 'query-gic-capabilities', 'returns': ['GICCapability'],
|
||||
'if': 'defined(TARGET_ARM)' }
|
||||
'if': 'TARGET_ARM' }
|
||||
|
||||
|
||||
##
|
||||
|
@ -310,7 +310,7 @@
|
|||
##
|
||||
{ 'struct': 'SevAttestationReport',
|
||||
'data': { 'data': 'str'},
|
||||
'if': 'defined(TARGET_I386)' }
|
||||
'if': 'TARGET_I386' }
|
||||
|
||||
##
|
||||
# @query-sev-attestation-report:
|
||||
|
@ -332,4 +332,4 @@
|
|||
##
|
||||
{ 'command': 'query-sev-attestation-report', 'data': { 'mnonce': 'str' },
|
||||
'returns': 'SevAttestationReport',
|
||||
'if': 'defined(TARGET_I386)' }
|
||||
'if': 'TARGET_I386' }
|
||||
|
|
|
@ -618,7 +618,7 @@
|
|||
'data': { '*align': 'size',
|
||||
'*discard-data': 'bool',
|
||||
'mem-path': 'str',
|
||||
'*pmem': { 'type': 'bool', 'if': 'defined(CONFIG_LIBPMEM)' },
|
||||
'*pmem': { 'type': 'bool', 'if': 'CONFIG_LIBPMEM' },
|
||||
'*readonly': 'bool' } }
|
||||
|
||||
##
|
||||
|
@ -782,7 +782,7 @@
|
|||
'cryptodev-backend',
|
||||
'cryptodev-backend-builtin',
|
||||
{ 'name': 'cryptodev-vhost-user',
|
||||
'if': 'defined(CONFIG_VHOST_CRYPTO)' },
|
||||
'if': 'CONFIG_VHOST_CRYPTO' },
|
||||
'dbus-vmstate',
|
||||
'filter-buffer',
|
||||
'filter-dump',
|
||||
|
@ -795,7 +795,7 @@
|
|||
'iothread',
|
||||
'memory-backend-file',
|
||||
{ 'name': 'memory-backend-memfd',
|
||||
'if': 'defined(CONFIG_LINUX)' },
|
||||
'if': 'CONFIG_LINUX' },
|
||||
'memory-backend-ram',
|
||||
'pef-guest',
|
||||
'pr-manager-helper',
|
||||
|
@ -840,7 +840,7 @@
|
|||
'cryptodev-backend': 'CryptodevBackendProperties',
|
||||
'cryptodev-backend-builtin': 'CryptodevBackendProperties',
|
||||
'cryptodev-vhost-user': { 'type': 'CryptodevVhostUserProperties',
|
||||
'if': 'defined(CONFIG_VHOST_CRYPTO)' },
|
||||
'if': 'CONFIG_VHOST_CRYPTO' },
|
||||
'dbus-vmstate': 'DBusVMStateProperties',
|
||||
'filter-buffer': 'FilterBufferProperties',
|
||||
'filter-dump': 'FilterDumpProperties',
|
||||
|
@ -853,7 +853,7 @@
|
|||
'iothread': 'IothreadProperties',
|
||||
'memory-backend-file': 'MemoryBackendFileProperties',
|
||||
'memory-backend-memfd': { 'type': 'MemoryBackendMemfdProperties',
|
||||
'if': 'defined(CONFIG_LINUX)' },
|
||||
'if': 'CONFIG_LINUX' },
|
||||
'memory-backend-ram': 'MemoryBackendProperties',
|
||||
'pr-manager-helper': 'PrManagerHelperProperties',
|
||||
'qtest': 'QtestProperties',
|
||||
|
|
|
@ -69,7 +69,7 @@
|
|||
'*ipv4': 'bool',
|
||||
'*ipv6': 'bool',
|
||||
'*keep-alive': 'bool',
|
||||
'*mptcp': { 'type': 'bool', 'if': 'defined(IPPROTO_MPTCP)' } } }
|
||||
'*mptcp': { 'type': 'bool', 'if': 'IPPROTO_MPTCP' } } }
|
||||
|
||||
##
|
||||
# @UnixSocketAddress:
|
||||
|
@ -89,8 +89,8 @@
|
|||
{ 'struct': 'UnixSocketAddress',
|
||||
'data': {
|
||||
'path': 'str',
|
||||
'*abstract': { 'type': 'bool', 'if': 'defined(CONFIG_LINUX)' },
|
||||
'*tight': { 'type': 'bool', 'if': 'defined(CONFIG_LINUX)' } } }
|
||||
'*abstract': { 'type': 'bool', 'if': 'CONFIG_LINUX' },
|
||||
'*tight': { 'type': 'bool', 'if': 'CONFIG_LINUX' } } }
|
||||
|
||||
##
|
||||
# @VsockSocketAddress:
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
# Since: 1.5
|
||||
##
|
||||
{ 'enum': 'TpmModel', 'data': [ 'tpm-tis', 'tpm-crb', 'tpm-spapr' ],
|
||||
'if': 'defined(CONFIG_TPM)' }
|
||||
'if': 'CONFIG_TPM' }
|
||||
|
||||
##
|
||||
# @query-tpm-models:
|
||||
|
@ -36,7 +36,7 @@
|
|||
#
|
||||
##
|
||||
{ 'command': 'query-tpm-models', 'returns': ['TpmModel'],
|
||||
'if': 'defined(CONFIG_TPM)' }
|
||||
'if': 'CONFIG_TPM' }
|
||||
|
||||
##
|
||||
# @TpmType:
|
||||
|
@ -50,7 +50,7 @@
|
|||
# Since: 1.5
|
||||
##
|
||||
{ 'enum': 'TpmType', 'data': [ 'passthrough', 'emulator' ],
|
||||
'if': 'defined(CONFIG_TPM)' }
|
||||
'if': 'CONFIG_TPM' }
|
||||
|
||||
##
|
||||
# @query-tpm-types:
|
||||
|
@ -68,7 +68,7 @@
|
|||
#
|
||||
##
|
||||
{ 'command': 'query-tpm-types', 'returns': ['TpmType'],
|
||||
'if': 'defined(CONFIG_TPM)' }
|
||||
'if': 'CONFIG_TPM' }
|
||||
|
||||
##
|
||||
# @TPMPassthroughOptions:
|
||||
|
@ -85,7 +85,7 @@
|
|||
{ 'struct': 'TPMPassthroughOptions',
|
||||
'data': { '*path': 'str',
|
||||
'*cancel-path': 'str' },
|
||||
'if': 'defined(CONFIG_TPM)' }
|
||||
'if': 'CONFIG_TPM' }
|
||||
|
||||
##
|
||||
# @TPMEmulatorOptions:
|
||||
|
@ -97,7 +97,7 @@
|
|||
# Since: 2.11
|
||||
##
|
||||
{ 'struct': 'TPMEmulatorOptions', 'data': { 'chardev' : 'str' },
|
||||
'if': 'defined(CONFIG_TPM)' }
|
||||
'if': 'CONFIG_TPM' }
|
||||
|
||||
##
|
||||
# @TpmTypeOptions:
|
||||
|
@ -112,7 +112,7 @@
|
|||
{ 'union': 'TpmTypeOptions',
|
||||
'data': { 'passthrough' : 'TPMPassthroughOptions',
|
||||
'emulator': 'TPMEmulatorOptions' },
|
||||
'if': 'defined(CONFIG_TPM)' }
|
||||
'if': 'CONFIG_TPM' }
|
||||
|
||||
##
|
||||
# @TPMInfo:
|
||||
|
@ -131,7 +131,7 @@
|
|||
'data': {'id': 'str',
|
||||
'model': 'TpmModel',
|
||||
'options': 'TpmTypeOptions' },
|
||||
'if': 'defined(CONFIG_TPM)' }
|
||||
'if': 'CONFIG_TPM' }
|
||||
|
||||
##
|
||||
# @query-tpm:
|
||||
|
@ -162,4 +162,4 @@
|
|||
#
|
||||
##
|
||||
{ 'command': 'query-tpm', 'returns': ['TPMInfo'],
|
||||
'if': 'defined(CONFIG_TPM)' }
|
||||
'if': 'CONFIG_TPM' }
|
||||
|
|
68
qapi/ui.json
68
qapi/ui.json
|
@ -123,7 +123,7 @@
|
|||
'data': { 'host': 'str',
|
||||
'port': 'str',
|
||||
'family': 'NetworkAddressFamily' },
|
||||
'if': 'defined(CONFIG_SPICE)' }
|
||||
'if': 'CONFIG_SPICE' }
|
||||
|
||||
##
|
||||
# @SpiceServerInfo:
|
||||
|
@ -137,7 +137,7 @@
|
|||
{ 'struct': 'SpiceServerInfo',
|
||||
'base': 'SpiceBasicInfo',
|
||||
'data': { '*auth': 'str' },
|
||||
'if': 'defined(CONFIG_SPICE)' }
|
||||
'if': 'CONFIG_SPICE' }
|
||||
|
||||
##
|
||||
# @SpiceChannel:
|
||||
|
@ -163,7 +163,7 @@
|
|||
'base': 'SpiceBasicInfo',
|
||||
'data': {'connection-id': 'int', 'channel-type': 'int', 'channel-id': 'int',
|
||||
'tls': 'bool'},
|
||||
'if': 'defined(CONFIG_SPICE)' }
|
||||
'if': 'CONFIG_SPICE' }
|
||||
|
||||
##
|
||||
# @SpiceQueryMouseMode:
|
||||
|
@ -183,7 +183,7 @@
|
|||
##
|
||||
{ 'enum': 'SpiceQueryMouseMode',
|
||||
'data': [ 'client', 'server', 'unknown' ],
|
||||
'if': 'defined(CONFIG_SPICE)' }
|
||||
'if': 'CONFIG_SPICE' }
|
||||
|
||||
##
|
||||
# @SpiceInfo:
|
||||
|
@ -222,7 +222,7 @@
|
|||
'data': {'enabled': 'bool', 'migrated': 'bool', '*host': 'str', '*port': 'int',
|
||||
'*tls-port': 'int', '*auth': 'str', '*compiled-version': 'str',
|
||||
'mouse-mode': 'SpiceQueryMouseMode', '*channels': ['SpiceChannel']},
|
||||
'if': 'defined(CONFIG_SPICE)' }
|
||||
'if': 'CONFIG_SPICE' }
|
||||
|
||||
##
|
||||
# @query-spice:
|
||||
|
@ -268,7 +268,7 @@
|
|||
#
|
||||
##
|
||||
{ 'command': 'query-spice', 'returns': 'SpiceInfo',
|
||||
'if': 'defined(CONFIG_SPICE)' }
|
||||
'if': 'CONFIG_SPICE' }
|
||||
|
||||
##
|
||||
# @SPICE_CONNECTED:
|
||||
|
@ -294,7 +294,7 @@
|
|||
{ 'event': 'SPICE_CONNECTED',
|
||||
'data': { 'server': 'SpiceBasicInfo',
|
||||
'client': 'SpiceBasicInfo' },
|
||||
'if': 'defined(CONFIG_SPICE)' }
|
||||
'if': 'CONFIG_SPICE' }
|
||||
|
||||
##
|
||||
# @SPICE_INITIALIZED:
|
||||
|
@ -323,7 +323,7 @@
|
|||
{ 'event': 'SPICE_INITIALIZED',
|
||||
'data': { 'server': 'SpiceServerInfo',
|
||||
'client': 'SpiceChannel' },
|
||||
'if': 'defined(CONFIG_SPICE)' }
|
||||
'if': 'CONFIG_SPICE' }
|
||||
|
||||
##
|
||||
# @SPICE_DISCONNECTED:
|
||||
|
@ -349,7 +349,7 @@
|
|||
{ 'event': 'SPICE_DISCONNECTED',
|
||||
'data': { 'server': 'SpiceBasicInfo',
|
||||
'client': 'SpiceBasicInfo' },
|
||||
'if': 'defined(CONFIG_SPICE)' }
|
||||
'if': 'CONFIG_SPICE' }
|
||||
|
||||
##
|
||||
# @SPICE_MIGRATE_COMPLETED:
|
||||
|
@ -365,7 +365,7 @@
|
|||
#
|
||||
##
|
||||
{ 'event': 'SPICE_MIGRATE_COMPLETED',
|
||||
'if': 'defined(CONFIG_SPICE)' }
|
||||
'if': 'CONFIG_SPICE' }
|
||||
|
||||
##
|
||||
# == VNC
|
||||
|
@ -393,7 +393,7 @@
|
|||
'service': 'str',
|
||||
'family': 'NetworkAddressFamily',
|
||||
'websocket': 'bool' },
|
||||
'if': 'defined(CONFIG_VNC)' }
|
||||
'if': 'CONFIG_VNC' }
|
||||
|
||||
##
|
||||
# @VncServerInfo:
|
||||
|
@ -408,7 +408,7 @@
|
|||
{ 'struct': 'VncServerInfo',
|
||||
'base': 'VncBasicInfo',
|
||||
'data': { '*auth': 'str' },
|
||||
'if': 'defined(CONFIG_VNC)' }
|
||||
'if': 'CONFIG_VNC' }
|
||||
|
||||
##
|
||||
# @VncClientInfo:
|
||||
|
@ -426,7 +426,7 @@
|
|||
{ 'struct': 'VncClientInfo',
|
||||
'base': 'VncBasicInfo',
|
||||
'data': { '*x509_dname': 'str', '*sasl_username': 'str' },
|
||||
'if': 'defined(CONFIG_VNC)' }
|
||||
'if': 'CONFIG_VNC' }
|
||||
|
||||
##
|
||||
# @VncInfo:
|
||||
|
@ -469,7 +469,7 @@
|
|||
'data': {'enabled': 'bool', '*host': 'str',
|
||||
'*family': 'NetworkAddressFamily',
|
||||
'*service': 'str', '*auth': 'str', '*clients': ['VncClientInfo']},
|
||||
'if': 'defined(CONFIG_VNC)' }
|
||||
'if': 'CONFIG_VNC' }
|
||||
|
||||
##
|
||||
# @VncPrimaryAuth:
|
||||
|
@ -481,7 +481,7 @@
|
|||
{ 'enum': 'VncPrimaryAuth',
|
||||
'data': [ 'none', 'vnc', 'ra2', 'ra2ne', 'tight', 'ultra',
|
||||
'tls', 'vencrypt', 'sasl' ],
|
||||
'if': 'defined(CONFIG_VNC)' }
|
||||
'if': 'CONFIG_VNC' }
|
||||
|
||||
##
|
||||
# @VncVencryptSubAuth:
|
||||
|
@ -496,7 +496,7 @@
|
|||
'tls-vnc', 'x509-vnc',
|
||||
'tls-plain', 'x509-plain',
|
||||
'tls-sasl', 'x509-sasl' ],
|
||||
'if': 'defined(CONFIG_VNC)' }
|
||||
'if': 'CONFIG_VNC' }
|
||||
|
||||
##
|
||||
# @VncServerInfo2:
|
||||
|
@ -514,7 +514,7 @@
|
|||
'base': 'VncBasicInfo',
|
||||
'data': { 'auth' : 'VncPrimaryAuth',
|
||||
'*vencrypt' : 'VncVencryptSubAuth' },
|
||||
'if': 'defined(CONFIG_VNC)' }
|
||||
'if': 'CONFIG_VNC' }
|
||||
|
||||
##
|
||||
# @VncInfo2:
|
||||
|
@ -547,7 +547,7 @@
|
|||
'auth' : 'VncPrimaryAuth',
|
||||
'*vencrypt' : 'VncVencryptSubAuth',
|
||||
'*display' : 'str' },
|
||||
'if': 'defined(CONFIG_VNC)' }
|
||||
'if': 'CONFIG_VNC' }
|
||||
|
||||
##
|
||||
# @query-vnc:
|
||||
|
@ -579,7 +579,7 @@
|
|||
#
|
||||
##
|
||||
{ 'command': 'query-vnc', 'returns': 'VncInfo',
|
||||
'if': 'defined(CONFIG_VNC)' }
|
||||
'if': 'CONFIG_VNC' }
|
||||
##
|
||||
# @query-vnc-servers:
|
||||
#
|
||||
|
@ -590,7 +590,7 @@
|
|||
# Since: 2.3
|
||||
##
|
||||
{ 'command': 'query-vnc-servers', 'returns': ['VncInfo2'],
|
||||
'if': 'defined(CONFIG_VNC)' }
|
||||
'if': 'CONFIG_VNC' }
|
||||
|
||||
##
|
||||
# @change-vnc-password:
|
||||
|
@ -606,7 +606,7 @@
|
|||
##
|
||||
{ 'command': 'change-vnc-password',
|
||||
'data': { 'password': 'str' },
|
||||
'if': 'defined(CONFIG_VNC)' }
|
||||
'if': 'CONFIG_VNC' }
|
||||
|
||||
##
|
||||
# @VNC_CONNECTED:
|
||||
|
@ -636,7 +636,7 @@
|
|||
{ 'event': 'VNC_CONNECTED',
|
||||
'data': { 'server': 'VncServerInfo',
|
||||
'client': 'VncBasicInfo' },
|
||||
'if': 'defined(CONFIG_VNC)' }
|
||||
'if': 'CONFIG_VNC' }
|
||||
|
||||
##
|
||||
# @VNC_INITIALIZED:
|
||||
|
@ -664,7 +664,7 @@
|
|||
{ 'event': 'VNC_INITIALIZED',
|
||||
'data': { 'server': 'VncServerInfo',
|
||||
'client': 'VncClientInfo' },
|
||||
'if': 'defined(CONFIG_VNC)' }
|
||||
'if': 'CONFIG_VNC' }
|
||||
|
||||
##
|
||||
# @VNC_DISCONNECTED:
|
||||
|
@ -691,7 +691,7 @@
|
|||
{ 'event': 'VNC_DISCONNECTED',
|
||||
'data': { 'server': 'VncServerInfo',
|
||||
'client': 'VncClientInfo' },
|
||||
'if': 'defined(CONFIG_VNC)' }
|
||||
'if': 'CONFIG_VNC' }
|
||||
|
||||
##
|
||||
# = Input
|
||||
|
@ -1133,14 +1133,13 @@
|
|||
'data' : [
|
||||
{ 'name': 'default' },
|
||||
{ 'name': 'none' },
|
||||
{ 'name': 'gtk', 'if': 'defined(CONFIG_GTK)' },
|
||||
{ 'name': 'sdl', 'if': 'defined(CONFIG_SDL)' },
|
||||
{ 'name': 'gtk', 'if': 'CONFIG_GTK' },
|
||||
{ 'name': 'sdl', 'if': 'CONFIG_SDL' },
|
||||
{ 'name': 'egl-headless',
|
||||
'if': { 'all': [ 'defined(CONFIG_OPENGL)',
|
||||
'defined(CONFIG_GBM)' ] } },
|
||||
{ 'name': 'curses', 'if': 'defined(CONFIG_CURSES)' },
|
||||
{ 'name': 'cocoa', 'if': 'defined(CONFIG_COCOA)' },
|
||||
{ 'name': 'spice-app', 'if': 'defined(CONFIG_SPICE)'} ] }
|
||||
'if': { 'all': ['CONFIG_OPENGL', 'CONFIG_GBM'] } },
|
||||
{ 'name': 'curses', 'if': 'CONFIG_CURSES' },
|
||||
{ 'name': 'cocoa', 'if': 'CONFIG_COCOA' },
|
||||
{ 'name': 'spice-app', 'if': 'CONFIG_SPICE'} ] }
|
||||
|
||||
##
|
||||
# @DisplayOptions:
|
||||
|
@ -1165,11 +1164,10 @@
|
|||
'*gl' : 'DisplayGLMode' },
|
||||
'discriminator' : 'type',
|
||||
'data' : {
|
||||
'gtk': { 'type': 'DisplayGTK', 'if': 'defined(CONFIG_GTK)' },
|
||||
'curses': { 'type': 'DisplayCurses', 'if': 'defined(CONFIG_CURSES)' },
|
||||
'gtk': { 'type': 'DisplayGTK', 'if': 'CONFIG_GTK' },
|
||||
'curses': { 'type': 'DisplayCurses', 'if': 'CONFIG_CURSES' },
|
||||
'egl-headless': { 'type': 'DisplayEGLHeadless',
|
||||
'if': { 'all': [ 'defined(CONFIG_OPENGL)',
|
||||
'defined(CONFIG_GBM)' ] } }
|
||||
'if': { 'all': ['CONFIG_OPENGL', 'CONFIG_GBM'] } }
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1380,7 +1380,7 @@
|
|||
'data': {
|
||||
'keys': ['str']
|
||||
},
|
||||
'if': 'defined(CONFIG_POSIX)' }
|
||||
'if': 'CONFIG_POSIX' }
|
||||
|
||||
|
||||
##
|
||||
|
@ -1398,7 +1398,7 @@
|
|||
{ 'command': 'guest-ssh-get-authorized-keys',
|
||||
'data': { 'username': 'str' },
|
||||
'returns': 'GuestAuthorizedKeys',
|
||||
'if': 'defined(CONFIG_POSIX)' }
|
||||
'if': 'CONFIG_POSIX' }
|
||||
|
||||
##
|
||||
# @guest-ssh-add-authorized-keys:
|
||||
|
@ -1416,7 +1416,7 @@
|
|||
##
|
||||
{ 'command': 'guest-ssh-add-authorized-keys',
|
||||
'data': { 'username': 'str', 'keys': ['str'], '*reset': 'bool' },
|
||||
'if': 'defined(CONFIG_POSIX)' }
|
||||
'if': 'CONFIG_POSIX' }
|
||||
|
||||
##
|
||||
# @guest-ssh-remove-authorized-keys:
|
||||
|
@ -1434,4 +1434,4 @@
|
|||
##
|
||||
{ 'command': 'guest-ssh-remove-authorized-keys',
|
||||
'data': { 'username': 'str', 'keys': ['str'] },
|
||||
'if': 'defined(CONFIG_POSIX)' }
|
||||
'if': 'CONFIG_POSIX' }
|
||||
|
|
|
@ -204,7 +204,7 @@ def cgen_ifcond(ifcond: Union[str, Dict[str, Any]]) -> str:
|
|||
if not ifcond:
|
||||
return ''
|
||||
if isinstance(ifcond, str):
|
||||
return ifcond
|
||||
return 'defined(' + ifcond + ')'
|
||||
|
||||
oper, operands = next(iter(ifcond.items()))
|
||||
if oper == 'not':
|
||||
|
|
|
@ -275,10 +275,10 @@ def check_if(expr: _JSONObject, info: QAPISourceInfo, source: str) -> None:
|
|||
|
||||
def _check_if(cond: Union[str, object]) -> None:
|
||||
if isinstance(cond, str):
|
||||
if not cond.strip():
|
||||
if not re.match(r'^[A-Z][A-Z0-9_]*$', cond):
|
||||
raise QAPISemError(
|
||||
info,
|
||||
"'if' condition '%s' of %s makes no sense"
|
||||
"'if' condition '%s' of %s is not a valid identifier"
|
||||
% (cond, source))
|
||||
return
|
||||
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
alternate-branch-if-invalid.json: In alternate 'Alt':
|
||||
alternate-branch-if-invalid.json:2: 'if' condition ' ' of 'data' member 'branch' makes no sense
|
||||
alternate-branch-if-invalid.json:2: 'if' condition ' ' of 'data' member 'branch' is not a valid identifier
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
bad-if-empty.json: In struct 'TestIfStruct':
|
||||
bad-if-empty.json:2: 'if' condition '' of struct makes no sense
|
||||
bad-if-empty.json:2: 'if' condition '' of struct is not a valid identifier
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
bad-if-list.json: In struct 'TestIfStruct':
|
||||
bad-if-list.json:2: 'if' condition ' ' of struct makes no sense
|
||||
bad-if-list.json:2: 'if' condition 'foo' of struct is not a valid identifier
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
# check invalid 'if' type
|
||||
{ 'struct': 'TestIfStruct', 'data': { 'foo': 'int' },
|
||||
'if': ['defined(TEST_IF_STRUCT)'] }
|
||||
'if': ['TEST_IF_STRUCT'] }
|
||||
|
|
|
@ -61,9 +61,9 @@
|
|||
# @two is undocumented
|
||||
##
|
||||
{ 'enum': 'Enum', 'data':
|
||||
[ { 'name': 'one', 'if': 'defined(IFONE)' }, 'two' ],
|
||||
[ { 'name': 'one', 'if': 'IFONE' }, 'two' ],
|
||||
'features': [ 'enum-feat' ],
|
||||
'if': 'defined(IFCOND)' }
|
||||
'if': 'IFCOND' }
|
||||
|
||||
##
|
||||
# @Base:
|
||||
|
@ -87,7 +87,7 @@
|
|||
'features': [ 'variant1-feat' ],
|
||||
'data': { 'var1': { 'type': 'str',
|
||||
'features': [ 'member-feat' ],
|
||||
'if': 'defined(IFSTR)' } } }
|
||||
'if': 'IFSTR' } } }
|
||||
|
||||
##
|
||||
# @Variant2:
|
||||
|
|
|
@ -12,16 +12,16 @@ enum QType
|
|||
module doc-good.json
|
||||
enum Enum
|
||||
member one
|
||||
if defined(IFONE)
|
||||
if IFONE
|
||||
member two
|
||||
if defined(IFCOND)
|
||||
if IFCOND
|
||||
feature enum-feat
|
||||
object Base
|
||||
member base1: Enum optional=False
|
||||
if OrderedDict([('all', ['IFALL1', 'IFALL2'])])
|
||||
object Variant1
|
||||
member var1: str optional=False
|
||||
if defined(IFSTR)
|
||||
if IFSTR
|
||||
feature member-feat
|
||||
feature variant1-feat
|
||||
object Variant2
|
||||
|
|
|
@ -43,7 +43,7 @@ Example:
|
|||
Values
|
||||
~~~~~~
|
||||
|
||||
"one" (**If: **"defined(IFONE)")
|
||||
"one" (**If: **"IFONE")
|
||||
The _one_ {and only}
|
||||
|
||||
"two"
|
||||
|
@ -62,7 +62,7 @@ Features
|
|||
If
|
||||
~~
|
||||
|
||||
"defined(IFCOND)"
|
||||
"IFCOND"
|
||||
|
||||
|
||||
"Base" (Object)
|
||||
|
@ -93,7 +93,7 @@ Another paragraph (but no "var": line)
|
|||
Members
|
||||
~~~~~~~
|
||||
|
||||
"var1": "string" (**If: **"defined(IFSTR)")
|
||||
"var1": "string" (**If: **"IFSTR")
|
||||
Not documented
|
||||
|
||||
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
{ 'struct': 'FeatureStruct0',
|
||||
'data': { 'foo': 'int' },
|
||||
'features': [ { 'if': 'defined(NAMELESS_FEATURES)' } ] }
|
||||
'features': [ { 'if': 'NAMELESS_FEATURES' } ] }
|
||||
|
|
|
@ -222,45 +222,45 @@
|
|||
|
||||
{ 'struct': 'TestIfStruct', 'data':
|
||||
{ 'foo': 'int',
|
||||
'bar': { 'type': 'int', 'if': 'defined(TEST_IF_STRUCT_BAR)'} },
|
||||
'if': 'defined(TEST_IF_STRUCT)' }
|
||||
'bar': { 'type': 'int', 'if': 'TEST_IF_STRUCT_BAR'} },
|
||||
'if': 'TEST_IF_STRUCT' }
|
||||
|
||||
{ 'enum': 'TestIfEnum', 'data':
|
||||
[ 'foo', { 'name' : 'bar', 'if': 'defined(TEST_IF_ENUM_BAR)' } ],
|
||||
'if': 'defined(TEST_IF_ENUM)' }
|
||||
[ 'foo', { 'name' : 'bar', 'if': 'TEST_IF_ENUM_BAR' } ],
|
||||
'if': 'TEST_IF_ENUM' }
|
||||
|
||||
{ 'union': 'TestIfUnion', 'data':
|
||||
{ 'foo': 'TestStruct',
|
||||
'bar': { 'type': 'str', 'if': 'defined(TEST_IF_UNION_BAR)'} },
|
||||
'if': { 'all': ['defined(TEST_IF_UNION)', 'defined(TEST_IF_STRUCT)'] } }
|
||||
'bar': { 'type': 'str', 'if': 'TEST_IF_UNION_BAR'} },
|
||||
'if': { 'all': ['TEST_IF_UNION', 'TEST_IF_STRUCT'] } }
|
||||
|
||||
{ 'command': 'test-if-union-cmd',
|
||||
'data': { 'union-cmd-arg': 'TestIfUnion' },
|
||||
'if': 'defined(TEST_IF_UNION)' }
|
||||
'if': 'TEST_IF_UNION' }
|
||||
|
||||
{ 'alternate': 'TestIfAlternate', 'data':
|
||||
{ 'foo': 'int',
|
||||
'bar': { 'type': 'TestStruct', 'if': 'defined(TEST_IF_ALT_BAR)'} },
|
||||
'if': { 'all': ['defined(TEST_IF_ALT)', 'defined(TEST_IF_STRUCT)'] } }
|
||||
'bar': { 'type': 'TestStruct', 'if': 'TEST_IF_ALT_BAR'} },
|
||||
'if': { 'all': ['TEST_IF_ALT', 'TEST_IF_STRUCT'] } }
|
||||
|
||||
{ 'command': 'test-if-alternate-cmd',
|
||||
'data': { 'alt-cmd-arg': 'TestIfAlternate' },
|
||||
'if': { 'all': ['defined(TEST_IF_ALT)',
|
||||
{'not': 'defined(TEST_IF_NOT_ALT)'}] } }
|
||||
'if': { 'all': ['TEST_IF_ALT',
|
||||
{'not': 'TEST_IF_NOT_ALT'}] } }
|
||||
|
||||
{ 'command': 'test-if-cmd',
|
||||
'data': {
|
||||
'foo': 'TestIfStruct',
|
||||
'bar': { 'type': 'TestIfEnum', 'if': 'defined(TEST_IF_CMD_BAR)' } },
|
||||
'bar': { 'type': 'TestIfEnum', 'if': 'TEST_IF_CMD_BAR' } },
|
||||
'returns': 'UserDefThree',
|
||||
'if': { 'all': ['defined(TEST_IF_CMD)', 'defined(TEST_IF_STRUCT)'] } }
|
||||
'if': { 'all': ['TEST_IF_CMD', 'TEST_IF_STRUCT'] } }
|
||||
|
||||
{ 'command': 'test-cmd-return-def-three', 'returns': 'UserDefThree' }
|
||||
|
||||
{ 'event': 'TEST_IF_EVENT', 'data':
|
||||
{ 'foo': 'TestIfStruct',
|
||||
'bar': { 'type': ['TestIfEnum'], 'if': 'defined(TEST_IF_EVT_BAR)' } },
|
||||
'if': { 'all': ['defined(TEST_IF_EVT)', 'defined(TEST_IF_STRUCT)'] } }
|
||||
'bar': { 'type': ['TestIfEnum'], 'if': 'TEST_IF_EVT_BAR' } },
|
||||
'if': { 'all': ['TEST_IF_EVT', 'TEST_IF_STRUCT'] } }
|
||||
|
||||
# test 'features'
|
||||
|
||||
|
@ -282,21 +282,21 @@
|
|||
|
||||
{ 'struct': 'CondFeatureStruct1',
|
||||
'data': { 'foo': 'int' },
|
||||
'features': [ { 'name': 'feature1', 'if': 'defined(TEST_IF_FEATURE_1)'} ] }
|
||||
'features': [ { 'name': 'feature1', 'if': 'TEST_IF_FEATURE_1'} ] }
|
||||
{ 'struct': 'CondFeatureStruct2',
|
||||
'data': { 'foo': 'int' },
|
||||
'features': [ { 'name': 'feature1', 'if': 'defined(TEST_IF_FEATURE_1)'},
|
||||
{ 'name': 'feature2', 'if': 'defined(TEST_IF_FEATURE_2)'} ] }
|
||||
'features': [ { 'name': 'feature1', 'if': 'TEST_IF_FEATURE_1'},
|
||||
{ 'name': 'feature2', 'if': 'TEST_IF_FEATURE_2'} ] }
|
||||
{ 'struct': 'CondFeatureStruct3',
|
||||
'data': { 'foo': 'int' },
|
||||
'features': [ { 'name': 'feature1',
|
||||
'if': { 'all': [ 'defined(TEST_IF_COND_1)',
|
||||
'defined(TEST_IF_COND_2)'] } } ] }
|
||||
'if': { 'all': [ 'TEST_IF_COND_1',
|
||||
'TEST_IF_COND_2'] } } ] }
|
||||
{ 'struct': 'CondFeatureStruct4',
|
||||
'data': { 'foo': 'int' },
|
||||
'features': [ { 'name': 'feature1',
|
||||
'if': {'any': ['defined(TEST_IF_COND_1)',
|
||||
'defined(TEST_IF_COND_2)'] } } ] }
|
||||
'if': {'any': ['TEST_IF_COND_1',
|
||||
'TEST_IF_COND_2'] } } ] }
|
||||
|
||||
{ 'enum': 'FeatureEnum1',
|
||||
'data': [ 'eins', 'zwei', 'drei' ],
|
||||
|
@ -331,14 +331,14 @@
|
|||
'features': [ 'feature1', 'feature2' ] }
|
||||
|
||||
{ 'command': 'test-command-cond-features1',
|
||||
'features': [ { 'name': 'feature1', 'if': 'defined(TEST_IF_FEATURE_1)'} ] }
|
||||
'features': [ { 'name': 'feature1', 'if': 'TEST_IF_FEATURE_1'} ] }
|
||||
{ 'command': 'test-command-cond-features2',
|
||||
'features': [ { 'name': 'feature1', 'if': 'defined(TEST_IF_FEATURE_1)'},
|
||||
{ 'name': 'feature2', 'if': 'defined(TEST_IF_FEATURE_2)'} ] }
|
||||
'features': [ { 'name': 'feature1', 'if': 'TEST_IF_FEATURE_1'},
|
||||
{ 'name': 'feature2', 'if': 'TEST_IF_FEATURE_2'} ] }
|
||||
{ 'command': 'test-command-cond-features3',
|
||||
'features': [ { 'name': 'feature1',
|
||||
'if': { 'all': [ 'defined(TEST_IF_COND_1)',
|
||||
'defined(TEST_IF_COND_2)'] } } ] }
|
||||
'if': { 'all': [ 'TEST_IF_COND_1',
|
||||
'TEST_IF_COND_2'] } } ] }
|
||||
|
||||
{ 'event': 'TEST_EVENT_FEATURES0',
|
||||
'data': 'FeatureStruct1' }
|
||||
|
|
|
@ -298,65 +298,65 @@ command __org.qemu_x-command q_obj___org.qemu_x-command-arg -> __org.qemu_x-Unio
|
|||
object TestIfStruct
|
||||
member foo: int optional=False
|
||||
member bar: int optional=False
|
||||
if defined(TEST_IF_STRUCT_BAR)
|
||||
if defined(TEST_IF_STRUCT)
|
||||
if TEST_IF_STRUCT_BAR
|
||||
if TEST_IF_STRUCT
|
||||
enum TestIfEnum
|
||||
member foo
|
||||
member bar
|
||||
if defined(TEST_IF_ENUM_BAR)
|
||||
if defined(TEST_IF_ENUM)
|
||||
if TEST_IF_ENUM_BAR
|
||||
if TEST_IF_ENUM
|
||||
object q_obj_TestStruct-wrapper
|
||||
member data: TestStruct optional=False
|
||||
enum TestIfUnionKind
|
||||
member foo
|
||||
member bar
|
||||
if defined(TEST_IF_UNION_BAR)
|
||||
if OrderedDict([('all', ['defined(TEST_IF_UNION)', 'defined(TEST_IF_STRUCT)'])])
|
||||
if TEST_IF_UNION_BAR
|
||||
if OrderedDict([('all', ['TEST_IF_UNION', 'TEST_IF_STRUCT'])])
|
||||
object TestIfUnion
|
||||
member type: TestIfUnionKind optional=False
|
||||
tag type
|
||||
case foo: q_obj_TestStruct-wrapper
|
||||
case bar: q_obj_str-wrapper
|
||||
if defined(TEST_IF_UNION_BAR)
|
||||
if OrderedDict([('all', ['defined(TEST_IF_UNION)', 'defined(TEST_IF_STRUCT)'])])
|
||||
if TEST_IF_UNION_BAR
|
||||
if OrderedDict([('all', ['TEST_IF_UNION', 'TEST_IF_STRUCT'])])
|
||||
object q_obj_test-if-union-cmd-arg
|
||||
member union-cmd-arg: TestIfUnion optional=False
|
||||
if defined(TEST_IF_UNION)
|
||||
if TEST_IF_UNION
|
||||
command test-if-union-cmd q_obj_test-if-union-cmd-arg -> None
|
||||
gen=True success_response=True boxed=False oob=False preconfig=False
|
||||
if defined(TEST_IF_UNION)
|
||||
if TEST_IF_UNION
|
||||
alternate TestIfAlternate
|
||||
tag type
|
||||
case foo: int
|
||||
case bar: TestStruct
|
||||
if defined(TEST_IF_ALT_BAR)
|
||||
if OrderedDict([('all', ['defined(TEST_IF_ALT)', 'defined(TEST_IF_STRUCT)'])])
|
||||
if TEST_IF_ALT_BAR
|
||||
if OrderedDict([('all', ['TEST_IF_ALT', 'TEST_IF_STRUCT'])])
|
||||
object q_obj_test-if-alternate-cmd-arg
|
||||
member alt-cmd-arg: TestIfAlternate optional=False
|
||||
if OrderedDict([('all', ['defined(TEST_IF_ALT)', OrderedDict([('not', 'defined(TEST_IF_NOT_ALT)')])])])
|
||||
if OrderedDict([('all', ['TEST_IF_ALT', OrderedDict([('not', 'TEST_IF_NOT_ALT')])])])
|
||||
command test-if-alternate-cmd q_obj_test-if-alternate-cmd-arg -> None
|
||||
gen=True success_response=True boxed=False oob=False preconfig=False
|
||||
if OrderedDict([('all', ['defined(TEST_IF_ALT)', OrderedDict([('not', 'defined(TEST_IF_NOT_ALT)')])])])
|
||||
if OrderedDict([('all', ['TEST_IF_ALT', OrderedDict([('not', 'TEST_IF_NOT_ALT')])])])
|
||||
object q_obj_test-if-cmd-arg
|
||||
member foo: TestIfStruct optional=False
|
||||
member bar: TestIfEnum optional=False
|
||||
if defined(TEST_IF_CMD_BAR)
|
||||
if OrderedDict([('all', ['defined(TEST_IF_CMD)', 'defined(TEST_IF_STRUCT)'])])
|
||||
if TEST_IF_CMD_BAR
|
||||
if OrderedDict([('all', ['TEST_IF_CMD', 'TEST_IF_STRUCT'])])
|
||||
command test-if-cmd q_obj_test-if-cmd-arg -> UserDefThree
|
||||
gen=True success_response=True boxed=False oob=False preconfig=False
|
||||
if OrderedDict([('all', ['defined(TEST_IF_CMD)', 'defined(TEST_IF_STRUCT)'])])
|
||||
if OrderedDict([('all', ['TEST_IF_CMD', 'TEST_IF_STRUCT'])])
|
||||
command test-cmd-return-def-three None -> UserDefThree
|
||||
gen=True success_response=True boxed=False oob=False preconfig=False
|
||||
array TestIfEnumList TestIfEnum
|
||||
if defined(TEST_IF_ENUM)
|
||||
if TEST_IF_ENUM
|
||||
object q_obj_TEST_IF_EVENT-arg
|
||||
member foo: TestIfStruct optional=False
|
||||
member bar: TestIfEnumList optional=False
|
||||
if defined(TEST_IF_EVT_BAR)
|
||||
if OrderedDict([('all', ['defined(TEST_IF_EVT)', 'defined(TEST_IF_STRUCT)'])])
|
||||
if TEST_IF_EVT_BAR
|
||||
if OrderedDict([('all', ['TEST_IF_EVT', 'TEST_IF_STRUCT'])])
|
||||
event TEST_IF_EVENT q_obj_TEST_IF_EVENT-arg
|
||||
boxed=False
|
||||
if OrderedDict([('all', ['defined(TEST_IF_EVT)', 'defined(TEST_IF_STRUCT)'])])
|
||||
if OrderedDict([('all', ['TEST_IF_EVT', 'TEST_IF_STRUCT'])])
|
||||
object FeatureStruct0
|
||||
member foo: int optional=False
|
||||
object FeatureStruct1
|
||||
|
@ -379,21 +379,21 @@ object FeatureStruct4
|
|||
object CondFeatureStruct1
|
||||
member foo: int optional=False
|
||||
feature feature1
|
||||
if defined(TEST_IF_FEATURE_1)
|
||||
if TEST_IF_FEATURE_1
|
||||
object CondFeatureStruct2
|
||||
member foo: int optional=False
|
||||
feature feature1
|
||||
if defined(TEST_IF_FEATURE_1)
|
||||
if TEST_IF_FEATURE_1
|
||||
feature feature2
|
||||
if defined(TEST_IF_FEATURE_2)
|
||||
if TEST_IF_FEATURE_2
|
||||
object CondFeatureStruct3
|
||||
member foo: int optional=False
|
||||
feature feature1
|
||||
if OrderedDict([('all', ['defined(TEST_IF_COND_1)', 'defined(TEST_IF_COND_2)'])])
|
||||
if OrderedDict([('all', ['TEST_IF_COND_1', 'TEST_IF_COND_2'])])
|
||||
object CondFeatureStruct4
|
||||
member foo: int optional=False
|
||||
feature feature1
|
||||
if OrderedDict([('any', ['defined(TEST_IF_COND_1)', 'defined(TEST_IF_COND_2)'])])
|
||||
if OrderedDict([('any', ['TEST_IF_COND_1', 'TEST_IF_COND_2'])])
|
||||
enum FeatureEnum1
|
||||
member eins
|
||||
member zwei
|
||||
|
@ -434,17 +434,17 @@ command test-command-features3 None -> None
|
|||
command test-command-cond-features1 None -> None
|
||||
gen=True success_response=True boxed=False oob=False preconfig=False
|
||||
feature feature1
|
||||
if defined(TEST_IF_FEATURE_1)
|
||||
if TEST_IF_FEATURE_1
|
||||
command test-command-cond-features2 None -> None
|
||||
gen=True success_response=True boxed=False oob=False preconfig=False
|
||||
feature feature1
|
||||
if defined(TEST_IF_FEATURE_1)
|
||||
if TEST_IF_FEATURE_1
|
||||
feature feature2
|
||||
if defined(TEST_IF_FEATURE_2)
|
||||
if TEST_IF_FEATURE_2
|
||||
command test-command-cond-features3 None -> None
|
||||
gen=True success_response=True boxed=False oob=False preconfig=False
|
||||
feature feature1
|
||||
if OrderedDict([('all', ['defined(TEST_IF_COND_1)', 'defined(TEST_IF_COND_2)'])])
|
||||
if OrderedDict([('all', ['TEST_IF_COND_1', 'TEST_IF_COND_2'])])
|
||||
event TEST_EVENT_FEATURES0 FeatureStruct1
|
||||
boxed=False
|
||||
event TEST_EVENT_FEATURES1 None
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
# we reject duplicate events
|
||||
{ 'event': 'EVENT_A', 'data': { 'myint': 'int' } }
|
||||
{ 'event': 'EVENT_A', 'data': { 'myint': 'int' }, 'if': 'defined(FOO)' }
|
||||
{ 'event': 'EVENT_A', 'data': { 'myint': 'int' }, 'if': 'FOO' }
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
union-branch-if-invalid.json: In union 'Uni':
|
||||
union-branch-if-invalid.json:4: 'if' condition '' of 'data' member 'branch1' makes no sense
|
||||
union-branch-if-invalid.json:4: 'if' condition '' of 'data' member 'branch1' is not a valid identifier
|
||||
|
|
Loading…
Reference in New Issue