1910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# -*- Mode: Python -*-
2910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# QAPI Schema
4910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
5910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
6910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @ErrorClass
7910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
8910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# QEMU error classes
9910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
10910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @GenericError: this is used for errors that don't require a specific error
11910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                class. This should be the default case for most errors
12910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
13910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @CommandNotFound: the requested command has not been found
14910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
15910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @DeviceEncrypted: the requested operation can't be fulfilled because the
16910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                   selected device is encrypted
17910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
18910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @DeviceNotActive: a device has failed to be become active
19910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
20910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @DeviceNotFound: the requested device has not been found
21910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
22910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @KVMMissingCap: the requested operation can't be fulfilled because a
23910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                 required KVM capability is missing
24910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
25910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.2
26910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
27910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'enum': 'ErrorClass',
28910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': [ 'GenericError', 'CommandNotFound', 'DeviceEncrypted',
29910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            'DeviceNotActive', 'DeviceNotFound', 'KVMMissingCap' ] }
30910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
31910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
32910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @add_client
33910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
34910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Allow client connections for VNC, Spice and socket based
35910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# character devices to be passed in to QEMU via SCM_RIGHTS.
36910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
37910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @protocol: protocol name. Valid names are "vnc", "spice" or the
38910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#            name of a character device (eg. from -chardev id=XXXX)
39910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
40910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @fdname: file descriptor name previously passed via 'getfd' command
41910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
42910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @skipauth: #optional whether to skip authentication. Only applies
43910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#            to "vnc" and "spice" protocols
44910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
45910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @tls: #optional whether to perform TLS. Only applies to the "spice"
46910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#       protocol
47910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
48910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: nothing on success.
49910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
50910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
51910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
52910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'add_client',
53910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': { 'protocol': 'str', 'fdname': 'str', '*skipauth': 'bool',
54910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            '*tls': 'bool' } }
55910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
56910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
57910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @NameInfo:
58910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
59910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Guest name information.
60910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
61910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @name: #optional The name of the guest
62910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
63910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since 0.14.0
64910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
65910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'NameInfo', 'data': {'*name': 'str'} }
66910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
67910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
68910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @query-name:
69910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
70910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Return the name information of a guest.
71910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
72910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: @NameInfo of the guest
73910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
74910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since 0.14.0
75910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
76910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'query-name', 'returns': 'NameInfo' }
77910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
78910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
79910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @VersionInfo:
80910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
81910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# A description of QEMU's version.
82910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
83910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @qemu.major:  The major version of QEMU
84910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
85910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @qemu.minor:  The minor version of QEMU
86910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
87910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @qemu.micro:  The micro version of QEMU.  By current convention, a micro
88910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#               version of 50 signifies a development branch.  A micro version
89910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#               greater than or equal to 90 signifies a release candidate for
90910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#               the next minor version.  A micro version of less than 50
91910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#               signifies a stable release.
92910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
93910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @package:     QEMU will always set this field to an empty string.  Downstream
94910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#               versions of QEMU should set this to a non-empty string.  The
95910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#               exact format depends on the downstream however it highly
96910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#               recommended that a unique name is used.
97910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
98910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
99910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
100910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'VersionInfo',
101910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {'qemu': {'major': 'int', 'minor': 'int', 'micro': 'int'},
102910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner           'package': 'str'} }
103910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
104910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
105910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @query-version:
106910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
107910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns the current version of QEMU.
108910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
109910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns:  A @VersionInfo object describing the current version of QEMU.
110910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
111910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
112910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
113910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'query-version', 'returns': 'VersionInfo' }
114910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
115910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
116910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @KvmInfo:
117910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
118910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Information about support for KVM acceleration
119910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
120910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @enabled: true if KVM acceleration is active
121910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
122910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @present: true if KVM acceleration is built into this executable
123910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
124910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
125910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
126910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'KvmInfo', 'data': {'enabled': 'bool', 'present': 'bool'} }
127910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
128910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
129910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @query-kvm:
130910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
131910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns information about KVM acceleration
132910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
133910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: @KvmInfo
134910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
135910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
136910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
137910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'query-kvm', 'returns': 'KvmInfo' }
138910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
139910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
140910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @RunState
141910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
142910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# An enumeration of VM run states.
143910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
144910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @debug: QEMU is running on a debugger
145910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
146910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @finish-migrate: guest is paused to finish the migration process
147910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
148910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @inmigrate: guest is paused waiting for an incoming migration.  Note
149910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# that this state does not tell whether the machine will start at the
150910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# end of the migration.  This depends on the command-line -S option and
151910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# any invocation of 'stop' or 'cont' that has happened since QEMU was
152910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# started.
153910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
154910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @internal-error: An internal error that prevents further guest execution
155910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# has occurred
156910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
157910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @io-error: the last IOP has failed and the device is configured to pause
158910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# on I/O errors
159910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
160910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @paused: guest has been paused via the 'stop' command
161910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
162910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @postmigrate: guest is paused following a successful 'migrate'
163910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
164910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @prelaunch: QEMU was started with -S and guest has not started
165910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
166910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @restore-vm: guest is paused to restore VM state
167910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
168910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @running: guest is actively running
169910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
170910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @save-vm: guest is paused to save the VM state
171910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
172910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @shutdown: guest is shut down (and -no-shutdown is in use)
173910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
174910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @suspended: guest is suspended (ACPI S3)
175910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
176910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @watchdog: the watchdog action is configured to pause and has been triggered
177910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
178910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @guest-panicked: guest has been panicked as a result of guest OS panic
179910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
180910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'enum': 'RunState',
181910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': [ 'debug', 'inmigrate', 'internal-error', 'io-error', 'paused',
182910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            'postmigrate', 'prelaunch', 'finish-migrate', 'restore-vm',
183910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            'running', 'save-vm', 'shutdown', 'suspended', 'watchdog',
184910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            'guest-panicked' ] }
185910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
186910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
187910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @SnapshotInfo
188910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
189910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @id: unique snapshot id
190910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
191910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @name: user chosen name
192910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
193910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @vm-state-size: size of the VM state
194910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
195910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @date-sec: UTC date of the snapshot in seconds
196910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
197910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @date-nsec: fractional part in nano seconds to be used with date-sec
198910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
199910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @vm-clock-sec: VM clock relative to boot in seconds
200910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
201910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @vm-clock-nsec: fractional part in nano seconds to be used with vm-clock-sec
202910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
203910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.3
204910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
205910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
206910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
207910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'SnapshotInfo',
208910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': { 'id': 'str', 'name': 'str', 'vm-state-size': 'int',
209910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            'date-sec': 'int', 'date-nsec': 'int',
210910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            'vm-clock-sec': 'int', 'vm-clock-nsec': 'int' } }
211910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
212910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
213910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @ImageInfoSpecificQCow2:
214910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
215910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @compat: compatibility level
216910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
217910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @lazy-refcounts: #optional on or off; only valid for compat >= 1.1
218910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
219910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.7
220910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
221910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'ImageInfoSpecificQCow2',
222910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {
223910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner      'compat': 'str',
224910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner      '*lazy-refcounts': 'bool'
225910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  } }
226910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
227910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
228910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @ImageInfoSpecificVmdk:
229910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
230910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @create-type: The create type of VMDK image
231910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
232910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @cid: Content id of image
233910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
234910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @parent-cid: Parent VMDK image's cid
235910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
236910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @extents: List of extent files
237910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
238910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.7
239910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
240910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'ImageInfoSpecificVmdk',
241910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {
242910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner      'create-type': 'str',
243910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner      'cid': 'int',
244910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner      'parent-cid': 'int',
245910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner      'extents': ['ImageInfo']
246910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  } }
247910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
248910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
249910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @ImageInfoSpecific:
250910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
251910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# A discriminated record of image format specific information structures.
252910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
253910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.7
254910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
255910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
256910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'union': 'ImageInfoSpecific',
257910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {
258910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner      'qcow2': 'ImageInfoSpecificQCow2',
259910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner      'vmdk': 'ImageInfoSpecificVmdk'
260910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  } }
261910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
262910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
263910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @ImageInfo:
264910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
265910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Information about a QEMU image file
266910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
267910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @filename: name of the image file
268910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
269910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @format: format of the image file
270910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
271910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @virtual-size: maximum capacity in bytes of the image
272910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
273910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @actual-size: #optional actual size on disk in bytes of the image
274910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
275910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @dirty-flag: #optional true if image is not cleanly closed
276910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
277910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @cluster-size: #optional size of a cluster in bytes
278910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
279910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @encrypted: #optional true if the image is encrypted
280910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
281910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @compressed: #optional true if the image is compressed (Since 1.7)
282910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
283910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @backing-filename: #optional name of the backing file
284910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
285910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @full-backing-filename: #optional full path of the backing file
286910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
287910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @backing-filename-format: #optional the format of the backing file
288910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
289910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @snapshots: #optional list of VM snapshots
290910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
291910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @backing-image: #optional info of the backing image (since 1.6)
292910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
293910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @format-specific: #optional structure supplying additional format-specific
294910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# information (since 1.7)
295910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
296910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.3
297910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
298910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
299910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
300910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'ImageInfo',
301910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {'filename': 'str', 'format': 'str', '*dirty-flag': 'bool',
302910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner           '*actual-size': 'int', 'virtual-size': 'int',
303910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner           '*cluster-size': 'int', '*encrypted': 'bool', '*compressed': 'bool',
304910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner           '*backing-filename': 'str', '*full-backing-filename': 'str',
305910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner           '*backing-filename-format': 'str', '*snapshots': ['SnapshotInfo'],
306910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner           '*backing-image': 'ImageInfo',
307910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner           '*format-specific': 'ImageInfoSpecific' } }
308910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
309910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
310910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @ImageCheck:
311910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
312910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Information about a QEMU image file check
313910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
314910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @filename: name of the image file checked
315910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
316910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @format: format of the image file checked
317910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
318910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @check-errors: number of unexpected errors occurred during check
319910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
320910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @image-end-offset: #optional offset (in bytes) where the image ends, this
321910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                    field is present if the driver for the image format
322910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                    supports it
323910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
324910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @corruptions: #optional number of corruptions found during the check if any
325910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
326910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @leaks: #optional number of leaks found during the check if any
327910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
328910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @corruptions-fixed: #optional number of corruptions fixed during the check
329910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                     if any
330910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
331910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @leaks-fixed: #optional number of leaks fixed during the check if any
332910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
333910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @total-clusters: #optional total number of clusters, this field is present
334910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                  if the driver for the image format supports it
335910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
336910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @allocated-clusters: #optional total number of allocated clusters, this
337910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                      field is present if the driver for the image format
338910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                      supports it
339910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
340910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @fragmented-clusters: #optional total number of fragmented clusters, this
341910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                       field is present if the driver for the image format
342910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                       supports it
343910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
344910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @compressed-clusters: #optional total number of compressed clusters, this
345910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                       field is present if the driver for the image format
346910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                       supports it
347910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
348910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.4
349910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
350910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
351910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
352910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'ImageCheck',
353910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {'filename': 'str', 'format': 'str', 'check-errors': 'int',
354910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner           '*image-end-offset': 'int', '*corruptions': 'int', '*leaks': 'int',
355910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner           '*corruptions-fixed': 'int', '*leaks-fixed': 'int',
356910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner           '*total-clusters': 'int', '*allocated-clusters': 'int',
357910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner           '*fragmented-clusters': 'int', '*compressed-clusters': 'int' } }
358910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
359910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
360910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @StatusInfo:
361910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
362910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Information about VCPU run state
363910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
364910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @running: true if all VCPUs are runnable, false if not runnable
365910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
366910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @singlestep: true if VCPUs are in single-step mode
367910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
368910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @status: the virtual machine @RunState
369910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
370910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since:  0.14.0
371910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
372910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Notes: @singlestep is enabled through the GDB stub
373910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
374910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'StatusInfo',
375910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {'running': 'bool', 'singlestep': 'bool', 'status': 'RunState'} }
376910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
377910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
378910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @query-status:
379910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
380910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Query the run status of all VCPUs
381910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
382910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: @StatusInfo reflecting all VCPUs
383910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
384910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since:  0.14.0
385910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
386910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'query-status', 'returns': 'StatusInfo' }
387910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
388910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
389910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @UuidInfo:
390910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
391910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Guest UUID information.
392910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
393910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @UUID: the UUID of the guest
394910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
395910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
396910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
397910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Notes: If no UUID was specified for the guest, a null UUID is returned.
398910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
399910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'UuidInfo', 'data': {'UUID': 'str'} }
400910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
401910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
402910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @query-uuid:
403910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
404910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Query the guest UUID information.
405910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
406910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: The @UuidInfo for the guest
407910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
408910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since 0.14.0
409910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
410910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'query-uuid', 'returns': 'UuidInfo' }
411910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
412910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
413910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @ChardevInfo:
414910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
415910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Information about a character device.
416910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
417910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @label: the label of the character device
418910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
419910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @filename: the filename of the character device
420910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
421910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Notes: @filename is encoded using the QEMU command line character device
422910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        encoding.  See the QEMU man page for details.
423910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
424910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
425910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
426910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'ChardevInfo', 'data': {'label': 'str', 'filename': 'str'} }
427910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
428910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
429910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @query-chardev:
430910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
431910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns information about current character devices.
432910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
433910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: a list of @ChardevInfo
434910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
435910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
436910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
437910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'query-chardev', 'returns': ['ChardevInfo'] }
438910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
439910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
440910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @DataFormat:
441910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
442910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# An enumeration of data format.
443910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
444910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @utf8: Data is a UTF-8 string (RFC 3629)
445910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
446910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @base64: Data is Base64 encoded binary (RFC 3548)
447910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
448910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.4
449910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
450910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'enum': 'DataFormat',
451910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': [ 'utf8', 'base64' ] }
452910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
453910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
454910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @ringbuf-write:
455910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
456910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Write to a ring buffer character device.
457910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
458910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @device: the ring buffer character device name
459910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
460910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @data: data to write
461910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
462910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @format: #optional data encoding (default 'utf8').
463910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          - base64: data must be base64 encoded text.  Its binary
464910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#            decoding gets written.
465910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#            Bug: invalid base64 is currently not rejected.
466910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#            Whitespace *is* invalid.
467910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          - utf8: data's UTF-8 encoding is written
468910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          - data itself is always Unicode regardless of format, like
469910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#            any other string.
470910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
471910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: Nothing on success
472910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
473910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.4
474910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
475910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'ringbuf-write',
476910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {'device': 'str', 'data': 'str',
477910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner           '*format': 'DataFormat'} }
478910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
479910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
480910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @ringbuf-read:
481910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
482910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Read from a ring buffer character device.
483910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
484910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @device: the ring buffer character device name
485910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
486910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @size: how many bytes to read at most
487910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
488910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @format: #optional data encoding (default 'utf8').
489910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          - base64: the data read is returned in base64 encoding.
490910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          - utf8: the data read is interpreted as UTF-8.
491910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#            Bug: can screw up when the buffer contains invalid UTF-8
492910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#            sequences, NUL characters, after the ring buffer lost
493910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#            data, and when reading stops because the size limit is
494910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#            reached.
495910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          - The return value is always Unicode regardless of format,
496910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#            like any other string.
497910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
498910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: data read from the device
499910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
500910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.4
501910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
502910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'ringbuf-read',
503910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {'device': 'str', 'size': 'int', '*format': 'DataFormat'},
504910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'returns': 'str' }
505910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
506910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
507910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @CommandInfo:
508910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
509910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Information about a QMP command
510910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
511910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @name: The command name
512910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
513910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
514910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
515910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'CommandInfo', 'data': {'name': 'str'} }
516910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
517910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
518910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @query-commands:
519910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
520910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Return a list of supported QMP commands by this server
521910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
522910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: A list of @CommandInfo for all supported commands
523910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
524910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
525910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
526910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'query-commands', 'returns': ['CommandInfo'] }
527910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
528910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
529910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @EventInfo:
530910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
531910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Information about a QMP event
532910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
533910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @name: The event name
534910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
535910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.2.0
536910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
537910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'EventInfo', 'data': {'name': 'str'} }
538910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
539910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
540910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @query-events:
541910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
542910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Return a list of supported QMP events by this server
543910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
544910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: A list of @EventInfo for all supported events
545910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
546910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.2.0
547910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
548910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'query-events', 'returns': ['EventInfo'] }
549910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
550910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
551910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @MigrationStats
552910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
553910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Detailed migration status.
554910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
555910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @transferred: amount of bytes already transferred to the target VM
556910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
557910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @remaining: amount of bytes remaining to be transferred to the target VM
558910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
559910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @total: total amount of bytes involved in the migration process
560910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
561910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @duplicate: number of duplicate (zero) pages (since 1.2)
562910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
563910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @skipped: number of skipped zero pages (since 1.5)
564910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
565910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @normal : number of normal pages (since 1.2)
566910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
567910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @normal-bytes: number of normal bytes sent (since 1.2)
568910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
569910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @dirty-pages-rate: number of pages dirtied by second by the
570910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        guest (since 1.3)
571910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
572910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @mbps: throughput in megabits/sec. (since 1.6)
573910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
574910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
575910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
576910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'MigrationStats',
577910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {'transferred': 'int', 'remaining': 'int', 'total': 'int' ,
578910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner           'duplicate': 'int', 'skipped': 'int', 'normal': 'int',
579910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner           'normal-bytes': 'int', 'dirty-pages-rate' : 'int',
580910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner           'mbps' : 'number' } }
581910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
582910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
583910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @XBZRLECacheStats
584910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
585910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Detailed XBZRLE migration cache statistics
586910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
587910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @cache-size: XBZRLE cache size
588910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
589910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @bytes: amount of bytes already transferred to the target VM
590910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
591910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @pages: amount of pages transferred to the target VM
592910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
593910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @cache-miss: number of cache miss
594910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
595910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @overflow: number of overflows
596910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
597910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.2
598910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
599910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'XBZRLECacheStats',
600910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {'cache-size': 'int', 'bytes': 'int', 'pages': 'int',
601910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner           'cache-miss': 'int', 'overflow': 'int' } }
602910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
603910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
604910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @MigrationInfo
605910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
606910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Information about current migration process.
607910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
608910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @status: #optional string describing the current migration status.
609910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          As of 0.14.0 this can be 'active', 'completed', 'failed' or
610910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          'cancelled'. If this field is not returned, no migration process
611910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          has been initiated
612910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
613910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @ram: #optional @MigrationStats containing detailed migration
614910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#       status, only returned if status is 'active' or
615910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#       'completed'. 'comppleted' (since 1.2)
616910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
617910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @disk: #optional @MigrationStats containing detailed disk migration
618910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        status, only returned if status is 'active' and it is a block
619910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        migration
620910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
621910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @xbzrle-cache: #optional @XBZRLECacheStats containing detailed XBZRLE
622910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                migration statistics, only returned if XBZRLE feature is on and
623910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                status is 'active' or 'completed' (since 1.2)
624910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
625910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @total-time: #optional total amount of milliseconds since migration started.
626910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        If migration has ended, it returns the total migration
627910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        time. (since 1.2)
628910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
629910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @downtime: #optional only present when migration finishes correctly
630910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        total downtime in milliseconds for the guest.
631910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        (since 1.3)
632910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
633910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @expected-downtime: #optional only present while migration is active
634910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        expected downtime in milliseconds for the guest in last walk
635910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        of the dirty bitmap. (since 1.3)
636910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
637910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @setup-time: #optional amount of setup time in milliseconds _before_ the
638910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        iterations begin but _after_ the QMP command is issued. This is designed
639910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        to provide an accounting of any activities (such as RDMA pinning) which
640910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        may be expensive, but do not actually occur during the iterative
641910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        migration rounds themselves. (since 1.6)
642910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
643910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
644910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
645910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'MigrationInfo',
646910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {'*status': 'str', '*ram': 'MigrationStats',
647910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner           '*disk': 'MigrationStats',
648910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner           '*xbzrle-cache': 'XBZRLECacheStats',
649910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner           '*total-time': 'int',
650910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner           '*expected-downtime': 'int',
651910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner           '*downtime': 'int',
652910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner           '*setup-time': 'int'} }
653910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
654910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
655910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @query-migrate
656910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
657910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns information about current migration process.
658910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
659910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: @MigrationInfo
660910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
661910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
662910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
663910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'query-migrate', 'returns': 'MigrationInfo' }
664910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
665910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
666910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @MigrationCapability
667910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
668910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Migration capabilities enumeration
669910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
670910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @xbzrle: Migration supports xbzrle (Xor Based Zero Run Length Encoding).
671910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          This feature allows us to minimize migration traffic for certain work
672910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          loads, by sending compressed difference of the pages
673910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
674910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @x-rdma-pin-all: Controls whether or not the entire VM memory footprint is
675910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          mlock()'d on demand or all at once. Refer to docs/rdma.txt for usage.
676910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          Disabled by default. Experimental: may (or may not) be renamed after
677910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          further testing is complete. (since 1.6)
678910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
679910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @zero-blocks: During storage migration encode blocks of zeroes efficiently. This
680910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          essentially saves 1MB of zeroes per block on the wire. Enabling requires
681910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          source and target VM to support this feature. To enable it is sufficient
682910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          to enable the capability on the source VM. The feature is disabled by
683910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          default. (since 1.6)
684910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
685910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @auto-converge: If enabled, QEMU will automatically throttle down the guest
686910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          to speed up convergence of RAM migration. (since 1.6)
687910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
688910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.2
689910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
690910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'enum': 'MigrationCapability',
691910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': ['xbzrle', 'x-rdma-pin-all', 'auto-converge', 'zero-blocks'] }
692910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
693910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
694910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @MigrationCapabilityStatus
695910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
696910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Migration capability information
697910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
698910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @capability: capability enum
699910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
700910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @state: capability state bool
701910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
702910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.2
703910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
704910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'MigrationCapabilityStatus',
705910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': { 'capability' : 'MigrationCapability', 'state' : 'bool' } }
706910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
707910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
708910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @migrate-set-capabilities
709910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
710910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Enable/Disable the following migration capabilities (like xbzrle)
711910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
712910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @capabilities: json array of capability modifications to make
713910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
714910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.2
715910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
716910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'migrate-set-capabilities',
717910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': { 'capabilities': ['MigrationCapabilityStatus'] } }
718910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
719910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
720910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @query-migrate-capabilities
721910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
722910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns information about the current migration capabilities status
723910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
724910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: @MigrationCapabilitiesStatus
725910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
726910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.2
727910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
728910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'query-migrate-capabilities', 'returns':   ['MigrationCapabilityStatus']}
729910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
730910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
731910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @MouseInfo:
732910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
733910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Information about a mouse device.
734910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
735910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @name: the name of the mouse device
736910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
737910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @index: the index of the mouse device
738910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
739910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @current: true if this device is currently receiving mouse events
740910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
741910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @absolute: true if this device supports absolute coordinates as input
742910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
743910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
744910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
745910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'MouseInfo',
746910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {'name': 'str', 'index': 'int', 'current': 'bool',
747910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner           'absolute': 'bool'} }
748910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
749910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
750910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @query-mice:
751910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
752910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns information about each active mouse device
753910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
754910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: a list of @MouseInfo for each device
755910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
756910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
757910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
758910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'query-mice', 'returns': ['MouseInfo'] }
759910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
760910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
761910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @CpuInfo:
762910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
763910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Information about a virtual CPU
764910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
765910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @CPU: the index of the virtual CPU
766910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
767910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @current: this only exists for backwards compatible and should be ignored
768910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
769910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @halted: true if the virtual CPU is in the halt state.  Halt usually refers
770910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          to a processor specific low power mode.
771910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
772910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @pc: #optional If the target is i386 or x86_64, this is the 64-bit instruction
773910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                pointer.
774910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                If the target is Sparc, this is the PC component of the
775910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                instruction pointer.
776910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
777910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @nip: #optional If the target is PPC, the instruction pointer
778910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
779910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @npc: #optional If the target is Sparc, the NPC component of the instruction
780910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                 pointer
781910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
782910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @PC: #optional If the target is MIPS, the instruction pointer
783910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
784910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @thread_id: ID of the underlying host thread
785910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
786910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
787910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
788910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Notes: @halted is a transient state that changes frequently.  By the time the
789910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        data is sent to the client, the guest may no longer be halted.
790910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
791910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'CpuInfo',
792910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {'CPU': 'int', 'current': 'bool', 'halted': 'bool', '*pc': 'int',
793910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner           '*nip': 'int', '*npc': 'int', '*PC': 'int', 'thread_id': 'int'} }
794910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
795910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
796910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @query-cpus:
797910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
798910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns a list of information about each virtual CPU.
799910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
800910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: a list of @CpuInfo for each virtual CPU
801910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
802910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
803910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
804910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'query-cpus', 'returns': ['CpuInfo'] }
805910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
806910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
807910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @BlockDeviceInfo:
808910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
809910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Information about the backing device for a block device.
810910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
811910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @file: the filename of the backing device
812910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
813910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @ro: true if the backing device was open read-only
814910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
815910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @drv: the name of the block format used to open the backing device. As of
816910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#       0.14.0 this can be: 'blkdebug', 'bochs', 'cloop', 'cow', 'dmg',
817910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#       'file', 'file', 'ftp', 'ftps', 'host_cdrom', 'host_device',
818910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#       'host_floppy', 'http', 'https', 'nbd', 'parallels', 'qcow',
819910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#       'qcow2', 'raw', 'tftp', 'vdi', 'vmdk', 'vpc', 'vvfat'
820910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
821910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @backing_file: #optional the name of the backing file (for copy-on-write)
822910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
823910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @backing_file_depth: number of files in the backing file chain (since: 1.2)
824910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
825910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @encrypted: true if the backing device is encrypted
826910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
827910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @encryption_key_missing: true if the backing device is encrypted but an
828910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                          valid encryption key is missing
829910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
830910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @bps: total throughput limit in bytes per second is specified
831910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
832910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @bps_rd: read throughput limit in bytes per second is specified
833910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
834910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @bps_wr: write throughput limit in bytes per second is specified
835910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
836910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @iops: total I/O operations per second is specified
837910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
838910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @iops_rd: read I/O operations per second is specified
839910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
840910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @iops_wr: write I/O operations per second is specified
841910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
842910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @image: the info of image used (since: 1.6)
843910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
844910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @bps_max: #optional total max in bytes (Since 1.7)
845910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
846910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @bps_rd_max: #optional read max in bytes (Since 1.7)
847910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
848910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @bps_wr_max: #optional write max in bytes (Since 1.7)
849910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
850910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @iops_max: #optional total I/O operations max (Since 1.7)
851910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
852910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @iops_rd_max: #optional read I/O operations max (Since 1.7)
853910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
854910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @iops_wr_max: #optional write I/O operations max (Since 1.7)
855910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
856910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @iops_size: #optional an I/O size in bytes (Since 1.7)
857910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
858910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
859910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
860910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Notes: This interface is only found in @BlockInfo.
861910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
862910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'BlockDeviceInfo',
863910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': { 'file': 'str', 'ro': 'bool', 'drv': 'str',
864910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            '*backing_file': 'str', 'backing_file_depth': 'int',
865910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            'encrypted': 'bool', 'encryption_key_missing': 'bool',
866910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            'bps': 'int', 'bps_rd': 'int', 'bps_wr': 'int',
867910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            'iops': 'int', 'iops_rd': 'int', 'iops_wr': 'int',
868910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            'image': 'ImageInfo',
869910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            '*bps_max': 'int', '*bps_rd_max': 'int',
870910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            '*bps_wr_max': 'int', '*iops_max': 'int',
871910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            '*iops_rd_max': 'int', '*iops_wr_max': 'int',
872910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            '*iops_size': 'int' } }
873910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
874910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
875910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @BlockDeviceIoStatus:
876910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
877910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# An enumeration of block device I/O status.
878910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
879910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @ok: The last I/O operation has succeeded
880910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
881910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @failed: The last I/O operation has failed
882910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
883910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @nospace: The last I/O operation has failed due to a no-space condition
884910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
885910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.0
886910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
887910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'enum': 'BlockDeviceIoStatus', 'data': [ 'ok', 'failed', 'nospace' ] }
888910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
889910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
890910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @BlockDeviceMapEntry:
891910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
892910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Entry in the metadata map of the device (returned by "qemu-img map")
893910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
894910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @start: Offset in the image of the first byte described by this entry
895910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#         (in bytes)
896910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
897910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @length: Length of the range described by this entry (in bytes)
898910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
899910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @depth: Number of layers (0 = top image, 1 = top image's backing file, etc.)
900910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#         before reaching one for which the range is allocated.  The value is
901910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#         in the range 0 to the depth of the image chain - 1.
902910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
903910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @zero: the sectors in this range read as zeros
904910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
905910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @data: reading the image will actually read data from a file (in particular,
906910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        if @offset is present this means that the sectors are not simply
907910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        preallocated, but contain actual data in raw format)
908910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
909910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @offset: if present, the image file stores the data for this range in
910910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          raw format at the given offset.
911910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
912910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since 1.7
913910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
914910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'BlockDeviceMapEntry',
915910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': { 'start': 'int', 'length': 'int', 'depth': 'int', 'zero': 'bool',
916910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            'data': 'bool', '*offset': 'int' } }
917910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
918910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
919910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @BlockDirtyInfo:
920910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
921910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Block dirty bitmap information.
922910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
923910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @count: number of dirty bytes according to the dirty bitmap
924910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
925910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @granularity: granularity of the dirty bitmap in bytes (since 1.4)
926910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
927910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.3
928910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
929910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'BlockDirtyInfo',
930910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {'count': 'int', 'granularity': 'int'} }
931910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
932910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
933910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @BlockInfo:
934910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
935910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Block device information.  This structure describes a virtual device and
936910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# the backing device associated with it.
937910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
938910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @device: The device name associated with the virtual device.
939910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
940910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @type: This field is returned only for compatibility reasons, it should
941910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        not be used (always returns 'unknown')
942910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
943910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @removable: True if the device supports removable media.
944910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
945910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @locked: True if the guest has locked this device from having its media
946910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          removed
947910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
948910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @tray_open: #optional True if the device has a tray and it is open
949910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#             (only present if removable is true)
950910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
951910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @dirty-bitmaps: #optional dirty bitmaps information (only present if the
952910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                 driver has one or more dirty bitmaps) (Since 1.8)
953910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
954910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @io-status: #optional @BlockDeviceIoStatus. Only present if the device
955910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#             supports it and the VM is configured to stop on errors
956910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
957910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @inserted: #optional @BlockDeviceInfo describing the device if media is
958910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#            present
959910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
960910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since:  0.14.0
961910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
962910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'BlockInfo',
963910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {'device': 'str', 'type': 'str', 'removable': 'bool',
964910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner           'locked': 'bool', '*inserted': 'BlockDeviceInfo',
965910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner           '*tray_open': 'bool', '*io-status': 'BlockDeviceIoStatus',
966910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner           '*dirty-bitmaps': ['BlockDirtyInfo'] } }
967910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
968910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
969910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @query-block:
970910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
971910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Get a list of BlockInfo for all virtual block devices.
972910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
973910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: a list of @BlockInfo describing each virtual block device
974910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
975910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
976910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
977910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'query-block', 'returns': ['BlockInfo'] }
978910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
979910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
980910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @BlockDeviceStats:
981910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
982910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Statistics of a virtual block device or a block backing device.
983910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
984910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @rd_bytes:      The number of bytes read by the device.
985910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
986910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @wr_bytes:      The number of bytes written by the device.
987910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
988910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @rd_operations: The number of read operations performed by the device.
989910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
990910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @wr_operations: The number of write operations performed by the device.
991910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
992910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @flush_operations: The number of cache flush operations performed by the
993910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                    device (since 0.15.0)
994910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
995910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @flush_total_time_ns: Total time spend on cache flushes in nano-seconds
996910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                       (since 0.15.0).
997910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
998910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @wr_total_time_ns: Total time spend on writes in nano-seconds (since 0.15.0).
999910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1000910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @rd_total_time_ns: Total_time_spend on reads in nano-seconds (since 0.15.0).
1001910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1002910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @wr_highest_offset: The offset after the greatest byte written to the
1003910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                     device.  The intended use of this information is for
1004910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                     growable sparse files (like qcow2) that are used on top
1005910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                     of a physical device.
1006910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1007910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
1008910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1009910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'BlockDeviceStats',
1010910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {'rd_bytes': 'int', 'wr_bytes': 'int', 'rd_operations': 'int',
1011910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner           'wr_operations': 'int', 'flush_operations': 'int',
1012910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner           'flush_total_time_ns': 'int', 'wr_total_time_ns': 'int',
1013910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner           'rd_total_time_ns': 'int', 'wr_highest_offset': 'int' } }
1014910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1015910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1016910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @BlockStats:
1017910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1018910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Statistics of a virtual block device or a block backing device.
1019910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1020910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @device: #optional If the stats are for a virtual block device, the name
1021910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          corresponding to the virtual block device.
1022910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1023910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @stats:  A @BlockDeviceStats for the device.
1024910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1025910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @parent: #optional This may point to the backing block device if this is a
1026910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          a virtual block device.  If it's a backing block, this will point
1027910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          to the backing file is one is present.
1028910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1029910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
1030910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1031910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'BlockStats',
1032910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {'*device': 'str', 'stats': 'BlockDeviceStats',
1033910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner           '*parent': 'BlockStats'} }
1034910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1035910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1036910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @query-blockstats:
1037910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1038910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Query the @BlockStats for all virtual block devices.
1039910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1040910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: A list of @BlockStats for each virtual block devices.
1041910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1042910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
1043910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1044910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'query-blockstats', 'returns': ['BlockStats'] }
1045910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1046910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1047910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @VncClientInfo:
1048910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1049910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Information about a connected VNC client.
1050910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1051910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @host: The host name of the client.  QEMU tries to resolve this to a DNS name
1052910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        when possible.
1053910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1054910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @family: 'ipv6' if the client is connected via IPv6 and TCP
1055910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          'ipv4' if the client is connected via IPv4 and TCP
1056910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          'unix' if the client is connected via a unix domain socket
1057910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          'unknown' otherwise
1058910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1059910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @service: The service name of the client's port.  This may depends on the
1060910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#           host system's service database so symbolic names should not be
1061910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#           relied on.
1062910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1063910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @x509_dname: #optional If x509 authentication is in use, the Distinguished
1064910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#              Name of the client.
1065910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1066910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @sasl_username: #optional If SASL authentication is in use, the SASL username
1067910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                 used for authentication.
1068910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1069910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
1070910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1071910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'VncClientInfo',
1072910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {'host': 'str', 'family': 'str', 'service': 'str',
1073910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner           '*x509_dname': 'str', '*sasl_username': 'str'} }
1074910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1075910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1076910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @VncInfo:
1077910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1078910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Information about the VNC session.
1079910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1080910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @enabled: true if the VNC server is enabled, false otherwise
1081910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1082910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @host: #optional The hostname the VNC server is bound to.  This depends on
1083910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        the name resolution on the host and may be an IP address.
1084910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1085910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @family: #optional 'ipv6' if the host is listening for IPv6 connections
1086910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                    'ipv4' if the host is listening for IPv4 connections
1087910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                    'unix' if the host is listening on a unix domain socket
1088910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                    'unknown' otherwise
1089910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1090910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @service: #optional The service name of the server's port.  This may depends
1091910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#           on the host system's service database so symbolic names should not
1092910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#           be relied on.
1093910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1094910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @auth: #optional the current authentication type used by the server
1095910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        'none' if no authentication is being used
1096910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        'vnc' if VNC authentication is being used
1097910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        'vencrypt+plain' if VEncrypt is used with plain text authentication
1098910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        'vencrypt+tls+none' if VEncrypt is used with TLS and no authentication
1099910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        'vencrypt+tls+vnc' if VEncrypt is used with TLS and VNC authentication
1100910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        'vencrypt+tls+plain' if VEncrypt is used with TLS and plain text auth
1101910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        'vencrypt+x509+none' if VEncrypt is used with x509 and no auth
1102910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        'vencrypt+x509+vnc' if VEncrypt is used with x509 and VNC auth
1103910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        'vencrypt+x509+plain' if VEncrypt is used with x509 and plain text auth
1104910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        'vencrypt+tls+sasl' if VEncrypt is used with TLS and SASL auth
1105910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        'vencrypt+x509+sasl' if VEncrypt is used with x509 and SASL auth
1106910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1107910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @clients: a list of @VncClientInfo of all currently connected clients
1108910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1109910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
1110910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1111910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'VncInfo',
1112910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {'enabled': 'bool', '*host': 'str', '*family': 'str',
1113910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner           '*service': 'str', '*auth': 'str', '*clients': ['VncClientInfo']} }
1114910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1115910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1116910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @query-vnc:
1117910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1118910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns information about the current VNC server
1119910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1120910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: @VncInfo
1121910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1122910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
1123910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1124910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'query-vnc', 'returns': 'VncInfo' }
1125910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1126910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1127910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @SpiceChannel
1128910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1129910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Information about a SPICE client channel.
1130910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1131910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @host: The host name of the client.  QEMU tries to resolve this to a DNS name
1132910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        when possible.
1133910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1134910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @family: 'ipv6' if the client is connected via IPv6 and TCP
1135910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          'ipv4' if the client is connected via IPv4 and TCP
1136910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          'unix' if the client is connected via a unix domain socket
1137910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          'unknown' otherwise
1138910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1139910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @port: The client's port number.
1140910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1141910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @connection-id: SPICE connection id number.  All channels with the same id
1142910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                 belong to the same SPICE session.
1143910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1144910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @connection-type: SPICE channel type number.  "1" is the main control
1145910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                   channel, filter for this one if you want to track spice
1146910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                   sessions only
1147910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1148910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @channel-id: SPICE channel ID number.  Usually "0", might be different when
1149910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#              multiple channels of the same type exist, such as multiple
1150910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#              display channels in a multihead setup
1151910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1152910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @tls: true if the channel is encrypted, false otherwise.
1153910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1154910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
1155910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1156910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'SpiceChannel',
1157910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {'host': 'str', 'family': 'str', 'port': 'str',
1158910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner           'connection-id': 'int', 'channel-type': 'int', 'channel-id': 'int',
1159910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner           'tls': 'bool'} }
1160910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1161910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1162910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @SpiceQueryMouseMode
1163910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1164910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# An enumeration of Spice mouse states.
1165910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1166910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @client: Mouse cursor position is determined by the client.
1167910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1168910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @server: Mouse cursor position is determined by the server.
1169910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1170910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @unknown: No information is available about mouse mode used by
1171910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#           the spice server.
1172910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1173910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Note: spice/enums.h has a SpiceMouseMode already, hence the name.
1174910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1175910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.1
1176910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1177910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'enum': 'SpiceQueryMouseMode',
1178910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': [ 'client', 'server', 'unknown' ] }
1179910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1180910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1181910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @SpiceInfo
1182910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1183910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Information about the SPICE session.
1184910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1185910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @enabled: true if the SPICE server is enabled, false otherwise
1186910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1187910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @migrated: true if the last guest migration completed and spice
1188910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#            migration had completed as well. false otherwise.
1189910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1190910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @host: #optional The hostname the SPICE server is bound to.  This depends on
1191910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        the name resolution on the host and may be an IP address.
1192910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1193910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @port: #optional The SPICE server's port number.
1194910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1195910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @compiled-version: #optional SPICE server version.
1196910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1197910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @tls-port: #optional The SPICE server's TLS port number.
1198910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1199910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @auth: #optional the current authentication type used by the server
1200910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        'none'  if no authentication is being used
1201910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        'spice' uses SASL or direct TLS authentication, depending on command
1202910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                line options
1203910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1204910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @mouse-mode: The mode in which the mouse cursor is displayed currently. Can
1205910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#              be determined by the client or the server, or unknown if spice
1206910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#              server doesn't provide this information.
1207910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1208910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#              Since: 1.1
1209910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1210910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @channels: a list of @SpiceChannel for each active spice channel
1211910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1212910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
1213910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1214910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'SpiceInfo',
1215910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {'enabled': 'bool', 'migrated': 'bool', '*host': 'str', '*port': 'int',
1216910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner           '*tls-port': 'int', '*auth': 'str', '*compiled-version': 'str',
1217910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner           'mouse-mode': 'SpiceQueryMouseMode', '*channels': ['SpiceChannel']} }
1218910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1219910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1220910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @query-spice
1221910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1222910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns information about the current SPICE server
1223910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1224910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: @SpiceInfo
1225910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1226910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
1227910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1228910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'query-spice', 'returns': 'SpiceInfo' }
1229910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1230910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1231910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @BalloonInfo:
1232910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1233910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Information about the guest balloon device.
1234910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1235910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @actual: the number of bytes the balloon currently contains
1236910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1237910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
1238910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1239910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1240910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'BalloonInfo', 'data': {'actual': 'int' } }
1241910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1242910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1243910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @query-balloon:
1244910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1245910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Return information about the balloon device.
1246910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1247910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: @BalloonInfo on success
1248910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          If the balloon driver is enabled but not functional because the KVM
1249910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          kernel module cannot support it, KvmMissingCap
1250910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          If no balloon device is present, DeviceNotActive
1251910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1252910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
1253910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1254910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'query-balloon', 'returns': 'BalloonInfo' }
1255910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1256910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1257910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @PciMemoryRange:
1258910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1259910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# A PCI device memory region
1260910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1261910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @base: the starting address (guest physical)
1262910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1263910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @limit: the ending address (guest physical)
1264910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1265910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
1266910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1267910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'PciMemoryRange', 'data': {'base': 'int', 'limit': 'int'} }
1268910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1269910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1270910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @PciMemoryRegion
1271910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1272910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Information about a PCI device I/O region.
1273910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1274910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @bar: the index of the Base Address Register for this region
1275910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1276910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @type: 'io' if the region is a PIO region
1277910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        'memory' if the region is a MMIO region
1278910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1279910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @prefetch: #optional if @type is 'memory', true if the memory is prefetchable
1280910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1281910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @mem_type_64: #optional if @type is 'memory', true if the BAR is 64-bit
1282910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1283910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
1284910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1285910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'PciMemoryRegion',
1286910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {'bar': 'int', 'type': 'str', 'address': 'int', 'size': 'int',
1287910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner           '*prefetch': 'bool', '*mem_type_64': 'bool' } }
1288910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1289910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1290910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @PciBridgeInfo:
1291910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1292910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Information about a PCI Bridge device
1293910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1294910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @bus.number: primary bus interface number.  This should be the number of the
1295910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#              bus the device resides on.
1296910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1297910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @bus.secondary: secondary bus interface number.  This is the number of the
1298910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                 main bus for the bridge
1299910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1300910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @bus.subordinate: This is the highest number bus that resides below the
1301910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                   bridge.
1302910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1303910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @bus.io_range: The PIO range for all devices on this bridge
1304910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1305910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @bus.memory_range: The MMIO range for all devices on this bridge
1306910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1307910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @bus.prefetchable_range: The range of prefetchable MMIO for all devices on
1308910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                          this bridge
1309910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1310910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @devices: a list of @PciDeviceInfo for each device on this bridge
1311910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1312910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
1313910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1314910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'PciBridgeInfo',
1315910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {'bus': { 'number': 'int', 'secondary': 'int', 'subordinate': 'int',
1316910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner                    'io_range': 'PciMemoryRange',
1317910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner                    'memory_range': 'PciMemoryRange',
1318910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner                    'prefetchable_range': 'PciMemoryRange' },
1319910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner           '*devices': ['PciDeviceInfo']} }
1320910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1321910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1322910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @PciDeviceInfo:
1323910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1324910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Information about a PCI device
1325910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1326910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @bus: the bus number of the device
1327910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1328910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @slot: the slot the device is located in
1329910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1330910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @function: the function of the slot used by the device
1331910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1332910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @class_info.desc: #optional a string description of the device's class
1333910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1334910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @class_info.class: the class code of the device
1335910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1336910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @id.device: the PCI device id
1337910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1338910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @id.vendor: the PCI vendor id
1339910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1340910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @irq: #optional if an IRQ is assigned to the device, the IRQ number
1341910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1342910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @qdev_id: the device name of the PCI device
1343910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1344910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @pci_bridge: if the device is a PCI bridge, the bridge information
1345910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1346910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @regions: a list of the PCI I/O regions associated with the device
1347910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1348910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Notes: the contents of @class_info.desc are not stable and should only be
1349910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        treated as informational.
1350910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1351910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
1352910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1353910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'PciDeviceInfo',
1354910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {'bus': 'int', 'slot': 'int', 'function': 'int',
1355910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner           'class_info': {'*desc': 'str', 'class': 'int'},
1356910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner           'id': {'device': 'int', 'vendor': 'int'},
1357910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner           '*irq': 'int', 'qdev_id': 'str', '*pci_bridge': 'PciBridgeInfo',
1358910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner           'regions': ['PciMemoryRegion']} }
1359910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1360910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1361910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @PciInfo:
1362910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1363910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Information about a PCI bus
1364910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1365910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @bus: the bus index
1366910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1367910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @devices: a list of devices on this bus
1368910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1369910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
1370910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1371910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'PciInfo', 'data': {'bus': 'int', 'devices': ['PciDeviceInfo']} }
1372910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1373910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1374910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @query-pci:
1375910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1376910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Return information about the PCI bus topology of the guest.
1377910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1378910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: a list of @PciInfo for each PCI bus
1379910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1380910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
1381910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1382910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'query-pci', 'returns': ['PciInfo'] }
1383910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1384910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1385910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @BlockdevOnError:
1386910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1387910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# An enumeration of possible behaviors for errors on I/O operations.
1388910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# The exact meaning depends on whether the I/O was initiated by a guest
1389910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# or by a block job
1390910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1391910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @report: for guest operations, report the error to the guest;
1392910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          for jobs, cancel the job
1393910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1394910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @ignore: ignore the error, only report a QMP event (BLOCK_IO_ERROR
1395910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          or BLOCK_JOB_ERROR)
1396910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1397910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @enospc: same as @stop on ENOSPC, same as @report otherwise.
1398910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1399910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @stop: for guest operations, stop the virtual machine;
1400910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        for jobs, pause the job
1401910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1402910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.3
1403910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1404910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'enum': 'BlockdevOnError',
1405910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': ['report', 'ignore', 'enospc', 'stop'] }
1406910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1407910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1408910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @MirrorSyncMode:
1409910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1410910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# An enumeration of possible behaviors for the initial synchronization
1411910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# phase of storage mirroring.
1412910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1413910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @top: copies data in the topmost image to the destination
1414910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1415910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @full: copies data from all images to the destination
1416910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1417910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @none: only copy data written from now on
1418910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1419910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.3
1420910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1421910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'enum': 'MirrorSyncMode',
1422910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': ['top', 'full', 'none'] }
1423910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1424910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1425910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @BlockJobType:
1426910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1427910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Type of a block job.
1428910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1429910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @commit: block commit job type, see "block-commit"
1430910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1431910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @stream: block stream job type, see "block-stream"
1432910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1433910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @mirror: drive mirror job type, see "drive-mirror"
1434910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1435910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @backup: drive backup job type, see "drive-backup"
1436910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1437910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.7
1438910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1439910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'enum': 'BlockJobType',
1440910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': ['commit', 'stream', 'mirror', 'backup'] }
1441910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1442910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1443910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @BlockJobInfo:
1444910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1445910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Information about a long-running block device operation.
1446910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1447910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @type: the job type ('stream' for image streaming)
1448910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1449910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @device: the block device name
1450910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1451910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @len: the maximum progress value
1452910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1453910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @busy: false if the job is known to be in a quiescent state, with
1454910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        no pending I/O.  Since 1.3.
1455910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1456910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @paused: whether the job is paused or, if @busy is true, will
1457910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          pause itself as soon as possible.  Since 1.3.
1458910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1459910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @offset: the current progress value
1460910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1461910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @speed: the rate limit, bytes per second
1462910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1463910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @io-status: the status of the job (since 1.3)
1464910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1465910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.1
1466910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1467910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'BlockJobInfo',
1468910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {'type': 'str', 'device': 'str', 'len': 'int',
1469910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner           'offset': 'int', 'busy': 'bool', 'paused': 'bool', 'speed': 'int',
1470910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner           'io-status': 'BlockDeviceIoStatus'} }
1471910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1472910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1473910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @query-block-jobs:
1474910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1475910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Return information about long-running block device operations.
1476910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1477910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: a list of @BlockJobInfo for each active block job
1478910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1479910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.1
1480910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1481910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'query-block-jobs', 'returns': ['BlockJobInfo'] }
1482910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1483910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1484910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @quit:
1485910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1486910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# This command will cause the QEMU process to exit gracefully.  While every
1487910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# attempt is made to send the QMP response before terminating, this is not
1488910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# guaranteed.  When using this interface, a premature EOF would not be
1489910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# unexpected.
1490910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1491910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
1492910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1493910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'quit' }
1494910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1495910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1496910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @stop:
1497910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1498910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Stop all guest VCPU execution.
1499910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1500910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since:  0.14.0
1501910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1502910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Notes:  This function will succeed even if the guest is already in the stopped
1503910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#         state.  In "inmigrate" state, it will ensure that the guest
1504910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#         remains paused once migration finishes, as if the -S option was
1505910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#         passed on the command line.
1506910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1507910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'stop' }
1508910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1509910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1510910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @system_reset:
1511910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1512910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Performs a hard reset of a guest.
1513910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1514910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
1515910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1516910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'system_reset' }
1517910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1518910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1519910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @system_powerdown:
1520910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1521910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Requests that a guest perform a powerdown operation.
1522910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1523910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
1524910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1525910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Notes: A guest may or may not respond to this command.  This command
1526910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        returning does not indicate that a guest has accepted the request or
1527910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        that it has shut down.  Many guests will respond to this command by
1528910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        prompting the user in some way.
1529910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1530910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'system_powerdown' }
1531910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1532910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1533910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @cpu:
1534910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1535910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# This command is a nop that is only provided for the purposes of compatibility.
1536910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1537910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
1538910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1539910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Notes: Do not use this command.
1540910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1541910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'cpu', 'data': {'index': 'int'} }
1542910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1543910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1544910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @cpu-add
1545910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1546910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Adds CPU with specified ID
1547910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1548910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @id: ID of CPU to be created, valid values [0..max_cpus)
1549910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1550910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: Nothing on success
1551910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1552910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since 1.5
1553910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1554910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'cpu-add', 'data': {'id': 'int'} }
1555910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1556910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1557910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @memsave:
1558910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1559910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Save a portion of guest memory to a file.
1560910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1561910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @val: the virtual address of the guest to start from
1562910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1563910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @size: the size of memory region to save
1564910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1565910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @filename: the file to save the memory to as binary data
1566910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1567910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @cpu-index: #optional the index of the virtual CPU to use for translating the
1568910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                       virtual address (defaults to CPU 0)
1569910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1570910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: Nothing on success
1571910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1572910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
1573910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1574910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Notes: Errors were not reliably returned until 1.1
1575910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1576910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'memsave',
1577910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {'val': 'int', 'size': 'int', 'filename': 'str', '*cpu-index': 'int'} }
1578910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1579910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1580910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @pmemsave:
1581910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1582910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Save a portion of guest physical memory to a file.
1583910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1584910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @val: the physical address of the guest to start from
1585910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1586910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @size: the size of memory region to save
1587910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1588910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @filename: the file to save the memory to as binary data
1589910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1590910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: Nothing on success
1591910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1592910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
1593910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1594910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Notes: Errors were not reliably returned until 1.1
1595910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1596910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'pmemsave',
1597910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {'val': 'int', 'size': 'int', 'filename': 'str'} }
1598910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1599910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1600910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @cont:
1601910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1602910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Resume guest VCPU execution.
1603910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1604910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since:  0.14.0
1605910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1606910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns:  If successful, nothing
1607910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#           If QEMU was started with an encrypted block device and a key has
1608910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#              not yet been set, DeviceEncrypted.
1609910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1610910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Notes:  This command will succeed if the guest is currently running.  It
1611910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#         will also succeed if the guest is in the "inmigrate" state; in
1612910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#         this case, the effect of the command is to make sure the guest
1613910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#         starts once migration finishes, removing the effect of the -S
1614910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#         command line option if it was passed.
1615910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1616910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'cont' }
1617910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1618910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1619910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @system_wakeup:
1620910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1621910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Wakeup guest from suspend.  Does nothing in case the guest isn't suspended.
1622910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1623910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since:  1.1
1624910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1625910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns:  nothing.
1626910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1627910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'system_wakeup' }
1628910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1629910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1630910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @inject-nmi:
1631910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1632910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Injects an Non-Maskable Interrupt into all guest's VCPUs.
1633910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1634910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns:  If successful, nothing
1635910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1636910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since:  0.14.0
1637910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1638910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Notes: Only x86 Virtual Machines support this command.
1639910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1640910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'inject-nmi' }
1641910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1642910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1643910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @set_link:
1644910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1645910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Sets the link status of a virtual network adapter.
1646910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1647910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @name: the device name of the virtual network adapter
1648910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1649910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @up: true to set the link status to be up
1650910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1651910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: Nothing on success
1652910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          If @name is not a valid network device, DeviceNotFound
1653910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1654910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
1655910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1656910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Notes: Not all network adapters support setting link status.  This command
1657910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        will succeed even if the network adapter does not support link status
1658910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        notification.
1659910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1660910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'set_link', 'data': {'name': 'str', 'up': 'bool'} }
1661910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1662910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1663910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @block_passwd:
1664910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1665910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# This command sets the password of a block device that has not been open
1666910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# with a password and requires one.
1667910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1668910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# The two cases where this can happen are a block device is created through
1669910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# QEMU's initial command line or a block device is changed through the legacy
1670910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @change interface.
1671910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1672910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# In the event that the block device is created through the initial command
1673910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# line, the VM will start in the stopped state regardless of whether '-S' is
1674910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# used.  The intention is for a management tool to query the block devices to
1675910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# determine which ones are encrypted, set the passwords with this command, and
1676910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# then start the guest with the @cont command.
1677910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1678910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @device:   the name of the device to set the password on
1679910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1680910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @password: the password to use for the device
1681910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1682910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: nothing on success
1683910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          If @device is not a valid block device, DeviceNotFound
1684910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          If @device is not encrypted, DeviceNotEncrypted
1685910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1686910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Notes:  Not all block formats support encryption and some that do are not
1687910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#         able to validate that a password is correct.  Disk corruption may
1688910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#         occur if an invalid password is specified.
1689910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1690910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
1691910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1692910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'block_passwd', 'data': {'device': 'str', 'password': 'str'} }
1693910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1694910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1695910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @balloon:
1696910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1697910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Request the balloon driver to change its balloon size.
1698910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1699910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @value: the target size of the balloon in bytes
1700910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1701910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: Nothing on success
1702910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          If the balloon driver is enabled but not functional because the KVM
1703910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#            kernel module cannot support it, KvmMissingCap
1704910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          If no balloon device is present, DeviceNotActive
1705910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1706910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Notes: This command just issues a request to the guest.  When it returns,
1707910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        the balloon size may not have changed.  A guest can change the balloon
1708910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        size independent of this command.
1709910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1710910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
1711910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1712910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'balloon', 'data': {'value': 'int'} }
1713910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1714910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1715910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @block_resize
1716910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1717910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Resize a block image while a guest is running.
1718910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1719910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @device:  the name of the device to get the image resized
1720910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1721910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @size:  new image size in bytes
1722910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1723910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: nothing on success
1724910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          If @device is not a valid block device, DeviceNotFound
1725910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1726910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
1727910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1728910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'block_resize', 'data': { 'device': 'str', 'size': 'int' }}
1729910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1730910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1731910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @NewImageMode
1732910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1733910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# An enumeration that tells QEMU how to set the backing file path in
1734910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# a new image file.
1735910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1736910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @existing: QEMU should look for an existing image file.
1737910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1738910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @absolute-paths: QEMU should create a new image with absolute paths
1739910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# for the backing file. If there is no backing file available, the new
1740910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# image will not be backed either.
1741910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1742910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.1
1743910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1744910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'enum': 'NewImageMode',
1745910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': [ 'existing', 'absolute-paths' ] }
1746910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1747910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1748910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @BlockdevSnapshot
1749910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1750910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @device:  the name of the device to generate the snapshot from.
1751910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1752910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @snapshot-file: the target of the new image. A new file will be created.
1753910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1754910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @format: #optional the format of the snapshot image, default is 'qcow2'.
1755910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1756910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @mode: #optional whether and how QEMU should create a new image, default is
1757910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        'absolute-paths'.
1758910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1759910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'BlockdevSnapshot',
1760910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': { 'device': 'str', 'snapshot-file': 'str', '*format': 'str',
1761910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            '*mode': 'NewImageMode' } }
1762910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1763910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1764910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @BlockdevSnapshotInternal
1765910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1766910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @device: the name of the device to generate the snapshot from
1767910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1768910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @name: the name of the internal snapshot to be created
1769910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1770910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Notes: In transaction, if @name is empty, or any snapshot matching @name
1771910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        exists, the operation will fail. Only some image formats support it,
1772910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        for example, qcow2, rbd, and sheepdog.
1773910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1774910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.7
1775910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1776910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'BlockdevSnapshotInternal',
1777910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': { 'device': 'str', 'name': 'str' } }
1778910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1779910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1780910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @DriveBackup
1781910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1782910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @device: the name of the device which should be copied.
1783910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1784910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @target: the target of the new image. If the file exists, or if it
1785910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          is a device, the existing file/device will be used as the new
1786910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          destination.  If it does not exist, a new file will be created.
1787910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1788910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @format: #optional the format of the new destination, default is to
1789910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          probe if @mode is 'existing', else the format of the source
1790910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1791910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @sync: what parts of the disk image should be copied to the destination
1792910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        (all the disk, only the sectors allocated in the topmost image, or
1793910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        only new I/O).
1794910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1795910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @mode: #optional whether and how QEMU should create a new image, default is
1796910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        'absolute-paths'.
1797910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1798910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @speed: #optional the maximum speed, in bytes per second
1799910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1800910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @on-source-error: #optional the action to take on an error on the source,
1801910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                   default 'report'.  'stop' and 'enospc' can only be used
1802910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                   if the block device supports io-status (see BlockInfo).
1803910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1804910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @on-target-error: #optional the action to take on an error on the target,
1805910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                   default 'report' (no limitations, since this applies to
1806910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                   a different block device than @device).
1807910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1808910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Note that @on-source-error and @on-target-error only affect background I/O.
1809910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# If an error occurs during a guest write request, the device's rerror/werror
1810910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# actions will be used.
1811910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1812910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.6
1813910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1814910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'DriveBackup',
1815910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': { 'device': 'str', 'target': 'str', '*format': 'str',
1816910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            'sync': 'MirrorSyncMode', '*mode': 'NewImageMode',
1817910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            '*speed': 'int',
1818910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            '*on-source-error': 'BlockdevOnError',
1819910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            '*on-target-error': 'BlockdevOnError' } }
1820910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1821910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1822910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @Abort
1823910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1824910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# This action can be used to test transaction failure.
1825910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1826910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.6
1827910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner###
1828910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'Abort',
1829910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': { } }
1830910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1831910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1832910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @TransactionAction
1833910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1834910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# A discriminated record of operations that can be performed with
1835910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @transaction.
1836910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1837910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'union': 'TransactionAction',
1838910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {
1839910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner       'blockdev-snapshot-sync': 'BlockdevSnapshot',
1840910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner       'drive-backup': 'DriveBackup',
1841910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner       'abort': 'Abort',
1842910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner       'blockdev-snapshot-internal-sync': 'BlockdevSnapshotInternal'
1843910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner   } }
1844910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1845910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1846910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @transaction
1847910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1848910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Executes a number of transactionable QMP commands atomically. If any
1849910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# operation fails, then the entire set of actions will be abandoned and the
1850910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# appropriate error returned.
1851910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1852910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#  List of:
1853910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#  @TransactionAction: information needed for the respective operation
1854910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1855910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: nothing on success
1856910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          Errors depend on the operations of the transaction
1857910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1858910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Note: The transaction aborts on the first failure.  Therefore, there will be
1859910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# information on only one failed operation returned in an error condition, and
1860910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# subsequent actions will not have been attempted.
1861910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1862910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since 1.1
1863910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1864910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'transaction',
1865910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': { 'actions': [ 'TransactionAction' ] } }
1866910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1867910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1868910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @blockdev-snapshot-sync
1869910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1870910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Generates a synchronous snapshot of a block device.
1871910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1872910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# For the arguments, see the documentation of BlockdevSnapshot.
1873910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1874910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: nothing on success
1875910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          If @device is not a valid block device, DeviceNotFound
1876910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1877910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since 0.14.0
1878910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1879910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'blockdev-snapshot-sync',
1880910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': 'BlockdevSnapshot' }
1881910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1882910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1883910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @blockdev-snapshot-internal-sync
1884910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1885910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Synchronously take an internal snapshot of a block device, when the format
1886910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# of the image used supports it.
1887910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1888910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# For the arguments, see the documentation of BlockdevSnapshotInternal.
1889910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1890910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: nothing on success
1891910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          If @device is not a valid block device, DeviceNotFound
1892910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          If any snapshot matching @name exists, or @name is empty,
1893910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          GenericError
1894910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          If the format of the image used does not support it,
1895910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          BlockFormatFeatureNotSupported
1896910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1897910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since 1.7
1898910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1899910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'blockdev-snapshot-internal-sync',
1900910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': 'BlockdevSnapshotInternal' }
1901910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1902910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1903910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @blockdev-snapshot-delete-internal-sync
1904910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1905910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Synchronously delete an internal snapshot of a block device, when the format
1906910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# of the image used support it. The snapshot is identified by name or id or
1907910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# both. One of the name or id is required. Return SnapshotInfo for the
1908910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# successfully deleted snapshot.
1909910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1910910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @device: the name of the device to delete the snapshot from
1911910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1912910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @id: optional the snapshot's ID to be deleted
1913910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1914910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @name: optional the snapshot's name to be deleted
1915910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1916910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: SnapshotInfo on success
1917910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          If @device is not a valid block device, DeviceNotFound
1918910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          If snapshot not found, GenericError
1919910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          If the format of the image used does not support it,
1920910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          BlockFormatFeatureNotSupported
1921910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          If @id and @name are both not specified, GenericError
1922910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1923910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since 1.7
1924910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1925910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'blockdev-snapshot-delete-internal-sync',
1926910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': { 'device': 'str', '*id': 'str', '*name': 'str'},
1927910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'returns': 'SnapshotInfo' }
1928910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1929910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1930910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @human-monitor-command:
1931910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1932910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Execute a command on the human monitor and return the output.
1933910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1934910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @command-line: the command to execute in the human monitor
1935910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1936910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @cpu-index: #optional The CPU to use for commands that require an implicit CPU
1937910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1938910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: the output of the command as a string
1939910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1940910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
1941910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1942910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Notes: This command only exists as a stop-gap.  Its use is highly
1943910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        discouraged.  The semantics of this command are not guaranteed.
1944910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1945910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        Known limitations:
1946910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1947910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        o This command is stateless, this means that commands that depend
1948910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          on state information (such as getfd) might not work
1949910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1950910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#       o Commands that prompt the user for data (eg. 'cont' when the block
1951910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#         device is encrypted) don't currently work
1952910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1953910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'human-monitor-command',
1954910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {'command-line': 'str', '*cpu-index': 'int'},
1955910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'returns': 'str' }
1956910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1957910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1958910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @block-commit
1959910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1960910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Live commit of data from overlay image nodes into backing nodes - i.e.,
1961910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# writes data between 'top' and 'base' into 'base'.
1962910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1963910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @device:  the name of the device
1964910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1965910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @base:   #optional The file name of the backing image to write data into.
1966910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                    If not specified, this is the deepest backing image
1967910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1968910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @top:              The file name of the backing image within the image chain,
1969910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                    which contains the topmost data to be committed down.
1970910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                    Note, the active layer as 'top' is currently unsupported.
1971910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1972910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                    If top == base, that is an error.
1973910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1974910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1975910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @speed:  #optional the maximum speed, in bytes per second
1976910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1977910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: Nothing on success
1978910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          If commit or stream is already active on this device, DeviceInUse
1979910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          If @device does not exist, DeviceNotFound
1980910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          If image commit is not supported by this device, NotSupported
1981910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          If @base or @top is invalid, a generic error is returned
1982910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          If @top is the active layer, or omitted, a generic error is returned
1983910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          If @speed is invalid, InvalidParameter
1984910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1985910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.3
1986910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1987910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1988910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'block-commit',
1989910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': { 'device': 'str', '*base': 'str', 'top': 'str',
1990910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            '*speed': 'int' } }
1991910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
1992910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
1993910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @drive-backup
1994910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
1995910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Start a point-in-time copy of a block device to a new destination.  The
1996910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# status of ongoing drive-backup operations can be checked with
1997910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# query-block-jobs where the BlockJobInfo.type field has the value 'backup'.
1998910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# The operation can be stopped before it has completed using the
1999910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# block-job-cancel command.
2000910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2001910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# For the arguments, see the documentation of DriveBackup.
2002910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2003910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: nothing on success
2004910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          If @device is not a valid block device, DeviceNotFound
2005910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2006910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since 1.6
2007910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2008910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'drive-backup', 'data': 'DriveBackup' }
2009910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2010910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2011910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @drive-mirror
2012910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2013910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Start mirroring a block device's writes to a new destination.
2014910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2015910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @device:  the name of the device whose writes should be mirrored.
2016910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2017910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @target: the target of the new image. If the file exists, or if it
2018910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          is a device, the existing file/device will be used as the new
2019910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          destination.  If it does not exist, a new file will be created.
2020910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2021910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @format: #optional the format of the new destination, default is to
2022910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          probe if @mode is 'existing', else the format of the source
2023910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2024910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @mode: #optional whether and how QEMU should create a new image, default is
2025910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        'absolute-paths'.
2026910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2027910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @speed:  #optional the maximum speed, in bytes per second
2028910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2029910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @sync: what parts of the disk image should be copied to the destination
2030910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        (all the disk, only the sectors allocated in the topmost image, or
2031910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        only new I/O).
2032910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2033910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @granularity: #optional granularity of the dirty bitmap, default is 64K
2034910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#               if the image format doesn't have clusters, 4K if the clusters
2035910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#               are smaller than that, else the cluster size.  Must be a
2036910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#               power of 2 between 512 and 64M (since 1.4).
2037910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2038910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @buf-size: #optional maximum amount of data in flight from source to
2039910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#            target (since 1.4).
2040910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2041910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @on-source-error: #optional the action to take on an error on the source,
2042910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                   default 'report'.  'stop' and 'enospc' can only be used
2043910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                   if the block device supports io-status (see BlockInfo).
2044910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2045910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @on-target-error: #optional the action to take on an error on the target,
2046910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                   default 'report' (no limitations, since this applies to
2047910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                   a different block device than @device).
2048910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2049910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: nothing on success
2050910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          If @device is not a valid block device, DeviceNotFound
2051910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2052910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since 1.3
2053910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2054910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'drive-mirror',
2055910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': { 'device': 'str', 'target': 'str', '*format': 'str',
2056910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            'sync': 'MirrorSyncMode', '*mode': 'NewImageMode',
2057910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            '*speed': 'int', '*granularity': 'uint32',
2058910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            '*buf-size': 'int', '*on-source-error': 'BlockdevOnError',
2059910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            '*on-target-error': 'BlockdevOnError' } }
2060910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2061910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2062910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @migrate_cancel
2063910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2064910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Cancel the current executing migration process.
2065910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2066910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: nothing on success
2067910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2068910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Notes: This command succeeds even if there is no migration process running.
2069910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2070910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
2071910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2072910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'migrate_cancel' }
2073910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2074910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2075910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @migrate_set_downtime
2076910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2077910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Set maximum tolerated downtime for migration.
2078910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2079910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @value: maximum downtime in seconds
2080910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2081910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: nothing on success
2082910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2083910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
2084910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2085910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'migrate_set_downtime', 'data': {'value': 'number'} }
2086910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2087910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2088910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @migrate_set_speed
2089910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2090910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Set maximum speed for migration.
2091910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2092910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @value: maximum speed in bytes.
2093910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2094910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: nothing on success
2095910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2096910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Notes: A value lesser than zero will be automatically round up to zero.
2097910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2098910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
2099910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2100910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'migrate_set_speed', 'data': {'value': 'int'} }
2101910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2102910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2103910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @migrate-set-cache-size
2104910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2105910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Set XBZRLE cache size
2106910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2107910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @value: cache size in bytes
2108910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2109910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# The size will be rounded down to the nearest power of 2.
2110910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# The cache size can be modified before and during ongoing migration
2111910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2112910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: nothing on success
2113910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2114910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.2
2115910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2116910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'migrate-set-cache-size', 'data': {'value': 'int'} }
2117910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2118910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2119910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @query-migrate-cache-size
2120910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2121910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# query XBZRLE cache size
2122910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2123910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: XBZRLE cache size in bytes
2124910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2125910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.2
2126910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2127910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'query-migrate-cache-size', 'returns': 'int' }
2128910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2129910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2130910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @ObjectPropertyInfo:
2131910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2132910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @name: the name of the property
2133910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2134910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @type: the type of the property.  This will typically come in one of four
2135910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        forms:
2136910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2137910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        1) A primitive type such as 'u8', 'u16', 'bool', 'str', or 'double'.
2138910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#           These types are mapped to the appropriate JSON type.
2139910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2140910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        2) A legacy type in the form 'legacy<subtype>' where subtype is the
2141910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#           legacy qdev typename.  These types are always treated as strings.
2142910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2143910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        3) A child type in the form 'child<subtype>' where subtype is a qdev
2144910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#           device type name.  Child properties create the composition tree.
2145910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2146910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        4) A link type in the form 'link<subtype>' where subtype is a qdev
2147910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#           device type name.  Link properties form the device model graph.
2148910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2149910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.2
2150910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2151910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'ObjectPropertyInfo',
2152910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': { 'name': 'str', 'type': 'str' } }
2153910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2154910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2155910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @qom-list:
2156910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2157910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# This command will list any properties of a object given a path in the object
2158910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# model.
2159910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2160910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @path: the path within the object model.  See @qom-get for a description of
2161910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        this parameter.
2162910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2163910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: a list of @ObjectPropertyInfo that describe the properties of the
2164910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          object.
2165910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2166910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.2
2167910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2168910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'qom-list',
2169910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': { 'path': 'str' },
2170910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'returns': [ 'ObjectPropertyInfo' ] }
2171910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2172910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2173910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @qom-get:
2174910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2175910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# This command will get a property from a object model path and return the
2176910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# value.
2177910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2178910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @path: The path within the object model.  There are two forms of supported
2179910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        paths--absolute and partial paths.
2180910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2181910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        Absolute paths are derived from the root object and can follow child<>
2182910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        or link<> properties.  Since they can follow link<> properties, they
2183910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        can be arbitrarily long.  Absolute paths look like absolute filenames
2184910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        and are prefixed  with a leading slash.
2185910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2186910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        Partial paths look like relative filenames.  They do not begin
2187910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        with a prefix.  The matching rules for partial paths are subtle but
2188910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        designed to make specifying objects easy.  At each level of the
2189910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        composition tree, the partial path is matched as an absolute path.
2190910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        The first match is not returned.  At least two matches are searched
2191910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        for.  A successful result is only returned if only one match is
2192910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        found.  If more than one match is found, a flag is return to
2193910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        indicate that the match was ambiguous.
2194910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2195910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @property: The property name to read
2196910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2197910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: The property value.  The type depends on the property type.  legacy<>
2198910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          properties are returned as #str.  child<> and link<> properties are
2199910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          returns as #str pathnames.  All integer property types (u8, u16, etc)
2200910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          are returned as #int.
2201910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2202910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.2
2203910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2204910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'qom-get',
2205910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': { 'path': 'str', 'property': 'str' },
2206910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'returns': 'visitor',
2207910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'gen': 'no' }
2208910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2209910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2210910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @qom-set:
2211910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2212910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# This command will set a property from a object model path.
2213910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2214910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @path: see @qom-get for a description of this parameter
2215910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2216910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @property: the property name to set
2217910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2218910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @value: a value who's type is appropriate for the property type.  See @qom-get
2219910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#         for a description of type mapping.
2220910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2221910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.2
2222910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2223910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'qom-set',
2224910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': { 'path': 'str', 'property': 'str', 'value': 'visitor' },
2225910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'gen': 'no' }
2226910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2227910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2228910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @set_password:
2229910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2230910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Sets the password of a remote display session.
2231910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2232910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @protocol: `vnc' to modify the VNC server password
2233910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#            `spice' to modify the Spice server password
2234910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2235910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @password: the new password
2236910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2237910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @connected: #optional how to handle existing clients when changing the
2238910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                       password.  If nothing is specified, defaults to `keep'
2239910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                       `fail' to fail the command if clients are connected
2240910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                       `disconnect' to disconnect existing clients
2241910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                       `keep' to maintain existing clients
2242910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2243910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: Nothing on success
2244910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          If Spice is not enabled, DeviceNotFound
2245910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2246910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
2247910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2248910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'set_password',
2249910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {'protocol': 'str', 'password': 'str', '*connected': 'str'} }
2250910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2251910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2252910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @expire_password:
2253910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2254910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Expire the password of a remote display server.
2255910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2256910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @protocol: the name of the remote display protocol `vnc' or `spice'
2257910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2258910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @time: when to expire the password.
2259910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        `now' to expire the password immediately
2260910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        `never' to cancel password expiration
2261910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        `+INT' where INT is the number of seconds from now (integer)
2262910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        `INT' where INT is the absolute time in seconds
2263910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2264910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: Nothing on success
2265910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          If @protocol is `spice' and Spice is not active, DeviceNotFound
2266910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2267910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
2268910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2269910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Notes: Time is relative to the server and currently there is no way to
2270910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        coordinate server time with client time.  It is not recommended to
2271910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        use the absolute time version of the @time parameter unless you're
2272910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        sure you are on the same machine as the QEMU instance.
2273910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2274910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'expire_password', 'data': {'protocol': 'str', 'time': 'str'} }
2275910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2276910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2277910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @eject:
2278910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2279910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Ejects a device from a removable drive.
2280910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2281910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @device:  The name of the device
2282910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2283910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @force:   @optional If true, eject regardless of whether the drive is locked.
2284910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#           If not specified, the default value is false.
2285910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2286910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns:  Nothing on success
2287910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#           If @device is not a valid block device, DeviceNotFound
2288910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2289910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Notes:    Ejecting a device will no media results in success
2290910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2291910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
2292910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2293910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'eject', 'data': {'device': 'str', '*force': 'bool'} }
2294910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2295910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2296910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @change-vnc-password:
2297910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2298910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Change the VNC server password.
2299910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2300910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @target:  the new password to use with VNC authentication
2301910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2302910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.1
2303910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2304910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Notes:  An empty password in this command will set the password to the empty
2305910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#         string.  Existing clients are unaffected by executing this command.
2306910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2307910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'change-vnc-password', 'data': {'password': 'str'} }
2308910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2309910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2310910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @change:
2311910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2312910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# This command is multiple commands multiplexed together.
2313910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2314910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @device: This is normally the name of a block device but it may also be 'vnc'.
2315910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          when it's 'vnc', then sub command depends on @target
2316910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2317910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @target: If @device is a block device, then this is the new filename.
2318910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          If @device is 'vnc', then if the value 'password' selects the vnc
2319910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          change password command.   Otherwise, this specifies a new server URI
2320910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          address to listen to for VNC connections.
2321910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2322910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @arg:    If @device is a block device, then this is an optional format to open
2323910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          the device with.
2324910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          If @device is 'vnc' and @target is 'password', this is the new VNC
2325910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          password to set.  If this argument is an empty string, then no future
2326910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          logins will be allowed.
2327910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2328910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: Nothing on success.
2329910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          If @device is not a valid block device, DeviceNotFound
2330910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          If the new block device is encrypted, DeviceEncrypted.  Note that
2331910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          if this error is returned, the device has been opened successfully
2332910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          and an additional call to @block_passwd is required to set the
2333910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          device's password.  The behavior of reads and writes to the block
2334910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          device between when these calls are executed is undefined.
2335910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2336910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Notes:  It is strongly recommended that this interface is not used especially
2337910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#         for changing block devices.
2338910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2339910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
2340910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2341910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'change',
2342910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {'device': 'str', 'target': 'str', '*arg': 'str'} }
2343910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2344910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2345910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @block_set_io_throttle:
2346910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2347910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Change I/O throttle limits for a block drive.
2348910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2349910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @device: The name of the device
2350910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2351910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @bps: total throughput limit in bytes per second
2352910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2353910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @bps_rd: read throughput limit in bytes per second
2354910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2355910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @bps_wr: write throughput limit in bytes per second
2356910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2357910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @iops: total I/O operations per second
2358910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2359910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @ops_rd: read I/O operations per second
2360910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2361910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @iops_wr: write I/O operations per second
2362910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2363910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @bps_max: #optional total max in bytes (Since 1.7)
2364910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2365910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @bps_rd_max: #optional read max in bytes (Since 1.7)
2366910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2367910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @bps_wr_max: #optional write max in bytes (Since 1.7)
2368910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2369910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @iops_max: #optional total I/O operations max (Since 1.7)
2370910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2371910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @iops_rd_max: #optional read I/O operations max (Since 1.7)
2372910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2373910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @iops_wr_max: #optional write I/O operations max (Since 1.7)
2374910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2375910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @iops_size: #optional an I/O size in bytes (Since 1.7)
2376910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2377910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: Nothing on success
2378910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          If @device is not a valid block device, DeviceNotFound
2379910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2380910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.1
2381910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2382910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'block_set_io_throttle',
2383910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': { 'device': 'str', 'bps': 'int', 'bps_rd': 'int', 'bps_wr': 'int',
2384910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            'iops': 'int', 'iops_rd': 'int', 'iops_wr': 'int',
2385910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            '*bps_max': 'int', '*bps_rd_max': 'int',
2386910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            '*bps_wr_max': 'int', '*iops_max': 'int',
2387910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            '*iops_rd_max': 'int', '*iops_wr_max': 'int',
2388910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            '*iops_size': 'int' } }
2389910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2390910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2391910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @block-stream:
2392910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2393910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Copy data from a backing file into a block device.
2394910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2395910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# The block streaming operation is performed in the background until the entire
2396910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# backing file has been copied.  This command returns immediately once streaming
2397910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# has started.  The status of ongoing block streaming operations can be checked
2398910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# with query-block-jobs.  The operation can be stopped before it has completed
2399910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# using the block-job-cancel command.
2400910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2401910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# If a base file is specified then sectors are not copied from that base file and
2402910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# its backing chain.  When streaming completes the image file will have the base
2403910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# file as its backing file.  This can be used to stream a subset of the backing
2404910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# file chain instead of flattening the entire image.
2405910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2406910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# On successful completion the image file is updated to drop the backing file
2407910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# and the BLOCK_JOB_COMPLETED event is emitted.
2408910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2409910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @device: the device name
2410910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2411910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @base:   #optional the common backing file name
2412910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2413910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @speed:  #optional the maximum speed, in bytes per second
2414910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2415910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @on-error: #optional the action to take on an error (default report).
2416910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#            'stop' and 'enospc' can only be used if the block device
2417910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#            supports io-status (see BlockInfo).  Since 1.3.
2418910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2419910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: Nothing on success
2420910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          If @device does not exist, DeviceNotFound
2421910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2422910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.1
2423910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2424910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'block-stream',
2425910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': { 'device': 'str', '*base': 'str', '*speed': 'int',
2426910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            '*on-error': 'BlockdevOnError' } }
2427910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2428910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2429910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @block-job-set-speed:
2430910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2431910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Set maximum speed for a background block operation.
2432910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2433910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# This command can only be issued when there is an active block job.
2434910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2435910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Throttling can be disabled by setting the speed to 0.
2436910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2437910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @device: the device name
2438910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2439910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @speed:  the maximum speed, in bytes per second, or 0 for unlimited.
2440910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          Defaults to 0.
2441910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2442910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: Nothing on success
2443910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          If no background operation is active on this device, DeviceNotActive
2444910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2445910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.1
2446910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2447910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'block-job-set-speed',
2448910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': { 'device': 'str', 'speed': 'int' } }
2449910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2450910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2451910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @block-job-cancel:
2452910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2453910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Stop an active background block operation.
2454910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2455910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# This command returns immediately after marking the active background block
2456910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# operation for cancellation.  It is an error to call this command if no
2457910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# operation is in progress.
2458910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2459910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# The operation will cancel as soon as possible and then emit the
2460910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# BLOCK_JOB_CANCELLED event.  Before that happens the job is still visible when
2461910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# enumerated using query-block-jobs.
2462910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2463910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# For streaming, the image file retains its backing file unless the streaming
2464910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# operation happens to complete just as it is being cancelled.  A new streaming
2465910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# operation can be started at a later time to finish copying all data from the
2466910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# backing file.
2467910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2468910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @device: the device name
2469910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2470910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @force: #optional whether to allow cancellation of a paused job (default
2471910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#         false).  Since 1.3.
2472910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2473910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: Nothing on success
2474910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          If no background operation is active on this device, DeviceNotActive
2475910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2476910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.1
2477910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2478910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'block-job-cancel', 'data': { 'device': 'str', '*force': 'bool' } }
2479910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2480910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2481910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @block-job-pause:
2482910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2483910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Pause an active background block operation.
2484910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2485910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# This command returns immediately after marking the active background block
2486910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# operation for pausing.  It is an error to call this command if no
2487910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# operation is in progress.  Pausing an already paused job has no cumulative
2488910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# effect; a single block-job-resume command will resume the job.
2489910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2490910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# The operation will pause as soon as possible.  No event is emitted when
2491910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# the operation is actually paused.  Cancelling a paused job automatically
2492910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# resumes it.
2493910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2494910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @device: the device name
2495910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2496910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: Nothing on success
2497910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          If no background operation is active on this device, DeviceNotActive
2498910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2499910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.3
2500910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2501910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'block-job-pause', 'data': { 'device': 'str' } }
2502910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2503910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2504910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @block-job-resume:
2505910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2506910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Resume an active background block operation.
2507910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2508910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# This command returns immediately after resuming a paused background block
2509910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# operation.  It is an error to call this command if no operation is in
2510910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# progress.  Resuming an already running job is not an error.
2511910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2512910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# This command also clears the error status of the job.
2513910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2514910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @device: the device name
2515910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2516910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: Nothing on success
2517910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          If no background operation is active on this device, DeviceNotActive
2518910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2519910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.3
2520910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2521910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'block-job-resume', 'data': { 'device': 'str' } }
2522910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2523910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2524910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @block-job-complete:
2525910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2526910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Manually trigger completion of an active background block operation.  This
2527910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# is supported for drive mirroring, where it also switches the device to
2528910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# write to the target path only.  The ability to complete is signaled with
2529910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# a BLOCK_JOB_READY event.
2530910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2531910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# This command completes an active background block operation synchronously.
2532910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# The ordering of this command's return with the BLOCK_JOB_COMPLETED event
2533910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# is not defined.  Note that if an I/O error occurs during the processing of
2534910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# this command: 1) the command itself will fail; 2) the error will be processed
2535910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# according to the rerror/werror arguments that were specified when starting
2536910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# the operation.
2537910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2538910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# A cancelled or paused job cannot be completed.
2539910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2540910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @device: the device name
2541910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2542910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: Nothing on success
2543910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          If no background operation is active on this device, DeviceNotActive
2544910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2545910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.3
2546910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2547910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'block-job-complete', 'data': { 'device': 'str' } }
2548910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2549910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2550910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @ObjectTypeInfo:
2551910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2552910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# This structure describes a search result from @qom-list-types
2553910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2554910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @name: the type name found in the search
2555910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2556910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.1
2557910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2558910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Notes: This command is experimental and may change syntax in future releases.
2559910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2560910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'ObjectTypeInfo',
2561910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': { 'name': 'str' } }
2562910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2563910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2564910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @qom-list-types:
2565910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2566910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# This command will return a list of types given search parameters
2567910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2568910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @implements: if specified, only return types that implement this type name
2569910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2570910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @abstract: if true, include abstract types in the results
2571910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2572910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: a list of @ObjectTypeInfo or an empty list if no results are found
2573910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2574910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.1
2575910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2576910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'qom-list-types',
2577910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': { '*implements': 'str', '*abstract': 'bool' },
2578910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'returns': [ 'ObjectTypeInfo' ] }
2579910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2580910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2581910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @DevicePropertyInfo:
2582910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2583910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Information about device properties.
2584910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2585910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @name: the name of the property
2586910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @type: the typename of the property
2587910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2588910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.2
2589910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2590910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'DevicePropertyInfo',
2591910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': { 'name': 'str', 'type': 'str' } }
2592910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2593910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2594910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @device-list-properties:
2595910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2596910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# List properties associated with a device.
2597910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2598910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @typename: the type name of a device
2599910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2600910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: a list of DevicePropertyInfo describing a devices properties
2601910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2602910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.2
2603910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2604910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'device-list-properties',
2605910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': { 'typename': 'str'},
2606910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'returns': [ 'DevicePropertyInfo' ] }
2607910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2608910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2609910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @migrate
2610910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2611910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Migrates the current running guest to another Virtual Machine.
2612910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2613910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @uri: the Uniform Resource Identifier of the destination VM
2614910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2615910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @blk: #optional do block migration (full disk copy)
2616910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2617910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @inc: #optional incremental disk copy migration
2618910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2619910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @detach: this argument exists only for compatibility reasons and
2620910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          is ignored by QEMU
2621910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2622910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: nothing on success
2623910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2624910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
2625910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2626910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'migrate',
2627910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {'uri': 'str', '*blk': 'bool', '*inc': 'bool', '*detach': 'bool' } }
2628910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2629910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @xen-save-devices-state:
2630910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2631910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Save the state of all devices to file. The RAM and the block devices
2632910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# of the VM are not saved by this command.
2633910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2634910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @filename: the file to save the state of the devices to as binary
2635910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# data. See xen-save-devices-state.txt for a description of the binary
2636910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# format.
2637910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2638910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: Nothing on success
2639910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2640910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.1
2641910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2642910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'xen-save-devices-state', 'data': {'filename': 'str'} }
2643910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2644910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2645910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @xen-set-global-dirty-log
2646910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2647910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Enable or disable the global dirty log mode.
2648910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2649910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @enable: true to enable, false to disable.
2650910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2651910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: nothing
2652910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2653910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.3
2654910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2655910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'xen-set-global-dirty-log', 'data': { 'enable': 'bool' } }
2656910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2657910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2658910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @device_del:
2659910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2660910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Remove a device from a guest
2661910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2662910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @id: the name of the device
2663910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2664910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: Nothing on success
2665910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          If @id is not a valid device, DeviceNotFound
2666910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2667910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Notes: When this command completes, the device may not be removed from the
2668910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        guest.  Hot removal is an operation that requires guest cooperation.
2669910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        This command merely requests that the guest begin the hot removal
2670910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        process.  Completion of the device removal process is signaled with a
2671910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        DEVICE_DELETED event. Guest reset will automatically complete removal
2672910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        for all devices.
2673910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2674910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
2675910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2676910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'device_del', 'data': {'id': 'str'} }
2677910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2678910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2679910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @dump-guest-memory
2680910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2681910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Dump guest's memory to vmcore. It is a synchronous operation that can take
2682910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# very long depending on the amount of guest memory. This command is only
2683910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# supported on i386 and x86_64.
2684910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2685910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @paging: if true, do paging to get guest's memory mapping. This allows
2686910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          using gdb to process the core file.
2687910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2688910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          IMPORTANT: this option can make QEMU allocate several gigabytes
2689910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                     of RAM. This can happen for a large guest, or a
2690910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                     malicious guest pretending to be large.
2691910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2692910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          Also, paging=true has the following limitations:
2693910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2694910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#             1. The guest may be in a catastrophic state or can have corrupted
2695910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                memory, which cannot be trusted
2696910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#             2. The guest can be in real-mode even if paging is enabled. For
2697910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                example, the guest uses ACPI to sleep, and ACPI sleep state
2698910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                goes in real-mode
2699910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2700910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @protocol: the filename or file descriptor of the vmcore. The supported
2701910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#            protocols are:
2702910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2703910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#            1. file: the protocol starts with "file:", and the following
2704910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#               string is the file's path.
2705910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#            2. fd: the protocol starts with "fd:", and the following string
2706910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#               is the fd's name.
2707910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2708910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @begin: #optional if specified, the starting physical address.
2709910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2710910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @length: #optional if specified, the memory size, in bytes. If you don't
2711910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          want to dump all guest's memory, please specify the start @begin
2712910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          and @length
2713910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2714910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: nothing on success
2715910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2716910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.2
2717910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2718910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'dump-guest-memory',
2719910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': { 'paging': 'bool', 'protocol': 'str', '*begin': 'int',
2720910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            '*length': 'int' } }
2721910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2722910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2723910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @netdev_add:
2724910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2725910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Add a network backend.
2726910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2727910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @type: the type of network backend.  Current valid values are 'user', 'tap',
2728910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        'vde', 'socket', 'dump' and 'bridge'
2729910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2730910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @id: the name of the new network backend
2731910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2732910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @props: #optional a list of properties to be passed to the backend in
2733910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#         the format 'name=value', like 'ifname=tap0,script=no'
2734910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2735910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Notes: The semantics of @props is not well defined.  Future commands will be
2736910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        introduced that provide stronger typing for backend creation.
2737910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2738910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
2739910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2740910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: Nothing on success
2741910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          If @type is not a valid network backend, DeviceNotFound
2742910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2743910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'netdev_add',
2744910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {'type': 'str', 'id': 'str', '*props': '**'},
2745910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'gen': 'no' }
2746910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2747910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2748910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @netdev_del:
2749910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2750910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Remove a network backend.
2751910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2752910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @id: the name of the network backend to remove
2753910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2754910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: Nothing on success
2755910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          If @id is not a valid network backend, DeviceNotFound
2756910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2757910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
2758910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2759910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'netdev_del', 'data': {'id': 'str'} }
2760910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2761910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2762910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @NetdevNoneOptions
2763910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2764910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Use it alone to have zero network devices.
2765910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2766910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since 1.2
2767910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2768910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'NetdevNoneOptions',
2769910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': { } }
2770910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2771910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2772910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @NetLegacyNicOptions
2773910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2774910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Create a new Network Interface Card.
2775910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2776910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @netdev: #optional id of -netdev to connect to
2777910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2778910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @macaddr: #optional MAC address
2779910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2780910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @model: #optional device model (e1000, rtl8139, virtio etc.)
2781910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2782910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @addr: #optional PCI device address
2783910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2784910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @vectors: #optional number of MSI-x vectors, 0 to disable MSI-X
2785910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2786910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since 1.2
2787910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2788910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'NetLegacyNicOptions',
2789910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {
2790910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*netdev':  'str',
2791910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*macaddr': 'str',
2792910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*model':   'str',
2793910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*addr':    'str',
2794910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*vectors': 'uint32' } }
2795910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2796910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2797910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @String
2798910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2799910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# A fat type wrapping 'str', to be embedded in lists.
2800910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2801910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since 1.2
2802910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2803910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'String',
2804910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {
2805910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    'str': 'str' } }
2806910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2807910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2808910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @NetdevUserOptions
2809910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2810910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Use the user mode network stack which requires no administrator privilege to
2811910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# run.
2812910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2813910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @hostname: #optional client hostname reported by the builtin DHCP server
2814910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2815910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @restrict: #optional isolate the guest from the host
2816910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2817910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @ip: #optional legacy parameter, use net= instead
2818910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2819910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @net: #optional IP address and optional netmask
2820910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2821910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @host: #optional guest-visible address of the host
2822910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2823910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @tftp: #optional root directory of the built-in TFTP server
2824910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2825910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @bootfile: #optional BOOTP filename, for use with tftp=
2826910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2827910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @dhcpstart: #optional the first of the 16 IPs the built-in DHCP server can
2828910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#             assign
2829910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2830910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @dns: #optional guest-visible address of the virtual nameserver
2831910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2832910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @dnssearch: #optional list of DNS suffixes to search, passed as DHCP option
2833910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#             to the guest
2834910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2835910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @smb: #optional root directory of the built-in SMB server
2836910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2837910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @smbserver: #optional IP address of the built-in SMB server
2838910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2839910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @hostfwd: #optional redirect incoming TCP or UDP host connections to guest
2840910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#           endpoints
2841910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2842910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @guestfwd: #optional forward guest TCP connections
2843910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2844910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since 1.2
2845910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2846910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'NetdevUserOptions',
2847910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {
2848910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*hostname':  'str',
2849910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*restrict':  'bool',
2850910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*ip':        'str',
2851910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*net':       'str',
2852910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*host':      'str',
2853910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*tftp':      'str',
2854910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*bootfile':  'str',
2855910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*dhcpstart': 'str',
2856910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*dns':       'str',
2857910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*dnssearch': ['String'],
2858910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*smb':       'str',
2859910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*smbserver': 'str',
2860910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*hostfwd':   ['String'],
2861910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*guestfwd':  ['String'] } }
2862910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2863910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2864910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @NetdevTapOptions
2865910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2866910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Connect the host TAP network interface name to the VLAN.
2867910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2868910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @ifname: #optional interface name
2869910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2870910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @fd: #optional file descriptor of an already opened tap
2871910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2872910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @fds: #optional multiple file descriptors of already opened multiqueue capable
2873910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# tap
2874910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2875910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @script: #optional script to initialize the interface
2876910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2877910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @downscript: #optional script to shut down the interface
2878910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2879910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @helper: #optional command to execute to configure bridge
2880910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2881910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @sndbuf: #optional send buffer limit. Understands [TGMKkb] suffixes.
2882910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2883910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @vnet_hdr: #optional enable the IFF_VNET_HDR flag on the tap interface
2884910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2885910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @vhost: #optional enable vhost-net network accelerator
2886910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2887910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @vhostfd: #optional file descriptor of an already opened vhost net device
2888910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2889910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @vhostfds: #optional file descriptors of multiple already opened vhost net
2890910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# devices
2891910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2892910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @vhostforce: #optional vhost on for non-MSIX virtio guests
2893910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2894910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @queues: #optional number of queues to be created for multiqueue capable tap
2895910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2896910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since 1.2
2897910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2898910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'NetdevTapOptions',
2899910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {
2900910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*ifname':     'str',
2901910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*fd':         'str',
2902910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*fds':        'str',
2903910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*script':     'str',
2904910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*downscript': 'str',
2905910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*helper':     'str',
2906910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*sndbuf':     'size',
2907910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*vnet_hdr':   'bool',
2908910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*vhost':      'bool',
2909910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*vhostfd':    'str',
2910910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*vhostfds':   'str',
2911910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*vhostforce': 'bool',
2912910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*queues':     'uint32'} }
2913910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2914910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2915910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @NetdevSocketOptions
2916910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2917910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Connect the VLAN to a remote VLAN in another QEMU virtual machine using a TCP
2918910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# socket connection.
2919910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2920910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @fd: #optional file descriptor of an already opened socket
2921910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2922910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @listen: #optional port number, and optional hostname, to listen on
2923910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2924910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @connect: #optional port number, and optional hostname, to connect to
2925910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2926910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @mcast: #optional UDP multicast address and port number
2927910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2928910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @localaddr: #optional source address and port for multicast and udp packets
2929910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2930910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @udp: #optional UDP unicast address and port number
2931910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2932910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since 1.2
2933910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2934910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'NetdevSocketOptions',
2935910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {
2936910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*fd':        'str',
2937910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*listen':    'str',
2938910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*connect':   'str',
2939910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*mcast':     'str',
2940910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*localaddr': 'str',
2941910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*udp':       'str' } }
2942910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2943910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2944910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @NetdevVdeOptions
2945910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2946910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Connect the VLAN to a vde switch running on the host.
2947910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2948910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @sock: #optional socket path
2949910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2950910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @port: #optional port number
2951910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2952910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @group: #optional group owner of socket
2953910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2954910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @mode: #optional permissions for socket
2955910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2956910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since 1.2
2957910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2958910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'NetdevVdeOptions',
2959910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {
2960910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*sock':  'str',
2961910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*port':  'uint16',
2962910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*group': 'str',
2963910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*mode':  'uint16' } }
2964910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2965910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2966910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @NetdevDumpOptions
2967910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2968910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Dump VLAN network traffic to a file.
2969910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2970910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @len: #optional per-packet size limit (64k default). Understands [TGMKkb]
2971910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# suffixes.
2972910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2973910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @file: #optional dump file path (default is qemu-vlan0.pcap)
2974910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2975910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since 1.2
2976910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2977910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'NetdevDumpOptions',
2978910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {
2979910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*len':  'size',
2980910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*file': 'str' } }
2981910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2982910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2983910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @NetdevBridgeOptions
2984910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2985910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Connect a host TAP network interface to a host bridge device.
2986910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2987910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @br: #optional bridge name
2988910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2989910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @helper: #optional command to execute to configure bridge
2990910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
2991910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since 1.2
2992910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2993910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'NetdevBridgeOptions',
2994910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {
2995910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*br':     'str',
2996910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*helper': 'str' } }
2997910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
2998910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
2999910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @NetdevHubPortOptions
3000910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3001910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Connect two or more net clients through a software hub.
3002910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3003910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @hubid: hub identifier number
3004910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3005910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since 1.2
3006910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3007910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'NetdevHubPortOptions',
3008910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {
3009910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    'hubid':     'int32' } }
3010910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3011910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3012910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @NetdevNetmapOptions
3013910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3014910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Connect a client to a netmap-enabled NIC or to a VALE switch port
3015910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3016910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @ifname: Either the name of an existing network interface supported by
3017910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          netmap, or the name of a VALE port (created on the fly).
3018910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          A VALE port name is in the form 'valeXXX:YYY', where XXX and
3019910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          YYY are non-negative integers. XXX identifies a switch and
3020910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          YYY identifies a port of the switch. VALE ports having the
3021910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          same XXX are therefore connected to the same switch.
3022910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3023910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @devname: #optional path of the netmap device (default: '/dev/netmap').
3024910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3025910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since 1.8
3026910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3027910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'NetdevNetmapOptions',
3028910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {
3029910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    'ifname':     'str',
3030910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*devname':    'str' } }
3031910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3032910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3033910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @NetClientOptions
3034910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3035910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# A discriminated record of network device traits.
3036910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3037910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since 1.2
3038910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3039910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'union': 'NetClientOptions',
3040910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {
3041910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    'none':     'NetdevNoneOptions',
3042910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    'nic':      'NetLegacyNicOptions',
3043910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    'user':     'NetdevUserOptions',
3044910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    'tap':      'NetdevTapOptions',
3045910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    'socket':   'NetdevSocketOptions',
3046910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    'vde':      'NetdevVdeOptions',
3047910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    'dump':     'NetdevDumpOptions',
3048910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    'bridge':   'NetdevBridgeOptions',
3049910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    'hubport':  'NetdevHubPortOptions',
3050910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    'netmap':   'NetdevNetmapOptions' } }
3051910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3052910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3053910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @NetLegacy
3054910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3055910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Captures the configuration of a network device; legacy.
3056910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3057910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @vlan: #optional vlan number
3058910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3059910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @id: #optional identifier for monitor commands
3060910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3061910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @name: #optional identifier for monitor commands, ignored if @id is present
3062910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3063910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @opts: device type specific properties (legacy)
3064910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3065910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since 1.2
3066910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3067910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'NetLegacy',
3068910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {
3069910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*vlan': 'int32',
3070910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*id':   'str',
3071910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*name': 'str',
3072910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    'opts':  'NetClientOptions' } }
3073910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3074910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3075910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @Netdev
3076910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3077910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Captures the configuration of a network device.
3078910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3079910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @id: identifier for monitor commands.
3080910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3081910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @opts: device type specific properties
3082910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3083910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since 1.2
3084910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3085910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'Netdev',
3086910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {
3087910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    'id':   'str',
3088910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    'opts': 'NetClientOptions' } }
3089910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3090910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3091910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @InetSocketAddress
3092910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3093910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Captures a socket address or address range in the Internet namespace.
3094910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3095910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @host: host part of the address
3096910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3097910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @port: port part of the address, or lowest port if @to is present
3098910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3099910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @to: highest port to try
3100910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3101910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @ipv4: whether to accept IPv4 addresses, default try both IPv4 and IPv6
3102910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        #optional
3103910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3104910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @ipv6: whether to accept IPv6 addresses, default try both IPv4 and IPv6
3105910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        #optional
3106910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3107910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since 1.3
3108910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3109910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'InetSocketAddress',
3110910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {
3111910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    'host': 'str',
3112910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    'port': 'str',
3113910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*to': 'uint16',
3114910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*ipv4': 'bool',
3115910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*ipv6': 'bool' } }
3116910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3117910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3118910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @UnixSocketAddress
3119910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3120910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Captures a socket address in the local ("Unix socket") namespace.
3121910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3122910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @path: filesystem path to use
3123910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3124910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since 1.3
3125910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3126910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'UnixSocketAddress',
3127910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {
3128910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    'path': 'str' } }
3129910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3130910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3131910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @SocketAddress
3132910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3133910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Captures the address of a socket, which could also be a named file descriptor
3134910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3135910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since 1.3
3136910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3137910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'union': 'SocketAddress',
3138910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {
3139910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    'inet': 'InetSocketAddress',
3140910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    'unix': 'UnixSocketAddress',
3141910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    'fd': 'String' } }
3142910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3143910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3144910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @getfd:
3145910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3146910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Receive a file descriptor via SCM rights and assign it a name
3147910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3148910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @fdname: file descriptor name
3149910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3150910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: Nothing on success
3151910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3152910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
3153910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3154910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Notes: If @fdname already exists, the file descriptor assigned to
3155910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        it will be closed and replaced by the received file
3156910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        descriptor.
3157910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        The 'closefd' command can be used to explicitly close the
3158910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        file descriptor when it is no longer needed.
3159910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3160910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'getfd', 'data': {'fdname': 'str'} }
3161910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3162910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3163910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @closefd:
3164910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3165910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Close a file descriptor previously passed via SCM rights
3166910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3167910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @fdname: file descriptor name
3168910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3169910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: Nothing on success
3170910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3171910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
3172910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3173910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'closefd', 'data': {'fdname': 'str'} }
3174910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3175910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3176910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @MachineInfo:
3177910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3178910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Information describing a machine.
3179910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3180910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @name: the name of the machine
3181910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3182910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @alias: #optional an alias for the machine name
3183910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3184910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @default: #optional whether the machine is default
3185910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3186910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @cpu-max: maximum number of CPUs supported by the machine type
3187910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#           (since 1.5.0)
3188910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3189910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.2.0
3190910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3191910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'MachineInfo',
3192910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': { 'name': 'str', '*alias': 'str',
3193910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            '*is-default': 'bool', 'cpu-max': 'int' } }
3194910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3195910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3196910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @query-machines:
3197910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3198910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Return a list of supported machines
3199910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3200910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: a list of MachineInfo
3201910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3202910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.2.0
3203910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3204910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'query-machines', 'returns': ['MachineInfo'] }
3205910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3206910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3207910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @CpuDefinitionInfo:
3208910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3209910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Virtual CPU definition.
3210910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3211910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @name: the name of the CPU definition
3212910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3213910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.2.0
3214910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3215910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'CpuDefinitionInfo',
3216910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': { 'name': 'str' } }
3217910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3218910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3219910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @query-cpu-definitions:
3220910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3221910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Return a list of supported virtual CPU definitions
3222910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3223910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: a list of CpuDefInfo
3224910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3225910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.2.0
3226910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3227910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'query-cpu-definitions', 'returns': ['CpuDefinitionInfo'] }
3228910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3229910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @AddfdInfo:
3230910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3231910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Information about a file descriptor that was added to an fd set.
3232910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3233910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @fdset-id: The ID of the fd set that @fd was added to.
3234910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3235910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @fd: The file descriptor that was received via SCM rights and
3236910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#      added to the fd set.
3237910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3238910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.2.0
3239910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3240910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'AddfdInfo', 'data': {'fdset-id': 'int', 'fd': 'int'} }
3241910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3242910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3243910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @add-fd:
3244910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3245910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Add a file descriptor, that was passed via SCM rights, to an fd set.
3246910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3247910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @fdset-id: #optional The ID of the fd set to add the file descriptor to.
3248910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3249910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @opaque: #optional A free-form string that can be used to describe the fd.
3250910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3251910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: @AddfdInfo on success
3252910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          If file descriptor was not received, FdNotSupplied
3253910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          If @fdset-id is a negative value, InvalidParameterValue
3254910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3255910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Notes: The list of fd sets is shared by all monitor connections.
3256910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3257910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        If @fdset-id is not specified, a new fd set will be created.
3258910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3259910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.2.0
3260910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3261910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'add-fd', 'data': {'*fdset-id': 'int', '*opaque': 'str'},
3262910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'returns': 'AddfdInfo' }
3263910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3264910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3265910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @remove-fd:
3266910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3267910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Remove a file descriptor from an fd set.
3268910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3269910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @fdset-id: The ID of the fd set that the file descriptor belongs to.
3270910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3271910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @fd: #optional The file descriptor that is to be removed.
3272910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3273910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: Nothing on success
3274910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          If @fdset-id or @fd is not found, FdNotFound
3275910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3276910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.2.0
3277910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3278910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Notes: The list of fd sets is shared by all monitor connections.
3279910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3280910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        If @fd is not specified, all file descriptors in @fdset-id
3281910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        will be removed.
3282910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3283910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'remove-fd', 'data': {'fdset-id': 'int', '*fd': 'int'} }
3284910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3285910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3286910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @FdsetFdInfo:
3287910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3288910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Information about a file descriptor that belongs to an fd set.
3289910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3290910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @fd: The file descriptor value.
3291910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3292910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @opaque: #optional A free-form string that can be used to describe the fd.
3293910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3294910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.2.0
3295910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3296910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'FdsetFdInfo',
3297910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {'fd': 'int', '*opaque': 'str'} }
3298910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3299910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3300910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @FdsetInfo:
3301910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3302910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Information about an fd set.
3303910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3304910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @fdset-id: The ID of the fd set.
3305910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3306910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @fds: A list of file descriptors that belong to this fd set.
3307910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3308910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.2.0
3309910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3310910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'FdsetInfo',
3311910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {'fdset-id': 'int', 'fds': ['FdsetFdInfo']} }
3312910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3313910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3314910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @query-fdsets:
3315910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3316910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Return information describing all fd sets.
3317910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3318910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: A list of @FdsetInfo
3319910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3320910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.2.0
3321910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3322910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Note: The list of fd sets is shared by all monitor connections.
3323910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3324910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3325910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'query-fdsets', 'returns': ['FdsetInfo'] }
3326910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3327910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3328910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @TargetInfo:
3329910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3330910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Information describing the QEMU target.
3331910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3332910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @arch: the target architecture (eg "x86_64", "i386", etc)
3333910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3334910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.2.0
3335910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3336910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'TargetInfo',
3337910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': { 'arch': 'str' } }
3338910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3339910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3340910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @query-target:
3341910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3342910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Return information about the target for this QEMU
3343910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3344910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: TargetInfo
3345910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3346910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.2.0
3347910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3348910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'query-target', 'returns': 'TargetInfo' }
3349910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3350910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3351910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @QKeyCode:
3352910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3353910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# An enumeration of key name.
3354910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3355910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# This is used by the send-key command.
3356910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3357910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.3.0
3358910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3359910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'enum': 'QKeyCode',
3360910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': [ 'shift', 'shift_r', 'alt', 'alt_r', 'altgr', 'altgr_r', 'ctrl',
3361910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            'ctrl_r', 'menu', 'esc', '1', '2', '3', '4', '5', '6', '7', '8',
3362910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            '9', '0', 'minus', 'equal', 'backspace', 'tab', 'q', 'w', 'e',
3363910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            'r', 't', 'y', 'u', 'i', 'o', 'p', 'bracket_left', 'bracket_right',
3364910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            'ret', 'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'semicolon',
3365910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            'apostrophe', 'grave_accent', 'backslash', 'z', 'x', 'c', 'v', 'b',
3366910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            'n', 'm', 'comma', 'dot', 'slash', 'asterisk', 'spc', 'caps_lock',
3367910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            'f1', 'f2', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9', 'f10',
3368910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            'num_lock', 'scroll_lock', 'kp_divide', 'kp_multiply',
3369910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            'kp_subtract', 'kp_add', 'kp_enter', 'kp_decimal', 'sysrq', 'kp_0',
3370910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            'kp_1', 'kp_2', 'kp_3', 'kp_4', 'kp_5', 'kp_6', 'kp_7', 'kp_8',
3371910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            'kp_9', 'less', 'f11', 'f12', 'print', 'home', 'pgup', 'pgdn', 'end',
3372910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            'left', 'up', 'down', 'right', 'insert', 'delete', 'stop', 'again',
3373910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            'props', 'undo', 'front', 'copy', 'open', 'paste', 'find', 'cut',
3374910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner             'lf', 'help', 'meta_l', 'meta_r', 'compose' ] }
3375910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3376910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3377910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @KeyValue
3378910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3379910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Represents a keyboard key.
3380910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3381910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.3.0
3382910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3383910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'union': 'KeyValue',
3384910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {
3385910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    'number': 'int',
3386910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    'qcode': 'QKeyCode' } }
3387910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3388910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3389910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @send-key:
3390910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3391910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Send keys to guest.
3392910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3393910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @keys: An array of @KeyValue elements. All @KeyValues in this array are
3394910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        simultaneously sent to the guest. A @KeyValue.number value is sent
3395910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        directly to the guest, while @KeyValue.qcode must be a valid
3396910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        @QKeyCode value
3397910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3398910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @hold-time: #optional time to delay key up events, milliseconds. Defaults
3399910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#             to 100
3400910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3401910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: Nothing on success
3402910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          If key is unknown or redundant, InvalidParameter
3403910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3404910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.3.0
3405910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3406910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3407910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'send-key',
3408910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': { 'keys': ['KeyValue'], '*hold-time': 'int' } }
3409910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3410910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3411910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @screendump:
3412910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3413910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Write a PPM of the VGA screen to a file.
3414910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3415910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @filename: the path of a new PPM file to store the image
3416910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3417910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: Nothing on success
3418910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3419910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 0.14.0
3420910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3421910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'screendump', 'data': {'filename': 'str'} }
3422910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3423910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3424910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @nbd-server-start:
3425910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3426910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Start an NBD server listening on the given host and port.  Block
3427910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# devices can then be exported using @nbd-server-add.  The NBD
3428910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# server will present them as named exports; for example, another
3429910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# QEMU instance could refer to them as "nbd:HOST:PORT:exportname=NAME".
3430910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3431910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @addr: Address on which to listen.
3432910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3433910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: error if the server is already running.
3434910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3435910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.3.0
3436910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3437910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'nbd-server-start',
3438910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': { 'addr': 'SocketAddress' } }
3439910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3440910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3441910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @nbd-server-add:
3442910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3443910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Export a device to QEMU's embedded NBD server.
3444910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3445910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @device: Block device to be exported
3446910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3447910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @writable: Whether clients should be able to write to the device via the
3448910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#     NBD connection (default false). #optional
3449910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3450910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: error if the device is already marked for export.
3451910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3452910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.3.0
3453910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3454910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'nbd-server-add', 'data': {'device': 'str', '*writable': 'bool'} }
3455910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3456910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3457910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @nbd-server-stop:
3458910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3459910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Stop QEMU's embedded NBD server, and unregister all devices previously
3460910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# added via @nbd-server-add.
3461910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3462910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.3.0
3463910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3464910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'nbd-server-stop' }
3465910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3466910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3467910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @ChardevFile:
3468910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3469910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Configuration info for file chardevs.
3470910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3471910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @in:  #optional The name of the input file
3472910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @out: The name of the output file
3473910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3474910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.4
3475910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3476910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'ChardevFile', 'data': { '*in' : 'str',
3477910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner                                   'out' : 'str' } }
3478910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3479910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3480910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @ChardevHostdev:
3481910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3482910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Configuration info for device and pipe chardevs.
3483910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3484910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @device: The name of the special file for the device,
3485910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          i.e. /dev/ttyS0 on Unix or COM1: on Windows
3486910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @type: What kind of device this is.
3487910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3488910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.4
3489910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3490910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'ChardevHostdev', 'data': { 'device' : 'str' } }
3491910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3492910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3493910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @ChardevSocket:
3494910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3495910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Configuration info for (stream) socket chardevs.
3496910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3497910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @addr: socket address to listen on (server=true)
3498910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        or connect to (server=false)
3499910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @server: #optional create server socket (default: true)
3500910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @wait: #optional wait for incoming connection on server
3501910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        sockets (default: false).
3502910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @nodelay: #optional set TCP_NODELAY socket option (default: false)
3503910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @telnet: #optional enable telnet protocol on server
3504910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          sockets (default: false)
3505910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3506910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.4
3507910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3508910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'ChardevSocket', 'data': { 'addr'     : 'SocketAddress',
3509910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner                                     '*server'  : 'bool',
3510910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner                                     '*wait'    : 'bool',
3511910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner                                     '*nodelay' : 'bool',
3512910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner                                     '*telnet'  : 'bool' } }
3513910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3514910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3515910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @ChardevUdp:
3516910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3517910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Configuration info for datagram socket chardevs.
3518910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3519910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @remote: remote address
3520910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @local: #optional local address
3521910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3522910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.5
3523910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3524910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'ChardevUdp', 'data': { 'remote' : 'SocketAddress',
3525910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner                                  '*local' : 'SocketAddress' } }
3526910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3527910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3528910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @ChardevMux:
3529910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3530910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Configuration info for mux chardevs.
3531910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3532910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @chardev: name of the base chardev.
3533910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3534910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.5
3535910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3536910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'ChardevMux', 'data': { 'chardev' : 'str' } }
3537910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3538910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3539910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @ChardevStdio:
3540910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3541910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Configuration info for stdio chardevs.
3542910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3543910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @signal: #optional Allow signals (such as SIGINT triggered by ^C)
3544910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          be delivered to qemu.  Default: true in -nographic mode,
3545910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          false otherwise.
3546910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3547910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.5
3548910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3549910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'ChardevStdio', 'data': { '*signal' : 'bool' } }
3550910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3551910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3552910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @ChardevSpiceChannel:
3553910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3554910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Configuration info for spice vm channel chardevs.
3555910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3556910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @type: kind of channel (for example vdagent).
3557910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3558910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.5
3559910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3560910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'ChardevSpiceChannel', 'data': { 'type'  : 'str' } }
3561910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3562910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3563910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @ChardevSpicePort:
3564910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3565910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Configuration info for spice port chardevs.
3566910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3567910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @fqdn: name of the channel (see docs/spice-port-fqdn.txt)
3568910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3569910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.5
3570910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3571910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'ChardevSpicePort', 'data': { 'fqdn'  : 'str' } }
3572910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3573910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3574910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @ChardevVC:
3575910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3576910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Configuration info for virtual console chardevs.
3577910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3578910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @width:  console width,  in pixels
3579910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @height: console height, in pixels
3580910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @cols:   console width,  in chars
3581910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @rows:   console height, in chars
3582910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3583910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.5
3584910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3585910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'ChardevVC', 'data': { '*width'  : 'int',
3586910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner                                 '*height' : 'int',
3587910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner                                 '*cols'   : 'int',
3588910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner                                 '*rows'   : 'int' } }
3589910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3590910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3591910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @ChardevRingbuf:
3592910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3593910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Configuration info for ring buffer chardevs.
3594910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3595910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @size: #optional ring buffer size, must be power of two, default is 65536
3596910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3597910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.5
3598910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3599910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'ChardevRingbuf', 'data': { '*size'  : 'int' } }
3600910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3601910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3602910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @ChardevBackend:
3603910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3604910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Configuration info for the new chardev backend.
3605910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3606910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.4
3607910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3608910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'ChardevDummy', 'data': { } }
3609910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3610910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'union': 'ChardevBackend', 'data': { 'file'   : 'ChardevFile',
3611910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner                                       'serial' : 'ChardevHostdev',
3612910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner                                       'parallel': 'ChardevHostdev',
3613910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner                                       'pipe'   : 'ChardevHostdev',
3614910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner                                       'socket' : 'ChardevSocket',
3615910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner                                       'udp'    : 'ChardevUdp',
3616910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner                                       'pty'    : 'ChardevDummy',
3617910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner                                       'null'   : 'ChardevDummy',
3618910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner                                       'mux'    : 'ChardevMux',
3619910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner                                       'msmouse': 'ChardevDummy',
3620910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner                                       'braille': 'ChardevDummy',
3621910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner                                       'stdio'  : 'ChardevStdio',
3622910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner                                       'console': 'ChardevDummy',
3623910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner                                       'spicevmc' : 'ChardevSpiceChannel',
3624910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner                                       'spiceport' : 'ChardevSpicePort',
3625910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner                                       'vc'     : 'ChardevVC',
3626910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner                                       'ringbuf': 'ChardevRingbuf',
3627910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner                                       # next one is just for compatibility
3628910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner                                       'memory' : 'ChardevRingbuf' } }
3629910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3630910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3631910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @ChardevReturn:
3632910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3633910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Return info about the chardev backend just created.
3634910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3635910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @pty: #optional name of the slave pseudoterminal device, present if
3636910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#       and only if a chardev of type 'pty' was created
3637910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3638910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.4
3639910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3640910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type' : 'ChardevReturn', 'data': { '*pty' : 'str' } }
3641910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3642910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3643910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @chardev-add:
3644910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3645910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Add a character device backend
3646910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3647910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @id: the chardev's ID, must be unique
3648910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @backend: backend type and parameters
3649910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3650910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: ChardevReturn.
3651910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3652910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.4
3653910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3654910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'chardev-add', 'data': {'id'      : 'str',
3655910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner                                     'backend' : 'ChardevBackend' },
3656910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'returns': 'ChardevReturn' }
3657910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3658910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3659910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @chardev-remove:
3660910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3661910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Remove a character device backend
3662910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3663910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @id: the chardev's ID, must exist and not be in use
3664910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3665910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: Nothing on success
3666910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3667910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.4
3668910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3669910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'chardev-remove', 'data': {'id': 'str'} }
3670910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3671910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3672910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @TpmModel:
3673910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3674910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# An enumeration of TPM models
3675910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3676910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @tpm-tis: TPM TIS model
3677910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3678910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.5
3679910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3680910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'enum': 'TpmModel', 'data': [ 'tpm-tis' ] }
3681910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3682910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3683910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @query-tpm-models:
3684910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3685910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Return a list of supported TPM models
3686910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3687910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: a list of TpmModel
3688910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3689910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.5
3690910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3691910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'query-tpm-models', 'returns': ['TpmModel'] }
3692910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3693910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3694910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @TpmType:
3695910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3696910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# An enumeration of TPM types
3697910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3698910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @passthrough: TPM passthrough type
3699910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3700910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.5
3701910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3702910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'enum': 'TpmType', 'data': [ 'passthrough' ] }
3703910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3704910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3705910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @query-tpm-types:
3706910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3707910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Return a list of supported TPM types
3708910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3709910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: a list of TpmType
3710910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3711910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.5
3712910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3713910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'query-tpm-types', 'returns': ['TpmType'] }
3714910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3715910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3716910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @TPMPassthroughOptions:
3717910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3718910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Information about the TPM passthrough type
3719910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3720910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @path: #optional string describing the path used for accessing the TPM device
3721910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3722910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @cancel-path: #optional string showing the TPM's sysfs cancel file
3723910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#               for cancellation of TPM commands while they are executing
3724910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3725910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.5
3726910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3727910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'TPMPassthroughOptions', 'data': { '*path' : 'str',
3728910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner                                             '*cancel-path' : 'str'} }
3729910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3730910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3731910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @TpmTypeOptions:
3732910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3733910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# A union referencing different TPM backend types' configuration options
3734910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3735910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @passthrough: The configuration options for the TPM passthrough type
3736910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3737910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.5
3738910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3739910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'union': 'TpmTypeOptions',
3740910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner   'data': { 'passthrough' : 'TPMPassthroughOptions' } }
3741910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3742910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3743910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @TpmInfo:
3744910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3745910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Information about the TPM
3746910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3747910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @id: The Id of the TPM
3748910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3749910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @model: The TPM frontend model
3750910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3751910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @options: The TPM (backend) type configuration options
3752910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3753910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.5
3754910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3755910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'TPMInfo',
3756910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {'id': 'str',
3757910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner           'model': 'TpmModel',
3758910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner           'options': 'TpmTypeOptions' } }
3759910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3760910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3761910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @query-tpm:
3762910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3763910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Return information about the TPM device
3764910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3765910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: @TPMInfo on success
3766910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3767910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.5
3768910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3769910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'query-tpm', 'returns': ['TPMInfo'] }
3770910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3771910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3772910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @AcpiTableOptions
3773910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3774910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Specify an ACPI table on the command line to load.
3775910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3776910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# At most one of @file and @data can be specified. The list of files specified
3777910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# by any one of them is loaded and concatenated in order. If both are omitted,
3778910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @data is implied.
3779910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3780910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Other fields / optargs can be used to override fields of the generic ACPI
3781910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# table header; refer to the ACPI specification 5.0, section 5.2.6 System
3782910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Description Table Header. If a header field is not overridden, then the
3783910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# corresponding value from the concatenated blob is used (in case of @file), or
3784910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# it is filled in with a hard-coded value (in case of @data).
3785910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3786910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# String fields are copied into the matching ACPI member from lowest address
3787910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# upwards, and silently truncated / NUL-padded to length.
3788910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3789910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @sig: #optional table signature / identifier (4 bytes)
3790910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3791910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @rev: #optional table revision number (dependent on signature, 1 byte)
3792910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3793910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @oem_id: #optional OEM identifier (6 bytes)
3794910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3795910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @oem_table_id: #optional OEM table identifier (8 bytes)
3796910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3797910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @oem_rev: #optional OEM-supplied revision number (4 bytes)
3798910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3799910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @asl_compiler_id: #optional identifier of the utility that created the table
3800910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                   (4 bytes)
3801910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3802910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @asl_compiler_rev: #optional revision number of the utility that created the
3803910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                    table (4 bytes)
3804910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3805910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @file: #optional colon (:) separated list of pathnames to load and
3806910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        concatenate as table data. The resultant binary blob is expected to
3807910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        have an ACPI table header. At least one file is required. This field
3808910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        excludes @data.
3809910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3810910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @data: #optional colon (:) separated list of pathnames to load and
3811910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        concatenate as table data. The resultant binary blob must not have an
3812910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        ACPI table header. At least one file is required. This field excludes
3813910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        @file.
3814910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3815910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since 1.5
3816910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3817910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'AcpiTableOptions',
3818910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {
3819910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*sig':               'str',
3820910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*rev':               'uint8',
3821910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*oem_id':            'str',
3822910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*oem_table_id':      'str',
3823910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*oem_rev':           'uint32',
3824910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*asl_compiler_id':   'str',
3825910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*asl_compiler_rev':  'uint32',
3826910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*file':              'str',
3827910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    '*data':              'str' }}
3828910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3829910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3830910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @CommandLineParameterType:
3831910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3832910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Possible types for an option parameter.
3833910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3834910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @string: accepts a character string
3835910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3836910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @boolean: accepts "on" or "off"
3837910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3838910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @number: accepts a number
3839910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3840910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @size: accepts a number followed by an optional suffix (K)ilo,
3841910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#        (M)ega, (G)iga, (T)era
3842910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3843910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since 1.5
3844910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3845910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'enum': 'CommandLineParameterType',
3846910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': ['string', 'boolean', 'number', 'size'] }
3847910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3848910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3849910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @CommandLineParameterInfo:
3850910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3851910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Details about a single parameter of a command line option.
3852910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3853910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @name: parameter name
3854910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3855910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @type: parameter @CommandLineParameterType
3856910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3857910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @help: #optional human readable text string, not suitable for parsing.
3858910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3859910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since 1.5
3860910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3861910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'CommandLineParameterInfo',
3862910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': { 'name': 'str',
3863910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            'type': 'CommandLineParameterType',
3864910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            '*help': 'str' } }
3865910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3866910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3867910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @CommandLineOptionInfo:
3868910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3869910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Details about a command line option, including its list of parameter details
3870910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3871910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @option: option name
3872910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3873910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @parameters: an array of @CommandLineParameterInfo
3874910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3875910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since 1.5
3876910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3877910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'CommandLineOptionInfo',
3878910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': { 'option': 'str', 'parameters': ['CommandLineParameterInfo'] } }
3879910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3880910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3881910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @query-command-line-options:
3882910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3883910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Query command line option schema.
3884910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3885910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @option: #optional option name
3886910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3887910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: list of @CommandLineOptionInfo for all options (or for the given
3888910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          @option).  Returns an error if the given @option doesn't exist.
3889910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3890910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since 1.5
3891910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3892910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{'command': 'query-command-line-options', 'data': { '*option': 'str' },
3893910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner 'returns': ['CommandLineOptionInfo'] }
3894910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3895910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3896910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @X86CPURegister32
3897910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3898910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# A X86 32-bit register
3899910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3900910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.5
3901910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3902910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'enum': 'X86CPURegister32',
3903910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': [ 'EAX', 'EBX', 'ECX', 'EDX', 'ESP', 'EBP', 'ESI', 'EDI' ] }
3904910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3905910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3906910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @X86CPUFeatureWordInfo
3907910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3908910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Information about a X86 CPU feature word
3909910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3910910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @cpuid-input-eax: Input EAX value for CPUID instruction for that feature word
3911910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3912910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @cpuid-input-ecx: #optional Input ECX value for CPUID instruction for that
3913910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                   feature word
3914910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3915910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @cpuid-register: Output register containing the feature bits
3916910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3917910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @features: value of output register, containing the feature bits
3918910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3919910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.5
3920910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3921910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'X86CPUFeatureWordInfo',
3922910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': { 'cpuid-input-eax': 'int',
3923910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            '*cpuid-input-ecx': 'int',
3924910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            'cpuid-register': 'X86CPURegister32',
3925910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            'features': 'int' } }
3926910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3927910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3928910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @RxState:
3929910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3930910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Packets receiving state
3931910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3932910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @normal: filter assigned packets according to the mac-table
3933910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3934910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @none: don't receive any assigned packet
3935910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3936910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @all: receive all assigned packets
3937910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3938910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.6
3939910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3940910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'enum': 'RxState', 'data': [ 'normal', 'none', 'all' ] }
3941910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3942910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3943910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @RxFilterInfo:
3944910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3945910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Rx-filter information for a NIC.
3946910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3947910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @name: net client name
3948910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3949910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @promiscuous: whether promiscuous mode is enabled
3950910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3951910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @multicast: multicast receive state
3952910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3953910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @unicast: unicast receive state
3954910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3955910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @broadcast-allowed: whether to receive broadcast
3956910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3957910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @multicast-overflow: multicast table is overflowed or not
3958910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3959910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @unicast-overflow: unicast table is overflowed or not
3960910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3961910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @main-mac: the main macaddr string
3962910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3963910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @vlan-table: a list of active vlan id
3964910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3965910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @unicast-table: a list of unicast macaddr string
3966910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3967910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @multicast-table: a list of multicast macaddr string
3968910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3969910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since 1.6
3970910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3971910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3972910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'RxFilterInfo',
3973910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {
3974910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    'name':               'str',
3975910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    'promiscuous':        'bool',
3976910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    'multicast':          'RxState',
3977910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    'unicast':            'RxState',
3978910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    'broadcast-allowed':  'bool',
3979910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    'multicast-overflow': 'bool',
3980910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    'unicast-overflow':   'bool',
3981910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    'main-mac':           'str',
3982910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    'vlan-table':         ['int'],
3983910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    'unicast-table':      ['str'],
3984910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner    'multicast-table':    ['str'] }}
3985910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
3986910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
3987910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @query-rx-filter:
3988910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3989910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Return rx-filter information for all NICs (or for the given NIC).
3990910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3991910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @name: #optional net client name
3992910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3993910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Returns: list of @RxFilterInfo for all NICs (or for the given NIC).
3994910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          Returns an error if the given @name doesn't exist, or given
3995910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          NIC doesn't support rx-filter querying, or given net client
3996910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#          isn't a NIC.
3997910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
3998910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.6
3999910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
4000910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'query-rx-filter', 'data': { '*name': 'str' },
4001910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'returns': ['RxFilterInfo'] }
4002910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
4003910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
4004910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
4005910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @BlockdevDiscardOptions
4006910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
4007910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Determines how to handle discard requests.
4008910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
4009910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @ignore:      Ignore the request
4010910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @unmap:       Forward as an unmap request
4011910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
4012910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.7
4013910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
4014910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'enum': 'BlockdevDiscardOptions',
4015910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': [ 'ignore', 'unmap' ] }
4016910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
4017910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
4018910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @BlockdevAioOptions
4019910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
4020910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Selects the AIO backend to handle I/O requests
4021910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
4022910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @threads:     Use qemu's thread pool
4023910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @native:      Use native AIO backend (only Linux and Windows)
4024910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
4025910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.7
4026910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
4027910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'enum': 'BlockdevAioOptions',
4028910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': [ 'threads', 'native' ] }
4029910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
4030910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
4031910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @BlockdevCacheOptions
4032910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
4033910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Includes cache-related options for block devices
4034910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
4035910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @writeback:   #optional enables writeback mode for any caches (default: true)
4036910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @direct:      #optional enables use of O_DIRECT (bypass the host page cache;
4037910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#               default: false)
4038910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @no-flush:    #optional ignore any flush requests for the device (default:
4039910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#               false)
4040910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
4041910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.7
4042910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
4043910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'BlockdevCacheOptions',
4044910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': { '*writeback': 'bool',
4045910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            '*direct': 'bool',
4046910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            '*no-flush': 'bool' } }
4047910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
4048910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
4049910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @BlockdevOptionsBase
4050910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
4051910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Options that are available for all block devices, independent of the block
4052910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# driver.
4053910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
4054910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @driver:      block driver name
4055910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @id:          #optional id by which the new block device can be referred to.
4056910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#               This is a required option on the top level of blockdev-add, and
4057910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#               currently not allowed on any other level.
4058910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @discard:     #optional discard-related options (default: ignore)
4059910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @cache:       #optional cache-related options
4060910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @aio:         #optional AIO backend (default: threads)
4061910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @rerror:      #optional how to handle read errors on the device
4062910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#               (default: report)
4063910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @werror:      #optional how to handle write errors on the device
4064910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#               (default: enospc)
4065910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @read-only:   #optional whether the block device should be read-only
4066910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#               (default: false)
4067910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
4068910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.7
4069910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
4070910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'BlockdevOptionsBase',
4071910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': { 'driver': 'str',
4072910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            '*id': 'str',
4073910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            '*discard': 'BlockdevDiscardOptions',
4074910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            '*cache': 'BlockdevCacheOptions',
4075910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            '*aio': 'BlockdevAioOptions',
4076910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            '*rerror': 'BlockdevOnError',
4077910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            '*werror': 'BlockdevOnError',
4078910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            '*read-only': 'bool' } }
4079910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
4080910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
4081910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @BlockdevOptionsFile
4082910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
4083910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Driver specific block device options for the file backend and similar
4084910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# protocols.
4085910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
4086910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @filename:    path to the image file
4087910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
4088910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.7
4089910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
4090910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'BlockdevOptionsFile',
4091910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': { 'filename': 'str' } }
4092910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
4093910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
4094910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @BlockdevOptionsVVFAT
4095910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
4096910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Driver specific block device options for the vvfat protocol.
4097910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
4098910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @dir:         directory to be exported as FAT image
4099910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @fat-type:    #optional FAT type: 12, 16 or 32
4100910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @floppy:      #optional whether to export a floppy image (true) or
4101910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#               partitioned hard disk (false; default)
4102910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @rw:          #optional whether to allow write operations (default: false)
4103910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
4104910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.7
4105910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
4106910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'BlockdevOptionsVVFAT',
4107910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': { 'dir': 'str', '*fat-type': 'int', '*floppy': 'bool',
4108910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            '*rw': 'bool' } }
4109910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
4110910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
4111910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @BlockdevOptionsGenericFormat
4112910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
4113910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Driver specific block device options for image format that have no option
4114910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# besides their data source.
4115910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
4116910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @file:        reference to or definition of the data source block device
4117910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
4118910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.7
4119910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
4120910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'BlockdevOptionsGenericFormat',
4121910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': { 'file': 'BlockdevRef' } }
4122910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
4123910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
4124910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @BlockdevOptionsGenericCOWFormat
4125910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
4126910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Driver specific block device options for image format that have no option
4127910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# besides their data source and an optional backing file.
4128910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
4129910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @backing:     #optional reference to or definition of the backing file block
4130910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#               device (if missing, taken from the image file content). It is
4131910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#               allowed to pass an empty string here in order to disable the
4132910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#               default backing file.
4133910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
4134910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.7
4135910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
4136910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'BlockdevOptionsGenericCOWFormat',
4137910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'base': 'BlockdevOptionsGenericFormat',
4138910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': { '*backing': 'BlockdevRef' } }
4139910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
4140910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
4141910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @BlockdevOptionsQcow2
4142910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
4143910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Driver specific block device options for qcow2.
4144910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
4145910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @lazy-refcounts:        #optional whether to enable the lazy refcounts
4146910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                         feature (default is taken from the image file)
4147910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
4148910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @pass-discard-request:  #optional whether discard requests to the qcow2
4149910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                         device should be forwarded to the data source
4150910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
4151910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @pass-discard-snapshot: #optional whether discard requests for the data source
4152910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                         should be issued when a snapshot operation (e.g.
4153910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                         deleting a snapshot) frees clusters in the qcow2 file
4154910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
4155910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @pass-discard-other:    #optional whether discard requests for the data source
4156910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                         should be issued on other occasions where a cluster
4157910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                         gets freed
4158910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
4159910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.7
4160910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
4161910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'type': 'BlockdevOptionsQcow2',
4162910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'base': 'BlockdevOptionsGenericCOWFormat',
4163910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': { '*lazy-refcounts': 'bool',
4164910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            '*pass-discard-request': 'bool',
4165910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            '*pass-discard-snapshot': 'bool',
4166910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            '*pass-discard-other': 'bool' } }
4167910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
4168910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
4169910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @BlockdevOptions
4170910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
4171910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Options for creating a block device.
4172910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
4173910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.7
4174910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
4175910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'union': 'BlockdevOptions',
4176910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'base': 'BlockdevOptionsBase',
4177910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'discriminator': 'driver',
4178910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': {
4179910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner      'file':       'BlockdevOptionsFile',
4180910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner      'http':       'BlockdevOptionsFile',
4181910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner      'https':      'BlockdevOptionsFile',
4182910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner      'ftp':        'BlockdevOptionsFile',
4183910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner      'ftps':       'BlockdevOptionsFile',
4184910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner      'tftp':       'BlockdevOptionsFile',
4185910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# TODO gluster: Wait for structured options
4186910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# TODO iscsi: Wait for structured options
4187910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# TODO nbd: Should take InetSocketAddress for 'host'?
4188910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# TODO rbd: Wait for structured options
4189910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# TODO sheepdog: Wait for structured options
4190910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# TODO ssh: Should take InetSocketAddress for 'host'?
4191910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner      'vvfat':      'BlockdevOptionsVVFAT',
4192910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
4193910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# TODO blkdebug: Wait for structured options
4194910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# TODO blkverify: Wait for structured options
4195910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
4196910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner      'bochs':      'BlockdevOptionsGenericFormat',
4197910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner      'cloop':      'BlockdevOptionsGenericFormat',
4198910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner      'cow':        'BlockdevOptionsGenericCOWFormat',
4199910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner      'dmg':        'BlockdevOptionsGenericFormat',
4200910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner      'parallels':  'BlockdevOptionsGenericFormat',
4201910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner      'qcow':       'BlockdevOptionsGenericCOWFormat',
4202910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner      'qcow2':      'BlockdevOptionsQcow2',
4203910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner      'qed':        'BlockdevOptionsGenericCOWFormat',
4204910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner      'raw':        'BlockdevOptionsGenericFormat',
4205910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner      'vdi':        'BlockdevOptionsGenericFormat',
4206910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner      'vhdx':       'BlockdevOptionsGenericFormat',
4207910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner      'vmdk':       'BlockdevOptionsGenericCOWFormat',
4208910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner      'vpc':        'BlockdevOptionsGenericFormat'
4209910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  } }
4210910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
4211910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
4212910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @BlockdevRef
4213910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
4214910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Reference to a block device.
4215910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
4216910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @definition:      defines a new block device inline
4217910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @reference:       references the ID of an existing block device. An
4218910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                   empty string means that no block device should be
4219910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#                   referenced.
4220910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
4221910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.7
4222910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
4223910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'union': 'BlockdevRef',
4224910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'discriminator': {},
4225910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner  'data': { 'definition': 'BlockdevOptions',
4226910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner            'reference': 'str' } }
4227910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner
4228910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
4229910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @blockdev-add:
4230910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
4231910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Creates a new block device.
4232910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
4233910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# @options: block device options for the new device
4234910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner#
4235910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner# Since: 1.7
4236910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner##
4237910aea96b67d7f0357f586c47f20848ec435aa1bDavid 'Digit' Turner{ 'command': 'blockdev-add', 'data': { 'options': 'BlockdevOptions' } }
4238