diff options
Diffstat (limited to 'qapi-schema.json')
-rw-r--r-- | qapi-schema.json | 384 |
1 files changed, 264 insertions, 120 deletions
diff --git a/qapi-schema.json b/qapi-schema.json index ddccd3674..4342a08d3 100644 --- a/qapi-schema.json +++ b/qapi-schema.json @@ -15,7 +15,7 @@ { 'include': 'qapi/trace.json' } ## -# LostTickPolicy: +# @LostTickPolicy: # # Policy for handling lost ticks in timer devices. # @@ -71,7 +71,7 @@ # # Since 0.14.0 ## -{ 'type': 'NameInfo', 'data': {'*name': 'str'} } +{ 'struct': 'NameInfo', 'data': {'*name': 'str'} } ## # @query-name: @@ -95,7 +95,7 @@ # # Since: 0.14.0 ## -{ 'type': 'KvmInfo', 'data': {'enabled': 'bool', 'present': 'bool'} } +{ 'struct': 'KvmInfo', 'data': {'enabled': 'bool', 'present': 'bool'} } ## # @query-kvm: @@ -170,7 +170,7 @@ # # Notes: @singlestep is enabled through the GDB stub ## -{ 'type': 'StatusInfo', +{ 'struct': 'StatusInfo', 'data': {'running': 'bool', 'singlestep': 'bool', 'status': 'RunState'} } ## @@ -195,7 +195,7 @@ # # Notes: If no UUID was specified for the guest, a null UUID is returned. ## -{ 'type': 'UuidInfo', 'data': {'UUID': 'str'} } +{ 'struct': 'UuidInfo', 'data': {'UUID': 'str'} } ## # @query-uuid: @@ -226,7 +226,7 @@ # # Since: 0.14.0 ## -{ 'type': 'ChardevInfo', 'data': {'label': 'str', +{ 'struct': 'ChardevInfo', 'data': {'label': 'str', 'filename': 'str', 'frontend-open': 'bool'} } @@ -250,7 +250,7 @@ # # Since: 2.0 ## -{ 'type': 'ChardevBackendInfo', 'data': {'name': 'str'} } +{ 'struct': 'ChardevBackendInfo', 'data': {'name': 'str'} } ## # @query-chardev-backends: @@ -339,7 +339,7 @@ # # Since: 1.2.0 ## -{ 'type': 'EventInfo', 'data': {'name': 'str'} } +{ 'struct': 'EventInfo', 'data': {'name': 'str'} } ## # @query-events: @@ -380,7 +380,7 @@ # # Since: 0.14.0 ## -{ 'type': 'MigrationStats', +{ 'struct': 'MigrationStats', 'data': {'transferred': 'int', 'remaining': 'int', 'total': 'int' , 'duplicate': 'int', 'skipped': 'int', 'normal': 'int', 'normal-bytes': 'int', 'dirty-pages-rate' : 'int', @@ -405,7 +405,7 @@ # # Since: 1.2 ## -{ 'type': 'XBZRLECacheStats', +{ 'struct': 'XBZRLECacheStats', 'data': {'cache-size': 'int', 'bytes': 'int', 'pages': 'int', 'cache-miss': 'int', 'cache-miss-rate': 'number', 'overflow': 'int' } } @@ -476,7 +476,7 @@ # # Since: 0.14.0 ## -{ 'type': 'MigrationInfo', +{ 'struct': 'MigrationInfo', 'data': {'*status': 'MigrationStatus', '*ram': 'MigrationStats', '*disk': 'MigrationStats', '*xbzrle-cache': 'XBZRLECacheStats', @@ -515,13 +515,25 @@ # to enable the capability on the source VM. The feature is disabled by # default. (since 1.6) # +# @compress: Use multiple compression threads to accelerate live migration. +# This feature can help to reduce the migration traffic, by sending +# compressed pages. Please note that if compress and xbzrle are both +# on, compress only takes effect in the ram bulk stage, after that, +# it will be disabled and only xbzrle takes effect, this can help to +# minimize migration traffic. The feature is disabled by default. +# (since 2.4 ) +# +# @events: generate events for each migration state change +# (since 2.4 ) +# # @auto-converge: If enabled, QEMU will automatically throttle down the guest # to speed up convergence of RAM migration. (since 1.6) # # Since: 1.2 ## { 'enum': 'MigrationCapability', - 'data': ['xbzrle', 'rdma-pin-all', 'auto-converge', 'zero-blocks'] } + 'data': ['xbzrle', 'rdma-pin-all', 'auto-converge', 'zero-blocks', + 'compress', 'events'] } ## # @MigrationCapabilityStatus @@ -534,7 +546,7 @@ # # Since: 1.2 ## -{ 'type': 'MigrationCapabilityStatus', +{ 'struct': 'MigrationCapabilityStatus', 'data': { 'capability' : 'MigrationCapability', 'state' : 'bool' } } ## @@ -560,6 +572,93 @@ ## { 'command': 'query-migrate-capabilities', 'returns': ['MigrationCapabilityStatus']} +# @MigrationParameter +# +# Migration parameters enumeration +# +# @compress-level: Set the compression level to be used in live migration, +# the compression level is an integer between 0 and 9, where 0 means +# no compression, 1 means the best compression speed, and 9 means best +# compression ratio which will consume more CPU. +# +# @compress-threads: Set compression thread count to be used in live migration, +# the compression thread count is an integer between 1 and 255. +# +# @decompress-threads: Set decompression thread count to be used in live +# migration, the decompression thread count is an integer between 1 +# and 255. Usually, decompression is at least 4 times as fast as +# compression, so set the decompress-threads to the number about 1/4 +# of compress-threads is adequate. +# +# Since: 2.4 +## +{ 'enum': 'MigrationParameter', + 'data': ['compress-level', 'compress-threads', 'decompress-threads'] } + +# +# @migrate-set-parameters +# +# Set the following migration parameters +# +# @compress-level: compression level +# +# @compress-threads: compression thread count +# +# @decompress-threads: decompression thread count +# +# Since: 2.4 +## +{ 'command': 'migrate-set-parameters', + 'data': { '*compress-level': 'int', + '*compress-threads': 'int', + '*decompress-threads': 'int'} } + +# +# @MigrationParameters +# +# @compress-level: compression level +# +# @compress-threads: compression thread count +# +# @decompress-threads: decompression thread count +# +# Since: 2.4 +## +{ 'struct': 'MigrationParameters', + 'data': { 'compress-level': 'int', + 'compress-threads': 'int', + 'decompress-threads': 'int'} } +## +# @query-migrate-parameters +# +# Returns information about the current migration parameters +# +# Returns: @MigrationParameters +# +# Since: 2.4 +## +{ 'command': 'query-migrate-parameters', + 'returns': 'MigrationParameters' } + +## +# @client_migrate_info +# +# Set migration information for remote display. This makes the server +# ask the client to automatically reconnect using the new parameters +# once migration finished successfully. Only implemented for SPICE. +# +# @protocol: must be "spice" +# @hostname: migration target hostname +# @port: #optional spice tcp port for plaintext channels +# @tls-port: #optional spice tcp port for tls-secured channels +# @cert-subject: #optional server certificate subject +# +# Since: 0.14.0 +## +{ 'command': 'client_migrate_info', + 'data': { 'protocol': 'str', 'hostname': 'str', '*port': 'int', + '*tls-port': 'int', '*cert-subject': 'str' } } + ## # @MouseInfo: # @@ -575,7 +674,7 @@ # # Since: 0.14.0 ## -{ 'type': 'MouseInfo', +{ 'struct': 'MouseInfo', 'data': {'name': 'str', 'index': 'int', 'current': 'bool', 'absolute': 'bool'} } @@ -602,6 +701,8 @@ # @halted: true if the virtual CPU is in the halt state. Halt usually refers # to a processor specific low power mode. # +# @qom_path: path to the CPU object in the QOM tree (since 2.4) +# # @pc: #optional If the target is i386 or x86_64, this is the 64-bit instruction # pointer. # If the target is Sparc, this is the PC component of the @@ -621,9 +722,11 @@ # Notes: @halted is a transient state that changes frequently. By the time the # data is sent to the client, the guest may no longer be halted. ## -{ 'type': 'CpuInfo', - 'data': {'CPU': 'int', 'current': 'bool', 'halted': 'bool', '*pc': 'int', - '*nip': 'int', '*npc': 'int', '*PC': 'int', 'thread_id': 'int'} } +{ 'struct': 'CpuInfo', + 'data': {'CPU': 'int', 'current': 'bool', 'halted': 'bool', + 'qom_path': 'str', + '*pc': 'int', '*nip': 'int', '*npc': 'int', '*PC': 'int', + 'thread_id': 'int'} } ## # @query-cpus: @@ -647,7 +750,7 @@ # # Since: 2.0 ## -{ 'type': 'IOThreadInfo', +{ 'struct': 'IOThreadInfo', 'data': {'id': 'str', 'thread-id': 'int'} } ## @@ -700,7 +803,7 @@ # # Since: 2.1 ## -{ 'type': 'VncBasicInfo', +{ 'struct': 'VncBasicInfo', 'data': { 'host': 'str', 'service': 'str', 'family': 'NetworkAddressFamily', @@ -715,7 +818,7 @@ # # Since: 2.1 ## -{ 'type': 'VncServerInfo', +{ 'struct': 'VncServerInfo', 'base': 'VncBasicInfo', 'data': { '*auth': 'str' } } @@ -732,7 +835,7 @@ # # Since: 0.14.0 ## -{ 'type': 'VncClientInfo', +{ 'struct': 'VncClientInfo', 'base': 'VncBasicInfo', 'data': { '*x509_dname': 'str', '*sasl_username': 'str' } } @@ -772,7 +875,7 @@ # # Since: 0.14.0 ## -{ 'type': 'VncInfo', +{ 'struct': 'VncInfo', 'data': {'enabled': 'bool', '*host': 'str', '*family': 'NetworkAddressFamily', '*service': 'str', '*auth': 'str', '*clients': ['VncClientInfo']} } @@ -826,7 +929,7 @@ # # Since: 2.3 ## -{ 'type': 'VncInfo2', +{ 'struct': 'VncInfo2', 'data': { 'id' : 'str', 'server' : ['VncBasicInfo'], 'clients' : ['VncClientInfo'], @@ -869,7 +972,7 @@ # # Since: 2.1 ## -{ 'type': 'SpiceBasicInfo', +{ 'struct': 'SpiceBasicInfo', 'data': { 'host': 'str', 'port': 'str', 'family': 'NetworkAddressFamily' } } @@ -883,7 +986,7 @@ # # Since: 2.1 ## -{ 'type': 'SpiceServerInfo', +{ 'struct': 'SpiceServerInfo', 'base': 'SpiceBasicInfo', 'data': { '*auth': 'str' } } @@ -907,7 +1010,7 @@ # # Since: 0.14.0 ## -{ 'type': 'SpiceChannel', +{ 'struct': 'SpiceChannel', 'base': 'SpiceBasicInfo', 'data': {'connection-id': 'int', 'channel-type': 'int', 'channel-id': 'int', 'tls': 'bool'} } @@ -965,7 +1068,7 @@ # # Since: 0.14.0 ## -{ 'type': 'SpiceInfo', +{ 'struct': 'SpiceInfo', 'data': {'enabled': 'bool', 'migrated': 'bool', '*host': 'str', '*port': 'int', '*tls-port': 'int', '*auth': 'str', '*compiled-version': 'str', 'mouse-mode': 'SpiceQueryMouseMode', '*channels': ['SpiceChannel']} } @@ -991,7 +1094,7 @@ # Since: 0.14.0 # ## -{ 'type': 'BalloonInfo', 'data': {'actual': 'int' } } +{ 'struct': 'BalloonInfo', 'data': {'actual': 'int' } } ## # @query-balloon: @@ -1018,7 +1121,7 @@ # # Since: 0.14.0 ## -{ 'type': 'PciMemoryRange', 'data': {'base': 'int', 'limit': 'int'} } +{ 'struct': 'PciMemoryRange', 'data': {'base': 'int', 'limit': 'int'} } ## # @PciMemoryRegion @@ -1036,41 +1139,80 @@ # # Since: 0.14.0 ## -{ 'type': 'PciMemoryRegion', +{ 'struct': 'PciMemoryRegion', 'data': {'bar': 'int', 'type': 'str', 'address': 'int', 'size': 'int', '*prefetch': 'bool', '*mem_type_64': 'bool' } } ## -# @PciBridgeInfo: +# @PciBusInfo: # -# Information about a PCI Bridge device +# Information about a bus of a PCI Bridge device +# +# @number: primary bus interface number. This should be the number of the +# bus the device resides on. +# +# @secondary: secondary bus interface number. This is the number of the +# main bus for the bridge # -# @bus.number: primary bus interface number. This should be the number of the -# bus the device resides on. +# @subordinate: This is the highest number bus that resides below the +# bridge. # -# @bus.secondary: secondary bus interface number. This is the number of the -# main bus for the bridge +# @io_range: The PIO range for all devices on this bridge # -# @bus.subordinate: This is the highest number bus that resides below the -# bridge. +# @memory_range: The MMIO range for all devices on this bridge # -# @bus.io_range: The PIO range for all devices on this bridge +# @prefetchable_range: The range of prefetchable MMIO for all devices on +# this bridge # -# @bus.memory_range: The MMIO range for all devices on this bridge +# Since: 2.4 +## +{ 'struct': 'PciBusInfo', + 'data': {'number': 'int', 'secondary': 'int', 'subordinate': 'int', + 'io_range': 'PciMemoryRange', + 'memory_range': 'PciMemoryRange', + 'prefetchable_range': 'PciMemoryRange' } } + +## +# @PciBridgeInfo: # -# @bus.prefetchable_range: The range of prefetchable MMIO for all devices on -# this bridge +# Information about a PCI Bridge device +# +# @bus: information about the bus the device resides on # # @devices: a list of @PciDeviceInfo for each device on this bridge # # Since: 0.14.0 ## -{ 'type': 'PciBridgeInfo', - 'data': {'bus': { 'number': 'int', 'secondary': 'int', 'subordinate': 'int', - 'io_range': 'PciMemoryRange', - 'memory_range': 'PciMemoryRange', - 'prefetchable_range': 'PciMemoryRange' }, - '*devices': ['PciDeviceInfo']} } +{ 'struct': 'PciBridgeInfo', + 'data': {'bus': 'PciBusInfo', '*devices': ['PciDeviceInfo']} } + +## +# @PciDeviceClass: +# +# Information about the Class of a PCI device +# +# @desc: #optional a string description of the device's class +# +# @class: the class code of the device +# +# Since: 2.4 +## +{ 'struct': 'PciDeviceClass', + 'data': {'*desc': 'str', 'class': 'int'} } + +## +# @PciDeviceId: +# +# Information about the Id of a PCI device +# +# @device: the PCI device id +# +# @vendor: the PCI vendor id +# +# Since: 2.4 +## +{ 'struct': 'PciDeviceId', + 'data': {'device': 'int', 'vendor': 'int'} } ## # @PciDeviceInfo: @@ -1083,13 +1225,9 @@ # # @function: the function of the slot used by the device # -# @class_info.desc: #optional a string description of the device's class +# @class_info: the class of the device # -# @class_info.class: the class code of the device -# -# @id.device: the PCI device id -# -# @id.vendor: the PCI vendor id +# @id: the PCI device id # # @irq: #optional if an IRQ is assigned to the device, the IRQ number # @@ -1104,10 +1242,9 @@ # # Since: 0.14.0 ## -{ 'type': 'PciDeviceInfo', +{ 'struct': 'PciDeviceInfo', 'data': {'bus': 'int', 'slot': 'int', 'function': 'int', - 'class_info': {'*desc': 'str', 'class': 'int'}, - 'id': {'device': 'int', 'vendor': 'int'}, + 'class_info': 'PciDeviceClass', 'id': 'PciDeviceId', '*irq': 'int', 'qdev_id': 'str', '*pci_bridge': 'PciBridgeInfo', 'regions': ['PciMemoryRegion']} } @@ -1122,7 +1259,7 @@ # # Since: 0.14.0 ## -{ 'type': 'PciInfo', 'data': {'bus': 'int', 'devices': ['PciDeviceInfo']} } +{ 'struct': 'PciInfo', 'data': {'bus': 'int', 'devices': ['PciDeviceInfo']} } ## # @query-pci: @@ -1341,7 +1478,7 @@ # # Since: 1.6 ### -{ 'type': 'Abort', +{ 'struct': 'Abort', 'data': { } } ## @@ -1506,7 +1643,7 @@ # # Since: 1.2 ## -{ 'type': 'ObjectPropertyInfo', +{ 'struct': 'ObjectPropertyInfo', 'data': { 'name': 'str', 'type': 'str' } } ## @@ -1561,8 +1698,8 @@ ## { 'command': 'qom-get', 'data': { 'path': 'str', 'property': 'str' }, - 'returns': 'visitor', - 'gen': 'no' } + 'returns': '**', + 'gen': false } ## # @qom-set: @@ -1579,8 +1716,8 @@ # Since: 1.2 ## { 'command': 'qom-set', - 'data': { 'path': 'str', 'property': 'str', 'value': 'visitor' }, - 'gen': 'no' } + 'data': { 'path': 'str', 'property': 'str', 'value': '**' }, + 'gen': false } ## # @set_password: @@ -1691,7 +1828,7 @@ # # Notes: This command is experimental and may change syntax in future releases. ## -{ 'type': 'ObjectTypeInfo', +{ 'struct': 'ObjectTypeInfo', 'data': { 'name': 'str' } } ## @@ -1723,7 +1860,7 @@ # # Since: 1.2 ## -{ 'type': 'DevicePropertyInfo', +{ 'struct': 'DevicePropertyInfo', 'data': { 'name': 'str', 'type': 'str', '*description': 'str' } } ## @@ -1903,7 +2040,7 @@ # # Since: 2.0 ## -{ 'type': 'DumpGuestMemoryCapability', +{ 'struct': 'DumpGuestMemoryCapability', 'data': { 'formats': ['DumpGuestMemoryFormat'] } } @@ -1943,7 +2080,7 @@ ## { 'command': 'netdev_add', 'data': {'type': 'str', 'id': 'str', '*props': '**'}, - 'gen': 'no' } + 'gen': false } ## # @netdev_del: @@ -1976,8 +2113,8 @@ # Since: 2.0 ## { 'command': 'object-add', - 'data': {'qom-type': 'str', 'id': 'str', '*props': 'dict'}, - 'gen': 'no' } + 'data': {'qom-type': 'str', 'id': 'str', '*props': '**'}, + 'gen': false } ## # @object-del: @@ -2000,7 +2137,7 @@ # # Since 1.2 ## -{ 'type': 'NetdevNoneOptions', +{ 'struct': 'NetdevNoneOptions', 'data': { } } ## @@ -2020,7 +2157,7 @@ # # Since 1.2 ## -{ 'type': 'NetLegacyNicOptions', +{ 'struct': 'NetLegacyNicOptions', 'data': { '*netdev': 'str', '*macaddr': 'str', @@ -2035,7 +2172,7 @@ # # Since 1.2 ## -{ 'type': 'String', +{ 'struct': 'String', 'data': { 'str': 'str' } } @@ -2078,7 +2215,7 @@ # # Since 1.2 ## -{ 'type': 'NetdevUserOptions', +{ 'struct': 'NetdevUserOptions', 'data': { '*hostname': 'str', '*restrict': 'bool', @@ -2130,7 +2267,7 @@ # # Since 1.2 ## -{ 'type': 'NetdevTapOptions', +{ 'struct': 'NetdevTapOptions', 'data': { '*ifname': 'str', '*fd': 'str', @@ -2166,7 +2303,7 @@ # # Since 1.2 ## -{ 'type': 'NetdevSocketOptions', +{ 'struct': 'NetdevSocketOptions', 'data': { '*fd': 'str', '*listen': 'str', @@ -2214,7 +2351,7 @@ # # Since 2.1 ## -{ 'type': 'NetdevL2TPv3Options', +{ 'struct': 'NetdevL2TPv3Options', 'data': { 'src': 'str', 'dst': 'str', @@ -2246,7 +2383,7 @@ # # Since 1.2 ## -{ 'type': 'NetdevVdeOptions', +{ 'struct': 'NetdevVdeOptions', 'data': { '*sock': 'str', '*port': 'uint16', @@ -2265,7 +2402,7 @@ # # Since 1.2 ## -{ 'type': 'NetdevDumpOptions', +{ 'struct': 'NetdevDumpOptions', 'data': { '*len': 'size', '*file': 'str' } } @@ -2281,7 +2418,7 @@ # # Since 1.2 ## -{ 'type': 'NetdevBridgeOptions', +{ 'struct': 'NetdevBridgeOptions', 'data': { '*br': 'str', '*helper': 'str' } } @@ -2295,7 +2432,7 @@ # # Since 1.2 ## -{ 'type': 'NetdevHubPortOptions', +{ 'struct': 'NetdevHubPortOptions', 'data': { 'hubid': 'int32' } } @@ -2315,7 +2452,7 @@ # # Since 2.0 ## -{ 'type': 'NetdevNetmapOptions', +{ 'struct': 'NetdevNetmapOptions', 'data': { 'ifname': 'str', '*devname': 'str' } } @@ -2331,7 +2468,7 @@ # # Since 2.1 ## -{ 'type': 'NetdevVhostUserOptions', +{ 'struct': 'NetdevVhostUserOptions', 'data': { 'chardev': 'str', '*vhostforce': 'bool' } } @@ -2376,7 +2513,7 @@ # # Since 1.2 ## -{ 'type': 'NetLegacy', +{ 'struct': 'NetLegacy', 'data': { '*vlan': 'int32', '*id': 'str', @@ -2394,7 +2531,7 @@ # # Since 1.2 ## -{ 'type': 'Netdev', +{ 'struct': 'Netdev', 'data': { 'id': 'str', 'opts': 'NetClientOptions' } } @@ -2418,7 +2555,7 @@ # # Since 1.3 ## -{ 'type': 'InetSocketAddress', +{ 'struct': 'InetSocketAddress', 'data': { 'host': 'str', 'port': 'str', @@ -2435,7 +2572,7 @@ # # Since 1.3 ## -{ 'type': 'UnixSocketAddress', +{ 'struct': 'UnixSocketAddress', 'data': { 'path': 'str' } } @@ -2500,7 +2637,7 @@ # # Since: 1.2.0 ## -{ 'type': 'MachineInfo', +{ 'struct': 'MachineInfo', 'data': { 'name': 'str', '*alias': 'str', '*is-default': 'bool', 'cpu-max': 'int' } } @@ -2524,7 +2661,7 @@ # # Since: 1.2.0 ## -{ 'type': 'CpuDefinitionInfo', +{ 'struct': 'CpuDefinitionInfo', 'data': { 'name': 'str' } } ## @@ -2549,7 +2686,7 @@ # # Since: 1.2.0 ## -{ 'type': 'AddfdInfo', 'data': {'fdset-id': 'int', 'fd': 'int'} } +{ 'struct': 'AddfdInfo', 'data': {'fdset-id': 'int', 'fd': 'int'} } ## # @add-fd: @@ -2605,7 +2742,7 @@ # # Since: 1.2.0 ## -{ 'type': 'FdsetFdInfo', +{ 'struct': 'FdsetFdInfo', 'data': {'fd': 'int', '*opaque': 'str'} } ## @@ -2619,7 +2756,7 @@ # # Since: 1.2.0 ## -{ 'type': 'FdsetInfo', +{ 'struct': 'FdsetInfo', 'data': {'fdset-id': 'int', 'fds': ['FdsetFdInfo']} } ## @@ -2645,7 +2782,7 @@ # # Since: 1.2.0 ## -{ 'type': 'TargetInfo', +{ 'struct': 'TargetInfo', 'data': { 'arch': 'str' } } ## @@ -2747,7 +2884,7 @@ # # Since: 1.4 ## -{ 'type': 'ChardevFile', 'data': { '*in' : 'str', +{ 'struct': 'ChardevFile', 'data': { '*in' : 'str', 'out' : 'str' } } ## @@ -2761,7 +2898,7 @@ # # Since: 1.4 ## -{ 'type': 'ChardevHostdev', 'data': { 'device' : 'str' } } +{ 'struct': 'ChardevHostdev', 'data': { 'device' : 'str' } } ## # @ChardevSocket: @@ -2783,7 +2920,7 @@ # # Since: 1.4 ## -{ 'type': 'ChardevSocket', 'data': { 'addr' : 'SocketAddress', +{ 'struct': 'ChardevSocket', 'data': { 'addr' : 'SocketAddress', '*server' : 'bool', '*wait' : 'bool', '*nodelay' : 'bool', @@ -2800,7 +2937,7 @@ # # Since: 1.5 ## -{ 'type': 'ChardevUdp', 'data': { 'remote' : 'SocketAddress', +{ 'struct': 'ChardevUdp', 'data': { 'remote' : 'SocketAddress', '*local' : 'SocketAddress' } } ## @@ -2812,7 +2949,7 @@ # # Since: 1.5 ## -{ 'type': 'ChardevMux', 'data': { 'chardev' : 'str' } } +{ 'struct': 'ChardevMux', 'data': { 'chardev' : 'str' } } ## # @ChardevStdio: @@ -2825,7 +2962,7 @@ # # Since: 1.5 ## -{ 'type': 'ChardevStdio', 'data': { '*signal' : 'bool' } } +{ 'struct': 'ChardevStdio', 'data': { '*signal' : 'bool' } } ## # @ChardevSpiceChannel: @@ -2836,7 +2973,7 @@ # # Since: 1.5 ## -{ 'type': 'ChardevSpiceChannel', 'data': { 'type' : 'str' } } +{ 'struct': 'ChardevSpiceChannel', 'data': { 'type' : 'str' } } ## # @ChardevSpicePort: @@ -2847,7 +2984,7 @@ # # Since: 1.5 ## -{ 'type': 'ChardevSpicePort', 'data': { 'fqdn' : 'str' } } +{ 'struct': 'ChardevSpicePort', 'data': { 'fqdn' : 'str' } } ## # @ChardevVC: @@ -2861,7 +2998,7 @@ # # Since: 1.5 ## -{ 'type': 'ChardevVC', 'data': { '*width' : 'int', +{ 'struct': 'ChardevVC', 'data': { '*width' : 'int', '*height' : 'int', '*cols' : 'int', '*rows' : 'int' } } @@ -2875,7 +3012,7 @@ # # Since: 1.5 ## -{ 'type': 'ChardevRingbuf', 'data': { '*size' : 'int' } } +{ 'struct': 'ChardevRingbuf', 'data': { '*size' : 'int' } } ## # @ChardevBackend: @@ -2884,7 +3021,7 @@ # # Since: 1.4 (testdev since 2.2) ## -{ 'type': 'ChardevDummy', 'data': { } } +{ 'struct': 'ChardevDummy', 'data': { } } { 'union': 'ChardevBackend', 'data': { 'file' : 'ChardevFile', 'serial' : 'ChardevHostdev', @@ -2917,7 +3054,7 @@ # # Since: 1.4 ## -{ 'type' : 'ChardevReturn', 'data': { '*pty' : 'str' } } +{ 'struct' : 'ChardevReturn', 'data': { '*pty' : 'str' } } ## # @chardev-add: @@ -3004,7 +3141,7 @@ # # Since: 1.5 ## -{ 'type': 'TPMPassthroughOptions', 'data': { '*path' : 'str', +{ 'struct': 'TPMPassthroughOptions', 'data': { '*path' : 'str', '*cancel-path' : 'str'} } ## @@ -3032,7 +3169,7 @@ # # Since: 1.5 ## -{ 'type': 'TPMInfo', +{ 'struct': 'TPMInfo', 'data': {'id': 'str', 'model': 'TpmModel', 'options': 'TpmTypeOptions' } } @@ -3094,7 +3231,7 @@ # # Since 1.5 ## -{ 'type': 'AcpiTableOptions', +{ 'struct': 'AcpiTableOptions', 'data': { '*sig': 'str', '*rev': 'uint8', @@ -3140,7 +3277,7 @@ # # Since 1.5 ## -{ 'type': 'CommandLineParameterInfo', +{ 'struct': 'CommandLineParameterInfo', 'data': { 'name': 'str', 'type': 'CommandLineParameterType', '*help': 'str', @@ -3157,7 +3294,7 @@ # # Since 1.5 ## -{ 'type': 'CommandLineOptionInfo', +{ 'struct': 'CommandLineOptionInfo', 'data': { 'option': 'str', 'parameters': ['CommandLineParameterInfo'] } } ## @@ -3201,7 +3338,7 @@ # # Since: 1.5 ## -{ 'type': 'X86CPUFeatureWordInfo', +{ 'struct': 'X86CPUFeatureWordInfo', 'data': { 'cpuid-input-eax': 'int', '*cpuid-input-ecx': 'int', 'cpuid-register': 'X86CPURegister32', @@ -3254,7 +3391,7 @@ # Since 1.6 ## -{ 'type': 'RxFilterInfo', +{ 'struct': 'RxFilterInfo', 'data': { 'name': 'str', 'promiscuous': 'bool', @@ -3316,7 +3453,7 @@ # # Since: 2.0 ## -{ 'type' : 'InputKeyEvent', +{ 'struct' : 'InputKeyEvent', 'data' : { 'key' : 'KeyValue', 'down' : 'bool' } } @@ -3330,7 +3467,7 @@ # # Since: 2.0 ## -{ 'type' : 'InputBtnEvent', +{ 'struct' : 'InputBtnEvent', 'data' : { 'button' : 'InputButton', 'down' : 'bool' } } @@ -3345,7 +3482,7 @@ # # Since: 2.0 ## -{ 'type' : 'InputMoveEvent', +{ 'struct' : 'InputMoveEvent', 'data' : { 'axis' : 'InputAxis', 'value' : 'int' } } @@ -3428,7 +3565,7 @@ # # Since: 2.1 ## -{ 'type': 'NumaNodeOptions', +{ 'struct': 'NumaNodeOptions', 'data': { '*nodeid': 'uint16', '*cpus': ['uint16'], @@ -3475,7 +3612,7 @@ # Since: 2.1 ## -{ 'type': 'Memdev', +{ 'struct': 'Memdev', 'data': { 'size': 'size', 'merge': 'bool', @@ -3518,7 +3655,7 @@ # # Since: 2.1 ## -{ 'type': 'PCDIMMDeviceInfo', +{ 'struct': 'PCDIMMDeviceInfo', 'data': { '*id': 'str', 'addr': 'int', 'size': 'int', @@ -3572,7 +3709,7 @@ # # Since: 2.1 ## -{ 'type': 'ACPIOSTInfo', +{ 'struct': 'ACPIOSTInfo', 'data' : { '*device': 'str', 'slot': 'str', 'slot-type': 'ACPISlotType', @@ -3608,10 +3745,14 @@ # # @none: nothing is done # +# @inject-nmi: a non-maskable interrupt is injected into the first VCPU (all +# VCPUS on x86) (since 2.4) +# # Since: 2.1 ## { 'enum': 'WatchdogExpirationAction', - 'data': [ 'reset', 'shutdown', 'poweroff', 'pause', 'debug', 'none' ] } + 'data': [ 'reset', 'shutdown', 'poweroff', 'pause', 'debug', 'none', + 'inject-nmi' ] } ## # @IoOperationType @@ -3650,3 +3791,6 @@ # Since: 2.1 ## { 'command': 'rtc-reset-reinjection' } + +# Rocker ethernet network switch +{ 'include': 'qapi/rocker.json' } |