Statistics
| Branch: | Revision:

root / qapi-schema.json @ 264986e2

History | View | Annotate | Download (84.6 kB)

1 e3193601 Anthony Liguori
# -*- Mode: Python -*-
2 e3193601 Anthony Liguori
#
3 e3193601 Anthony Liguori
# QAPI Schema
4 48a32bed Anthony Liguori
5 48a32bed Anthony Liguori
##
6 dcafd323 Luiz Capitulino
# @ErrorClass
7 dcafd323 Luiz Capitulino
#
8 dcafd323 Luiz Capitulino
# QEMU error classes
9 dcafd323 Luiz Capitulino
#
10 dcafd323 Luiz Capitulino
# @GenericError: this is used for errors that don't require a specific error
11 dcafd323 Luiz Capitulino
#                class. This should be the default case for most errors
12 dcafd323 Luiz Capitulino
#
13 dcafd323 Luiz Capitulino
# @CommandNotFound: the requested command has not been found
14 dcafd323 Luiz Capitulino
#
15 dcafd323 Luiz Capitulino
# @DeviceEncrypted: the requested operation can't be fulfilled because the
16 dcafd323 Luiz Capitulino
#                   selected device is encrypted
17 dcafd323 Luiz Capitulino
#
18 dcafd323 Luiz Capitulino
# @DeviceNotActive: a device has failed to be become active
19 dcafd323 Luiz Capitulino
#
20 dcafd323 Luiz Capitulino
# @DeviceNotFound: the requested device has not been found
21 dcafd323 Luiz Capitulino
#
22 dcafd323 Luiz Capitulino
# @KVMMissingCap: the requested operation can't be fulfilled because a
23 dcafd323 Luiz Capitulino
#                 required KVM capability is missing
24 dcafd323 Luiz Capitulino
#
25 dcafd323 Luiz Capitulino
# Since: 1.2
26 dcafd323 Luiz Capitulino
##
27 dcafd323 Luiz Capitulino
{ 'enum': 'ErrorClass',
28 dcafd323 Luiz Capitulino
  'data': [ 'GenericError', 'CommandNotFound', 'DeviceEncrypted',
29 1e998146 Paolo Bonzini
            'DeviceNotActive', 'DeviceNotFound', 'KVMMissingCap' ] }
30 dcafd323 Luiz Capitulino
31 dcafd323 Luiz Capitulino
##
32 b224e5e2 Luiz Capitulino
# @add_client
33 b224e5e2 Luiz Capitulino
#
34 b224e5e2 Luiz Capitulino
# Allow client connections for VNC, Spice and socket based
35 b224e5e2 Luiz Capitulino
# character devices to be passed in to QEMU via SCM_RIGHTS.
36 b224e5e2 Luiz Capitulino
#
37 b224e5e2 Luiz Capitulino
# @protocol: protocol name. Valid names are "vnc", "spice" or the
38 b224e5e2 Luiz Capitulino
#            name of a character device (eg. from -chardev id=XXXX)
39 b224e5e2 Luiz Capitulino
#
40 b224e5e2 Luiz Capitulino
# @fdname: file descriptor name previously passed via 'getfd' command
41 b224e5e2 Luiz Capitulino
#
42 b224e5e2 Luiz Capitulino
# @skipauth: #optional whether to skip authentication. Only applies
43 b224e5e2 Luiz Capitulino
#            to "vnc" and "spice" protocols
44 b224e5e2 Luiz Capitulino
#
45 b224e5e2 Luiz Capitulino
# @tls: #optional whether to perform TLS. Only applies to the "spice"
46 b224e5e2 Luiz Capitulino
#       protocol
47 b224e5e2 Luiz Capitulino
#
48 b224e5e2 Luiz Capitulino
# Returns: nothing on success.
49 b224e5e2 Luiz Capitulino
#
50 b224e5e2 Luiz Capitulino
# Since: 0.14.0
51 b224e5e2 Luiz Capitulino
##
52 b224e5e2 Luiz Capitulino
{ 'command': 'add_client',
53 b224e5e2 Luiz Capitulino
  'data': { 'protocol': 'str', 'fdname': 'str', '*skipauth': 'bool',
54 b224e5e2 Luiz Capitulino
            '*tls': 'bool' } }
55 b224e5e2 Luiz Capitulino
56 b224e5e2 Luiz Capitulino
##
57 48a32bed Anthony Liguori
# @NameInfo:
58 48a32bed Anthony Liguori
#
59 48a32bed Anthony Liguori
# Guest name information.
60 48a32bed Anthony Liguori
#
61 48a32bed Anthony Liguori
# @name: #optional The name of the guest
62 48a32bed Anthony Liguori
#
63 48a32bed Anthony Liguori
# Since 0.14.0
64 48a32bed Anthony Liguori
##
65 48a32bed Anthony Liguori
{ 'type': 'NameInfo', 'data': {'*name': 'str'} }
66 48a32bed Anthony Liguori
67 48a32bed Anthony Liguori
##
68 48a32bed Anthony Liguori
# @query-name:
69 48a32bed Anthony Liguori
#
70 48a32bed Anthony Liguori
# Return the name information of a guest.
71 48a32bed Anthony Liguori
#
72 48a32bed Anthony Liguori
# Returns: @NameInfo of the guest
73 48a32bed Anthony Liguori
#
74 48a32bed Anthony Liguori
# Since 0.14.0
75 48a32bed Anthony Liguori
##
76 48a32bed Anthony Liguori
{ 'command': 'query-name', 'returns': 'NameInfo' }
77 b9c15f16 Luiz Capitulino
78 b9c15f16 Luiz Capitulino
##
79 b9c15f16 Luiz Capitulino
# @VersionInfo:
80 b9c15f16 Luiz Capitulino
#
81 b9c15f16 Luiz Capitulino
# A description of QEMU's version.
82 b9c15f16 Luiz Capitulino
#
83 b9c15f16 Luiz Capitulino
# @qemu.major:  The major version of QEMU
84 b9c15f16 Luiz Capitulino
#
85 b9c15f16 Luiz Capitulino
# @qemu.minor:  The minor version of QEMU
86 b9c15f16 Luiz Capitulino
#
87 b9c15f16 Luiz Capitulino
# @qemu.micro:  The micro version of QEMU.  By current convention, a micro
88 b9c15f16 Luiz Capitulino
#               version of 50 signifies a development branch.  A micro version
89 b9c15f16 Luiz Capitulino
#               greater than or equal to 90 signifies a release candidate for
90 b9c15f16 Luiz Capitulino
#               the next minor version.  A micro version of less than 50
91 b9c15f16 Luiz Capitulino
#               signifies a stable release.
92 b9c15f16 Luiz Capitulino
#
93 b9c15f16 Luiz Capitulino
# @package:     QEMU will always set this field to an empty string.  Downstream
94 b9c15f16 Luiz Capitulino
#               versions of QEMU should set this to a non-empty string.  The
95 b9c15f16 Luiz Capitulino
#               exact format depends on the downstream however it highly
96 b9c15f16 Luiz Capitulino
#               recommended that a unique name is used.
97 b9c15f16 Luiz Capitulino
#
98 b9c15f16 Luiz Capitulino
# Since: 0.14.0
99 b9c15f16 Luiz Capitulino
##
100 b9c15f16 Luiz Capitulino
{ 'type': 'VersionInfo',
101 b9c15f16 Luiz Capitulino
  'data': {'qemu': {'major': 'int', 'minor': 'int', 'micro': 'int'},
102 b9c15f16 Luiz Capitulino
           'package': 'str'} }
103 b9c15f16 Luiz Capitulino
104 b9c15f16 Luiz Capitulino
##
105 b9c15f16 Luiz Capitulino
# @query-version:
106 b9c15f16 Luiz Capitulino
#
107 b9c15f16 Luiz Capitulino
# Returns the current version of QEMU.
108 b9c15f16 Luiz Capitulino
#
109 b9c15f16 Luiz Capitulino
# Returns:  A @VersionInfo object describing the current version of QEMU.
110 b9c15f16 Luiz Capitulino
#
111 b9c15f16 Luiz Capitulino
# Since: 0.14.0
112 b9c15f16 Luiz Capitulino
##
113 b9c15f16 Luiz Capitulino
{ 'command': 'query-version', 'returns': 'VersionInfo' }
114 292a2602 Luiz Capitulino
115 292a2602 Luiz Capitulino
##
116 292a2602 Luiz Capitulino
# @KvmInfo:
117 292a2602 Luiz Capitulino
#
118 292a2602 Luiz Capitulino
# Information about support for KVM acceleration
119 292a2602 Luiz Capitulino
#
120 292a2602 Luiz Capitulino
# @enabled: true if KVM acceleration is active
121 292a2602 Luiz Capitulino
#
122 292a2602 Luiz Capitulino
# @present: true if KVM acceleration is built into this executable
123 292a2602 Luiz Capitulino
#
124 292a2602 Luiz Capitulino
# Since: 0.14.0
125 292a2602 Luiz Capitulino
##
126 292a2602 Luiz Capitulino
{ 'type': 'KvmInfo', 'data': {'enabled': 'bool', 'present': 'bool'} }
127 292a2602 Luiz Capitulino
128 292a2602 Luiz Capitulino
##
129 292a2602 Luiz Capitulino
# @query-kvm:
130 292a2602 Luiz Capitulino
#
131 292a2602 Luiz Capitulino
# Returns information about KVM acceleration
132 292a2602 Luiz Capitulino
#
133 292a2602 Luiz Capitulino
# Returns: @KvmInfo
134 292a2602 Luiz Capitulino
#
135 292a2602 Luiz Capitulino
# Since: 0.14.0
136 292a2602 Luiz Capitulino
##
137 292a2602 Luiz Capitulino
{ 'command': 'query-kvm', 'returns': 'KvmInfo' }
138 292a2602 Luiz Capitulino
139 1fa9a5e4 Luiz Capitulino
##
140 1fa9a5e4 Luiz Capitulino
# @RunState
141 1fa9a5e4 Luiz Capitulino
#
142 6932a69b Lei Li
# An enumeration of VM run states.
143 1fa9a5e4 Luiz Capitulino
#
144 1fa9a5e4 Luiz Capitulino
# @debug: QEMU is running on a debugger
145 1fa9a5e4 Luiz Capitulino
#
146 0a24c7b1 Luiz Capitulino
# @finish-migrate: guest is paused to finish the migration process
147 0a24c7b1 Luiz Capitulino
#
148 1e998146 Paolo Bonzini
# @inmigrate: guest is paused waiting for an incoming migration.  Note
149 1e998146 Paolo Bonzini
# that this state does not tell whether the machine will start at the
150 1e998146 Paolo Bonzini
# end of the migration.  This depends on the command-line -S option and
151 1e998146 Paolo Bonzini
# any invocation of 'stop' or 'cont' that has happened since QEMU was
152 1e998146 Paolo Bonzini
# started.
153 1fa9a5e4 Luiz Capitulino
#
154 1fa9a5e4 Luiz Capitulino
# @internal-error: An internal error that prevents further guest execution
155 1fa9a5e4 Luiz Capitulino
# has occurred
156 1fa9a5e4 Luiz Capitulino
#
157 1fa9a5e4 Luiz Capitulino
# @io-error: the last IOP has failed and the device is configured to pause
158 1fa9a5e4 Luiz Capitulino
# on I/O errors
159 1fa9a5e4 Luiz Capitulino
#
160 1fa9a5e4 Luiz Capitulino
# @paused: guest has been paused via the 'stop' command
161 1fa9a5e4 Luiz Capitulino
#
162 1fa9a5e4 Luiz Capitulino
# @postmigrate: guest is paused following a successful 'migrate'
163 1fa9a5e4 Luiz Capitulino
#
164 1fa9a5e4 Luiz Capitulino
# @prelaunch: QEMU was started with -S and guest has not started
165 1fa9a5e4 Luiz Capitulino
#
166 1fa9a5e4 Luiz Capitulino
# @restore-vm: guest is paused to restore VM state
167 1fa9a5e4 Luiz Capitulino
#
168 1fa9a5e4 Luiz Capitulino
# @running: guest is actively running
169 1fa9a5e4 Luiz Capitulino
#
170 1fa9a5e4 Luiz Capitulino
# @save-vm: guest is paused to save the VM state
171 1fa9a5e4 Luiz Capitulino
#
172 1fa9a5e4 Luiz Capitulino
# @shutdown: guest is shut down (and -no-shutdown is in use)
173 1fa9a5e4 Luiz Capitulino
#
174 ad02b96a Luiz Capitulino
# @suspended: guest is suspended (ACPI S3)
175 ad02b96a Luiz Capitulino
#
176 1fa9a5e4 Luiz Capitulino
# @watchdog: the watchdog action is configured to pause and has been triggered
177 1fa9a5e4 Luiz Capitulino
##
178 1fa9a5e4 Luiz Capitulino
{ 'enum': 'RunState',
179 1fa9a5e4 Luiz Capitulino
  'data': [ 'debug', 'inmigrate', 'internal-error', 'io-error', 'paused',
180 1fa9a5e4 Luiz Capitulino
            'postmigrate', 'prelaunch', 'finish-migrate', 'restore-vm',
181 ad02b96a Luiz Capitulino
            'running', 'save-vm', 'shutdown', 'suspended', 'watchdog' ] }
182 1fa9a5e4 Luiz Capitulino
183 1fa9a5e4 Luiz Capitulino
##
184 c249ee68 Benoรฎt Canet
# @SnapshotInfo
185 c249ee68 Benoรฎt Canet
#
186 c249ee68 Benoรฎt Canet
# @id: unique snapshot id
187 c249ee68 Benoรฎt Canet
#
188 c249ee68 Benoรฎt Canet
# @name: user chosen name
189 c249ee68 Benoรฎt Canet
#
190 c249ee68 Benoรฎt Canet
# @vm-state-size: size of the VM state
191 c249ee68 Benoรฎt Canet
#
192 c249ee68 Benoรฎt Canet
# @date-sec: UTC date of the snapshot in seconds
193 c249ee68 Benoรฎt Canet
#
194 c249ee68 Benoรฎt Canet
# @date-nsec: fractional part in nano seconds to be used with date-sec
195 c249ee68 Benoรฎt Canet
#
196 c249ee68 Benoรฎt Canet
# @vm-clock-sec: VM clock relative to boot in seconds
197 c249ee68 Benoรฎt Canet
#
198 c249ee68 Benoรฎt Canet
# @vm-clock-nsec: fractional part in nano seconds to be used with vm-clock-sec
199 c249ee68 Benoรฎt Canet
#
200 c249ee68 Benoรฎt Canet
# Since: 1.3
201 c249ee68 Benoรฎt Canet
#
202 c249ee68 Benoรฎt Canet
##
203 c249ee68 Benoรฎt Canet
204 c249ee68 Benoรฎt Canet
{ 'type': 'SnapshotInfo',
205 c249ee68 Benoรฎt Canet
  'data': { 'id': 'str', 'name': 'str', 'vm-state-size': 'int',
206 c249ee68 Benoรฎt Canet
            'date-sec': 'int', 'date-nsec': 'int',
207 c249ee68 Benoรฎt Canet
            'vm-clock-sec': 'int', 'vm-clock-nsec': 'int' } }
208 c249ee68 Benoรฎt Canet
209 c249ee68 Benoรฎt Canet
##
210 c249ee68 Benoรฎt Canet
# @ImageInfo:
211 c249ee68 Benoรฎt Canet
#
212 c249ee68 Benoรฎt Canet
# Information about a QEMU image file
213 c249ee68 Benoรฎt Canet
#
214 c249ee68 Benoรฎt Canet
# @filename: name of the image file
215 c249ee68 Benoรฎt Canet
#
216 c249ee68 Benoรฎt Canet
# @format: format of the image file
217 c249ee68 Benoรฎt Canet
#
218 c249ee68 Benoรฎt Canet
# @virtual-size: maximum capacity in bytes of the image
219 c249ee68 Benoรฎt Canet
#
220 c249ee68 Benoรฎt Canet
# @actual-size: #optional actual size on disk in bytes of the image
221 c249ee68 Benoรฎt Canet
#
222 c249ee68 Benoรฎt Canet
# @dirty-flag: #optional true if image is not cleanly closed
223 c249ee68 Benoรฎt Canet
#
224 c249ee68 Benoรฎt Canet
# @cluster-size: #optional size of a cluster in bytes
225 c249ee68 Benoรฎt Canet
#
226 c249ee68 Benoรฎt Canet
# @encrypted: #optional true if the image is encrypted
227 c249ee68 Benoรฎt Canet
#
228 c249ee68 Benoรฎt Canet
# @backing-filename: #optional name of the backing file
229 c249ee68 Benoรฎt Canet
#
230 c249ee68 Benoรฎt Canet
# @full-backing-filename: #optional full path of the backing file
231 c249ee68 Benoรฎt Canet
#
232 c249ee68 Benoรฎt Canet
# @backing-filename-format: #optional the format of the backing file
233 c249ee68 Benoรฎt Canet
#
234 c249ee68 Benoรฎt Canet
# @snapshots: #optional list of VM snapshots
235 c249ee68 Benoรฎt Canet
#
236 c249ee68 Benoรฎt Canet
# Since: 1.3
237 c249ee68 Benoรฎt Canet
#
238 c249ee68 Benoรฎt Canet
##
239 c249ee68 Benoรฎt Canet
240 c249ee68 Benoรฎt Canet
{ 'type': 'ImageInfo',
241 c249ee68 Benoรฎt Canet
  'data': {'filename': 'str', 'format': 'str', '*dirty-flag': 'bool',
242 c249ee68 Benoรฎt Canet
           '*actual-size': 'int', 'virtual-size': 'int',
243 c249ee68 Benoรฎt Canet
           '*cluster-size': 'int', '*encrypted': 'bool',
244 c249ee68 Benoรฎt Canet
           '*backing-filename': 'str', '*full-backing-filename': 'str',
245 c249ee68 Benoรฎt Canet
           '*backing-filename-format': 'str', '*snapshots': ['SnapshotInfo'] } }
246 c249ee68 Benoรฎt Canet
247 c249ee68 Benoรฎt Canet
##
248 1fa9a5e4 Luiz Capitulino
# @StatusInfo:
249 1fa9a5e4 Luiz Capitulino
#
250 1fa9a5e4 Luiz Capitulino
# Information about VCPU run state
251 1fa9a5e4 Luiz Capitulino
#
252 1fa9a5e4 Luiz Capitulino
# @running: true if all VCPUs are runnable, false if not runnable
253 1fa9a5e4 Luiz Capitulino
#
254 1fa9a5e4 Luiz Capitulino
# @singlestep: true if VCPUs are in single-step mode
255 1fa9a5e4 Luiz Capitulino
#
256 1fa9a5e4 Luiz Capitulino
# @status: the virtual machine @RunState
257 1fa9a5e4 Luiz Capitulino
#
258 1fa9a5e4 Luiz Capitulino
# Since:  0.14.0
259 1fa9a5e4 Luiz Capitulino
#
260 1fa9a5e4 Luiz Capitulino
# Notes: @singlestep is enabled through the GDB stub
261 1fa9a5e4 Luiz Capitulino
##
262 1fa9a5e4 Luiz Capitulino
{ 'type': 'StatusInfo',
263 1fa9a5e4 Luiz Capitulino
  'data': {'running': 'bool', 'singlestep': 'bool', 'status': 'RunState'} }
264 1fa9a5e4 Luiz Capitulino
265 1fa9a5e4 Luiz Capitulino
##
266 1fa9a5e4 Luiz Capitulino
# @query-status:
267 1fa9a5e4 Luiz Capitulino
#
268 1fa9a5e4 Luiz Capitulino
# Query the run status of all VCPUs
269 1fa9a5e4 Luiz Capitulino
#
270 1fa9a5e4 Luiz Capitulino
# Returns: @StatusInfo reflecting all VCPUs
271 1fa9a5e4 Luiz Capitulino
#
272 1fa9a5e4 Luiz Capitulino
# Since:  0.14.0
273 1fa9a5e4 Luiz Capitulino
##
274 1fa9a5e4 Luiz Capitulino
{ 'command': 'query-status', 'returns': 'StatusInfo' }
275 1fa9a5e4 Luiz Capitulino
276 efab767e Luiz Capitulino
##
277 efab767e Luiz Capitulino
# @UuidInfo:
278 efab767e Luiz Capitulino
#
279 efab767e Luiz Capitulino
# Guest UUID information.
280 efab767e Luiz Capitulino
#
281 efab767e Luiz Capitulino
# @UUID: the UUID of the guest
282 efab767e Luiz Capitulino
#
283 efab767e Luiz Capitulino
# Since: 0.14.0
284 efab767e Luiz Capitulino
#
285 efab767e Luiz Capitulino
# Notes: If no UUID was specified for the guest, a null UUID is returned.
286 efab767e Luiz Capitulino
##
287 efab767e Luiz Capitulino
{ 'type': 'UuidInfo', 'data': {'UUID': 'str'} }
288 efab767e Luiz Capitulino
289 efab767e Luiz Capitulino
##
290 efab767e Luiz Capitulino
# @query-uuid:
291 efab767e Luiz Capitulino
#
292 efab767e Luiz Capitulino
# Query the guest UUID information.
293 efab767e Luiz Capitulino
#
294 efab767e Luiz Capitulino
# Returns: The @UuidInfo for the guest
295 efab767e Luiz Capitulino
#
296 efab767e Luiz Capitulino
# Since 0.14.0
297 efab767e Luiz Capitulino
##
298 efab767e Luiz Capitulino
{ 'command': 'query-uuid', 'returns': 'UuidInfo' }
299 efab767e Luiz Capitulino
300 c5a415a0 Luiz Capitulino
##
301 c5a415a0 Luiz Capitulino
# @ChardevInfo:
302 c5a415a0 Luiz Capitulino
#
303 c5a415a0 Luiz Capitulino
# Information about a character device.
304 c5a415a0 Luiz Capitulino
#
305 c5a415a0 Luiz Capitulino
# @label: the label of the character device
306 c5a415a0 Luiz Capitulino
#
307 c5a415a0 Luiz Capitulino
# @filename: the filename of the character device
308 c5a415a0 Luiz Capitulino
#
309 c5a415a0 Luiz Capitulino
# Notes: @filename is encoded using the QEMU command line character device
310 c5a415a0 Luiz Capitulino
#        encoding.  See the QEMU man page for details.
311 c5a415a0 Luiz Capitulino
#
312 c5a415a0 Luiz Capitulino
# Since: 0.14.0
313 c5a415a0 Luiz Capitulino
##
314 c5a415a0 Luiz Capitulino
{ 'type': 'ChardevInfo', 'data': {'label': 'str', 'filename': 'str'} }
315 c5a415a0 Luiz Capitulino
316 c5a415a0 Luiz Capitulino
##
317 c5a415a0 Luiz Capitulino
# @query-chardev:
318 c5a415a0 Luiz Capitulino
#
319 c5a415a0 Luiz Capitulino
# Returns information about current character devices.
320 c5a415a0 Luiz Capitulino
#
321 c5a415a0 Luiz Capitulino
# Returns: a list of @ChardevInfo
322 c5a415a0 Luiz Capitulino
#
323 c5a415a0 Luiz Capitulino
# Since: 0.14.0
324 c5a415a0 Luiz Capitulino
##
325 c5a415a0 Luiz Capitulino
{ 'command': 'query-chardev', 'returns': ['ChardevInfo'] }
326 aa9b79bc Luiz Capitulino
327 aa9b79bc Luiz Capitulino
##
328 1f590cf9 Lei Li
# @DataFormat:
329 1f590cf9 Lei Li
#
330 1f590cf9 Lei Li
# An enumeration of data format.
331 1f590cf9 Lei Li
#
332 1f590cf9 Lei Li
# @utf8: The data format is 'utf8'.
333 1f590cf9 Lei Li
#
334 1f590cf9 Lei Li
# @base64: The data format is 'base64'.
335 1f590cf9 Lei Li
#
336 1f590cf9 Lei Li
# Since: 1.4
337 1f590cf9 Lei Li
##
338 1f590cf9 Lei Li
{ 'enum': 'DataFormat'
339 1f590cf9 Lei Li
  'data': [ 'utf8', 'base64' ] }
340 1f590cf9 Lei Li
341 1f590cf9 Lei Li
##
342 1f590cf9 Lei Li
# @memchar-write:
343 1f590cf9 Lei Li
#
344 1f590cf9 Lei Li
# Provide writing interface for memchardev. Write data to char
345 1f590cf9 Lei Li
# device 'memory'.
346 1f590cf9 Lei Li
#
347 1f590cf9 Lei Li
# @device: the name of the memory char device.
348 1f590cf9 Lei Li
#
349 1f590cf9 Lei Li
# @size: the size to write in bytes.
350 1f590cf9 Lei Li
#
351 1f590cf9 Lei Li
# @data: the source data write to memchar.
352 1f590cf9 Lei Li
#
353 1f590cf9 Lei Li
# @format: #optional the format of the data write to chardev 'memory',
354 1f590cf9 Lei Li
#          by default is 'utf8'.
355 1f590cf9 Lei Li
#
356 1f590cf9 Lei Li
# Returns: Nothing on success
357 1f590cf9 Lei Li
#          If @device is not a valid char device, DeviceNotFound
358 1f590cf9 Lei Li
#
359 1f590cf9 Lei Li
# Since: 1.4
360 1f590cf9 Lei Li
##
361 1f590cf9 Lei Li
{ 'command': 'memchar-write',
362 1f590cf9 Lei Li
  'data': {'device': 'str', 'size': 'int', 'data': 'str',
363 1f590cf9 Lei Li
           '*format': 'DataFormat'} }
364 1f590cf9 Lei Li
365 1f590cf9 Lei Li
##
366 49b6d722 Lei Li
# @MemCharRead
367 49b6d722 Lei Li
#
368 49b6d722 Lei Li
# Result of QMP command memchar-read.
369 49b6d722 Lei Li
#
370 49b6d722 Lei Li
# @data: The data read from memchar as string.
371 49b6d722 Lei Li
#
372 49b6d722 Lei Li
# @count: The numbers of bytes read from.
373 49b6d722 Lei Li
#
374 49b6d722 Lei Li
# Since: 1.4
375 49b6d722 Lei Li
##
376 49b6d722 Lei Li
{ 'type': 'MemCharRead',
377 49b6d722 Lei Li
  'data': { 'data': 'str', 'count': 'int' } }
378 49b6d722 Lei Li
379 49b6d722 Lei Li
##
380 49b6d722 Lei Li
# @memchar-read:
381 49b6d722 Lei Li
#
382 49b6d722 Lei Li
# Provide read interface for memchardev. Read from the char
383 49b6d722 Lei Li
# device 'memory' and return the data.
384 49b6d722 Lei Li
#
385 49b6d722 Lei Li
# @device: the name of the memory char device.
386 49b6d722 Lei Li
#
387 49b6d722 Lei Li
# @size: the size to read in bytes.
388 49b6d722 Lei Li
#
389 49b6d722 Lei Li
# @format: #optional the format of the data want to read from
390 49b6d722 Lei Li
#          memchardev, by default is 'utf8'.
391 49b6d722 Lei Li
#
392 49b6d722 Lei Li
# Returns: @MemCharRead
393 49b6d722 Lei Li
#          If @device is not a valid memchr device, DeviceNotFound
394 49b6d722 Lei Li
#
395 49b6d722 Lei Li
# Since: 1.4
396 49b6d722 Lei Li
##
397 49b6d722 Lei Li
{ 'command': 'memchar-read',
398 49b6d722 Lei Li
  'data': {'device': 'str', 'size': 'int', '*format': 'DataFormat'},
399 49b6d722 Lei Li
  'returns': 'MemCharRead' }
400 49b6d722 Lei Li
401 49b6d722 Lei Li
##
402 aa9b79bc Luiz Capitulino
# @CommandInfo:
403 aa9b79bc Luiz Capitulino
#
404 aa9b79bc Luiz Capitulino
# Information about a QMP command
405 aa9b79bc Luiz Capitulino
#
406 aa9b79bc Luiz Capitulino
# @name: The command name
407 aa9b79bc Luiz Capitulino
#
408 aa9b79bc Luiz Capitulino
# Since: 0.14.0
409 aa9b79bc Luiz Capitulino
##
410 aa9b79bc Luiz Capitulino
{ 'type': 'CommandInfo', 'data': {'name': 'str'} }
411 aa9b79bc Luiz Capitulino
412 aa9b79bc Luiz Capitulino
##
413 aa9b79bc Luiz Capitulino
# @query-commands:
414 aa9b79bc Luiz Capitulino
#
415 aa9b79bc Luiz Capitulino
# Return a list of supported QMP commands by this server
416 aa9b79bc Luiz Capitulino
#
417 aa9b79bc Luiz Capitulino
# Returns: A list of @CommandInfo for all supported commands
418 aa9b79bc Luiz Capitulino
#
419 aa9b79bc Luiz Capitulino
# Since: 0.14.0
420 aa9b79bc Luiz Capitulino
##
421 aa9b79bc Luiz Capitulino
{ 'command': 'query-commands', 'returns': ['CommandInfo'] }
422 aa9b79bc Luiz Capitulino
423 7a7f325e Luiz Capitulino
##
424 4860853d Daniel P. Berrange
# @EventInfo:
425 4860853d Daniel P. Berrange
#
426 4860853d Daniel P. Berrange
# Information about a QMP event
427 4860853d Daniel P. Berrange
#
428 4860853d Daniel P. Berrange
# @name: The event name
429 4860853d Daniel P. Berrange
#
430 4860853d Daniel P. Berrange
# Since: 1.2.0
431 4860853d Daniel P. Berrange
##
432 4860853d Daniel P. Berrange
{ 'type': 'EventInfo', 'data': {'name': 'str'} }
433 4860853d Daniel P. Berrange
434 4860853d Daniel P. Berrange
##
435 4860853d Daniel P. Berrange
# @query-events:
436 4860853d Daniel P. Berrange
#
437 4860853d Daniel P. Berrange
# Return a list of supported QMP events by this server
438 4860853d Daniel P. Berrange
#
439 4860853d Daniel P. Berrange
# Returns: A list of @EventInfo for all supported events
440 4860853d Daniel P. Berrange
#
441 4860853d Daniel P. Berrange
# Since: 1.2.0
442 4860853d Daniel P. Berrange
##
443 4860853d Daniel P. Berrange
{ 'command': 'query-events', 'returns': ['EventInfo'] }
444 4860853d Daniel P. Berrange
445 4860853d Daniel P. Berrange
##
446 791e7c82 Luiz Capitulino
# @MigrationStats
447 791e7c82 Luiz Capitulino
#
448 791e7c82 Luiz Capitulino
# Detailed migration status.
449 791e7c82 Luiz Capitulino
#
450 791e7c82 Luiz Capitulino
# @transferred: amount of bytes already transferred to the target VM
451 791e7c82 Luiz Capitulino
#
452 791e7c82 Luiz Capitulino
# @remaining: amount of bytes remaining to be transferred to the target VM
453 791e7c82 Luiz Capitulino
#
454 791e7c82 Luiz Capitulino
# @total: total amount of bytes involved in the migration process
455 791e7c82 Luiz Capitulino
#
456 004d4c10 Orit Wasserman
# @duplicate: number of duplicate pages (since 1.2)
457 004d4c10 Orit Wasserman
#
458 004d4c10 Orit Wasserman
# @normal : number of normal pages (since 1.2)
459 004d4c10 Orit Wasserman
#
460 8d017193 Juan Quintela
# @normal-bytes: number of normal bytes sent (since 1.2)
461 8d017193 Juan Quintela
#
462 8d017193 Juan Quintela
# @dirty-pages-rate: number of pages dirtied by second by the
463 8d017193 Juan Quintela
#        guest (since 1.3)
464 004d4c10 Orit Wasserman
#
465 004d4c10 Orit Wasserman
# Since: 0.14.0
466 791e7c82 Luiz Capitulino
##
467 791e7c82 Luiz Capitulino
{ 'type': 'MigrationStats',
468 d5f8a570 Juan Quintela
  'data': {'transferred': 'int', 'remaining': 'int', 'total': 'int' ,
469 8d017193 Juan Quintela
           'duplicate': 'int', 'normal': 'int', 'normal-bytes': 'int',
470 8d017193 Juan Quintela
           'dirty-pages-rate' : 'int' } }
471 791e7c82 Luiz Capitulino
472 791e7c82 Luiz Capitulino
##
473 f36d55af Orit Wasserman
# @XBZRLECacheStats
474 f36d55af Orit Wasserman
#
475 f36d55af Orit Wasserman
# Detailed XBZRLE migration cache statistics
476 f36d55af Orit Wasserman
#
477 f36d55af Orit Wasserman
# @cache-size: XBZRLE cache size
478 f36d55af Orit Wasserman
#
479 f36d55af Orit Wasserman
# @bytes: amount of bytes already transferred to the target VM
480 f36d55af Orit Wasserman
#
481 f36d55af Orit Wasserman
# @pages: amount of pages transferred to the target VM
482 f36d55af Orit Wasserman
#
483 f36d55af Orit Wasserman
# @cache-miss: number of cache miss
484 f36d55af Orit Wasserman
#
485 f36d55af Orit Wasserman
# @overflow: number of overflows
486 f36d55af Orit Wasserman
#
487 f36d55af Orit Wasserman
# Since: 1.2
488 f36d55af Orit Wasserman
##
489 f36d55af Orit Wasserman
{ 'type': 'XBZRLECacheStats',
490 f36d55af Orit Wasserman
  'data': {'cache-size': 'int', 'bytes': 'int', 'pages': 'int',
491 f36d55af Orit Wasserman
           'cache-miss': 'int', 'overflow': 'int' } }
492 f36d55af Orit Wasserman
493 f36d55af Orit Wasserman
##
494 791e7c82 Luiz Capitulino
# @MigrationInfo
495 791e7c82 Luiz Capitulino
#
496 791e7c82 Luiz Capitulino
# Information about current migration process.
497 791e7c82 Luiz Capitulino
#
498 791e7c82 Luiz Capitulino
# @status: #optional string describing the current migration status.
499 791e7c82 Luiz Capitulino
#          As of 0.14.0 this can be 'active', 'completed', 'failed' or
500 791e7c82 Luiz Capitulino
#          'cancelled'. If this field is not returned, no migration process
501 791e7c82 Luiz Capitulino
#          has been initiated
502 791e7c82 Luiz Capitulino
#
503 d5f8a570 Juan Quintela
# @ram: #optional @MigrationStats containing detailed migration
504 d5f8a570 Juan Quintela
#       status, only returned if status is 'active' or
505 d5f8a570 Juan Quintela
#       'completed'. 'comppleted' (since 1.2)
506 791e7c82 Luiz Capitulino
#
507 791e7c82 Luiz Capitulino
# @disk: #optional @MigrationStats containing detailed disk migration
508 791e7c82 Luiz Capitulino
#        status, only returned if status is 'active' and it is a block
509 791e7c82 Luiz Capitulino
#        migration
510 791e7c82 Luiz Capitulino
#
511 f36d55af Orit Wasserman
# @xbzrle-cache: #optional @XBZRLECacheStats containing detailed XBZRLE
512 f36d55af Orit Wasserman
#                migration statistics, only returned if XBZRLE feature is on and
513 f36d55af Orit Wasserman
#                status is 'active' or 'completed' (since 1.2)
514 f36d55af Orit Wasserman
#
515 7aa939af Juan Quintela
# @total-time: #optional total amount of milliseconds since migration started.
516 7aa939af Juan Quintela
#        If migration has ended, it returns the total migration
517 7aa939af Juan Quintela
#        time. (since 1.2)
518 7aa939af Juan Quintela
#
519 9c5a9fcf Juan Quintela
# @downtime: #optional only present when migration finishes correctly
520 9c5a9fcf Juan Quintela
#        total downtime in milliseconds for the guest.
521 9c5a9fcf Juan Quintela
#        (since 1.3)
522 9c5a9fcf Juan Quintela
#
523 2c52ddf1 Juan Quintela
# @expected-downtime: #optional only present while migration is active
524 2c52ddf1 Juan Quintela
#        expected downtime in milliseconds for the guest in last walk
525 2c52ddf1 Juan Quintela
#        of the dirty bitmap. (since 1.3)
526 2c52ddf1 Juan Quintela
#
527 791e7c82 Luiz Capitulino
# Since: 0.14.0
528 791e7c82 Luiz Capitulino
##
529 791e7c82 Luiz Capitulino
{ 'type': 'MigrationInfo',
530 791e7c82 Luiz Capitulino
  'data': {'*status': 'str', '*ram': 'MigrationStats',
531 f36d55af Orit Wasserman
           '*disk': 'MigrationStats',
532 7aa939af Juan Quintela
           '*xbzrle-cache': 'XBZRLECacheStats',
533 9c5a9fcf Juan Quintela
           '*total-time': 'int',
534 2c52ddf1 Juan Quintela
           '*expected-downtime': 'int',
535 9c5a9fcf Juan Quintela
           '*downtime': 'int'} }
536 791e7c82 Luiz Capitulino
537 791e7c82 Luiz Capitulino
##
538 791e7c82 Luiz Capitulino
# @query-migrate
539 791e7c82 Luiz Capitulino
#
540 791e7c82 Luiz Capitulino
# Returns information about current migration process.
541 791e7c82 Luiz Capitulino
#
542 791e7c82 Luiz Capitulino
# Returns: @MigrationInfo
543 791e7c82 Luiz Capitulino
#
544 791e7c82 Luiz Capitulino
# Since: 0.14.0
545 791e7c82 Luiz Capitulino
##
546 791e7c82 Luiz Capitulino
{ 'command': 'query-migrate', 'returns': 'MigrationInfo' }
547 791e7c82 Luiz Capitulino
548 791e7c82 Luiz Capitulino
##
549 bbf6da32 Orit Wasserman
# @MigrationCapability
550 bbf6da32 Orit Wasserman
#
551 bbf6da32 Orit Wasserman
# Migration capabilities enumeration
552 bbf6da32 Orit Wasserman
#
553 bbf6da32 Orit Wasserman
# @xbzrle: Migration supports xbzrle (Xor Based Zero Run Length Encoding).
554 bbf6da32 Orit Wasserman
#          This feature allows us to minimize migration traffic for certain work
555 bbf6da32 Orit Wasserman
#          loads, by sending compressed difference of the pages
556 bbf6da32 Orit Wasserman
#
557 bbf6da32 Orit Wasserman
# Since: 1.2
558 bbf6da32 Orit Wasserman
##
559 bbf6da32 Orit Wasserman
{ 'enum': 'MigrationCapability',
560 bbf6da32 Orit Wasserman
  'data': ['xbzrle'] }
561 bbf6da32 Orit Wasserman
562 bbf6da32 Orit Wasserman
##
563 bbf6da32 Orit Wasserman
# @MigrationCapabilityStatus
564 bbf6da32 Orit Wasserman
#
565 bbf6da32 Orit Wasserman
# Migration capability information
566 bbf6da32 Orit Wasserman
#
567 bbf6da32 Orit Wasserman
# @capability: capability enum
568 bbf6da32 Orit Wasserman
#
569 bbf6da32 Orit Wasserman
# @state: capability state bool
570 bbf6da32 Orit Wasserman
#
571 bbf6da32 Orit Wasserman
# Since: 1.2
572 bbf6da32 Orit Wasserman
##
573 bbf6da32 Orit Wasserman
{ 'type': 'MigrationCapabilityStatus',
574 bbf6da32 Orit Wasserman
  'data': { 'capability' : 'MigrationCapability', 'state' : 'bool' } }
575 bbf6da32 Orit Wasserman
576 bbf6da32 Orit Wasserman
##
577 00458433 Orit Wasserman
# @migrate-set-capabilities
578 00458433 Orit Wasserman
#
579 00458433 Orit Wasserman
# Enable/Disable the following migration capabilities (like xbzrle)
580 00458433 Orit Wasserman
#
581 00458433 Orit Wasserman
# @capabilities: json array of capability modifications to make
582 00458433 Orit Wasserman
#
583 00458433 Orit Wasserman
# Since: 1.2
584 00458433 Orit Wasserman
##
585 00458433 Orit Wasserman
{ 'command': 'migrate-set-capabilities',
586 00458433 Orit Wasserman
  'data': { 'capabilities': ['MigrationCapabilityStatus'] } }
587 00458433 Orit Wasserman
588 00458433 Orit Wasserman
##
589 bbf6da32 Orit Wasserman
# @query-migrate-capabilities
590 bbf6da32 Orit Wasserman
#
591 bbf6da32 Orit Wasserman
# Returns information about the current migration capabilities status
592 bbf6da32 Orit Wasserman
#
593 bbf6da32 Orit Wasserman
# Returns: @MigrationCapabilitiesStatus
594 bbf6da32 Orit Wasserman
#
595 bbf6da32 Orit Wasserman
# Since: 1.2
596 bbf6da32 Orit Wasserman
##
597 bbf6da32 Orit Wasserman
{ 'command': 'query-migrate-capabilities', 'returns':   ['MigrationCapabilityStatus']}
598 bbf6da32 Orit Wasserman
599 bbf6da32 Orit Wasserman
##
600 e235cec3 Luiz Capitulino
# @MouseInfo:
601 e235cec3 Luiz Capitulino
#
602 e235cec3 Luiz Capitulino
# Information about a mouse device.
603 e235cec3 Luiz Capitulino
#
604 e235cec3 Luiz Capitulino
# @name: the name of the mouse device
605 e235cec3 Luiz Capitulino
#
606 e235cec3 Luiz Capitulino
# @index: the index of the mouse device
607 e235cec3 Luiz Capitulino
#
608 e235cec3 Luiz Capitulino
# @current: true if this device is currently receiving mouse events
609 e235cec3 Luiz Capitulino
#
610 e235cec3 Luiz Capitulino
# @absolute: true if this device supports absolute coordinates as input
611 e235cec3 Luiz Capitulino
#
612 e235cec3 Luiz Capitulino
# Since: 0.14.0
613 e235cec3 Luiz Capitulino
##
614 e235cec3 Luiz Capitulino
{ 'type': 'MouseInfo',
615 e235cec3 Luiz Capitulino
  'data': {'name': 'str', 'index': 'int', 'current': 'bool',
616 e235cec3 Luiz Capitulino
           'absolute': 'bool'} }
617 e235cec3 Luiz Capitulino
618 e235cec3 Luiz Capitulino
##
619 e235cec3 Luiz Capitulino
# @query-mice:
620 e235cec3 Luiz Capitulino
#
621 e235cec3 Luiz Capitulino
# Returns information about each active mouse device
622 e235cec3 Luiz Capitulino
#
623 e235cec3 Luiz Capitulino
# Returns: a list of @MouseInfo for each device
624 e235cec3 Luiz Capitulino
#
625 e235cec3 Luiz Capitulino
# Since: 0.14.0
626 e235cec3 Luiz Capitulino
##
627 e235cec3 Luiz Capitulino
{ 'command': 'query-mice', 'returns': ['MouseInfo'] }
628 e235cec3 Luiz Capitulino
629 e235cec3 Luiz Capitulino
##
630 de0b36b6 Luiz Capitulino
# @CpuInfo:
631 de0b36b6 Luiz Capitulino
#
632 de0b36b6 Luiz Capitulino
# Information about a virtual CPU
633 de0b36b6 Luiz Capitulino
#
634 de0b36b6 Luiz Capitulino
# @CPU: the index of the virtual CPU
635 de0b36b6 Luiz Capitulino
#
636 de0b36b6 Luiz Capitulino
# @current: this only exists for backwards compatible and should be ignored
637 b80e560b Laszlo Ersek
#
638 de0b36b6 Luiz Capitulino
# @halted: true if the virtual CPU is in the halt state.  Halt usually refers
639 de0b36b6 Luiz Capitulino
#          to a processor specific low power mode.
640 de0b36b6 Luiz Capitulino
#
641 de0b36b6 Luiz Capitulino
# @pc: #optional If the target is i386 or x86_64, this is the 64-bit instruction
642 de0b36b6 Luiz Capitulino
#                pointer.
643 de0b36b6 Luiz Capitulino
#                If the target is Sparc, this is the PC component of the
644 de0b36b6 Luiz Capitulino
#                instruction pointer.
645 de0b36b6 Luiz Capitulino
#
646 de0b36b6 Luiz Capitulino
# @nip: #optional If the target is PPC, the instruction pointer
647 de0b36b6 Luiz Capitulino
#
648 de0b36b6 Luiz Capitulino
# @npc: #optional If the target is Sparc, the NPC component of the instruction
649 de0b36b6 Luiz Capitulino
#                 pointer
650 de0b36b6 Luiz Capitulino
#
651 de0b36b6 Luiz Capitulino
# @PC: #optional If the target is MIPS, the instruction pointer
652 de0b36b6 Luiz Capitulino
#
653 de0b36b6 Luiz Capitulino
# @thread_id: ID of the underlying host thread
654 de0b36b6 Luiz Capitulino
#
655 de0b36b6 Luiz Capitulino
# Since: 0.14.0
656 de0b36b6 Luiz Capitulino
#
657 de0b36b6 Luiz Capitulino
# Notes: @halted is a transient state that changes frequently.  By the time the
658 de0b36b6 Luiz Capitulino
#        data is sent to the client, the guest may no longer be halted.
659 de0b36b6 Luiz Capitulino
##
660 de0b36b6 Luiz Capitulino
{ 'type': 'CpuInfo',
661 de0b36b6 Luiz Capitulino
  'data': {'CPU': 'int', 'current': 'bool', 'halted': 'bool', '*pc': 'int',
662 de0b36b6 Luiz Capitulino
           '*nip': 'int', '*npc': 'int', '*PC': 'int', 'thread_id': 'int'} }
663 de0b36b6 Luiz Capitulino
664 de0b36b6 Luiz Capitulino
##
665 de0b36b6 Luiz Capitulino
# @query-cpus:
666 de0b36b6 Luiz Capitulino
#
667 de0b36b6 Luiz Capitulino
# Returns a list of information about each virtual CPU.
668 de0b36b6 Luiz Capitulino
#
669 de0b36b6 Luiz Capitulino
# Returns: a list of @CpuInfo for each virtual CPU
670 de0b36b6 Luiz Capitulino
#
671 de0b36b6 Luiz Capitulino
# Since: 0.14.0
672 de0b36b6 Luiz Capitulino
##
673 de0b36b6 Luiz Capitulino
{ 'command': 'query-cpus', 'returns': ['CpuInfo'] }
674 de0b36b6 Luiz Capitulino
675 de0b36b6 Luiz Capitulino
##
676 b2023818 Luiz Capitulino
# @BlockDeviceInfo:
677 b2023818 Luiz Capitulino
#
678 b2023818 Luiz Capitulino
# Information about the backing device for a block device.
679 b2023818 Luiz Capitulino
#
680 b2023818 Luiz Capitulino
# @file: the filename of the backing device
681 b2023818 Luiz Capitulino
#
682 b2023818 Luiz Capitulino
# @ro: true if the backing device was open read-only
683 b2023818 Luiz Capitulino
#
684 b2023818 Luiz Capitulino
# @drv: the name of the block format used to open the backing device. As of
685 b2023818 Luiz Capitulino
#       0.14.0 this can be: 'blkdebug', 'bochs', 'cloop', 'cow', 'dmg',
686 b2023818 Luiz Capitulino
#       'file', 'file', 'ftp', 'ftps', 'host_cdrom', 'host_device',
687 b2023818 Luiz Capitulino
#       'host_floppy', 'http', 'https', 'nbd', 'parallels', 'qcow',
688 b2023818 Luiz Capitulino
#       'qcow2', 'raw', 'tftp', 'vdi', 'vmdk', 'vpc', 'vvfat'
689 b2023818 Luiz Capitulino
#
690 b2023818 Luiz Capitulino
# @backing_file: #optional the name of the backing file (for copy-on-write)
691 b2023818 Luiz Capitulino
#
692 2e3e3317 Benoรฎt Canet
# @backing_file_depth: number of files in the backing file chain (since: 1.2)
693 2e3e3317 Benoรฎt Canet
#
694 b2023818 Luiz Capitulino
# @encrypted: true if the backing device is encrypted
695 b2023818 Luiz Capitulino
#
696 c75a1a8a Luiz Capitulino
# @encryption_key_missing: true if the backing device is encrypted but an
697 c75a1a8a Luiz Capitulino
#                          valid encryption key is missing
698 c75a1a8a Luiz Capitulino
#
699 727f005e Zhi Yong Wu
# @bps: total throughput limit in bytes per second is specified
700 727f005e Zhi Yong Wu
#
701 727f005e Zhi Yong Wu
# @bps_rd: read throughput limit in bytes per second is specified
702 727f005e Zhi Yong Wu
#
703 727f005e Zhi Yong Wu
# @bps_wr: write throughput limit in bytes per second is specified
704 727f005e Zhi Yong Wu
#
705 727f005e Zhi Yong Wu
# @iops: total I/O operations per second is specified
706 727f005e Zhi Yong Wu
#
707 727f005e Zhi Yong Wu
# @iops_rd: read I/O operations per second is specified
708 727f005e Zhi Yong Wu
#
709 727f005e Zhi Yong Wu
# @iops_wr: write I/O operations per second is specified
710 727f005e Zhi Yong Wu
#
711 b2023818 Luiz Capitulino
# Since: 0.14.0
712 b2023818 Luiz Capitulino
#
713 b2023818 Luiz Capitulino
# Notes: This interface is only found in @BlockInfo.
714 b2023818 Luiz Capitulino
##
715 b2023818 Luiz Capitulino
{ 'type': 'BlockDeviceInfo',
716 b2023818 Luiz Capitulino
  'data': { 'file': 'str', 'ro': 'bool', 'drv': 'str',
717 2e3e3317 Benoรฎt Canet
            '*backing_file': 'str', 'backing_file_depth': 'int',
718 c75a1a8a Luiz Capitulino
            'encrypted': 'bool', 'encryption_key_missing': 'bool',
719 c75a1a8a Luiz Capitulino
            'bps': 'int', 'bps_rd': 'int', 'bps_wr': 'int',
720 c75a1a8a Luiz Capitulino
            'iops': 'int', 'iops_rd': 'int', 'iops_wr': 'int'} }
721 b2023818 Luiz Capitulino
722 b2023818 Luiz Capitulino
##
723 b2023818 Luiz Capitulino
# @BlockDeviceIoStatus:
724 b2023818 Luiz Capitulino
#
725 b2023818 Luiz Capitulino
# An enumeration of block device I/O status.
726 b2023818 Luiz Capitulino
#
727 b2023818 Luiz Capitulino
# @ok: The last I/O operation has succeeded
728 b2023818 Luiz Capitulino
#
729 b2023818 Luiz Capitulino
# @failed: The last I/O operation has failed
730 b2023818 Luiz Capitulino
#
731 b2023818 Luiz Capitulino
# @nospace: The last I/O operation has failed due to a no-space condition
732 b2023818 Luiz Capitulino
#
733 b2023818 Luiz Capitulino
# Since: 1.0
734 b2023818 Luiz Capitulino
##
735 b2023818 Luiz Capitulino
{ 'enum': 'BlockDeviceIoStatus', 'data': [ 'ok', 'failed', 'nospace' ] }
736 b2023818 Luiz Capitulino
737 b2023818 Luiz Capitulino
##
738 b9a9b3a4 Paolo Bonzini
# @BlockDirtyInfo:
739 b9a9b3a4 Paolo Bonzini
#
740 b9a9b3a4 Paolo Bonzini
# Block dirty bitmap information.
741 b9a9b3a4 Paolo Bonzini
#
742 b9a9b3a4 Paolo Bonzini
# @count: number of dirty bytes according to the dirty bitmap
743 b9a9b3a4 Paolo Bonzini
#
744 50717e94 Paolo Bonzini
# @granularity: granularity of the dirty bitmap in bytes (since 1.4)
745 50717e94 Paolo Bonzini
#
746 b9a9b3a4 Paolo Bonzini
# Since: 1.3
747 b9a9b3a4 Paolo Bonzini
##
748 b9a9b3a4 Paolo Bonzini
{ 'type': 'BlockDirtyInfo',
749 50717e94 Paolo Bonzini
  'data': {'count': 'int', 'granularity': 'int'} }
750 b9a9b3a4 Paolo Bonzini
751 b9a9b3a4 Paolo Bonzini
##
752 b2023818 Luiz Capitulino
# @BlockInfo:
753 b2023818 Luiz Capitulino
#
754 b2023818 Luiz Capitulino
# Block device information.  This structure describes a virtual device and
755 b2023818 Luiz Capitulino
# the backing device associated with it.
756 b2023818 Luiz Capitulino
#
757 b2023818 Luiz Capitulino
# @device: The device name associated with the virtual device.
758 b2023818 Luiz Capitulino
#
759 b2023818 Luiz Capitulino
# @type: This field is returned only for compatibility reasons, it should
760 b2023818 Luiz Capitulino
#        not be used (always returns 'unknown')
761 b2023818 Luiz Capitulino
#
762 b2023818 Luiz Capitulino
# @removable: True if the device supports removable media.
763 b2023818 Luiz Capitulino
#
764 b2023818 Luiz Capitulino
# @locked: True if the guest has locked this device from having its media
765 b2023818 Luiz Capitulino
#          removed
766 b2023818 Luiz Capitulino
#
767 b2023818 Luiz Capitulino
# @tray_open: #optional True if the device has a tray and it is open
768 b2023818 Luiz Capitulino
#             (only present if removable is true)
769 b2023818 Luiz Capitulino
#
770 b9a9b3a4 Paolo Bonzini
# @dirty: #optional dirty bitmap information (only present if the dirty
771 b9a9b3a4 Paolo Bonzini
#         bitmap is enabled)
772 b9a9b3a4 Paolo Bonzini
#
773 b2023818 Luiz Capitulino
# @io-status: #optional @BlockDeviceIoStatus. Only present if the device
774 b2023818 Luiz Capitulino
#             supports it and the VM is configured to stop on errors
775 b2023818 Luiz Capitulino
#
776 b2023818 Luiz Capitulino
# @inserted: #optional @BlockDeviceInfo describing the device if media is
777 b2023818 Luiz Capitulino
#            present
778 b2023818 Luiz Capitulino
#
779 b2023818 Luiz Capitulino
# Since:  0.14.0
780 b2023818 Luiz Capitulino
##
781 b2023818 Luiz Capitulino
{ 'type': 'BlockInfo',
782 b2023818 Luiz Capitulino
  'data': {'device': 'str', 'type': 'str', 'removable': 'bool',
783 b2023818 Luiz Capitulino
           'locked': 'bool', '*inserted': 'BlockDeviceInfo',
784 b9a9b3a4 Paolo Bonzini
           '*tray_open': 'bool', '*io-status': 'BlockDeviceIoStatus',
785 b9a9b3a4 Paolo Bonzini
           '*dirty': 'BlockDirtyInfo' } }
786 b2023818 Luiz Capitulino
787 b2023818 Luiz Capitulino
##
788 b2023818 Luiz Capitulino
# @query-block:
789 b2023818 Luiz Capitulino
#
790 b2023818 Luiz Capitulino
# Get a list of BlockInfo for all virtual block devices.
791 b2023818 Luiz Capitulino
#
792 b2023818 Luiz Capitulino
# Returns: a list of @BlockInfo describing each virtual block device
793 b2023818 Luiz Capitulino
#
794 b2023818 Luiz Capitulino
# Since: 0.14.0
795 b2023818 Luiz Capitulino
##
796 b2023818 Luiz Capitulino
{ 'command': 'query-block', 'returns': ['BlockInfo'] }
797 b2023818 Luiz Capitulino
798 b2023818 Luiz Capitulino
##
799 f11f57e4 Luiz Capitulino
# @BlockDeviceStats:
800 f11f57e4 Luiz Capitulino
#
801 f11f57e4 Luiz Capitulino
# Statistics of a virtual block device or a block backing device.
802 f11f57e4 Luiz Capitulino
#
803 f11f57e4 Luiz Capitulino
# @rd_bytes:      The number of bytes read by the device.
804 f11f57e4 Luiz Capitulino
#
805 f11f57e4 Luiz Capitulino
# @wr_bytes:      The number of bytes written by the device.
806 f11f57e4 Luiz Capitulino
#
807 f11f57e4 Luiz Capitulino
# @rd_operations: The number of read operations performed by the device.
808 f11f57e4 Luiz Capitulino
#
809 f11f57e4 Luiz Capitulino
# @wr_operations: The number of write operations performed by the device.
810 f11f57e4 Luiz Capitulino
#
811 f11f57e4 Luiz Capitulino
# @flush_operations: The number of cache flush operations performed by the
812 f11f57e4 Luiz Capitulino
#                    device (since 0.15.0)
813 f11f57e4 Luiz Capitulino
#
814 f11f57e4 Luiz Capitulino
# @flush_total_time_ns: Total time spend on cache flushes in nano-seconds
815 f11f57e4 Luiz Capitulino
#                       (since 0.15.0).
816 f11f57e4 Luiz Capitulino
#
817 f11f57e4 Luiz Capitulino
# @wr_total_time_ns: Total time spend on writes in nano-seconds (since 0.15.0).
818 f11f57e4 Luiz Capitulino
#
819 f11f57e4 Luiz Capitulino
# @rd_total_time_ns: Total_time_spend on reads in nano-seconds (since 0.15.0).
820 f11f57e4 Luiz Capitulino
#
821 f11f57e4 Luiz Capitulino
# @wr_highest_offset: The offset after the greatest byte written to the
822 f11f57e4 Luiz Capitulino
#                     device.  The intended use of this information is for
823 f11f57e4 Luiz Capitulino
#                     growable sparse files (like qcow2) that are used on top
824 f11f57e4 Luiz Capitulino
#                     of a physical device.
825 f11f57e4 Luiz Capitulino
#
826 f11f57e4 Luiz Capitulino
# Since: 0.14.0
827 f11f57e4 Luiz Capitulino
##
828 f11f57e4 Luiz Capitulino
{ 'type': 'BlockDeviceStats',
829 f11f57e4 Luiz Capitulino
  'data': {'rd_bytes': 'int', 'wr_bytes': 'int', 'rd_operations': 'int',
830 f11f57e4 Luiz Capitulino
           'wr_operations': 'int', 'flush_operations': 'int',
831 f11f57e4 Luiz Capitulino
           'flush_total_time_ns': 'int', 'wr_total_time_ns': 'int',
832 f11f57e4 Luiz Capitulino
           'rd_total_time_ns': 'int', 'wr_highest_offset': 'int' } }
833 f11f57e4 Luiz Capitulino
834 f11f57e4 Luiz Capitulino
##
835 f11f57e4 Luiz Capitulino
# @BlockStats:
836 f11f57e4 Luiz Capitulino
#
837 f11f57e4 Luiz Capitulino
# Statistics of a virtual block device or a block backing device.
838 f11f57e4 Luiz Capitulino
#
839 f11f57e4 Luiz Capitulino
# @device: #optional If the stats are for a virtual block device, the name
840 f11f57e4 Luiz Capitulino
#          corresponding to the virtual block device.
841 f11f57e4 Luiz Capitulino
#
842 f11f57e4 Luiz Capitulino
# @stats:  A @BlockDeviceStats for the device.
843 f11f57e4 Luiz Capitulino
#
844 f11f57e4 Luiz Capitulino
# @parent: #optional This may point to the backing block device if this is a
845 f11f57e4 Luiz Capitulino
#          a virtual block device.  If it's a backing block, this will point
846 f11f57e4 Luiz Capitulino
#          to the backing file is one is present.
847 f11f57e4 Luiz Capitulino
#
848 f11f57e4 Luiz Capitulino
# Since: 0.14.0
849 f11f57e4 Luiz Capitulino
##
850 f11f57e4 Luiz Capitulino
{ 'type': 'BlockStats',
851 f11f57e4 Luiz Capitulino
  'data': {'*device': 'str', 'stats': 'BlockDeviceStats',
852 f11f57e4 Luiz Capitulino
           '*parent': 'BlockStats'} }
853 f11f57e4 Luiz Capitulino
854 f11f57e4 Luiz Capitulino
##
855 f11f57e4 Luiz Capitulino
# @query-blockstats:
856 f11f57e4 Luiz Capitulino
#
857 f11f57e4 Luiz Capitulino
# Query the @BlockStats for all virtual block devices.
858 f11f57e4 Luiz Capitulino
#
859 f11f57e4 Luiz Capitulino
# Returns: A list of @BlockStats for each virtual block devices.
860 f11f57e4 Luiz Capitulino
#
861 f11f57e4 Luiz Capitulino
# Since: 0.14.0
862 f11f57e4 Luiz Capitulino
##
863 f11f57e4 Luiz Capitulino
{ 'command': 'query-blockstats', 'returns': ['BlockStats'] }
864 f11f57e4 Luiz Capitulino
865 f11f57e4 Luiz Capitulino
##
866 2b54aa87 Luiz Capitulino
# @VncClientInfo:
867 2b54aa87 Luiz Capitulino
#
868 2b54aa87 Luiz Capitulino
# Information about a connected VNC client.
869 2b54aa87 Luiz Capitulino
#
870 2b54aa87 Luiz Capitulino
# @host: The host name of the client.  QEMU tries to resolve this to a DNS name
871 2b54aa87 Luiz Capitulino
#        when possible.
872 2b54aa87 Luiz Capitulino
#
873 2b54aa87 Luiz Capitulino
# @family: 'ipv6' if the client is connected via IPv6 and TCP
874 2b54aa87 Luiz Capitulino
#          'ipv4' if the client is connected via IPv4 and TCP
875 2b54aa87 Luiz Capitulino
#          'unix' if the client is connected via a unix domain socket
876 2b54aa87 Luiz Capitulino
#          'unknown' otherwise
877 2b54aa87 Luiz Capitulino
#
878 2b54aa87 Luiz Capitulino
# @service: The service name of the client's port.  This may depends on the
879 2b54aa87 Luiz Capitulino
#           host system's service database so symbolic names should not be
880 2b54aa87 Luiz Capitulino
#           relied on.
881 2b54aa87 Luiz Capitulino
#
882 2b54aa87 Luiz Capitulino
# @x509_dname: #optional If x509 authentication is in use, the Distinguished
883 2b54aa87 Luiz Capitulino
#              Name of the client.
884 2b54aa87 Luiz Capitulino
#
885 2b54aa87 Luiz Capitulino
# @sasl_username: #optional If SASL authentication is in use, the SASL username
886 2b54aa87 Luiz Capitulino
#                 used for authentication.
887 2b54aa87 Luiz Capitulino
#
888 2b54aa87 Luiz Capitulino
# Since: 0.14.0
889 2b54aa87 Luiz Capitulino
##
890 2b54aa87 Luiz Capitulino
{ 'type': 'VncClientInfo',
891 2b54aa87 Luiz Capitulino
  'data': {'host': 'str', 'family': 'str', 'service': 'str',
892 2b54aa87 Luiz Capitulino
           '*x509_dname': 'str', '*sasl_username': 'str'} }
893 2b54aa87 Luiz Capitulino
894 2b54aa87 Luiz Capitulino
##
895 2b54aa87 Luiz Capitulino
# @VncInfo:
896 2b54aa87 Luiz Capitulino
#
897 2b54aa87 Luiz Capitulino
# Information about the VNC session.
898 2b54aa87 Luiz Capitulino
#
899 2b54aa87 Luiz Capitulino
# @enabled: true if the VNC server is enabled, false otherwise
900 2b54aa87 Luiz Capitulino
#
901 2b54aa87 Luiz Capitulino
# @host: #optional The hostname the VNC server is bound to.  This depends on
902 2b54aa87 Luiz Capitulino
#        the name resolution on the host and may be an IP address.
903 2b54aa87 Luiz Capitulino
#
904 2b54aa87 Luiz Capitulino
# @family: #optional 'ipv6' if the host is listening for IPv6 connections
905 2b54aa87 Luiz Capitulino
#                    'ipv4' if the host is listening for IPv4 connections
906 2b54aa87 Luiz Capitulino
#                    'unix' if the host is listening on a unix domain socket
907 2b54aa87 Luiz Capitulino
#                    'unknown' otherwise
908 2b54aa87 Luiz Capitulino
#
909 2b54aa87 Luiz Capitulino
# @service: #optional The service name of the server's port.  This may depends
910 2b54aa87 Luiz Capitulino
#           on the host system's service database so symbolic names should not
911 2b54aa87 Luiz Capitulino
#           be relied on.
912 2b54aa87 Luiz Capitulino
#
913 2b54aa87 Luiz Capitulino
# @auth: #optional the current authentication type used by the server
914 2b54aa87 Luiz Capitulino
#        'none' if no authentication is being used
915 2b54aa87 Luiz Capitulino
#        'vnc' if VNC authentication is being used
916 2b54aa87 Luiz Capitulino
#        'vencrypt+plain' if VEncrypt is used with plain text authentication
917 2b54aa87 Luiz Capitulino
#        'vencrypt+tls+none' if VEncrypt is used with TLS and no authentication
918 2b54aa87 Luiz Capitulino
#        'vencrypt+tls+vnc' if VEncrypt is used with TLS and VNC authentication
919 2b54aa87 Luiz Capitulino
#        'vencrypt+tls+plain' if VEncrypt is used with TLS and plain text auth
920 2b54aa87 Luiz Capitulino
#        'vencrypt+x509+none' if VEncrypt is used with x509 and no auth
921 2b54aa87 Luiz Capitulino
#        'vencrypt+x509+vnc' if VEncrypt is used with x509 and VNC auth
922 2b54aa87 Luiz Capitulino
#        'vencrypt+x509+plain' if VEncrypt is used with x509 and plain text auth
923 2b54aa87 Luiz Capitulino
#        'vencrypt+tls+sasl' if VEncrypt is used with TLS and SASL auth
924 2b54aa87 Luiz Capitulino
#        'vencrypt+x509+sasl' if VEncrypt is used with x509 and SASL auth
925 2b54aa87 Luiz Capitulino
#
926 2b54aa87 Luiz Capitulino
# @clients: a list of @VncClientInfo of all currently connected clients
927 2b54aa87 Luiz Capitulino
#
928 2b54aa87 Luiz Capitulino
# Since: 0.14.0
929 2b54aa87 Luiz Capitulino
##
930 2b54aa87 Luiz Capitulino
{ 'type': 'VncInfo',
931 2b54aa87 Luiz Capitulino
  'data': {'enabled': 'bool', '*host': 'str', '*family': 'str',
932 2b54aa87 Luiz Capitulino
           '*service': 'str', '*auth': 'str', '*clients': ['VncClientInfo']} }
933 2b54aa87 Luiz Capitulino
934 2b54aa87 Luiz Capitulino
##
935 2b54aa87 Luiz Capitulino
# @query-vnc:
936 2b54aa87 Luiz Capitulino
#
937 2b54aa87 Luiz Capitulino
# Returns information about the current VNC server
938 2b54aa87 Luiz Capitulino
#
939 2b54aa87 Luiz Capitulino
# Returns: @VncInfo
940 2b54aa87 Luiz Capitulino
#
941 2b54aa87 Luiz Capitulino
# Since: 0.14.0
942 2b54aa87 Luiz Capitulino
##
943 2b54aa87 Luiz Capitulino
{ 'command': 'query-vnc', 'returns': 'VncInfo' }
944 2b54aa87 Luiz Capitulino
945 2b54aa87 Luiz Capitulino
##
946 d1f29646 Luiz Capitulino
# @SpiceChannel
947 d1f29646 Luiz Capitulino
#
948 d1f29646 Luiz Capitulino
# Information about a SPICE client channel.
949 d1f29646 Luiz Capitulino
#
950 d1f29646 Luiz Capitulino
# @host: The host name of the client.  QEMU tries to resolve this to a DNS name
951 d1f29646 Luiz Capitulino
#        when possible.
952 d1f29646 Luiz Capitulino
#
953 d1f29646 Luiz Capitulino
# @family: 'ipv6' if the client is connected via IPv6 and TCP
954 d1f29646 Luiz Capitulino
#          'ipv4' if the client is connected via IPv4 and TCP
955 d1f29646 Luiz Capitulino
#          'unix' if the client is connected via a unix domain socket
956 d1f29646 Luiz Capitulino
#          'unknown' otherwise
957 d1f29646 Luiz Capitulino
#
958 d1f29646 Luiz Capitulino
# @port: The client's port number.
959 d1f29646 Luiz Capitulino
#
960 d1f29646 Luiz Capitulino
# @connection-id: SPICE connection id number.  All channels with the same id
961 d1f29646 Luiz Capitulino
#                 belong to the same SPICE session.
962 d1f29646 Luiz Capitulino
#
963 419e1bdf Alon Levy
# @connection-type: SPICE channel type number.  "1" is the main control
964 419e1bdf Alon Levy
#                   channel, filter for this one if you want to track spice
965 419e1bdf Alon Levy
#                   sessions only
966 d1f29646 Luiz Capitulino
#
967 419e1bdf Alon Levy
# @channel-id: SPICE channel ID number.  Usually "0", might be different when
968 419e1bdf Alon Levy
#              multiple channels of the same type exist, such as multiple
969 d1f29646 Luiz Capitulino
#              display channels in a multihead setup
970 d1f29646 Luiz Capitulino
#
971 d1f29646 Luiz Capitulino
# @tls: true if the channel is encrypted, false otherwise.
972 d1f29646 Luiz Capitulino
#
973 d1f29646 Luiz Capitulino
# Since: 0.14.0
974 d1f29646 Luiz Capitulino
##
975 d1f29646 Luiz Capitulino
{ 'type': 'SpiceChannel',
976 d1f29646 Luiz Capitulino
  'data': {'host': 'str', 'family': 'str', 'port': 'str',
977 d1f29646 Luiz Capitulino
           'connection-id': 'int', 'channel-type': 'int', 'channel-id': 'int',
978 d1f29646 Luiz Capitulino
           'tls': 'bool'} }
979 d1f29646 Luiz Capitulino
980 d1f29646 Luiz Capitulino
##
981 4efee029 Alon Levy
# @SpiceQueryMouseMode
982 4efee029 Alon Levy
#
983 6932a69b Lei Li
# An enumeration of Spice mouse states.
984 4efee029 Alon Levy
#
985 4efee029 Alon Levy
# @client: Mouse cursor position is determined by the client.
986 4efee029 Alon Levy
#
987 4efee029 Alon Levy
# @server: Mouse cursor position is determined by the server.
988 4efee029 Alon Levy
#
989 4efee029 Alon Levy
# @unknown: No information is available about mouse mode used by
990 4efee029 Alon Levy
#           the spice server.
991 4efee029 Alon Levy
#
992 4efee029 Alon Levy
# Note: spice/enums.h has a SpiceMouseMode already, hence the name.
993 4efee029 Alon Levy
#
994 4efee029 Alon Levy
# Since: 1.1
995 4efee029 Alon Levy
##
996 4efee029 Alon Levy
{ 'enum': 'SpiceQueryMouseMode',
997 4efee029 Alon Levy
  'data': [ 'client', 'server', 'unknown' ] }
998 4efee029 Alon Levy
999 4efee029 Alon Levy
##
1000 d1f29646 Luiz Capitulino
# @SpiceInfo
1001 d1f29646 Luiz Capitulino
#
1002 d1f29646 Luiz Capitulino
# Information about the SPICE session.
1003 b80e560b Laszlo Ersek
#
1004 d1f29646 Luiz Capitulino
# @enabled: true if the SPICE server is enabled, false otherwise
1005 d1f29646 Luiz Capitulino
#
1006 61c4efe2 Yonit Halperin
# @migrated: true if the last guest migration completed and spice
1007 61c4efe2 Yonit Halperin
#            migration had completed as well. false otherwise.
1008 61c4efe2 Yonit Halperin
#
1009 d1f29646 Luiz Capitulino
# @host: #optional The hostname the SPICE server is bound to.  This depends on
1010 d1f29646 Luiz Capitulino
#        the name resolution on the host and may be an IP address.
1011 d1f29646 Luiz Capitulino
#
1012 d1f29646 Luiz Capitulino
# @port: #optional The SPICE server's port number.
1013 d1f29646 Luiz Capitulino
#
1014 d1f29646 Luiz Capitulino
# @compiled-version: #optional SPICE server version.
1015 d1f29646 Luiz Capitulino
#
1016 d1f29646 Luiz Capitulino
# @tls-port: #optional The SPICE server's TLS port number.
1017 d1f29646 Luiz Capitulino
#
1018 d1f29646 Luiz Capitulino
# @auth: #optional the current authentication type used by the server
1019 419e1bdf Alon Levy
#        'none'  if no authentication is being used
1020 419e1bdf Alon Levy
#        'spice' uses SASL or direct TLS authentication, depending on command
1021 419e1bdf Alon Levy
#                line options
1022 d1f29646 Luiz Capitulino
#
1023 4efee029 Alon Levy
# @mouse-mode: The mode in which the mouse cursor is displayed currently. Can
1024 4efee029 Alon Levy
#              be determined by the client or the server, or unknown if spice
1025 4efee029 Alon Levy
#              server doesn't provide this information.
1026 4efee029 Alon Levy
#
1027 4efee029 Alon Levy
#              Since: 1.1
1028 4efee029 Alon Levy
#
1029 d1f29646 Luiz Capitulino
# @channels: a list of @SpiceChannel for each active spice channel
1030 d1f29646 Luiz Capitulino
#
1031 d1f29646 Luiz Capitulino
# Since: 0.14.0
1032 d1f29646 Luiz Capitulino
##
1033 d1f29646 Luiz Capitulino
{ 'type': 'SpiceInfo',
1034 61c4efe2 Yonit Halperin
  'data': {'enabled': 'bool', 'migrated': 'bool', '*host': 'str', '*port': 'int',
1035 d1f29646 Luiz Capitulino
           '*tls-port': 'int', '*auth': 'str', '*compiled-version': 'str',
1036 4efee029 Alon Levy
           'mouse-mode': 'SpiceQueryMouseMode', '*channels': ['SpiceChannel']} }
1037 d1f29646 Luiz Capitulino
1038 d1f29646 Luiz Capitulino
##
1039 d1f29646 Luiz Capitulino
# @query-spice
1040 d1f29646 Luiz Capitulino
#
1041 d1f29646 Luiz Capitulino
# Returns information about the current SPICE server
1042 d1f29646 Luiz Capitulino
#
1043 d1f29646 Luiz Capitulino
# Returns: @SpiceInfo
1044 d1f29646 Luiz Capitulino
#
1045 d1f29646 Luiz Capitulino
# Since: 0.14.0
1046 d1f29646 Luiz Capitulino
##
1047 d1f29646 Luiz Capitulino
{ 'command': 'query-spice', 'returns': 'SpiceInfo' }
1048 d1f29646 Luiz Capitulino
1049 d1f29646 Luiz Capitulino
##
1050 96637bcd Luiz Capitulino
# @BalloonInfo:
1051 96637bcd Luiz Capitulino
#
1052 96637bcd Luiz Capitulino
# Information about the guest balloon device.
1053 96637bcd Luiz Capitulino
#
1054 96637bcd Luiz Capitulino
# @actual: the number of bytes the balloon currently contains
1055 96637bcd Luiz Capitulino
#
1056 96637bcd Luiz Capitulino
# Since: 0.14.0
1057 96637bcd Luiz Capitulino
#
1058 96637bcd Luiz Capitulino
##
1059 01ceb97e Luiz Capitulino
{ 'type': 'BalloonInfo', 'data': {'actual': 'int' } }
1060 96637bcd Luiz Capitulino
1061 96637bcd Luiz Capitulino
##
1062 96637bcd Luiz Capitulino
# @query-balloon:
1063 96637bcd Luiz Capitulino
#
1064 96637bcd Luiz Capitulino
# Return information about the balloon device.
1065 96637bcd Luiz Capitulino
#
1066 96637bcd Luiz Capitulino
# Returns: @BalloonInfo on success
1067 96637bcd Luiz Capitulino
#          If the balloon driver is enabled but not functional because the KVM
1068 96637bcd Luiz Capitulino
#          kernel module cannot support it, KvmMissingCap
1069 96637bcd Luiz Capitulino
#          If no balloon device is present, DeviceNotActive
1070 96637bcd Luiz Capitulino
#
1071 96637bcd Luiz Capitulino
# Since: 0.14.0
1072 96637bcd Luiz Capitulino
##
1073 96637bcd Luiz Capitulino
{ 'command': 'query-balloon', 'returns': 'BalloonInfo' }
1074 96637bcd Luiz Capitulino
1075 96637bcd Luiz Capitulino
##
1076 79627472 Luiz Capitulino
# @PciMemoryRange:
1077 79627472 Luiz Capitulino
#
1078 79627472 Luiz Capitulino
# A PCI device memory region
1079 79627472 Luiz Capitulino
#
1080 79627472 Luiz Capitulino
# @base: the starting address (guest physical)
1081 79627472 Luiz Capitulino
#
1082 79627472 Luiz Capitulino
# @limit: the ending address (guest physical)
1083 79627472 Luiz Capitulino
#
1084 79627472 Luiz Capitulino
# Since: 0.14.0
1085 79627472 Luiz Capitulino
##
1086 79627472 Luiz Capitulino
{ 'type': 'PciMemoryRange', 'data': {'base': 'int', 'limit': 'int'} }
1087 79627472 Luiz Capitulino
1088 79627472 Luiz Capitulino
##
1089 79627472 Luiz Capitulino
# @PciMemoryRegion
1090 79627472 Luiz Capitulino
#
1091 79627472 Luiz Capitulino
# Information about a PCI device I/O region.
1092 79627472 Luiz Capitulino
#
1093 79627472 Luiz Capitulino
# @bar: the index of the Base Address Register for this region
1094 79627472 Luiz Capitulino
#
1095 79627472 Luiz Capitulino
# @type: 'io' if the region is a PIO region
1096 79627472 Luiz Capitulino
#        'memory' if the region is a MMIO region
1097 79627472 Luiz Capitulino
#
1098 79627472 Luiz Capitulino
# @prefetch: #optional if @type is 'memory', true if the memory is prefetchable
1099 79627472 Luiz Capitulino
#
1100 79627472 Luiz Capitulino
# @mem_type_64: #optional if @type is 'memory', true if the BAR is 64-bit
1101 79627472 Luiz Capitulino
#
1102 79627472 Luiz Capitulino
# Since: 0.14.0
1103 79627472 Luiz Capitulino
##
1104 79627472 Luiz Capitulino
{ 'type': 'PciMemoryRegion',
1105 79627472 Luiz Capitulino
  'data': {'bar': 'int', 'type': 'str', 'address': 'int', 'size': 'int',
1106 79627472 Luiz Capitulino
           '*prefetch': 'bool', '*mem_type_64': 'bool' } }
1107 79627472 Luiz Capitulino
1108 79627472 Luiz Capitulino
##
1109 79627472 Luiz Capitulino
# @PciBridgeInfo:
1110 79627472 Luiz Capitulino
#
1111 79627472 Luiz Capitulino
# Information about a PCI Bridge device
1112 79627472 Luiz Capitulino
#
1113 79627472 Luiz Capitulino
# @bus.number: primary bus interface number.  This should be the number of the
1114 79627472 Luiz Capitulino
#              bus the device resides on.
1115 79627472 Luiz Capitulino
#
1116 79627472 Luiz Capitulino
# @bus.secondary: secondary bus interface number.  This is the number of the
1117 79627472 Luiz Capitulino
#                 main bus for the bridge
1118 79627472 Luiz Capitulino
#
1119 79627472 Luiz Capitulino
# @bus.subordinate: This is the highest number bus that resides below the
1120 79627472 Luiz Capitulino
#                   bridge.
1121 79627472 Luiz Capitulino
#
1122 79627472 Luiz Capitulino
# @bus.io_range: The PIO range for all devices on this bridge
1123 79627472 Luiz Capitulino
#
1124 79627472 Luiz Capitulino
# @bus.memory_range: The MMIO range for all devices on this bridge
1125 79627472 Luiz Capitulino
#
1126 79627472 Luiz Capitulino
# @bus.prefetchable_range: The range of prefetchable MMIO for all devices on
1127 79627472 Luiz Capitulino
#                          this bridge
1128 79627472 Luiz Capitulino
#
1129 79627472 Luiz Capitulino
# @devices: a list of @PciDeviceInfo for each device on this bridge
1130 79627472 Luiz Capitulino
#
1131 79627472 Luiz Capitulino
# Since: 0.14.0
1132 79627472 Luiz Capitulino
##
1133 79627472 Luiz Capitulino
{ 'type': 'PciBridgeInfo',
1134 79627472 Luiz Capitulino
  'data': {'bus': { 'number': 'int', 'secondary': 'int', 'subordinate': 'int',
1135 79627472 Luiz Capitulino
                    'io_range': 'PciMemoryRange',
1136 79627472 Luiz Capitulino
                    'memory_range': 'PciMemoryRange',
1137 79627472 Luiz Capitulino
                    'prefetchable_range': 'PciMemoryRange' },
1138 79627472 Luiz Capitulino
           '*devices': ['PciDeviceInfo']} }
1139 79627472 Luiz Capitulino
1140 79627472 Luiz Capitulino
##
1141 79627472 Luiz Capitulino
# @PciDeviceInfo:
1142 79627472 Luiz Capitulino
#
1143 79627472 Luiz Capitulino
# Information about a PCI device
1144 79627472 Luiz Capitulino
#
1145 79627472 Luiz Capitulino
# @bus: the bus number of the device
1146 79627472 Luiz Capitulino
#
1147 79627472 Luiz Capitulino
# @slot: the slot the device is located in
1148 79627472 Luiz Capitulino
#
1149 79627472 Luiz Capitulino
# @function: the function of the slot used by the device
1150 79627472 Luiz Capitulino
#
1151 79627472 Luiz Capitulino
# @class_info.desc: #optional a string description of the device's class
1152 79627472 Luiz Capitulino
#
1153 79627472 Luiz Capitulino
# @class_info.class: the class code of the device
1154 79627472 Luiz Capitulino
#
1155 79627472 Luiz Capitulino
# @id.device: the PCI device id
1156 79627472 Luiz Capitulino
#
1157 79627472 Luiz Capitulino
# @id.vendor: the PCI vendor id
1158 79627472 Luiz Capitulino
#
1159 79627472 Luiz Capitulino
# @irq: #optional if an IRQ is assigned to the device, the IRQ number
1160 79627472 Luiz Capitulino
#
1161 79627472 Luiz Capitulino
# @qdev_id: the device name of the PCI device
1162 79627472 Luiz Capitulino
#
1163 79627472 Luiz Capitulino
# @pci_bridge: if the device is a PCI bridge, the bridge information
1164 79627472 Luiz Capitulino
#
1165 79627472 Luiz Capitulino
# @regions: a list of the PCI I/O regions associated with the device
1166 79627472 Luiz Capitulino
#
1167 79627472 Luiz Capitulino
# Notes: the contents of @class_info.desc are not stable and should only be
1168 79627472 Luiz Capitulino
#        treated as informational.
1169 79627472 Luiz Capitulino
#
1170 79627472 Luiz Capitulino
# Since: 0.14.0
1171 79627472 Luiz Capitulino
##
1172 79627472 Luiz Capitulino
{ 'type': 'PciDeviceInfo',
1173 79627472 Luiz Capitulino
  'data': {'bus': 'int', 'slot': 'int', 'function': 'int',
1174 79627472 Luiz Capitulino
           'class_info': {'*desc': 'str', 'class': 'int'},
1175 79627472 Luiz Capitulino
           'id': {'device': 'int', 'vendor': 'int'},
1176 79627472 Luiz Capitulino
           '*irq': 'int', 'qdev_id': 'str', '*pci_bridge': 'PciBridgeInfo',
1177 79627472 Luiz Capitulino
           'regions': ['PciMemoryRegion']} }
1178 79627472 Luiz Capitulino
1179 79627472 Luiz Capitulino
##
1180 79627472 Luiz Capitulino
# @PciInfo:
1181 79627472 Luiz Capitulino
#
1182 79627472 Luiz Capitulino
# Information about a PCI bus
1183 79627472 Luiz Capitulino
#
1184 79627472 Luiz Capitulino
# @bus: the bus index
1185 79627472 Luiz Capitulino
#
1186 79627472 Luiz Capitulino
# @devices: a list of devices on this bus
1187 79627472 Luiz Capitulino
#
1188 79627472 Luiz Capitulino
# Since: 0.14.0
1189 79627472 Luiz Capitulino
##
1190 79627472 Luiz Capitulino
{ 'type': 'PciInfo', 'data': {'bus': 'int', 'devices': ['PciDeviceInfo']} }
1191 79627472 Luiz Capitulino
1192 79627472 Luiz Capitulino
##
1193 79627472 Luiz Capitulino
# @query-pci:
1194 79627472 Luiz Capitulino
#
1195 79627472 Luiz Capitulino
# Return information about the PCI bus topology of the guest.
1196 79627472 Luiz Capitulino
#
1197 79627472 Luiz Capitulino
# Returns: a list of @PciInfo for each PCI bus
1198 79627472 Luiz Capitulino
#
1199 79627472 Luiz Capitulino
# Since: 0.14.0
1200 79627472 Luiz Capitulino
##
1201 79627472 Luiz Capitulino
{ 'command': 'query-pci', 'returns': ['PciInfo'] }
1202 79627472 Luiz Capitulino
1203 79627472 Luiz Capitulino
##
1204 92aa5c6d Paolo Bonzini
# @BlockdevOnError:
1205 92aa5c6d Paolo Bonzini
#
1206 92aa5c6d Paolo Bonzini
# An enumeration of possible behaviors for errors on I/O operations.
1207 92aa5c6d Paolo Bonzini
# The exact meaning depends on whether the I/O was initiated by a guest
1208 92aa5c6d Paolo Bonzini
# or by a block job
1209 92aa5c6d Paolo Bonzini
#
1210 92aa5c6d Paolo Bonzini
# @report: for guest operations, report the error to the guest;
1211 92aa5c6d Paolo Bonzini
#          for jobs, cancel the job
1212 92aa5c6d Paolo Bonzini
#
1213 92aa5c6d Paolo Bonzini
# @ignore: ignore the error, only report a QMP event (BLOCK_IO_ERROR
1214 92aa5c6d Paolo Bonzini
#          or BLOCK_JOB_ERROR)
1215 92aa5c6d Paolo Bonzini
#
1216 92aa5c6d Paolo Bonzini
# @enospc: same as @stop on ENOSPC, same as @report otherwise.
1217 92aa5c6d Paolo Bonzini
#
1218 92aa5c6d Paolo Bonzini
# @stop: for guest operations, stop the virtual machine;
1219 92aa5c6d Paolo Bonzini
#        for jobs, pause the job
1220 92aa5c6d Paolo Bonzini
#
1221 92aa5c6d Paolo Bonzini
# Since: 1.3
1222 92aa5c6d Paolo Bonzini
##
1223 92aa5c6d Paolo Bonzini
{ 'enum': 'BlockdevOnError',
1224 92aa5c6d Paolo Bonzini
  'data': ['report', 'ignore', 'enospc', 'stop'] }
1225 92aa5c6d Paolo Bonzini
1226 92aa5c6d Paolo Bonzini
##
1227 893f7eba Paolo Bonzini
# @MirrorSyncMode:
1228 893f7eba Paolo Bonzini
#
1229 893f7eba Paolo Bonzini
# An enumeration of possible behaviors for the initial synchronization
1230 893f7eba Paolo Bonzini
# phase of storage mirroring.
1231 893f7eba Paolo Bonzini
#
1232 893f7eba Paolo Bonzini
# @top: copies data in the topmost image to the destination
1233 893f7eba Paolo Bonzini
#
1234 893f7eba Paolo Bonzini
# @full: copies data from all images to the destination
1235 893f7eba Paolo Bonzini
#
1236 893f7eba Paolo Bonzini
# @none: only copy data written from now on
1237 893f7eba Paolo Bonzini
#
1238 893f7eba Paolo Bonzini
# Since: 1.3
1239 893f7eba Paolo Bonzini
##
1240 893f7eba Paolo Bonzini
{ 'enum': 'MirrorSyncMode',
1241 893f7eba Paolo Bonzini
  'data': ['top', 'full', 'none'] }
1242 893f7eba Paolo Bonzini
1243 893f7eba Paolo Bonzini
##
1244 fb5458cd Stefan Hajnoczi
# @BlockJobInfo:
1245 fb5458cd Stefan Hajnoczi
#
1246 fb5458cd Stefan Hajnoczi
# Information about a long-running block device operation.
1247 fb5458cd Stefan Hajnoczi
#
1248 fb5458cd Stefan Hajnoczi
# @type: the job type ('stream' for image streaming)
1249 fb5458cd Stefan Hajnoczi
#
1250 fb5458cd Stefan Hajnoczi
# @device: the block device name
1251 fb5458cd Stefan Hajnoczi
#
1252 fb5458cd Stefan Hajnoczi
# @len: the maximum progress value
1253 fb5458cd Stefan Hajnoczi
#
1254 8d65883f Paolo Bonzini
# @busy: false if the job is known to be in a quiescent state, with
1255 8d65883f Paolo Bonzini
#        no pending I/O.  Since 1.3.
1256 8d65883f Paolo Bonzini
#
1257 8acc72a4 Paolo Bonzini
# @paused: whether the job is paused or, if @busy is true, will
1258 8acc72a4 Paolo Bonzini
#          pause itself as soon as possible.  Since 1.3.
1259 8acc72a4 Paolo Bonzini
#
1260 fb5458cd Stefan Hajnoczi
# @offset: the current progress value
1261 fb5458cd Stefan Hajnoczi
#
1262 fb5458cd Stefan Hajnoczi
# @speed: the rate limit, bytes per second
1263 fb5458cd Stefan Hajnoczi
#
1264 32c81a4a Paolo Bonzini
# @io-status: the status of the job (since 1.3)
1265 32c81a4a Paolo Bonzini
#
1266 fb5458cd Stefan Hajnoczi
# Since: 1.1
1267 fb5458cd Stefan Hajnoczi
##
1268 fb5458cd Stefan Hajnoczi
{ 'type': 'BlockJobInfo',
1269 fb5458cd Stefan Hajnoczi
  'data': {'type': 'str', 'device': 'str', 'len': 'int',
1270 32c81a4a Paolo Bonzini
           'offset': 'int', 'busy': 'bool', 'paused': 'bool', 'speed': 'int',
1271 32c81a4a Paolo Bonzini
           'io-status': 'BlockDeviceIoStatus'} }
1272 fb5458cd Stefan Hajnoczi
1273 fb5458cd Stefan Hajnoczi
##
1274 fb5458cd Stefan Hajnoczi
# @query-block-jobs:
1275 fb5458cd Stefan Hajnoczi
#
1276 fb5458cd Stefan Hajnoczi
# Return information about long-running block device operations.
1277 fb5458cd Stefan Hajnoczi
#
1278 fb5458cd Stefan Hajnoczi
# Returns: a list of @BlockJobInfo for each active block job
1279 fb5458cd Stefan Hajnoczi
#
1280 fb5458cd Stefan Hajnoczi
# Since: 1.1
1281 fb5458cd Stefan Hajnoczi
##
1282 fb5458cd Stefan Hajnoczi
{ 'command': 'query-block-jobs', 'returns': ['BlockJobInfo'] }
1283 fb5458cd Stefan Hajnoczi
1284 fb5458cd Stefan Hajnoczi
##
1285 7a7f325e Luiz Capitulino
# @quit:
1286 7a7f325e Luiz Capitulino
#
1287 7a7f325e Luiz Capitulino
# This command will cause the QEMU process to exit gracefully.  While every
1288 7a7f325e Luiz Capitulino
# attempt is made to send the QMP response before terminating, this is not
1289 7a7f325e Luiz Capitulino
# guaranteed.  When using this interface, a premature EOF would not be
1290 7a7f325e Luiz Capitulino
# unexpected.
1291 7a7f325e Luiz Capitulino
#
1292 7a7f325e Luiz Capitulino
# Since: 0.14.0
1293 7a7f325e Luiz Capitulino
##
1294 7a7f325e Luiz Capitulino
{ 'command': 'quit' }
1295 5f158f21 Luiz Capitulino
1296 5f158f21 Luiz Capitulino
##
1297 5f158f21 Luiz Capitulino
# @stop:
1298 5f158f21 Luiz Capitulino
#
1299 5f158f21 Luiz Capitulino
# Stop all guest VCPU execution.
1300 5f158f21 Luiz Capitulino
#
1301 5f158f21 Luiz Capitulino
# Since:  0.14.0
1302 5f158f21 Luiz Capitulino
#
1303 5f158f21 Luiz Capitulino
# Notes:  This function will succeed even if the guest is already in the stopped
1304 1e998146 Paolo Bonzini
#         state.  In "inmigrate" state, it will ensure that the guest
1305 1e998146 Paolo Bonzini
#         remains paused once migration finishes, as if the -S option was
1306 1e998146 Paolo Bonzini
#         passed on the command line.
1307 5f158f21 Luiz Capitulino
##
1308 5f158f21 Luiz Capitulino
{ 'command': 'stop' }
1309 38d22653 Luiz Capitulino
1310 38d22653 Luiz Capitulino
##
1311 38d22653 Luiz Capitulino
# @system_reset:
1312 38d22653 Luiz Capitulino
#
1313 38d22653 Luiz Capitulino
# Performs a hard reset of a guest.
1314 38d22653 Luiz Capitulino
#
1315 38d22653 Luiz Capitulino
# Since: 0.14.0
1316 38d22653 Luiz Capitulino
##
1317 38d22653 Luiz Capitulino
{ 'command': 'system_reset' }
1318 5bc465e4 Luiz Capitulino
1319 5bc465e4 Luiz Capitulino
##
1320 5bc465e4 Luiz Capitulino
# @system_powerdown:
1321 5bc465e4 Luiz Capitulino
#
1322 5bc465e4 Luiz Capitulino
# Requests that a guest perform a powerdown operation.
1323 5bc465e4 Luiz Capitulino
#
1324 5bc465e4 Luiz Capitulino
# Since: 0.14.0
1325 5bc465e4 Luiz Capitulino
#
1326 5bc465e4 Luiz Capitulino
# Notes: A guest may or may not respond to this command.  This command
1327 5bc465e4 Luiz Capitulino
#        returning does not indicate that a guest has accepted the request or
1328 5bc465e4 Luiz Capitulino
#        that it has shut down.  Many guests will respond to this command by
1329 5bc465e4 Luiz Capitulino
#        prompting the user in some way.
1330 5bc465e4 Luiz Capitulino
##
1331 5bc465e4 Luiz Capitulino
{ 'command': 'system_powerdown' }
1332 755f1968 Luiz Capitulino
1333 755f1968 Luiz Capitulino
##
1334 755f1968 Luiz Capitulino
# @cpu:
1335 755f1968 Luiz Capitulino
#
1336 755f1968 Luiz Capitulino
# This command is a nop that is only provided for the purposes of compatibility.
1337 755f1968 Luiz Capitulino
#
1338 755f1968 Luiz Capitulino
# Since: 0.14.0
1339 755f1968 Luiz Capitulino
#
1340 755f1968 Luiz Capitulino
# Notes: Do not use this command.
1341 755f1968 Luiz Capitulino
##
1342 755f1968 Luiz Capitulino
{ 'command': 'cpu', 'data': {'index': 'int'} }
1343 0cfd6a9a Luiz Capitulino
1344 0cfd6a9a Luiz Capitulino
##
1345 0cfd6a9a Luiz Capitulino
# @memsave:
1346 0cfd6a9a Luiz Capitulino
#
1347 0cfd6a9a Luiz Capitulino
# Save a portion of guest memory to a file.
1348 0cfd6a9a Luiz Capitulino
#
1349 0cfd6a9a Luiz Capitulino
# @val: the virtual address of the guest to start from
1350 0cfd6a9a Luiz Capitulino
#
1351 0cfd6a9a Luiz Capitulino
# @size: the size of memory region to save
1352 0cfd6a9a Luiz Capitulino
#
1353 0cfd6a9a Luiz Capitulino
# @filename: the file to save the memory to as binary data
1354 0cfd6a9a Luiz Capitulino
#
1355 0cfd6a9a Luiz Capitulino
# @cpu-index: #optional the index of the virtual CPU to use for translating the
1356 0cfd6a9a Luiz Capitulino
#                       virtual address (defaults to CPU 0)
1357 0cfd6a9a Luiz Capitulino
#
1358 0cfd6a9a Luiz Capitulino
# Returns: Nothing on success
1359 0cfd6a9a Luiz Capitulino
#
1360 0cfd6a9a Luiz Capitulino
# Since: 0.14.0
1361 0cfd6a9a Luiz Capitulino
#
1362 0cfd6a9a Luiz Capitulino
# Notes: Errors were not reliably returned until 1.1
1363 0cfd6a9a Luiz Capitulino
##
1364 0cfd6a9a Luiz Capitulino
{ 'command': 'memsave',
1365 0cfd6a9a Luiz Capitulino
  'data': {'val': 'int', 'size': 'int', 'filename': 'str', '*cpu-index': 'int'} }
1366 6d3962bf Luiz Capitulino
1367 6d3962bf Luiz Capitulino
##
1368 6d3962bf Luiz Capitulino
# @pmemsave:
1369 6d3962bf Luiz Capitulino
#
1370 6d3962bf Luiz Capitulino
# Save a portion of guest physical memory to a file.
1371 6d3962bf Luiz Capitulino
#
1372 6d3962bf Luiz Capitulino
# @val: the physical address of the guest to start from
1373 6d3962bf Luiz Capitulino
#
1374 6d3962bf Luiz Capitulino
# @size: the size of memory region to save
1375 6d3962bf Luiz Capitulino
#
1376 6d3962bf Luiz Capitulino
# @filename: the file to save the memory to as binary data
1377 6d3962bf Luiz Capitulino
#
1378 6d3962bf Luiz Capitulino
# Returns: Nothing on success
1379 6d3962bf Luiz Capitulino
#
1380 6d3962bf Luiz Capitulino
# Since: 0.14.0
1381 6d3962bf Luiz Capitulino
#
1382 6d3962bf Luiz Capitulino
# Notes: Errors were not reliably returned until 1.1
1383 6d3962bf Luiz Capitulino
##
1384 6d3962bf Luiz Capitulino
{ 'command': 'pmemsave',
1385 6d3962bf Luiz Capitulino
  'data': {'val': 'int', 'size': 'int', 'filename': 'str'} }
1386 e42e818b Luiz Capitulino
1387 e42e818b Luiz Capitulino
##
1388 e42e818b Luiz Capitulino
# @cont:
1389 e42e818b Luiz Capitulino
#
1390 e42e818b Luiz Capitulino
# Resume guest VCPU execution.
1391 e42e818b Luiz Capitulino
#
1392 e42e818b Luiz Capitulino
# Since:  0.14.0
1393 e42e818b Luiz Capitulino
#
1394 e42e818b Luiz Capitulino
# Returns:  If successful, nothing
1395 e42e818b Luiz Capitulino
#           If QEMU was started with an encrypted block device and a key has
1396 e42e818b Luiz Capitulino
#              not yet been set, DeviceEncrypted.
1397 e42e818b Luiz Capitulino
#
1398 1e998146 Paolo Bonzini
# Notes:  This command will succeed if the guest is currently running.  It
1399 1e998146 Paolo Bonzini
#         will also succeed if the guest is in the "inmigrate" state; in
1400 1e998146 Paolo Bonzini
#         this case, the effect of the command is to make sure the guest
1401 1e998146 Paolo Bonzini
#         starts once migration finishes, removing the effect of the -S
1402 1e998146 Paolo Bonzini
#         command line option if it was passed.
1403 e42e818b Luiz Capitulino
##
1404 e42e818b Luiz Capitulino
{ 'command': 'cont' }
1405 e42e818b Luiz Capitulino
1406 ab49ab5c Luiz Capitulino
##
1407 9b9df25a Gerd Hoffmann
# @system_wakeup:
1408 9b9df25a Gerd Hoffmann
#
1409 9b9df25a Gerd Hoffmann
# Wakeup guest from suspend.  Does nothing in case the guest isn't suspended.
1410 9b9df25a Gerd Hoffmann
#
1411 9b9df25a Gerd Hoffmann
# Since:  1.1
1412 9b9df25a Gerd Hoffmann
#
1413 9b9df25a Gerd Hoffmann
# Returns:  nothing.
1414 9b9df25a Gerd Hoffmann
##
1415 9b9df25a Gerd Hoffmann
{ 'command': 'system_wakeup' }
1416 9b9df25a Gerd Hoffmann
1417 9b9df25a Gerd Hoffmann
##
1418 ab49ab5c Luiz Capitulino
# @inject-nmi:
1419 ab49ab5c Luiz Capitulino
#
1420 ab49ab5c Luiz Capitulino
# Injects an Non-Maskable Interrupt into all guest's VCPUs.
1421 ab49ab5c Luiz Capitulino
#
1422 ab49ab5c Luiz Capitulino
# Returns:  If successful, nothing
1423 ab49ab5c Luiz Capitulino
#
1424 ab49ab5c Luiz Capitulino
# Since:  0.14.0
1425 ab49ab5c Luiz Capitulino
#
1426 ab49ab5c Luiz Capitulino
# Notes: Only x86 Virtual Machines support this command.
1427 ab49ab5c Luiz Capitulino
##
1428 ab49ab5c Luiz Capitulino
{ 'command': 'inject-nmi' }
1429 4b37156c Luiz Capitulino
1430 4b37156c Luiz Capitulino
##
1431 4b37156c Luiz Capitulino
# @set_link:
1432 4b37156c Luiz Capitulino
#
1433 4b37156c Luiz Capitulino
# Sets the link status of a virtual network adapter.
1434 4b37156c Luiz Capitulino
#
1435 4b37156c Luiz Capitulino
# @name: the device name of the virtual network adapter
1436 4b37156c Luiz Capitulino
#
1437 4b37156c Luiz Capitulino
# @up: true to set the link status to be up
1438 4b37156c Luiz Capitulino
#
1439 4b37156c Luiz Capitulino
# Returns: Nothing on success
1440 4b37156c Luiz Capitulino
#          If @name is not a valid network device, DeviceNotFound
1441 4b37156c Luiz Capitulino
#
1442 4b37156c Luiz Capitulino
# Since: 0.14.0
1443 4b37156c Luiz Capitulino
#
1444 4b37156c Luiz Capitulino
# Notes: Not all network adapters support setting link status.  This command
1445 4b37156c Luiz Capitulino
#        will succeed even if the network adapter does not support link status
1446 4b37156c Luiz Capitulino
#        notification.
1447 4b37156c Luiz Capitulino
##
1448 4b37156c Luiz Capitulino
{ 'command': 'set_link', 'data': {'name': 'str', 'up': 'bool'} }
1449 a4dea8a9 Luiz Capitulino
1450 a4dea8a9 Luiz Capitulino
##
1451 a4dea8a9 Luiz Capitulino
# @block_passwd:
1452 a4dea8a9 Luiz Capitulino
#
1453 a4dea8a9 Luiz Capitulino
# This command sets the password of a block device that has not been open
1454 a4dea8a9 Luiz Capitulino
# with a password and requires one.
1455 a4dea8a9 Luiz Capitulino
#
1456 a4dea8a9 Luiz Capitulino
# The two cases where this can happen are a block device is created through
1457 a4dea8a9 Luiz Capitulino
# QEMU's initial command line or a block device is changed through the legacy
1458 a4dea8a9 Luiz Capitulino
# @change interface.
1459 a4dea8a9 Luiz Capitulino
#
1460 a4dea8a9 Luiz Capitulino
# In the event that the block device is created through the initial command
1461 a4dea8a9 Luiz Capitulino
# line, the VM will start in the stopped state regardless of whether '-S' is
1462 a4dea8a9 Luiz Capitulino
# used.  The intention is for a management tool to query the block devices to
1463 a4dea8a9 Luiz Capitulino
# determine which ones are encrypted, set the passwords with this command, and
1464 a4dea8a9 Luiz Capitulino
# then start the guest with the @cont command.
1465 a4dea8a9 Luiz Capitulino
#
1466 a4dea8a9 Luiz Capitulino
# @device:   the name of the device to set the password on
1467 a4dea8a9 Luiz Capitulino
#
1468 a4dea8a9 Luiz Capitulino
# @password: the password to use for the device
1469 a4dea8a9 Luiz Capitulino
#
1470 a4dea8a9 Luiz Capitulino
# Returns: nothing on success
1471 a4dea8a9 Luiz Capitulino
#          If @device is not a valid block device, DeviceNotFound
1472 a4dea8a9 Luiz Capitulino
#          If @device is not encrypted, DeviceNotEncrypted
1473 a4dea8a9 Luiz Capitulino
#
1474 a4dea8a9 Luiz Capitulino
# Notes:  Not all block formats support encryption and some that do are not
1475 a4dea8a9 Luiz Capitulino
#         able to validate that a password is correct.  Disk corruption may
1476 a4dea8a9 Luiz Capitulino
#         occur if an invalid password is specified.
1477 a4dea8a9 Luiz Capitulino
#
1478 a4dea8a9 Luiz Capitulino
# Since: 0.14.0
1479 a4dea8a9 Luiz Capitulino
##
1480 a4dea8a9 Luiz Capitulino
{ 'command': 'block_passwd', 'data': {'device': 'str', 'password': 'str'} }
1481 d72f3264 Luiz Capitulino
1482 d72f3264 Luiz Capitulino
##
1483 d72f3264 Luiz Capitulino
# @balloon:
1484 d72f3264 Luiz Capitulino
#
1485 d72f3264 Luiz Capitulino
# Request the balloon driver to change its balloon size.
1486 d72f3264 Luiz Capitulino
#
1487 d72f3264 Luiz Capitulino
# @value: the target size of the balloon in bytes
1488 d72f3264 Luiz Capitulino
#
1489 d72f3264 Luiz Capitulino
# Returns: Nothing on success
1490 d72f3264 Luiz Capitulino
#          If the balloon driver is enabled but not functional because the KVM
1491 d72f3264 Luiz Capitulino
#            kernel module cannot support it, KvmMissingCap
1492 d72f3264 Luiz Capitulino
#          If no balloon device is present, DeviceNotActive
1493 d72f3264 Luiz Capitulino
#
1494 d72f3264 Luiz Capitulino
# Notes: This command just issues a request to the guest.  When it returns,
1495 d72f3264 Luiz Capitulino
#        the balloon size may not have changed.  A guest can change the balloon
1496 d72f3264 Luiz Capitulino
#        size independent of this command.
1497 d72f3264 Luiz Capitulino
#
1498 d72f3264 Luiz Capitulino
# Since: 0.14.0
1499 d72f3264 Luiz Capitulino
##
1500 d72f3264 Luiz Capitulino
{ 'command': 'balloon', 'data': {'value': 'int'} }
1501 5e7caacb Luiz Capitulino
1502 5e7caacb Luiz Capitulino
##
1503 5e7caacb Luiz Capitulino
# @block_resize
1504 5e7caacb Luiz Capitulino
#
1505 5e7caacb Luiz Capitulino
# Resize a block image while a guest is running.
1506 5e7caacb Luiz Capitulino
#
1507 5e7caacb Luiz Capitulino
# @device:  the name of the device to get the image resized
1508 5e7caacb Luiz Capitulino
#
1509 5e7caacb Luiz Capitulino
# @size:  new image size in bytes
1510 5e7caacb Luiz Capitulino
#
1511 5e7caacb Luiz Capitulino
# Returns: nothing on success
1512 5e7caacb Luiz Capitulino
#          If @device is not a valid block device, DeviceNotFound
1513 5e7caacb Luiz Capitulino
#
1514 5e7caacb Luiz Capitulino
# Since: 0.14.0
1515 5e7caacb Luiz Capitulino
##
1516 5e7caacb Luiz Capitulino
{ 'command': 'block_resize', 'data': { 'device': 'str', 'size': 'int' }}
1517 6106e249 Luiz Capitulino
1518 6106e249 Luiz Capitulino
##
1519 bc8b094f Paolo Bonzini
# @NewImageMode
1520 bc8b094f Paolo Bonzini
#
1521 bc8b094f Paolo Bonzini
# An enumeration that tells QEMU how to set the backing file path in
1522 bc8b094f Paolo Bonzini
# a new image file.
1523 bc8b094f Paolo Bonzini
#
1524 bc8b094f Paolo Bonzini
# @existing: QEMU should look for an existing image file.
1525 bc8b094f Paolo Bonzini
#
1526 bc8b094f Paolo Bonzini
# @absolute-paths: QEMU should create a new image with absolute paths
1527 bc8b094f Paolo Bonzini
# for the backing file.
1528 bc8b094f Paolo Bonzini
#
1529 bc8b094f Paolo Bonzini
# Since: 1.1
1530 bc8b094f Paolo Bonzini
##
1531 bc8b094f Paolo Bonzini
{ 'enum': 'NewImageMode'
1532 bc8b094f Paolo Bonzini
  'data': [ 'existing', 'absolute-paths' ] }
1533 bc8b094f Paolo Bonzini
1534 bc8b094f Paolo Bonzini
##
1535 52e7c241 Paolo Bonzini
# @BlockdevSnapshot
1536 8802d1fd Jeff Cody
#
1537 8802d1fd Jeff Cody
# @device:  the name of the device to generate the snapshot from.
1538 8802d1fd Jeff Cody
#
1539 8802d1fd Jeff Cody
# @snapshot-file: the target of the new image. A new file will be created.
1540 8802d1fd Jeff Cody
#
1541 8802d1fd Jeff Cody
# @format: #optional the format of the snapshot image, default is 'qcow2'.
1542 6cc2a415 Paolo Bonzini
#
1543 6cc2a415 Paolo Bonzini
# @mode: #optional whether and how QEMU should create a new image, default is
1544 8bde9b6f Paolo Bonzini
#        'absolute-paths'.
1545 8802d1fd Jeff Cody
##
1546 52e7c241 Paolo Bonzini
{ 'type': 'BlockdevSnapshot',
1547 bc8b094f Paolo Bonzini
  'data': { 'device': 'str', 'snapshot-file': 'str', '*format': 'str',
1548 bc8b094f Paolo Bonzini
            '*mode': 'NewImageMode' } }
1549 8802d1fd Jeff Cody
1550 8802d1fd Jeff Cody
##
1551 52e7c241 Paolo Bonzini
# @BlockdevAction
1552 8802d1fd Jeff Cody
#
1553 52e7c241 Paolo Bonzini
# A discriminated record of operations that can be performed with
1554 52e7c241 Paolo Bonzini
# @transaction.
1555 8802d1fd Jeff Cody
##
1556 52e7c241 Paolo Bonzini
{ 'union': 'BlockdevAction',
1557 52e7c241 Paolo Bonzini
  'data': {
1558 52e7c241 Paolo Bonzini
       'blockdev-snapshot-sync': 'BlockdevSnapshot',
1559 52e7c241 Paolo Bonzini
   } }
1560 8802d1fd Jeff Cody
1561 8802d1fd Jeff Cody
##
1562 52e7c241 Paolo Bonzini
# @transaction
1563 8802d1fd Jeff Cody
#
1564 52e7c241 Paolo Bonzini
# Atomically operate on a group of one or more block devices.  If
1565 52e7c241 Paolo Bonzini
# any operation fails, then the entire set of actions will be
1566 52e7c241 Paolo Bonzini
# abandoned and the appropriate error returned.  The only operation
1567 52e7c241 Paolo Bonzini
# supported is currently blockdev-snapshot-sync.
1568 8802d1fd Jeff Cody
#
1569 8802d1fd Jeff Cody
#  List of:
1570 52e7c241 Paolo Bonzini
#  @BlockdevAction: information needed for the device snapshot
1571 8802d1fd Jeff Cody
#
1572 8802d1fd Jeff Cody
# Returns: nothing on success
1573 8802d1fd Jeff Cody
#          If @device is not a valid block device, DeviceNotFound
1574 8802d1fd Jeff Cody
#
1575 52e7c241 Paolo Bonzini
# Note: The transaction aborts on the first failure.  Therefore, there will
1576 52e7c241 Paolo Bonzini
# be only one device or snapshot file returned in an error condition, and
1577 52e7c241 Paolo Bonzini
# subsequent actions will not have been attempted.
1578 52e7c241 Paolo Bonzini
#
1579 52e7c241 Paolo Bonzini
# Since 1.1
1580 8802d1fd Jeff Cody
##
1581 52e7c241 Paolo Bonzini
{ 'command': 'transaction',
1582 52e7c241 Paolo Bonzini
  'data': { 'actions': [ 'BlockdevAction' ] } }
1583 8802d1fd Jeff Cody
1584 8802d1fd Jeff Cody
##
1585 6106e249 Luiz Capitulino
# @blockdev-snapshot-sync
1586 6106e249 Luiz Capitulino
#
1587 6106e249 Luiz Capitulino
# Generates a synchronous snapshot of a block device.
1588 6106e249 Luiz Capitulino
#
1589 6106e249 Luiz Capitulino
# @device:  the name of the device to generate the snapshot from.
1590 6106e249 Luiz Capitulino
#
1591 6106e249 Luiz Capitulino
# @snapshot-file: the target of the new image. If the file exists, or if it
1592 6106e249 Luiz Capitulino
#                 is a device, the snapshot will be created in the existing
1593 6106e249 Luiz Capitulino
#                 file/device. If does not exist, a new file will be created.
1594 6106e249 Luiz Capitulino
#
1595 6106e249 Luiz Capitulino
# @format: #optional the format of the snapshot image, default is 'qcow2'.
1596 6106e249 Luiz Capitulino
#
1597 6cc2a415 Paolo Bonzini
# @mode: #optional whether and how QEMU should create a new image, default is
1598 8bde9b6f Paolo Bonzini
#        'absolute-paths'.
1599 6cc2a415 Paolo Bonzini
#
1600 6106e249 Luiz Capitulino
# Returns: nothing on success
1601 6106e249 Luiz Capitulino
#          If @device is not a valid block device, DeviceNotFound
1602 6106e249 Luiz Capitulino
#
1603 6106e249 Luiz Capitulino
# Since 0.14.0
1604 6106e249 Luiz Capitulino
##
1605 6106e249 Luiz Capitulino
{ 'command': 'blockdev-snapshot-sync',
1606 6cc2a415 Paolo Bonzini
  'data': { 'device': 'str', 'snapshot-file': 'str', '*format': 'str',
1607 6cc2a415 Paolo Bonzini
            '*mode': 'NewImageMode'} }
1608 d51a67b4 Luiz Capitulino
1609 d51a67b4 Luiz Capitulino
##
1610 d51a67b4 Luiz Capitulino
# @human-monitor-command:
1611 d51a67b4 Luiz Capitulino
#
1612 d51a67b4 Luiz Capitulino
# Execute a command on the human monitor and return the output.
1613 d51a67b4 Luiz Capitulino
#
1614 d51a67b4 Luiz Capitulino
# @command-line: the command to execute in the human monitor
1615 d51a67b4 Luiz Capitulino
#
1616 d51a67b4 Luiz Capitulino
# @cpu-index: #optional The CPU to use for commands that require an implicit CPU
1617 d51a67b4 Luiz Capitulino
#
1618 d51a67b4 Luiz Capitulino
# Returns: the output of the command as a string
1619 d51a67b4 Luiz Capitulino
#
1620 d51a67b4 Luiz Capitulino
# Since: 0.14.0
1621 d51a67b4 Luiz Capitulino
#
1622 d51a67b4 Luiz Capitulino
# Notes: This command only exists as a stop-gap.  It's use is highly
1623 d51a67b4 Luiz Capitulino
#        discouraged.  The semantics of this command are not guaranteed.
1624 d51a67b4 Luiz Capitulino
#
1625 d51a67b4 Luiz Capitulino
#        Known limitations:
1626 d51a67b4 Luiz Capitulino
#
1627 d51a67b4 Luiz Capitulino
#        o This command is stateless, this means that commands that depend
1628 d51a67b4 Luiz Capitulino
#          on state information (such as getfd) might not work
1629 d51a67b4 Luiz Capitulino
#
1630 d51a67b4 Luiz Capitulino
#       o Commands that prompt the user for data (eg. 'cont' when the block
1631 d51a67b4 Luiz Capitulino
#         device is encrypted) don't currently work
1632 d51a67b4 Luiz Capitulino
##
1633 d51a67b4 Luiz Capitulino
{ 'command': 'human-monitor-command',
1634 d51a67b4 Luiz Capitulino
  'data': {'command-line': 'str', '*cpu-index': 'int'},
1635 b80e560b Laszlo Ersek
  'returns': 'str' }
1636 6cdedb07 Luiz Capitulino
1637 6cdedb07 Luiz Capitulino
##
1638 ed61fc10 Jeff Cody
# @block-commit
1639 ed61fc10 Jeff Cody
#
1640 ed61fc10 Jeff Cody
# Live commit of data from overlay image nodes into backing nodes - i.e.,
1641 ed61fc10 Jeff Cody
# writes data between 'top' and 'base' into 'base'.
1642 ed61fc10 Jeff Cody
#
1643 ed61fc10 Jeff Cody
# @device:  the name of the device
1644 ed61fc10 Jeff Cody
#
1645 ed61fc10 Jeff Cody
# @base:   #optional The file name of the backing image to write data into.
1646 ed61fc10 Jeff Cody
#                    If not specified, this is the deepest backing image
1647 ed61fc10 Jeff Cody
#
1648 ed61fc10 Jeff Cody
# @top:              The file name of the backing image within the image chain,
1649 ed61fc10 Jeff Cody
#                    which contains the topmost data to be committed down.
1650 ed61fc10 Jeff Cody
#                    Note, the active layer as 'top' is currently unsupported.
1651 ed61fc10 Jeff Cody
#
1652 ed61fc10 Jeff Cody
#                    If top == base, that is an error.
1653 ed61fc10 Jeff Cody
#
1654 ed61fc10 Jeff Cody
#
1655 ed61fc10 Jeff Cody
# @speed:  #optional the maximum speed, in bytes per second
1656 ed61fc10 Jeff Cody
#
1657 ed61fc10 Jeff Cody
# Returns: Nothing on success
1658 ed61fc10 Jeff Cody
#          If commit or stream is already active on this device, DeviceInUse
1659 ed61fc10 Jeff Cody
#          If @device does not exist, DeviceNotFound
1660 ed61fc10 Jeff Cody
#          If image commit is not supported by this device, NotSupported
1661 ed61fc10 Jeff Cody
#          If @base or @top is invalid, a generic error is returned
1662 ed61fc10 Jeff Cody
#          If @top is the active layer, or omitted, a generic error is returned
1663 ed61fc10 Jeff Cody
#          If @speed is invalid, InvalidParameter
1664 ed61fc10 Jeff Cody
#
1665 ed61fc10 Jeff Cody
# Since: 1.3
1666 ed61fc10 Jeff Cody
#
1667 ed61fc10 Jeff Cody
##
1668 ed61fc10 Jeff Cody
{ 'command': 'block-commit',
1669 ed61fc10 Jeff Cody
  'data': { 'device': 'str', '*base': 'str', 'top': 'str',
1670 ed61fc10 Jeff Cody
            '*speed': 'int' } }
1671 ed61fc10 Jeff Cody
1672 d9b902db Paolo Bonzini
##
1673 d9b902db Paolo Bonzini
# @drive-mirror
1674 d9b902db Paolo Bonzini
#
1675 d9b902db Paolo Bonzini
# Start mirroring a block device's writes to a new destination.
1676 d9b902db Paolo Bonzini
#
1677 d9b902db Paolo Bonzini
# @device:  the name of the device whose writes should be mirrored.
1678 d9b902db Paolo Bonzini
#
1679 d9b902db Paolo Bonzini
# @target: the target of the new image. If the file exists, or if it
1680 d9b902db Paolo Bonzini
#          is a device, the existing file/device will be used as the new
1681 d9b902db Paolo Bonzini
#          destination.  If it does not exist, a new file will be created.
1682 d9b902db Paolo Bonzini
#
1683 d9b902db Paolo Bonzini
# @format: #optional the format of the new destination, default is to
1684 d9b902db Paolo Bonzini
#          probe if @mode is 'existing', else the format of the source
1685 d9b902db Paolo Bonzini
#
1686 d9b902db Paolo Bonzini
# @mode: #optional whether and how QEMU should create a new image, default is
1687 d9b902db Paolo Bonzini
#        'absolute-paths'.
1688 d9b902db Paolo Bonzini
#
1689 d9b902db Paolo Bonzini
# @speed:  #optional the maximum speed, in bytes per second
1690 d9b902db Paolo Bonzini
#
1691 d9b902db Paolo Bonzini
# @sync: what parts of the disk image should be copied to the destination
1692 d9b902db Paolo Bonzini
#        (all the disk, only the sectors allocated in the topmost image, or
1693 d9b902db Paolo Bonzini
#        only new I/O).
1694 d9b902db Paolo Bonzini
#
1695 eee13dfe Paolo Bonzini
# @granularity: #optional granularity of the dirty bitmap, default is 64K
1696 eee13dfe Paolo Bonzini
#               if the image format doesn't have clusters, 4K if the clusters
1697 eee13dfe Paolo Bonzini
#               are smaller than that, else the cluster size.  Must be a
1698 eee13dfe Paolo Bonzini
#               power of 2 between 512 and 64M (since 1.4).
1699 eee13dfe Paolo Bonzini
#
1700 08e4ed6c Paolo Bonzini
# @buf-size: #optional maximum amount of data in flight from source to
1701 08e4ed6c Paolo Bonzini
#            target (since 1.4).
1702 08e4ed6c Paolo Bonzini
#
1703 b952b558 Paolo Bonzini
# @on-source-error: #optional the action to take on an error on the source,
1704 b952b558 Paolo Bonzini
#                   default 'report'.  'stop' and 'enospc' can only be used
1705 b952b558 Paolo Bonzini
#                   if the block device supports io-status (see BlockInfo).
1706 b952b558 Paolo Bonzini
#
1707 b952b558 Paolo Bonzini
# @on-target-error: #optional the action to take on an error on the target,
1708 b952b558 Paolo Bonzini
#                   default 'report' (no limitations, since this applies to
1709 b952b558 Paolo Bonzini
#                   a different block device than @device).
1710 b952b558 Paolo Bonzini
#
1711 d9b902db Paolo Bonzini
# Returns: nothing on success
1712 d9b902db Paolo Bonzini
#          If @device is not a valid block device, DeviceNotFound
1713 d9b902db Paolo Bonzini
#
1714 d9b902db Paolo Bonzini
# Since 1.3
1715 d9b902db Paolo Bonzini
##
1716 d9b902db Paolo Bonzini
{ 'command': 'drive-mirror',
1717 d9b902db Paolo Bonzini
  'data': { 'device': 'str', 'target': 'str', '*format': 'str',
1718 d9b902db Paolo Bonzini
            'sync': 'MirrorSyncMode', '*mode': 'NewImageMode',
1719 eee13dfe Paolo Bonzini
            '*speed': 'int', '*granularity': 'uint32',
1720 08e4ed6c Paolo Bonzini
            '*buf-size': 'int', '*on-source-error': 'BlockdevOnError',
1721 b952b558 Paolo Bonzini
            '*on-target-error': 'BlockdevOnError' } }
1722 d9b902db Paolo Bonzini
1723 d9b902db Paolo Bonzini
##
1724 6cdedb07 Luiz Capitulino
# @migrate_cancel
1725 6cdedb07 Luiz Capitulino
#
1726 6cdedb07 Luiz Capitulino
# Cancel the current executing migration process.
1727 6cdedb07 Luiz Capitulino
#
1728 6cdedb07 Luiz Capitulino
# Returns: nothing on success
1729 6cdedb07 Luiz Capitulino
#
1730 6cdedb07 Luiz Capitulino
# Notes: This command succeeds even if there is no migration process running.
1731 6cdedb07 Luiz Capitulino
#
1732 6cdedb07 Luiz Capitulino
# Since: 0.14.0
1733 6cdedb07 Luiz Capitulino
##
1734 6cdedb07 Luiz Capitulino
{ 'command': 'migrate_cancel' }
1735 4f0a993b Luiz Capitulino
1736 4f0a993b Luiz Capitulino
##
1737 4f0a993b Luiz Capitulino
# @migrate_set_downtime
1738 4f0a993b Luiz Capitulino
#
1739 4f0a993b Luiz Capitulino
# Set maximum tolerated downtime for migration.
1740 4f0a993b Luiz Capitulino
#
1741 4f0a993b Luiz Capitulino
# @value: maximum downtime in seconds
1742 4f0a993b Luiz Capitulino
#
1743 4f0a993b Luiz Capitulino
# Returns: nothing on success
1744 4f0a993b Luiz Capitulino
#
1745 4f0a993b Luiz Capitulino
# Since: 0.14.0
1746 4f0a993b Luiz Capitulino
##
1747 4f0a993b Luiz Capitulino
{ 'command': 'migrate_set_downtime', 'data': {'value': 'number'} }
1748 3dc85383 Luiz Capitulino
1749 3dc85383 Luiz Capitulino
##
1750 3dc85383 Luiz Capitulino
# @migrate_set_speed
1751 3dc85383 Luiz Capitulino
#
1752 3dc85383 Luiz Capitulino
# Set maximum speed for migration.
1753 3dc85383 Luiz Capitulino
#
1754 3dc85383 Luiz Capitulino
# @value: maximum speed in bytes.
1755 3dc85383 Luiz Capitulino
#
1756 3dc85383 Luiz Capitulino
# Returns: nothing on success
1757 3dc85383 Luiz Capitulino
#
1758 3dc85383 Luiz Capitulino
# Notes: A value lesser than zero will be automatically round up to zero.
1759 3dc85383 Luiz Capitulino
#
1760 3dc85383 Luiz Capitulino
# Since: 0.14.0
1761 3dc85383 Luiz Capitulino
##
1762 3dc85383 Luiz Capitulino
{ 'command': 'migrate_set_speed', 'data': {'value': 'int'} }
1763 b4b12c62 Anthony Liguori
1764 b4b12c62 Anthony Liguori
##
1765 9e1ba4cc Orit Wasserman
# @migrate-set-cache-size
1766 9e1ba4cc Orit Wasserman
#
1767 9e1ba4cc Orit Wasserman
# Set XBZRLE cache size
1768 9e1ba4cc Orit Wasserman
#
1769 9e1ba4cc Orit Wasserman
# @value: cache size in bytes
1770 9e1ba4cc Orit Wasserman
#
1771 9e1ba4cc Orit Wasserman
# The size will be rounded down to the nearest power of 2.
1772 9e1ba4cc Orit Wasserman
# The cache size can be modified before and during ongoing migration
1773 9e1ba4cc Orit Wasserman
#
1774 9e1ba4cc Orit Wasserman
# Returns: nothing on success
1775 9e1ba4cc Orit Wasserman
#
1776 9e1ba4cc Orit Wasserman
# Since: 1.2
1777 9e1ba4cc Orit Wasserman
##
1778 9e1ba4cc Orit Wasserman
{ 'command': 'migrate-set-cache-size', 'data': {'value': 'int'} }
1779 9e1ba4cc Orit Wasserman
1780 9e1ba4cc Orit Wasserman
##
1781 9e1ba4cc Orit Wasserman
# @query-migrate-cache-size
1782 9e1ba4cc Orit Wasserman
#
1783 9e1ba4cc Orit Wasserman
# query XBZRLE cache size
1784 9e1ba4cc Orit Wasserman
#
1785 9e1ba4cc Orit Wasserman
# Returns: XBZRLE cache size in bytes
1786 9e1ba4cc Orit Wasserman
#
1787 9e1ba4cc Orit Wasserman
# Since: 1.2
1788 9e1ba4cc Orit Wasserman
##
1789 9e1ba4cc Orit Wasserman
{ 'command': 'query-migrate-cache-size', 'returns': 'int' }
1790 9e1ba4cc Orit Wasserman
1791 9e1ba4cc Orit Wasserman
##
1792 d03ee401 Alon Levy
# @ObjectPropertyInfo:
1793 b4b12c62 Anthony Liguori
#
1794 b4b12c62 Anthony Liguori
# @name: the name of the property
1795 b4b12c62 Anthony Liguori
#
1796 b4b12c62 Anthony Liguori
# @type: the type of the property.  This will typically come in one of four
1797 b4b12c62 Anthony Liguori
#        forms:
1798 b4b12c62 Anthony Liguori
#
1799 b4b12c62 Anthony Liguori
#        1) A primitive type such as 'u8', 'u16', 'bool', 'str', or 'double'.
1800 b4b12c62 Anthony Liguori
#           These types are mapped to the appropriate JSON type.
1801 b4b12c62 Anthony Liguori
#
1802 b4b12c62 Anthony Liguori
#        2) A legacy type in the form 'legacy<subtype>' where subtype is the
1803 b4b12c62 Anthony Liguori
#           legacy qdev typename.  These types are always treated as strings.
1804 b4b12c62 Anthony Liguori
#
1805 b4b12c62 Anthony Liguori
#        3) A child type in the form 'child<subtype>' where subtype is a qdev
1806 b4b12c62 Anthony Liguori
#           device type name.  Child properties create the composition tree.
1807 b4b12c62 Anthony Liguori
#
1808 b4b12c62 Anthony Liguori
#        4) A link type in the form 'link<subtype>' where subtype is a qdev
1809 b4b12c62 Anthony Liguori
#           device type name.  Link properties form the device model graph.
1810 b4b12c62 Anthony Liguori
#
1811 51920820 Anthony Liguori
# Since: 1.2
1812 b4b12c62 Anthony Liguori
##
1813 57c9fafe Anthony Liguori
{ 'type': 'ObjectPropertyInfo',
1814 b4b12c62 Anthony Liguori
  'data': { 'name': 'str', 'type': 'str' } }
1815 b4b12c62 Anthony Liguori
1816 b4b12c62 Anthony Liguori
##
1817 b4b12c62 Anthony Liguori
# @qom-list:
1818 b4b12c62 Anthony Liguori
#
1819 57c9fafe Anthony Liguori
# This command will list any properties of a object given a path in the object
1820 b4b12c62 Anthony Liguori
# model.
1821 b4b12c62 Anthony Liguori
#
1822 57c9fafe Anthony Liguori
# @path: the path within the object model.  See @qom-get for a description of
1823 b4b12c62 Anthony Liguori
#        this parameter.
1824 b4b12c62 Anthony Liguori
#
1825 57c9fafe Anthony Liguori
# Returns: a list of @ObjectPropertyInfo that describe the properties of the
1826 57c9fafe Anthony Liguori
#          object.
1827 b4b12c62 Anthony Liguori
#
1828 51920820 Anthony Liguori
# Since: 1.2
1829 b4b12c62 Anthony Liguori
##
1830 b4b12c62 Anthony Liguori
{ 'command': 'qom-list',
1831 b4b12c62 Anthony Liguori
  'data': { 'path': 'str' },
1832 57c9fafe Anthony Liguori
  'returns': [ 'ObjectPropertyInfo' ] }
1833 eb6e8ea5 Anthony Liguori
1834 eb6e8ea5 Anthony Liguori
##
1835 eb6e8ea5 Anthony Liguori
# @qom-get:
1836 eb6e8ea5 Anthony Liguori
#
1837 57c9fafe Anthony Liguori
# This command will get a property from a object model path and return the
1838 eb6e8ea5 Anthony Liguori
# value.
1839 eb6e8ea5 Anthony Liguori
#
1840 57c9fafe Anthony Liguori
# @path: The path within the object model.  There are two forms of supported
1841 eb6e8ea5 Anthony Liguori
#        paths--absolute and partial paths.
1842 eb6e8ea5 Anthony Liguori
#
1843 57c9fafe Anthony Liguori
#        Absolute paths are derived from the root object and can follow child<>
1844 eb6e8ea5 Anthony Liguori
#        or link<> properties.  Since they can follow link<> properties, they
1845 eb6e8ea5 Anthony Liguori
#        can be arbitrarily long.  Absolute paths look like absolute filenames
1846 eb6e8ea5 Anthony Liguori
#        and are prefixed  with a leading slash.
1847 eb6e8ea5 Anthony Liguori
#
1848 eb6e8ea5 Anthony Liguori
#        Partial paths look like relative filenames.  They do not begin
1849 eb6e8ea5 Anthony Liguori
#        with a prefix.  The matching rules for partial paths are subtle but
1850 57c9fafe Anthony Liguori
#        designed to make specifying objects easy.  At each level of the
1851 eb6e8ea5 Anthony Liguori
#        composition tree, the partial path is matched as an absolute path.
1852 eb6e8ea5 Anthony Liguori
#        The first match is not returned.  At least two matches are searched
1853 eb6e8ea5 Anthony Liguori
#        for.  A successful result is only returned if only one match is
1854 eb6e8ea5 Anthony Liguori
#        found.  If more than one match is found, a flag is return to
1855 eb6e8ea5 Anthony Liguori
#        indicate that the match was ambiguous.
1856 eb6e8ea5 Anthony Liguori
#
1857 eb6e8ea5 Anthony Liguori
# @property: The property name to read
1858 eb6e8ea5 Anthony Liguori
#
1859 eb6e8ea5 Anthony Liguori
# Returns: The property value.  The type depends on the property type.  legacy<>
1860 eb6e8ea5 Anthony Liguori
#          properties are returned as #str.  child<> and link<> properties are
1861 eb6e8ea5 Anthony Liguori
#          returns as #str pathnames.  All integer property types (u8, u16, etc)
1862 eb6e8ea5 Anthony Liguori
#          are returned as #int.
1863 eb6e8ea5 Anthony Liguori
#
1864 51920820 Anthony Liguori
# Since: 1.2
1865 eb6e8ea5 Anthony Liguori
##
1866 eb6e8ea5 Anthony Liguori
{ 'command': 'qom-get',
1867 eb6e8ea5 Anthony Liguori
  'data': { 'path': 'str', 'property': 'str' },
1868 eb6e8ea5 Anthony Liguori
  'returns': 'visitor',
1869 eb6e8ea5 Anthony Liguori
  'gen': 'no' }
1870 eb6e8ea5 Anthony Liguori
1871 eb6e8ea5 Anthony Liguori
##
1872 eb6e8ea5 Anthony Liguori
# @qom-set:
1873 eb6e8ea5 Anthony Liguori
#
1874 57c9fafe Anthony Liguori
# This command will set a property from a object model path.
1875 eb6e8ea5 Anthony Liguori
#
1876 eb6e8ea5 Anthony Liguori
# @path: see @qom-get for a description of this parameter
1877 eb6e8ea5 Anthony Liguori
#
1878 eb6e8ea5 Anthony Liguori
# @property: the property name to set
1879 eb6e8ea5 Anthony Liguori
#
1880 eb6e8ea5 Anthony Liguori
# @value: a value who's type is appropriate for the property type.  See @qom-get
1881 eb6e8ea5 Anthony Liguori
#         for a description of type mapping.
1882 eb6e8ea5 Anthony Liguori
#
1883 51920820 Anthony Liguori
# Since: 1.2
1884 eb6e8ea5 Anthony Liguori
##
1885 eb6e8ea5 Anthony Liguori
{ 'command': 'qom-set',
1886 eb6e8ea5 Anthony Liguori
  'data': { 'path': 'str', 'property': 'str', 'value': 'visitor' },
1887 eb6e8ea5 Anthony Liguori
  'gen': 'no' }
1888 fbf796fd Luiz Capitulino
1889 fbf796fd Luiz Capitulino
##
1890 fbf796fd Luiz Capitulino
# @set_password:
1891 fbf796fd Luiz Capitulino
#
1892 fbf796fd Luiz Capitulino
# Sets the password of a remote display session.
1893 fbf796fd Luiz Capitulino
#
1894 fbf796fd Luiz Capitulino
# @protocol: `vnc' to modify the VNC server password
1895 fbf796fd Luiz Capitulino
#            `spice' to modify the Spice server password
1896 fbf796fd Luiz Capitulino
#
1897 fbf796fd Luiz Capitulino
# @password: the new password
1898 fbf796fd Luiz Capitulino
#
1899 fbf796fd Luiz Capitulino
# @connected: #optional how to handle existing clients when changing the
1900 b80e560b Laszlo Ersek
#                       password.  If nothing is specified, defaults to `keep'
1901 fbf796fd Luiz Capitulino
#                       `fail' to fail the command if clients are connected
1902 fbf796fd Luiz Capitulino
#                       `disconnect' to disconnect existing clients
1903 fbf796fd Luiz Capitulino
#                       `keep' to maintain existing clients
1904 fbf796fd Luiz Capitulino
#
1905 fbf796fd Luiz Capitulino
# Returns: Nothing on success
1906 fbf796fd Luiz Capitulino
#          If Spice is not enabled, DeviceNotFound
1907 fbf796fd Luiz Capitulino
#
1908 fbf796fd Luiz Capitulino
# Since: 0.14.0
1909 fbf796fd Luiz Capitulino
##
1910 fbf796fd Luiz Capitulino
{ 'command': 'set_password',
1911 fbf796fd Luiz Capitulino
  'data': {'protocol': 'str', 'password': 'str', '*connected': 'str'} }
1912 9ad5372d Luiz Capitulino
1913 9ad5372d Luiz Capitulino
##
1914 9ad5372d Luiz Capitulino
# @expire_password:
1915 9ad5372d Luiz Capitulino
#
1916 9ad5372d Luiz Capitulino
# Expire the password of a remote display server.
1917 9ad5372d Luiz Capitulino
#
1918 9ad5372d Luiz Capitulino
# @protocol: the name of the remote display protocol `vnc' or `spice'
1919 9ad5372d Luiz Capitulino
#
1920 9ad5372d Luiz Capitulino
# @time: when to expire the password.
1921 9ad5372d Luiz Capitulino
#        `now' to expire the password immediately
1922 9ad5372d Luiz Capitulino
#        `never' to cancel password expiration
1923 9ad5372d Luiz Capitulino
#        `+INT' where INT is the number of seconds from now (integer)
1924 9ad5372d Luiz Capitulino
#        `INT' where INT is the absolute time in seconds
1925 9ad5372d Luiz Capitulino
#
1926 9ad5372d Luiz Capitulino
# Returns: Nothing on success
1927 9ad5372d Luiz Capitulino
#          If @protocol is `spice' and Spice is not active, DeviceNotFound
1928 9ad5372d Luiz Capitulino
#
1929 9ad5372d Luiz Capitulino
# Since: 0.14.0
1930 9ad5372d Luiz Capitulino
#
1931 9ad5372d Luiz Capitulino
# Notes: Time is relative to the server and currently there is no way to
1932 9ad5372d Luiz Capitulino
#        coordinate server time with client time.  It is not recommended to
1933 9ad5372d Luiz Capitulino
#        use the absolute time version of the @time parameter unless you're
1934 9ad5372d Luiz Capitulino
#        sure you are on the same machine as the QEMU instance.
1935 9ad5372d Luiz Capitulino
##
1936 9ad5372d Luiz Capitulino
{ 'command': 'expire_password', 'data': {'protocol': 'str', 'time': 'str'} }
1937 c245b6a3 Luiz Capitulino
1938 c245b6a3 Luiz Capitulino
##
1939 c245b6a3 Luiz Capitulino
# @eject:
1940 c245b6a3 Luiz Capitulino
#
1941 c245b6a3 Luiz Capitulino
# Ejects a device from a removable drive.
1942 c245b6a3 Luiz Capitulino
#
1943 c245b6a3 Luiz Capitulino
# @device:  The name of the device
1944 c245b6a3 Luiz Capitulino
#
1945 c245b6a3 Luiz Capitulino
# @force:   @optional If true, eject regardless of whether the drive is locked.
1946 c245b6a3 Luiz Capitulino
#           If not specified, the default value is false.
1947 c245b6a3 Luiz Capitulino
#
1948 c245b6a3 Luiz Capitulino
# Returns:  Nothing on success
1949 c245b6a3 Luiz Capitulino
#           If @device is not a valid block device, DeviceNotFound
1950 c245b6a3 Luiz Capitulino
#
1951 c245b6a3 Luiz Capitulino
# Notes:    Ejecting a device will no media results in success
1952 c245b6a3 Luiz Capitulino
#
1953 c245b6a3 Luiz Capitulino
# Since: 0.14.0
1954 c245b6a3 Luiz Capitulino
##
1955 c245b6a3 Luiz Capitulino
{ 'command': 'eject', 'data': {'device': 'str', '*force': 'bool'} }
1956 270b243f Luiz Capitulino
1957 270b243f Luiz Capitulino
##
1958 270b243f Luiz Capitulino
# @change-vnc-password:
1959 270b243f Luiz Capitulino
#
1960 270b243f Luiz Capitulino
# Change the VNC server password.
1961 270b243f Luiz Capitulino
#
1962 270b243f Luiz Capitulino
# @target:  the new password to use with VNC authentication
1963 270b243f Luiz Capitulino
#
1964 270b243f Luiz Capitulino
# Since: 1.1
1965 270b243f Luiz Capitulino
#
1966 270b243f Luiz Capitulino
# Notes:  An empty password in this command will set the password to the empty
1967 270b243f Luiz Capitulino
#         string.  Existing clients are unaffected by executing this command.
1968 270b243f Luiz Capitulino
##
1969 270b243f Luiz Capitulino
{ 'command': 'change-vnc-password', 'data': {'password': 'str'} }
1970 333a96ec Luiz Capitulino
1971 333a96ec Luiz Capitulino
##
1972 333a96ec Luiz Capitulino
# @change:
1973 333a96ec Luiz Capitulino
#
1974 333a96ec Luiz Capitulino
# This command is multiple commands multiplexed together.
1975 333a96ec Luiz Capitulino
#
1976 333a96ec Luiz Capitulino
# @device: This is normally the name of a block device but it may also be 'vnc'.
1977 333a96ec Luiz Capitulino
#          when it's 'vnc', then sub command depends on @target
1978 333a96ec Luiz Capitulino
#
1979 333a96ec Luiz Capitulino
# @target: If @device is a block device, then this is the new filename.
1980 333a96ec Luiz Capitulino
#          If @device is 'vnc', then if the value 'password' selects the vnc
1981 333a96ec Luiz Capitulino
#          change password command.   Otherwise, this specifies a new server URI
1982 333a96ec Luiz Capitulino
#          address to listen to for VNC connections.
1983 333a96ec Luiz Capitulino
#
1984 333a96ec Luiz Capitulino
# @arg:    If @device is a block device, then this is an optional format to open
1985 333a96ec Luiz Capitulino
#          the device with.
1986 333a96ec Luiz Capitulino
#          If @device is 'vnc' and @target is 'password', this is the new VNC
1987 333a96ec Luiz Capitulino
#          password to set.  If this argument is an empty string, then no future
1988 333a96ec Luiz Capitulino
#          logins will be allowed.
1989 333a96ec Luiz Capitulino
#
1990 333a96ec Luiz Capitulino
# Returns: Nothing on success.
1991 333a96ec Luiz Capitulino
#          If @device is not a valid block device, DeviceNotFound
1992 333a96ec Luiz Capitulino
#          If the new block device is encrypted, DeviceEncrypted.  Note that
1993 333a96ec Luiz Capitulino
#          if this error is returned, the device has been opened successfully
1994 333a96ec Luiz Capitulino
#          and an additional call to @block_passwd is required to set the
1995 333a96ec Luiz Capitulino
#          device's password.  The behavior of reads and writes to the block
1996 333a96ec Luiz Capitulino
#          device between when these calls are executed is undefined.
1997 333a96ec Luiz Capitulino
#
1998 333a96ec Luiz Capitulino
# Notes:  It is strongly recommended that this interface is not used especially
1999 333a96ec Luiz Capitulino
#         for changing block devices.
2000 333a96ec Luiz Capitulino
#
2001 333a96ec Luiz Capitulino
# Since: 0.14.0
2002 333a96ec Luiz Capitulino
##
2003 333a96ec Luiz Capitulino
{ 'command': 'change',
2004 333a96ec Luiz Capitulino
  'data': {'device': 'str', 'target': 'str', '*arg': 'str'} }
2005 80047da5 Luiz Capitulino
2006 80047da5 Luiz Capitulino
##
2007 80047da5 Luiz Capitulino
# @block_set_io_throttle:
2008 80047da5 Luiz Capitulino
#
2009 80047da5 Luiz Capitulino
# Change I/O throttle limits for a block drive.
2010 80047da5 Luiz Capitulino
#
2011 80047da5 Luiz Capitulino
# @device: The name of the device
2012 80047da5 Luiz Capitulino
#
2013 80047da5 Luiz Capitulino
# @bps: total throughput limit in bytes per second
2014 80047da5 Luiz Capitulino
#
2015 80047da5 Luiz Capitulino
# @bps_rd: read throughput limit in bytes per second
2016 80047da5 Luiz Capitulino
#
2017 80047da5 Luiz Capitulino
# @bps_wr: write throughput limit in bytes per second
2018 80047da5 Luiz Capitulino
#
2019 80047da5 Luiz Capitulino
# @iops: total I/O operations per second
2020 80047da5 Luiz Capitulino
#
2021 80047da5 Luiz Capitulino
# @ops_rd: read I/O operations per second
2022 80047da5 Luiz Capitulino
#
2023 80047da5 Luiz Capitulino
# @iops_wr: write I/O operations per second
2024 80047da5 Luiz Capitulino
#
2025 80047da5 Luiz Capitulino
# Returns: Nothing on success
2026 80047da5 Luiz Capitulino
#          If @device is not a valid block device, DeviceNotFound
2027 80047da5 Luiz Capitulino
#
2028 80047da5 Luiz Capitulino
# Since: 1.1
2029 b80e560b Laszlo Ersek
##
2030 80047da5 Luiz Capitulino
{ 'command': 'block_set_io_throttle',
2031 80047da5 Luiz Capitulino
  'data': { 'device': 'str', 'bps': 'int', 'bps_rd': 'int', 'bps_wr': 'int',
2032 80047da5 Luiz Capitulino
            'iops': 'int', 'iops_rd': 'int', 'iops_wr': 'int' } }
2033 12bd451f Stefan Hajnoczi
2034 db58f9c0 Stefan Hajnoczi
##
2035 db58f9c0 Stefan Hajnoczi
# @block-stream:
2036 12bd451f Stefan Hajnoczi
#
2037 12bd451f Stefan Hajnoczi
# Copy data from a backing file into a block device.
2038 12bd451f Stefan Hajnoczi
#
2039 12bd451f Stefan Hajnoczi
# The block streaming operation is performed in the background until the entire
2040 12bd451f Stefan Hajnoczi
# backing file has been copied.  This command returns immediately once streaming
2041 12bd451f Stefan Hajnoczi
# has started.  The status of ongoing block streaming operations can be checked
2042 12bd451f Stefan Hajnoczi
# with query-block-jobs.  The operation can be stopped before it has completed
2043 db58f9c0 Stefan Hajnoczi
# using the block-job-cancel command.
2044 12bd451f Stefan Hajnoczi
#
2045 12bd451f Stefan Hajnoczi
# If a base file is specified then sectors are not copied from that base file and
2046 12bd451f Stefan Hajnoczi
# its backing chain.  When streaming completes the image file will have the base
2047 12bd451f Stefan Hajnoczi
# file as its backing file.  This can be used to stream a subset of the backing
2048 12bd451f Stefan Hajnoczi
# file chain instead of flattening the entire image.
2049 12bd451f Stefan Hajnoczi
#
2050 12bd451f Stefan Hajnoczi
# On successful completion the image file is updated to drop the backing file
2051 12bd451f Stefan Hajnoczi
# and the BLOCK_JOB_COMPLETED event is emitted.
2052 12bd451f Stefan Hajnoczi
#
2053 12bd451f Stefan Hajnoczi
# @device: the device name
2054 12bd451f Stefan Hajnoczi
#
2055 12bd451f Stefan Hajnoczi
# @base:   #optional the common backing file name
2056 12bd451f Stefan Hajnoczi
#
2057 c83c66c3 Stefan Hajnoczi
# @speed:  #optional the maximum speed, in bytes per second
2058 c83c66c3 Stefan Hajnoczi
#
2059 1d809098 Paolo Bonzini
# @on-error: #optional the action to take on an error (default report).
2060 1d809098 Paolo Bonzini
#            'stop' and 'enospc' can only be used if the block device
2061 1d809098 Paolo Bonzini
#            supports io-status (see BlockInfo).  Since 1.3.
2062 1d809098 Paolo Bonzini
#
2063 12bd451f Stefan Hajnoczi
# Returns: Nothing on success
2064 12bd451f Stefan Hajnoczi
#          If @device does not exist, DeviceNotFound
2065 12bd451f Stefan Hajnoczi
#
2066 12bd451f Stefan Hajnoczi
# Since: 1.1
2067 12bd451f Stefan Hajnoczi
##
2068 1d809098 Paolo Bonzini
{ 'command': 'block-stream',
2069 1d809098 Paolo Bonzini
  'data': { 'device': 'str', '*base': 'str', '*speed': 'int',
2070 1d809098 Paolo Bonzini
            '*on-error': 'BlockdevOnError' } }
2071 2d47c6e9 Stefan Hajnoczi
2072 2d47c6e9 Stefan Hajnoczi
##
2073 db58f9c0 Stefan Hajnoczi
# @block-job-set-speed:
2074 2d47c6e9 Stefan Hajnoczi
#
2075 2d47c6e9 Stefan Hajnoczi
# Set maximum speed for a background block operation.
2076 2d47c6e9 Stefan Hajnoczi
#
2077 2d47c6e9 Stefan Hajnoczi
# This command can only be issued when there is an active block job.
2078 2d47c6e9 Stefan Hajnoczi
#
2079 2d47c6e9 Stefan Hajnoczi
# Throttling can be disabled by setting the speed to 0.
2080 2d47c6e9 Stefan Hajnoczi
#
2081 2d47c6e9 Stefan Hajnoczi
# @device: the device name
2082 2d47c6e9 Stefan Hajnoczi
#
2083 c83c66c3 Stefan Hajnoczi
# @speed:  the maximum speed, in bytes per second, or 0 for unlimited.
2084 c83c66c3 Stefan Hajnoczi
#          Defaults to 0.
2085 2d47c6e9 Stefan Hajnoczi
#
2086 2d47c6e9 Stefan Hajnoczi
# Returns: Nothing on success
2087 05290d80 Paolo Bonzini
#          If no background operation is active on this device, DeviceNotActive
2088 2d47c6e9 Stefan Hajnoczi
#
2089 2d47c6e9 Stefan Hajnoczi
# Since: 1.1
2090 2d47c6e9 Stefan Hajnoczi
##
2091 db58f9c0 Stefan Hajnoczi
{ 'command': 'block-job-set-speed',
2092 882ec7ce Stefan Hajnoczi
  'data': { 'device': 'str', 'speed': 'int' } }
2093 370521a1 Stefan Hajnoczi
2094 370521a1 Stefan Hajnoczi
##
2095 db58f9c0 Stefan Hajnoczi
# @block-job-cancel:
2096 370521a1 Stefan Hajnoczi
#
2097 05290d80 Paolo Bonzini
# Stop an active background block operation.
2098 370521a1 Stefan Hajnoczi
#
2099 05290d80 Paolo Bonzini
# This command returns immediately after marking the active background block
2100 370521a1 Stefan Hajnoczi
# operation for cancellation.  It is an error to call this command if no
2101 370521a1 Stefan Hajnoczi
# operation is in progress.
2102 370521a1 Stefan Hajnoczi
#
2103 370521a1 Stefan Hajnoczi
# The operation will cancel as soon as possible and then emit the
2104 370521a1 Stefan Hajnoczi
# BLOCK_JOB_CANCELLED event.  Before that happens the job is still visible when
2105 370521a1 Stefan Hajnoczi
# enumerated using query-block-jobs.
2106 370521a1 Stefan Hajnoczi
#
2107 05290d80 Paolo Bonzini
# For streaming, the image file retains its backing file unless the streaming
2108 05290d80 Paolo Bonzini
# operation happens to complete just as it is being cancelled.  A new streaming
2109 05290d80 Paolo Bonzini
# operation can be started at a later time to finish copying all data from the
2110 05290d80 Paolo Bonzini
# backing file.
2111 370521a1 Stefan Hajnoczi
#
2112 370521a1 Stefan Hajnoczi
# @device: the device name
2113 370521a1 Stefan Hajnoczi
#
2114 6e37fb81 Paolo Bonzini
# @force: #optional whether to allow cancellation of a paused job (default
2115 6e37fb81 Paolo Bonzini
#         false).  Since 1.3.
2116 6e37fb81 Paolo Bonzini
#
2117 370521a1 Stefan Hajnoczi
# Returns: Nothing on success
2118 05290d80 Paolo Bonzini
#          If no background operation is active on this device, DeviceNotActive
2119 370521a1 Stefan Hajnoczi
#
2120 370521a1 Stefan Hajnoczi
# Since: 1.1
2121 370521a1 Stefan Hajnoczi
##
2122 6e37fb81 Paolo Bonzini
{ 'command': 'block-job-cancel', 'data': { 'device': 'str', '*force': 'bool' } }
2123 6e37fb81 Paolo Bonzini
2124 6e37fb81 Paolo Bonzini
##
2125 6e37fb81 Paolo Bonzini
# @block-job-pause:
2126 6e37fb81 Paolo Bonzini
#
2127 6e37fb81 Paolo Bonzini
# Pause an active background block operation.
2128 6e37fb81 Paolo Bonzini
#
2129 6e37fb81 Paolo Bonzini
# This command returns immediately after marking the active background block
2130 6e37fb81 Paolo Bonzini
# operation for pausing.  It is an error to call this command if no
2131 6e37fb81 Paolo Bonzini
# operation is in progress.  Pausing an already paused job has no cumulative
2132 6e37fb81 Paolo Bonzini
# effect; a single block-job-resume command will resume the job.
2133 6e37fb81 Paolo Bonzini
#
2134 6e37fb81 Paolo Bonzini
# The operation will pause as soon as possible.  No event is emitted when
2135 6e37fb81 Paolo Bonzini
# the operation is actually paused.  Cancelling a paused job automatically
2136 6e37fb81 Paolo Bonzini
# resumes it.
2137 6e37fb81 Paolo Bonzini
#
2138 6e37fb81 Paolo Bonzini
# @device: the device name
2139 6e37fb81 Paolo Bonzini
#
2140 6e37fb81 Paolo Bonzini
# Returns: Nothing on success
2141 6e37fb81 Paolo Bonzini
#          If no background operation is active on this device, DeviceNotActive
2142 6e37fb81 Paolo Bonzini
#
2143 6e37fb81 Paolo Bonzini
# Since: 1.3
2144 6e37fb81 Paolo Bonzini
##
2145 6e37fb81 Paolo Bonzini
{ 'command': 'block-job-pause', 'data': { 'device': 'str' } }
2146 6e37fb81 Paolo Bonzini
2147 6e37fb81 Paolo Bonzini
##
2148 6e37fb81 Paolo Bonzini
# @block-job-resume:
2149 6e37fb81 Paolo Bonzini
#
2150 6e37fb81 Paolo Bonzini
# Resume an active background block operation.
2151 6e37fb81 Paolo Bonzini
#
2152 6e37fb81 Paolo Bonzini
# This command returns immediately after resuming a paused background block
2153 6e37fb81 Paolo Bonzini
# operation.  It is an error to call this command if no operation is in
2154 6e37fb81 Paolo Bonzini
# progress.  Resuming an already running job is not an error.
2155 6e37fb81 Paolo Bonzini
#
2156 32c81a4a Paolo Bonzini
# This command also clears the error status of the job.
2157 32c81a4a Paolo Bonzini
#
2158 6e37fb81 Paolo Bonzini
# @device: the device name
2159 6e37fb81 Paolo Bonzini
#
2160 6e37fb81 Paolo Bonzini
# Returns: Nothing on success
2161 6e37fb81 Paolo Bonzini
#          If no background operation is active on this device, DeviceNotActive
2162 6e37fb81 Paolo Bonzini
#
2163 6e37fb81 Paolo Bonzini
# Since: 1.3
2164 6e37fb81 Paolo Bonzini
##
2165 6e37fb81 Paolo Bonzini
{ 'command': 'block-job-resume', 'data': { 'device': 'str' } }
2166 5eeee3fa Anthony Liguori
2167 5eeee3fa Anthony Liguori
##
2168 aeae883b Paolo Bonzini
# @block-job-complete:
2169 aeae883b Paolo Bonzini
#
2170 aeae883b Paolo Bonzini
# Manually trigger completion of an active background block operation.  This
2171 aeae883b Paolo Bonzini
# is supported for drive mirroring, where it also switches the device to
2172 a66a2a36 Paolo Bonzini
# write to the target path only.  The ability to complete is signaled with
2173 a66a2a36 Paolo Bonzini
# a BLOCK_JOB_READY event.
2174 aeae883b Paolo Bonzini
#
2175 aeae883b Paolo Bonzini
# This command completes an active background block operation synchronously.
2176 aeae883b Paolo Bonzini
# The ordering of this command's return with the BLOCK_JOB_COMPLETED event
2177 aeae883b Paolo Bonzini
# is not defined.  Note that if an I/O error occurs during the processing of
2178 aeae883b Paolo Bonzini
# this command: 1) the command itself will fail; 2) the error will be processed
2179 aeae883b Paolo Bonzini
# according to the rerror/werror arguments that were specified when starting
2180 aeae883b Paolo Bonzini
# the operation.
2181 aeae883b Paolo Bonzini
#
2182 aeae883b Paolo Bonzini
# A cancelled or paused job cannot be completed.
2183 aeae883b Paolo Bonzini
#
2184 aeae883b Paolo Bonzini
# @device: the device name
2185 aeae883b Paolo Bonzini
#
2186 aeae883b Paolo Bonzini
# Returns: Nothing on success
2187 aeae883b Paolo Bonzini
#          If no background operation is active on this device, DeviceNotActive
2188 aeae883b Paolo Bonzini
#
2189 aeae883b Paolo Bonzini
# Since: 1.3
2190 aeae883b Paolo Bonzini
##
2191 aeae883b Paolo Bonzini
{ 'command': 'block-job-complete', 'data': { 'device': 'str' } }
2192 aeae883b Paolo Bonzini
2193 aeae883b Paolo Bonzini
##
2194 5eeee3fa Anthony Liguori
# @ObjectTypeInfo:
2195 5eeee3fa Anthony Liguori
#
2196 5eeee3fa Anthony Liguori
# This structure describes a search result from @qom-list-types
2197 5eeee3fa Anthony Liguori
#
2198 5eeee3fa Anthony Liguori
# @name: the type name found in the search
2199 5eeee3fa Anthony Liguori
#
2200 5eeee3fa Anthony Liguori
# Since: 1.1
2201 5eeee3fa Anthony Liguori
#
2202 5eeee3fa Anthony Liguori
# Notes: This command is experimental and may change syntax in future releases.
2203 5eeee3fa Anthony Liguori
##
2204 5eeee3fa Anthony Liguori
{ 'type': 'ObjectTypeInfo',
2205 5eeee3fa Anthony Liguori
  'data': { 'name': 'str' } }
2206 5eeee3fa Anthony Liguori
2207 5eeee3fa Anthony Liguori
##
2208 5eeee3fa Anthony Liguori
# @qom-list-types:
2209 5eeee3fa Anthony Liguori
#
2210 5eeee3fa Anthony Liguori
# This command will return a list of types given search parameters
2211 5eeee3fa Anthony Liguori
#
2212 5eeee3fa Anthony Liguori
# @implements: if specified, only return types that implement this type name
2213 5eeee3fa Anthony Liguori
#
2214 5eeee3fa Anthony Liguori
# @abstract: if true, include abstract types in the results
2215 5eeee3fa Anthony Liguori
#
2216 5eeee3fa Anthony Liguori
# Returns: a list of @ObjectTypeInfo or an empty list if no results are found
2217 5eeee3fa Anthony Liguori
#
2218 5eeee3fa Anthony Liguori
# Since: 1.1
2219 5eeee3fa Anthony Liguori
##
2220 5eeee3fa Anthony Liguori
{ 'command': 'qom-list-types',
2221 5eeee3fa Anthony Liguori
  'data': { '*implements': 'str', '*abstract': 'bool' },
2222 5eeee3fa Anthony Liguori
  'returns': [ 'ObjectTypeInfo' ] }
2223 e1c37d0e Luiz Capitulino
2224 e1c37d0e Luiz Capitulino
##
2225 1daa31b9 Anthony Liguori
# @DevicePropertyInfo:
2226 1daa31b9 Anthony Liguori
#
2227 1daa31b9 Anthony Liguori
# Information about device properties.
2228 1daa31b9 Anthony Liguori
#
2229 1daa31b9 Anthony Liguori
# @name: the name of the property
2230 1daa31b9 Anthony Liguori
# @type: the typename of the property
2231 1daa31b9 Anthony Liguori
#
2232 1daa31b9 Anthony Liguori
# Since: 1.2
2233 1daa31b9 Anthony Liguori
##
2234 1daa31b9 Anthony Liguori
{ 'type': 'DevicePropertyInfo',
2235 1daa31b9 Anthony Liguori
  'data': { 'name': 'str', 'type': 'str' } }
2236 1daa31b9 Anthony Liguori
2237 1daa31b9 Anthony Liguori
##
2238 1daa31b9 Anthony Liguori
# @device-list-properties:
2239 1daa31b9 Anthony Liguori
#
2240 1daa31b9 Anthony Liguori
# List properties associated with a device.
2241 1daa31b9 Anthony Liguori
#
2242 1daa31b9 Anthony Liguori
# @typename: the type name of a device
2243 1daa31b9 Anthony Liguori
#
2244 1daa31b9 Anthony Liguori
# Returns: a list of DevicePropertyInfo describing a devices properties
2245 1daa31b9 Anthony Liguori
#
2246 1daa31b9 Anthony Liguori
# Since: 1.2
2247 1daa31b9 Anthony Liguori
##
2248 1daa31b9 Anthony Liguori
{ 'command': 'device-list-properties',
2249 1daa31b9 Anthony Liguori
  'data': { 'typename': 'str'},
2250 1daa31b9 Anthony Liguori
  'returns': [ 'DevicePropertyInfo' ] }
2251 1daa31b9 Anthony Liguori
2252 1daa31b9 Anthony Liguori
##
2253 e1c37d0e Luiz Capitulino
# @migrate
2254 e1c37d0e Luiz Capitulino
#
2255 e1c37d0e Luiz Capitulino
# Migrates the current running guest to another Virtual Machine.
2256 e1c37d0e Luiz Capitulino
#
2257 e1c37d0e Luiz Capitulino
# @uri: the Uniform Resource Identifier of the destination VM
2258 e1c37d0e Luiz Capitulino
#
2259 e1c37d0e Luiz Capitulino
# @blk: #optional do block migration (full disk copy)
2260 e1c37d0e Luiz Capitulino
#
2261 e1c37d0e Luiz Capitulino
# @inc: #optional incremental disk copy migration
2262 e1c37d0e Luiz Capitulino
#
2263 e1c37d0e Luiz Capitulino
# @detach: this argument exists only for compatibility reasons and
2264 e1c37d0e Luiz Capitulino
#          is ignored by QEMU
2265 e1c37d0e Luiz Capitulino
#
2266 e1c37d0e Luiz Capitulino
# Returns: nothing on success
2267 e1c37d0e Luiz Capitulino
#
2268 e1c37d0e Luiz Capitulino
# Since: 0.14.0
2269 e1c37d0e Luiz Capitulino
##
2270 e1c37d0e Luiz Capitulino
{ 'command': 'migrate',
2271 e1c37d0e Luiz Capitulino
  'data': {'uri': 'str', '*blk': 'bool', '*inc': 'bool', '*detach': 'bool' } }
2272 33cf629a Anthony Liguori
2273 a7ae8355 Stefano Stabellini
# @xen-save-devices-state:
2274 a7ae8355 Stefano Stabellini
#
2275 a7ae8355 Stefano Stabellini
# Save the state of all devices to file. The RAM and the block devices
2276 a7ae8355 Stefano Stabellini
# of the VM are not saved by this command.
2277 a7ae8355 Stefano Stabellini
#
2278 a7ae8355 Stefano Stabellini
# @filename: the file to save the state of the devices to as binary
2279 a7ae8355 Stefano Stabellini
# data. See xen-save-devices-state.txt for a description of the binary
2280 a7ae8355 Stefano Stabellini
# format.
2281 a7ae8355 Stefano Stabellini
#
2282 a7ae8355 Stefano Stabellini
# Returns: Nothing on success
2283 a7ae8355 Stefano Stabellini
#
2284 a7ae8355 Stefano Stabellini
# Since: 1.1
2285 a7ae8355 Stefano Stabellini
##
2286 a7ae8355 Stefano Stabellini
{ 'command': 'xen-save-devices-state', 'data': {'filename': 'str'} }
2287 a15fef21 Luiz Capitulino
2288 a15fef21 Luiz Capitulino
##
2289 39f42439 Anthony PERARD
# @xen-set-global-dirty-log
2290 39f42439 Anthony PERARD
#
2291 39f42439 Anthony PERARD
# Enable or disable the global dirty log mode.
2292 39f42439 Anthony PERARD
#
2293 39f42439 Anthony PERARD
# @enable: true to enable, false to disable.
2294 39f42439 Anthony PERARD
#
2295 39f42439 Anthony PERARD
# Returns: nothing
2296 39f42439 Anthony PERARD
#
2297 39f42439 Anthony PERARD
# Since: 1.3
2298 39f42439 Anthony PERARD
##
2299 39f42439 Anthony PERARD
{ 'command': 'xen-set-global-dirty-log', 'data': { 'enable': 'bool' } }
2300 39f42439 Anthony PERARD
2301 39f42439 Anthony PERARD
##
2302 a15fef21 Luiz Capitulino
# @device_del:
2303 a15fef21 Luiz Capitulino
#
2304 a15fef21 Luiz Capitulino
# Remove a device from a guest
2305 a15fef21 Luiz Capitulino
#
2306 a15fef21 Luiz Capitulino
# @id: the name of the device
2307 a15fef21 Luiz Capitulino
#
2308 a15fef21 Luiz Capitulino
# Returns: Nothing on success
2309 a15fef21 Luiz Capitulino
#          If @id is not a valid device, DeviceNotFound
2310 a15fef21 Luiz Capitulino
#
2311 a15fef21 Luiz Capitulino
# Notes: When this command completes, the device may not be removed from the
2312 a15fef21 Luiz Capitulino
#        guest.  Hot removal is an operation that requires guest cooperation.
2313 a15fef21 Luiz Capitulino
#        This command merely requests that the guest begin the hot removal
2314 a15fef21 Luiz Capitulino
#        process.
2315 a15fef21 Luiz Capitulino
#
2316 a15fef21 Luiz Capitulino
# Since: 0.14.0
2317 a15fef21 Luiz Capitulino
##
2318 a15fef21 Luiz Capitulino
{ 'command': 'device_del', 'data': {'id': 'str'} }
2319 783e9b48 Wen Congyang
2320 783e9b48 Wen Congyang
##
2321 783e9b48 Wen Congyang
# @dump-guest-memory
2322 783e9b48 Wen Congyang
#
2323 783e9b48 Wen Congyang
# Dump guest's memory to vmcore. It is a synchronous operation that can take
2324 783e9b48 Wen Congyang
# very long depending on the amount of guest memory. This command is only
2325 f5b0d93b Luiz Capitulino
# supported on i386 and x86_64.
2326 f5b0d93b Luiz Capitulino
#
2327 f5b0d93b Luiz Capitulino
# @paging: if true, do paging to get guest's memory mapping. This allows
2328 d691180e Luiz Capitulino
#          using gdb to process the core file.
2329 f5b0d93b Luiz Capitulino
#
2330 d691180e Luiz Capitulino
#          IMPORTANT: this option can make QEMU allocate several gigabytes
2331 d691180e Luiz Capitulino
#                     of RAM. This can happen for a large guest, or a
2332 d691180e Luiz Capitulino
#                     malicious guest pretending to be large.
2333 d691180e Luiz Capitulino
#
2334 d691180e Luiz Capitulino
#          Also, paging=true has the following limitations:
2335 d691180e Luiz Capitulino
#
2336 d691180e Luiz Capitulino
#             1. The guest may be in a catastrophic state or can have corrupted
2337 d691180e Luiz Capitulino
#                memory, which cannot be trusted
2338 d691180e Luiz Capitulino
#             2. The guest can be in real-mode even if paging is enabled. For
2339 d691180e Luiz Capitulino
#                example, the guest uses ACPI to sleep, and ACPI sleep state
2340 d691180e Luiz Capitulino
#                goes in real-mode
2341 f5b0d93b Luiz Capitulino
#
2342 783e9b48 Wen Congyang
# @protocol: the filename or file descriptor of the vmcore. The supported
2343 d691180e Luiz Capitulino
#            protocols are:
2344 f5b0d93b Luiz Capitulino
#
2345 d691180e Luiz Capitulino
#            1. file: the protocol starts with "file:", and the following
2346 d691180e Luiz Capitulino
#               string is the file's path.
2347 d691180e Luiz Capitulino
#            2. fd: the protocol starts with "fd:", and the following string
2348 d691180e Luiz Capitulino
#               is the fd's name.
2349 f5b0d93b Luiz Capitulino
#
2350 783e9b48 Wen Congyang
# @begin: #optional if specified, the starting physical address.
2351 f5b0d93b Luiz Capitulino
#
2352 783e9b48 Wen Congyang
# @length: #optional if specified, the memory size, in bytes. If you don't
2353 d691180e Luiz Capitulino
#          want to dump all guest's memory, please specify the start @begin
2354 d691180e Luiz Capitulino
#          and @length
2355 783e9b48 Wen Congyang
#
2356 783e9b48 Wen Congyang
# Returns: nothing on success
2357 783e9b48 Wen Congyang
#
2358 783e9b48 Wen Congyang
# Since: 1.2
2359 783e9b48 Wen Congyang
##
2360 783e9b48 Wen Congyang
{ 'command': 'dump-guest-memory',
2361 783e9b48 Wen Congyang
  'data': { 'paging': 'bool', 'protocol': 'str', '*begin': 'int',
2362 783e9b48 Wen Congyang
            '*length': 'int' } }
2363 d691180e Luiz Capitulino
2364 928059a3 Luiz Capitulino
##
2365 928059a3 Luiz Capitulino
# @netdev_add:
2366 928059a3 Luiz Capitulino
#
2367 928059a3 Luiz Capitulino
# Add a network backend.
2368 928059a3 Luiz Capitulino
#
2369 928059a3 Luiz Capitulino
# @type: the type of network backend.  Current valid values are 'user', 'tap',
2370 928059a3 Luiz Capitulino
#        'vde', 'socket', 'dump' and 'bridge'
2371 928059a3 Luiz Capitulino
#
2372 928059a3 Luiz Capitulino
# @id: the name of the new network backend
2373 928059a3 Luiz Capitulino
#
2374 928059a3 Luiz Capitulino
# @props: #optional a list of properties to be passed to the backend in
2375 928059a3 Luiz Capitulino
#         the format 'name=value', like 'ifname=tap0,script=no'
2376 928059a3 Luiz Capitulino
#
2377 928059a3 Luiz Capitulino
# Notes: The semantics of @props is not well defined.  Future commands will be
2378 928059a3 Luiz Capitulino
#        introduced that provide stronger typing for backend creation.
2379 928059a3 Luiz Capitulino
#
2380 928059a3 Luiz Capitulino
# Since: 0.14.0
2381 928059a3 Luiz Capitulino
#
2382 928059a3 Luiz Capitulino
# Returns: Nothing on success
2383 928059a3 Luiz Capitulino
#          If @type is not a valid network backend, DeviceNotFound
2384 928059a3 Luiz Capitulino
##
2385 928059a3 Luiz Capitulino
{ 'command': 'netdev_add',
2386 928059a3 Luiz Capitulino
  'data': {'type': 'str', 'id': 'str', '*props': '**'},
2387 928059a3 Luiz Capitulino
  'gen': 'no' }
2388 5f964155 Luiz Capitulino
2389 5f964155 Luiz Capitulino
##
2390 5f964155 Luiz Capitulino
# @netdev_del:
2391 5f964155 Luiz Capitulino
#
2392 5f964155 Luiz Capitulino
# Remove a network backend.
2393 5f964155 Luiz Capitulino
#
2394 5f964155 Luiz Capitulino
# @id: the name of the network backend to remove
2395 5f964155 Luiz Capitulino
#
2396 5f964155 Luiz Capitulino
# Returns: Nothing on success
2397 5f964155 Luiz Capitulino
#          If @id is not a valid network backend, DeviceNotFound
2398 5f964155 Luiz Capitulino
#
2399 5f964155 Luiz Capitulino
# Since: 0.14.0
2400 5f964155 Luiz Capitulino
##
2401 5f964155 Luiz Capitulino
{ 'command': 'netdev_del', 'data': {'id': 'str'} }
2402 208c9d1b Corey Bryant
2403 208c9d1b Corey Bryant
##
2404 14aa0c2d Laszlo Ersek
# @NetdevNoneOptions
2405 14aa0c2d Laszlo Ersek
#
2406 14aa0c2d Laszlo Ersek
# Use it alone to have zero network devices.
2407 14aa0c2d Laszlo Ersek
#
2408 14aa0c2d Laszlo Ersek
# Since 1.2
2409 14aa0c2d Laszlo Ersek
##
2410 14aa0c2d Laszlo Ersek
{ 'type': 'NetdevNoneOptions',
2411 14aa0c2d Laszlo Ersek
  'data': { } }
2412 14aa0c2d Laszlo Ersek
2413 14aa0c2d Laszlo Ersek
##
2414 14aa0c2d Laszlo Ersek
# @NetLegacyNicOptions
2415 14aa0c2d Laszlo Ersek
#
2416 14aa0c2d Laszlo Ersek
# Create a new Network Interface Card.
2417 14aa0c2d Laszlo Ersek
#
2418 14aa0c2d Laszlo Ersek
# @netdev: #optional id of -netdev to connect to
2419 14aa0c2d Laszlo Ersek
#
2420 14aa0c2d Laszlo Ersek
# @macaddr: #optional MAC address
2421 14aa0c2d Laszlo Ersek
#
2422 14aa0c2d Laszlo Ersek
# @model: #optional device model (e1000, rtl8139, virtio etc.)
2423 14aa0c2d Laszlo Ersek
#
2424 14aa0c2d Laszlo Ersek
# @addr: #optional PCI device address
2425 14aa0c2d Laszlo Ersek
#
2426 14aa0c2d Laszlo Ersek
# @vectors: #optional number of MSI-x vectors, 0 to disable MSI-X
2427 14aa0c2d Laszlo Ersek
#
2428 14aa0c2d Laszlo Ersek
# Since 1.2
2429 14aa0c2d Laszlo Ersek
##
2430 14aa0c2d Laszlo Ersek
{ 'type': 'NetLegacyNicOptions',
2431 14aa0c2d Laszlo Ersek
  'data': {
2432 14aa0c2d Laszlo Ersek
    '*netdev':  'str',
2433 14aa0c2d Laszlo Ersek
    '*macaddr': 'str',
2434 14aa0c2d Laszlo Ersek
    '*model':   'str',
2435 14aa0c2d Laszlo Ersek
    '*addr':    'str',
2436 14aa0c2d Laszlo Ersek
    '*vectors': 'uint32' } }
2437 14aa0c2d Laszlo Ersek
2438 14aa0c2d Laszlo Ersek
##
2439 14aa0c2d Laszlo Ersek
# @String
2440 14aa0c2d Laszlo Ersek
#
2441 14aa0c2d Laszlo Ersek
# A fat type wrapping 'str', to be embedded in lists.
2442 14aa0c2d Laszlo Ersek
#
2443 14aa0c2d Laszlo Ersek
# Since 1.2
2444 14aa0c2d Laszlo Ersek
##
2445 14aa0c2d Laszlo Ersek
{ 'type': 'String',
2446 14aa0c2d Laszlo Ersek
  'data': {
2447 14aa0c2d Laszlo Ersek
    'str': 'str' } }
2448 14aa0c2d Laszlo Ersek
2449 14aa0c2d Laszlo Ersek
##
2450 14aa0c2d Laszlo Ersek
# @NetdevUserOptions
2451 14aa0c2d Laszlo Ersek
#
2452 14aa0c2d Laszlo Ersek
# Use the user mode network stack which requires no administrator privilege to
2453 14aa0c2d Laszlo Ersek
# run.
2454 14aa0c2d Laszlo Ersek
#
2455 14aa0c2d Laszlo Ersek
# @hostname: #optional client hostname reported by the builtin DHCP server
2456 14aa0c2d Laszlo Ersek
#
2457 14aa0c2d Laszlo Ersek
# @restrict: #optional isolate the guest from the host
2458 14aa0c2d Laszlo Ersek
#
2459 14aa0c2d Laszlo Ersek
# @ip: #optional legacy parameter, use net= instead
2460 14aa0c2d Laszlo Ersek
#
2461 14aa0c2d Laszlo Ersek
# @net: #optional IP address and optional netmask
2462 14aa0c2d Laszlo Ersek
#
2463 14aa0c2d Laszlo Ersek
# @host: #optional guest-visible address of the host
2464 14aa0c2d Laszlo Ersek
#
2465 14aa0c2d Laszlo Ersek
# @tftp: #optional root directory of the built-in TFTP server
2466 14aa0c2d Laszlo Ersek
#
2467 14aa0c2d Laszlo Ersek
# @bootfile: #optional BOOTP filename, for use with tftp=
2468 14aa0c2d Laszlo Ersek
#
2469 14aa0c2d Laszlo Ersek
# @dhcpstart: #optional the first of the 16 IPs the built-in DHCP server can
2470 14aa0c2d Laszlo Ersek
#             assign
2471 14aa0c2d Laszlo Ersek
#
2472 14aa0c2d Laszlo Ersek
# @dns: #optional guest-visible address of the virtual nameserver
2473 14aa0c2d Laszlo Ersek
#
2474 63d2960b Klaus Stengel
# @dnssearch: #optional list of DNS suffixes to search, passed as DHCP option
2475 63d2960b Klaus Stengel
#             to the guest
2476 63d2960b Klaus Stengel
#
2477 14aa0c2d Laszlo Ersek
# @smb: #optional root directory of the built-in SMB server
2478 14aa0c2d Laszlo Ersek
#
2479 14aa0c2d Laszlo Ersek
# @smbserver: #optional IP address of the built-in SMB server
2480 14aa0c2d Laszlo Ersek
#
2481 14aa0c2d Laszlo Ersek
# @hostfwd: #optional redirect incoming TCP or UDP host connections to guest
2482 14aa0c2d Laszlo Ersek
#           endpoints
2483 14aa0c2d Laszlo Ersek
#
2484 14aa0c2d Laszlo Ersek
# @guestfwd: #optional forward guest TCP connections
2485 14aa0c2d Laszlo Ersek
#
2486 14aa0c2d Laszlo Ersek
# Since 1.2
2487 14aa0c2d Laszlo Ersek
##
2488 14aa0c2d Laszlo Ersek
{ 'type': 'NetdevUserOptions',
2489 14aa0c2d Laszlo Ersek
  'data': {
2490 14aa0c2d Laszlo Ersek
    '*hostname':  'str',
2491 14aa0c2d Laszlo Ersek
    '*restrict':  'bool',
2492 14aa0c2d Laszlo Ersek
    '*ip':        'str',
2493 14aa0c2d Laszlo Ersek
    '*net':       'str',
2494 14aa0c2d Laszlo Ersek
    '*host':      'str',
2495 14aa0c2d Laszlo Ersek
    '*tftp':      'str',
2496 14aa0c2d Laszlo Ersek
    '*bootfile':  'str',
2497 14aa0c2d Laszlo Ersek
    '*dhcpstart': 'str',
2498 14aa0c2d Laszlo Ersek
    '*dns':       'str',
2499 63d2960b Klaus Stengel
    '*dnssearch': ['String'],
2500 14aa0c2d Laszlo Ersek
    '*smb':       'str',
2501 14aa0c2d Laszlo Ersek
    '*smbserver': 'str',
2502 14aa0c2d Laszlo Ersek
    '*hostfwd':   ['String'],
2503 14aa0c2d Laszlo Ersek
    '*guestfwd':  ['String'] } }
2504 14aa0c2d Laszlo Ersek
2505 14aa0c2d Laszlo Ersek
##
2506 14aa0c2d Laszlo Ersek
# @NetdevTapOptions
2507 14aa0c2d Laszlo Ersek
#
2508 14aa0c2d Laszlo Ersek
# Connect the host TAP network interface name to the VLAN.
2509 14aa0c2d Laszlo Ersek
#
2510 14aa0c2d Laszlo Ersek
# @ifname: #optional interface name
2511 14aa0c2d Laszlo Ersek
#
2512 14aa0c2d Laszlo Ersek
# @fd: #optional file descriptor of an already opened tap
2513 14aa0c2d Laszlo Ersek
#
2514 14aa0c2d Laszlo Ersek
# @script: #optional script to initialize the interface
2515 14aa0c2d Laszlo Ersek
#
2516 14aa0c2d Laszlo Ersek
# @downscript: #optional script to shut down the interface
2517 14aa0c2d Laszlo Ersek
#
2518 14aa0c2d Laszlo Ersek
# @helper: #optional command to execute to configure bridge
2519 14aa0c2d Laszlo Ersek
#
2520 14aa0c2d Laszlo Ersek
# @sndbuf: #optional send buffer limit. Understands [TGMKkb] suffixes.
2521 14aa0c2d Laszlo Ersek
#
2522 14aa0c2d Laszlo Ersek
# @vnet_hdr: #optional enable the IFF_VNET_HDR flag on the tap interface
2523 14aa0c2d Laszlo Ersek
#
2524 14aa0c2d Laszlo Ersek
# @vhost: #optional enable vhost-net network accelerator
2525 14aa0c2d Laszlo Ersek
#
2526 14aa0c2d Laszlo Ersek
# @vhostfd: #optional file descriptor of an already opened vhost net device
2527 14aa0c2d Laszlo Ersek
#
2528 14aa0c2d Laszlo Ersek
# @vhostforce: #optional vhost on for non-MSIX virtio guests
2529 14aa0c2d Laszlo Ersek
#
2530 14aa0c2d Laszlo Ersek
# Since 1.2
2531 14aa0c2d Laszlo Ersek
##
2532 14aa0c2d Laszlo Ersek
{ 'type': 'NetdevTapOptions',
2533 14aa0c2d Laszlo Ersek
  'data': {
2534 14aa0c2d Laszlo Ersek
    '*ifname':     'str',
2535 14aa0c2d Laszlo Ersek
    '*fd':         'str',
2536 264986e2 Jason Wang
    '*fds':        'str',
2537 14aa0c2d Laszlo Ersek
    '*script':     'str',
2538 14aa0c2d Laszlo Ersek
    '*downscript': 'str',
2539 14aa0c2d Laszlo Ersek
    '*helper':     'str',
2540 14aa0c2d Laszlo Ersek
    '*sndbuf':     'size',
2541 14aa0c2d Laszlo Ersek
    '*vnet_hdr':   'bool',
2542 14aa0c2d Laszlo Ersek
    '*vhost':      'bool',
2543 14aa0c2d Laszlo Ersek
    '*vhostfd':    'str',
2544 264986e2 Jason Wang
    '*vhostfds':   'str',
2545 264986e2 Jason Wang
    '*vhostforce': 'bool',
2546 264986e2 Jason Wang
    '*queues':     'uint32'} }
2547 14aa0c2d Laszlo Ersek
2548 14aa0c2d Laszlo Ersek
##
2549 14aa0c2d Laszlo Ersek
# @NetdevSocketOptions
2550 14aa0c2d Laszlo Ersek
#
2551 14aa0c2d Laszlo Ersek
# Connect the VLAN to a remote VLAN in another QEMU virtual machine using a TCP
2552 14aa0c2d Laszlo Ersek
# socket connection.
2553 14aa0c2d Laszlo Ersek
#
2554 14aa0c2d Laszlo Ersek
# @fd: #optional file descriptor of an already opened socket
2555 14aa0c2d Laszlo Ersek
#
2556 14aa0c2d Laszlo Ersek
# @listen: #optional port number, and optional hostname, to listen on
2557 14aa0c2d Laszlo Ersek
#
2558 14aa0c2d Laszlo Ersek
# @connect: #optional port number, and optional hostname, to connect to
2559 14aa0c2d Laszlo Ersek
#
2560 14aa0c2d Laszlo Ersek
# @mcast: #optional UDP multicast address and port number
2561 14aa0c2d Laszlo Ersek
#
2562 14aa0c2d Laszlo Ersek
# @localaddr: #optional source address and port for multicast and udp packets
2563 14aa0c2d Laszlo Ersek
#
2564 14aa0c2d Laszlo Ersek
# @udp: #optional UDP unicast address and port number
2565 14aa0c2d Laszlo Ersek
#
2566 14aa0c2d Laszlo Ersek
# Since 1.2
2567 14aa0c2d Laszlo Ersek
##
2568 14aa0c2d Laszlo Ersek
{ 'type': 'NetdevSocketOptions',
2569 14aa0c2d Laszlo Ersek
  'data': {
2570 14aa0c2d Laszlo Ersek
    '*fd':        'str',
2571 14aa0c2d Laszlo Ersek
    '*listen':    'str',
2572 14aa0c2d Laszlo Ersek
    '*connect':   'str',
2573 14aa0c2d Laszlo Ersek
    '*mcast':     'str',
2574 14aa0c2d Laszlo Ersek
    '*localaddr': 'str',
2575 14aa0c2d Laszlo Ersek
    '*udp':       'str' } }
2576 14aa0c2d Laszlo Ersek
2577 14aa0c2d Laszlo Ersek
##
2578 14aa0c2d Laszlo Ersek
# @NetdevVdeOptions
2579 14aa0c2d Laszlo Ersek
#
2580 14aa0c2d Laszlo Ersek
# Connect the VLAN to a vde switch running on the host.
2581 14aa0c2d Laszlo Ersek
#
2582 14aa0c2d Laszlo Ersek
# @sock: #optional socket path
2583 14aa0c2d Laszlo Ersek
#
2584 14aa0c2d Laszlo Ersek
# @port: #optional port number
2585 14aa0c2d Laszlo Ersek
#
2586 14aa0c2d Laszlo Ersek
# @group: #optional group owner of socket
2587 14aa0c2d Laszlo Ersek
#
2588 14aa0c2d Laszlo Ersek
# @mode: #optional permissions for socket
2589 14aa0c2d Laszlo Ersek
#
2590 14aa0c2d Laszlo Ersek
# Since 1.2
2591 14aa0c2d Laszlo Ersek
##
2592 14aa0c2d Laszlo Ersek
{ 'type': 'NetdevVdeOptions',
2593 14aa0c2d Laszlo Ersek
  'data': {
2594 14aa0c2d Laszlo Ersek
    '*sock':  'str',
2595 14aa0c2d Laszlo Ersek
    '*port':  'uint16',
2596 14aa0c2d Laszlo Ersek
    '*group': 'str',
2597 14aa0c2d Laszlo Ersek
    '*mode':  'uint16' } }
2598 14aa0c2d Laszlo Ersek
2599 14aa0c2d Laszlo Ersek
##
2600 14aa0c2d Laszlo Ersek
# @NetdevDumpOptions
2601 14aa0c2d Laszlo Ersek
#
2602 14aa0c2d Laszlo Ersek
# Dump VLAN network traffic to a file.
2603 14aa0c2d Laszlo Ersek
#
2604 14aa0c2d Laszlo Ersek
# @len: #optional per-packet size limit (64k default). Understands [TGMKkb]
2605 14aa0c2d Laszlo Ersek
# suffixes.
2606 14aa0c2d Laszlo Ersek
#
2607 14aa0c2d Laszlo Ersek
# @file: #optional dump file path (default is qemu-vlan0.pcap)
2608 14aa0c2d Laszlo Ersek
#
2609 14aa0c2d Laszlo Ersek
# Since 1.2
2610 14aa0c2d Laszlo Ersek
##
2611 14aa0c2d Laszlo Ersek
{ 'type': 'NetdevDumpOptions',
2612 14aa0c2d Laszlo Ersek
  'data': {
2613 14aa0c2d Laszlo Ersek
    '*len':  'size',
2614 14aa0c2d Laszlo Ersek
    '*file': 'str' } }
2615 14aa0c2d Laszlo Ersek
2616 14aa0c2d Laszlo Ersek
##
2617 14aa0c2d Laszlo Ersek
# @NetdevBridgeOptions
2618 14aa0c2d Laszlo Ersek
#
2619 14aa0c2d Laszlo Ersek
# Connect a host TAP network interface to a host bridge device.
2620 14aa0c2d Laszlo Ersek
#
2621 14aa0c2d Laszlo Ersek
# @br: #optional bridge name
2622 14aa0c2d Laszlo Ersek
#
2623 14aa0c2d Laszlo Ersek
# @helper: #optional command to execute to configure bridge
2624 14aa0c2d Laszlo Ersek
#
2625 14aa0c2d Laszlo Ersek
# Since 1.2
2626 14aa0c2d Laszlo Ersek
##
2627 14aa0c2d Laszlo Ersek
{ 'type': 'NetdevBridgeOptions',
2628 14aa0c2d Laszlo Ersek
  'data': {
2629 14aa0c2d Laszlo Ersek
    '*br':     'str',
2630 14aa0c2d Laszlo Ersek
    '*helper': 'str' } }
2631 14aa0c2d Laszlo Ersek
2632 14aa0c2d Laszlo Ersek
##
2633 f6c874e3 Stefan Hajnoczi
# @NetdevHubPortOptions
2634 f6c874e3 Stefan Hajnoczi
#
2635 f6c874e3 Stefan Hajnoczi
# Connect two or more net clients through a software hub.
2636 f6c874e3 Stefan Hajnoczi
#
2637 f6c874e3 Stefan Hajnoczi
# @hubid: hub identifier number
2638 f6c874e3 Stefan Hajnoczi
#
2639 f6c874e3 Stefan Hajnoczi
# Since 1.2
2640 f6c874e3 Stefan Hajnoczi
##
2641 f6c874e3 Stefan Hajnoczi
{ 'type': 'NetdevHubPortOptions',
2642 f6c874e3 Stefan Hajnoczi
  'data': {
2643 f6c874e3 Stefan Hajnoczi
    'hubid':     'int32' } }
2644 f6c874e3 Stefan Hajnoczi
2645 f6c874e3 Stefan Hajnoczi
##
2646 14aa0c2d Laszlo Ersek
# @NetClientOptions
2647 14aa0c2d Laszlo Ersek
#
2648 14aa0c2d Laszlo Ersek
# A discriminated record of network device traits.
2649 14aa0c2d Laszlo Ersek
#
2650 14aa0c2d Laszlo Ersek
# Since 1.2
2651 14aa0c2d Laszlo Ersek
##
2652 14aa0c2d Laszlo Ersek
{ 'union': 'NetClientOptions',
2653 14aa0c2d Laszlo Ersek
  'data': {
2654 f6c874e3 Stefan Hajnoczi
    'none':     'NetdevNoneOptions',
2655 f6c874e3 Stefan Hajnoczi
    'nic':      'NetLegacyNicOptions',
2656 f6c874e3 Stefan Hajnoczi
    'user':     'NetdevUserOptions',
2657 f6c874e3 Stefan Hajnoczi
    'tap':      'NetdevTapOptions',
2658 f6c874e3 Stefan Hajnoczi
    'socket':   'NetdevSocketOptions',
2659 f6c874e3 Stefan Hajnoczi
    'vde':      'NetdevVdeOptions',
2660 f6c874e3 Stefan Hajnoczi
    'dump':     'NetdevDumpOptions',
2661 f6c874e3 Stefan Hajnoczi
    'bridge':   'NetdevBridgeOptions',
2662 f6c874e3 Stefan Hajnoczi
    'hubport':  'NetdevHubPortOptions' } }
2663 14aa0c2d Laszlo Ersek
2664 14aa0c2d Laszlo Ersek
##
2665 14aa0c2d Laszlo Ersek
# @NetLegacy
2666 14aa0c2d Laszlo Ersek
#
2667 14aa0c2d Laszlo Ersek
# Captures the configuration of a network device; legacy.
2668 14aa0c2d Laszlo Ersek
#
2669 14aa0c2d Laszlo Ersek
# @vlan: #optional vlan number
2670 14aa0c2d Laszlo Ersek
#
2671 14aa0c2d Laszlo Ersek
# @id: #optional identifier for monitor commands
2672 14aa0c2d Laszlo Ersek
#
2673 14aa0c2d Laszlo Ersek
# @name: #optional identifier for monitor commands, ignored if @id is present
2674 14aa0c2d Laszlo Ersek
#
2675 14aa0c2d Laszlo Ersek
# @opts: device type specific properties (legacy)
2676 14aa0c2d Laszlo Ersek
#
2677 14aa0c2d Laszlo Ersek
# Since 1.2
2678 14aa0c2d Laszlo Ersek
##
2679 14aa0c2d Laszlo Ersek
{ 'type': 'NetLegacy',
2680 14aa0c2d Laszlo Ersek
  'data': {
2681 14aa0c2d Laszlo Ersek
    '*vlan': 'int32',
2682 14aa0c2d Laszlo Ersek
    '*id':   'str',
2683 14aa0c2d Laszlo Ersek
    '*name': 'str',
2684 14aa0c2d Laszlo Ersek
    'opts':  'NetClientOptions' } }
2685 14aa0c2d Laszlo Ersek
2686 14aa0c2d Laszlo Ersek
##
2687 14aa0c2d Laszlo Ersek
# @Netdev
2688 14aa0c2d Laszlo Ersek
#
2689 14aa0c2d Laszlo Ersek
# Captures the configuration of a network device.
2690 14aa0c2d Laszlo Ersek
#
2691 14aa0c2d Laszlo Ersek
# @id: identifier for monitor commands.
2692 14aa0c2d Laszlo Ersek
#
2693 14aa0c2d Laszlo Ersek
# @opts: device type specific properties
2694 14aa0c2d Laszlo Ersek
#
2695 14aa0c2d Laszlo Ersek
# Since 1.2
2696 14aa0c2d Laszlo Ersek
##
2697 14aa0c2d Laszlo Ersek
{ 'type': 'Netdev',
2698 14aa0c2d Laszlo Ersek
  'data': {
2699 14aa0c2d Laszlo Ersek
    'id':   'str',
2700 14aa0c2d Laszlo Ersek
    'opts': 'NetClientOptions' } }
2701 14aa0c2d Laszlo Ersek
2702 14aa0c2d Laszlo Ersek
##
2703 5be8c759 Paolo Bonzini
# @InetSocketAddress
2704 5be8c759 Paolo Bonzini
#
2705 5be8c759 Paolo Bonzini
# Captures a socket address or address range in the Internet namespace.
2706 5be8c759 Paolo Bonzini
#
2707 5be8c759 Paolo Bonzini
# @host: host part of the address
2708 5be8c759 Paolo Bonzini
#
2709 5be8c759 Paolo Bonzini
# @port: port part of the address, or lowest port if @to is present
2710 5be8c759 Paolo Bonzini
#
2711 5be8c759 Paolo Bonzini
# @to: highest port to try
2712 5be8c759 Paolo Bonzini
#
2713 5be8c759 Paolo Bonzini
# @ipv4: whether to accept IPv4 addresses, default try both IPv4 and IPv6
2714 5be8c759 Paolo Bonzini
#        #optional
2715 5be8c759 Paolo Bonzini
#
2716 5be8c759 Paolo Bonzini
# @ipv6: whether to accept IPv6 addresses, default try both IPv4 and IPv6
2717 5be8c759 Paolo Bonzini
#        #optional
2718 5be8c759 Paolo Bonzini
#
2719 5be8c759 Paolo Bonzini
# Since 1.3
2720 5be8c759 Paolo Bonzini
##
2721 5be8c759 Paolo Bonzini
{ 'type': 'InetSocketAddress',
2722 5be8c759 Paolo Bonzini
  'data': {
2723 5be8c759 Paolo Bonzini
    'host': 'str',
2724 5be8c759 Paolo Bonzini
    'port': 'str',
2725 5be8c759 Paolo Bonzini
    '*to': 'uint16',
2726 5be8c759 Paolo Bonzini
    '*ipv4': 'bool',
2727 5be8c759 Paolo Bonzini
    '*ipv6': 'bool' } }
2728 5be8c759 Paolo Bonzini
2729 5be8c759 Paolo Bonzini
##
2730 5be8c759 Paolo Bonzini
# @UnixSocketAddress
2731 5be8c759 Paolo Bonzini
#
2732 5be8c759 Paolo Bonzini
# Captures a socket address in the local ("Unix socket") namespace.
2733 5be8c759 Paolo Bonzini
#
2734 5be8c759 Paolo Bonzini
# @path: filesystem path to use
2735 5be8c759 Paolo Bonzini
#
2736 5be8c759 Paolo Bonzini
# Since 1.3
2737 5be8c759 Paolo Bonzini
##
2738 5be8c759 Paolo Bonzini
{ 'type': 'UnixSocketAddress',
2739 5be8c759 Paolo Bonzini
  'data': {
2740 5be8c759 Paolo Bonzini
    'path': 'str' } }
2741 5be8c759 Paolo Bonzini
2742 5be8c759 Paolo Bonzini
##
2743 5be8c759 Paolo Bonzini
# @SocketAddress
2744 5be8c759 Paolo Bonzini
#
2745 5be8c759 Paolo Bonzini
# Captures the address of a socket, which could also be a named file descriptor
2746 5be8c759 Paolo Bonzini
#
2747 5be8c759 Paolo Bonzini
# Since 1.3
2748 5be8c759 Paolo Bonzini
##
2749 5be8c759 Paolo Bonzini
{ 'union': 'SocketAddress',
2750 5be8c759 Paolo Bonzini
  'data': {
2751 5be8c759 Paolo Bonzini
    'inet': 'InetSocketAddress',
2752 5be8c759 Paolo Bonzini
    'unix': 'UnixSocketAddress',
2753 5be8c759 Paolo Bonzini
    'fd': 'String' } }
2754 5be8c759 Paolo Bonzini
2755 5be8c759 Paolo Bonzini
##
2756 208c9d1b Corey Bryant
# @getfd:
2757 208c9d1b Corey Bryant
#
2758 208c9d1b Corey Bryant
# Receive a file descriptor via SCM rights and assign it a name
2759 208c9d1b Corey Bryant
#
2760 208c9d1b Corey Bryant
# @fdname: file descriptor name
2761 208c9d1b Corey Bryant
#
2762 208c9d1b Corey Bryant
# Returns: Nothing on success
2763 208c9d1b Corey Bryant
#
2764 208c9d1b Corey Bryant
# Since: 0.14.0
2765 208c9d1b Corey Bryant
#
2766 208c9d1b Corey Bryant
# Notes: If @fdname already exists, the file descriptor assigned to
2767 208c9d1b Corey Bryant
#        it will be closed and replaced by the received file
2768 208c9d1b Corey Bryant
#        descriptor.
2769 208c9d1b Corey Bryant
#        The 'closefd' command can be used to explicitly close the
2770 208c9d1b Corey Bryant
#        file descriptor when it is no longer needed.
2771 208c9d1b Corey Bryant
##
2772 208c9d1b Corey Bryant
{ 'command': 'getfd', 'data': {'fdname': 'str'} }
2773 208c9d1b Corey Bryant
2774 208c9d1b Corey Bryant
##
2775 208c9d1b Corey Bryant
# @closefd:
2776 208c9d1b Corey Bryant
#
2777 208c9d1b Corey Bryant
# Close a file descriptor previously passed via SCM rights
2778 208c9d1b Corey Bryant
#
2779 208c9d1b Corey Bryant
# @fdname: file descriptor name
2780 208c9d1b Corey Bryant
#
2781 208c9d1b Corey Bryant
# Returns: Nothing on success
2782 208c9d1b Corey Bryant
#
2783 208c9d1b Corey Bryant
# Since: 0.14.0
2784 208c9d1b Corey Bryant
##
2785 208c9d1b Corey Bryant
{ 'command': 'closefd', 'data': {'fdname': 'str'} }
2786 01d3c80d Anthony Liguori
2787 01d3c80d Anthony Liguori
##
2788 01d3c80d Anthony Liguori
# @MachineInfo:
2789 01d3c80d Anthony Liguori
#
2790 01d3c80d Anthony Liguori
# Information describing a machine.
2791 01d3c80d Anthony Liguori
#
2792 01d3c80d Anthony Liguori
# @name: the name of the machine
2793 01d3c80d Anthony Liguori
#
2794 01d3c80d Anthony Liguori
# @alias: #optional an alias for the machine name
2795 01d3c80d Anthony Liguori
#
2796 01d3c80d Anthony Liguori
# @default: #optional whether the machine is default
2797 01d3c80d Anthony Liguori
#
2798 01d3c80d Anthony Liguori
# Since: 1.2.0
2799 01d3c80d Anthony Liguori
##
2800 01d3c80d Anthony Liguori
{ 'type': 'MachineInfo',
2801 01d3c80d Anthony Liguori
  'data': { 'name': 'str', '*alias': 'str',
2802 01d3c80d Anthony Liguori
            '*is-default': 'bool' } }
2803 01d3c80d Anthony Liguori
2804 01d3c80d Anthony Liguori
##
2805 01d3c80d Anthony Liguori
# @query-machines:
2806 01d3c80d Anthony Liguori
#
2807 01d3c80d Anthony Liguori
# Return a list of supported machines
2808 01d3c80d Anthony Liguori
#
2809 01d3c80d Anthony Liguori
# Returns: a list of MachineInfo
2810 01d3c80d Anthony Liguori
#
2811 01d3c80d Anthony Liguori
# Since: 1.2.0
2812 01d3c80d Anthony Liguori
##
2813 01d3c80d Anthony Liguori
{ 'command': 'query-machines', 'returns': ['MachineInfo'] }
2814 e4e31c63 Anthony Liguori
2815 e4e31c63 Anthony Liguori
##
2816 e4e31c63 Anthony Liguori
# @CpuDefinitionInfo:
2817 e4e31c63 Anthony Liguori
#
2818 e4e31c63 Anthony Liguori
# Virtual CPU definition.
2819 e4e31c63 Anthony Liguori
#
2820 e4e31c63 Anthony Liguori
# @name: the name of the CPU definition
2821 e4e31c63 Anthony Liguori
#
2822 e4e31c63 Anthony Liguori
# Since: 1.2.0
2823 e4e31c63 Anthony Liguori
##
2824 e4e31c63 Anthony Liguori
{ 'type': 'CpuDefinitionInfo',
2825 e4e31c63 Anthony Liguori
  'data': { 'name': 'str' } }
2826 e4e31c63 Anthony Liguori
2827 e4e31c63 Anthony Liguori
##
2828 e4e31c63 Anthony Liguori
# @query-cpu-definitions:
2829 e4e31c63 Anthony Liguori
#
2830 e4e31c63 Anthony Liguori
# Return a list of supported virtual CPU definitions
2831 e4e31c63 Anthony Liguori
#
2832 e4e31c63 Anthony Liguori
# Returns: a list of CpuDefInfo
2833 e4e31c63 Anthony Liguori
#
2834 e4e31c63 Anthony Liguori
# Since: 1.2.0
2835 e4e31c63 Anthony Liguori
##
2836 e4e31c63 Anthony Liguori
{ 'command': 'query-cpu-definitions', 'returns': ['CpuDefinitionInfo'] }
2837 ba1c048a Corey Bryant
2838 ba1c048a Corey Bryant
# @AddfdInfo:
2839 ba1c048a Corey Bryant
#
2840 ba1c048a Corey Bryant
# Information about a file descriptor that was added to an fd set.
2841 ba1c048a Corey Bryant
#
2842 ba1c048a Corey Bryant
# @fdset-id: The ID of the fd set that @fd was added to.
2843 ba1c048a Corey Bryant
#
2844 ba1c048a Corey Bryant
# @fd: The file descriptor that was received via SCM rights and
2845 ba1c048a Corey Bryant
#      added to the fd set.
2846 ba1c048a Corey Bryant
#
2847 ba1c048a Corey Bryant
# Since: 1.2.0
2848 ba1c048a Corey Bryant
##
2849 ba1c048a Corey Bryant
{ 'type': 'AddfdInfo', 'data': {'fdset-id': 'int', 'fd': 'int'} }
2850 ba1c048a Corey Bryant
2851 ba1c048a Corey Bryant
##
2852 ba1c048a Corey Bryant
# @add-fd:
2853 ba1c048a Corey Bryant
#
2854 ba1c048a Corey Bryant
# Add a file descriptor, that was passed via SCM rights, to an fd set.
2855 ba1c048a Corey Bryant
#
2856 ba1c048a Corey Bryant
# @fdset-id: #optional The ID of the fd set to add the file descriptor to.
2857 ba1c048a Corey Bryant
#
2858 ba1c048a Corey Bryant
# @opaque: #optional A free-form string that can be used to describe the fd.
2859 ba1c048a Corey Bryant
#
2860 ba1c048a Corey Bryant
# Returns: @AddfdInfo on success
2861 ba1c048a Corey Bryant
#          If file descriptor was not received, FdNotSupplied
2862 9ac54af0 Corey Bryant
#          If @fdset-id is a negative value, InvalidParameterValue
2863 ba1c048a Corey Bryant
#
2864 ba1c048a Corey Bryant
# Notes: The list of fd sets is shared by all monitor connections.
2865 ba1c048a Corey Bryant
#
2866 ba1c048a Corey Bryant
#        If @fdset-id is not specified, a new fd set will be created.
2867 ba1c048a Corey Bryant
#
2868 ba1c048a Corey Bryant
# Since: 1.2.0
2869 ba1c048a Corey Bryant
##
2870 ba1c048a Corey Bryant
{ 'command': 'add-fd', 'data': {'*fdset-id': 'int', '*opaque': 'str'},
2871 ba1c048a Corey Bryant
  'returns': 'AddfdInfo' }
2872 ba1c048a Corey Bryant
2873 ba1c048a Corey Bryant
##
2874 ba1c048a Corey Bryant
# @remove-fd:
2875 ba1c048a Corey Bryant
#
2876 ba1c048a Corey Bryant
# Remove a file descriptor from an fd set.
2877 ba1c048a Corey Bryant
#
2878 ba1c048a Corey Bryant
# @fdset-id: The ID of the fd set that the file descriptor belongs to.
2879 ba1c048a Corey Bryant
#
2880 ba1c048a Corey Bryant
# @fd: #optional The file descriptor that is to be removed.
2881 ba1c048a Corey Bryant
#
2882 ba1c048a Corey Bryant
# Returns: Nothing on success
2883 ba1c048a Corey Bryant
#          If @fdset-id or @fd is not found, FdNotFound
2884 ba1c048a Corey Bryant
#
2885 ba1c048a Corey Bryant
# Since: 1.2.0
2886 ba1c048a Corey Bryant
#
2887 ba1c048a Corey Bryant
# Notes: The list of fd sets is shared by all monitor connections.
2888 ba1c048a Corey Bryant
#
2889 ba1c048a Corey Bryant
#        If @fd is not specified, all file descriptors in @fdset-id
2890 ba1c048a Corey Bryant
#        will be removed.
2891 ba1c048a Corey Bryant
##
2892 ba1c048a Corey Bryant
{ 'command': 'remove-fd', 'data': {'fdset-id': 'int', '*fd': 'int'} }
2893 ba1c048a Corey Bryant
2894 ba1c048a Corey Bryant
##
2895 ba1c048a Corey Bryant
# @FdsetFdInfo:
2896 ba1c048a Corey Bryant
#
2897 ba1c048a Corey Bryant
# Information about a file descriptor that belongs to an fd set.
2898 ba1c048a Corey Bryant
#
2899 ba1c048a Corey Bryant
# @fd: The file descriptor value.
2900 ba1c048a Corey Bryant
#
2901 ba1c048a Corey Bryant
# @opaque: #optional A free-form string that can be used to describe the fd.
2902 ba1c048a Corey Bryant
#
2903 ba1c048a Corey Bryant
# Since: 1.2.0
2904 ba1c048a Corey Bryant
##
2905 ba1c048a Corey Bryant
{ 'type': 'FdsetFdInfo',
2906 ba1c048a Corey Bryant
  'data': {'fd': 'int', '*opaque': 'str'} }
2907 ba1c048a Corey Bryant
2908 ba1c048a Corey Bryant
##
2909 ba1c048a Corey Bryant
# @FdsetInfo:
2910 ba1c048a Corey Bryant
#
2911 ba1c048a Corey Bryant
# Information about an fd set.
2912 ba1c048a Corey Bryant
#
2913 ba1c048a Corey Bryant
# @fdset-id: The ID of the fd set.
2914 ba1c048a Corey Bryant
#
2915 ba1c048a Corey Bryant
# @fds: A list of file descriptors that belong to this fd set.
2916 ba1c048a Corey Bryant
#
2917 ba1c048a Corey Bryant
# Since: 1.2.0
2918 ba1c048a Corey Bryant
##
2919 ba1c048a Corey Bryant
{ 'type': 'FdsetInfo',
2920 ba1c048a Corey Bryant
  'data': {'fdset-id': 'int', 'fds': ['FdsetFdInfo']} }
2921 ba1c048a Corey Bryant
2922 ba1c048a Corey Bryant
##
2923 ba1c048a Corey Bryant
# @query-fdsets:
2924 ba1c048a Corey Bryant
#
2925 ba1c048a Corey Bryant
# Return information describing all fd sets.
2926 ba1c048a Corey Bryant
#
2927 ba1c048a Corey Bryant
# Returns: A list of @FdsetInfo
2928 ba1c048a Corey Bryant
#
2929 ba1c048a Corey Bryant
# Since: 1.2.0
2930 ba1c048a Corey Bryant
#
2931 ba1c048a Corey Bryant
# Note: The list of fd sets is shared by all monitor connections.
2932 ba1c048a Corey Bryant
#
2933 ba1c048a Corey Bryant
##
2934 ba1c048a Corey Bryant
{ 'command': 'query-fdsets', 'returns': ['FdsetInfo'] }
2935 99afc91d Daniel P. Berrange
2936 99afc91d Daniel P. Berrange
##
2937 99afc91d Daniel P. Berrange
# @TargetType
2938 99afc91d Daniel P. Berrange
#
2939 99afc91d Daniel P. Berrange
# Target CPU emulation type
2940 99afc91d Daniel P. Berrange
#
2941 99afc91d Daniel P. Berrange
# These parameters correspond to the softmmu binary CPU name that is currently
2942 99afc91d Daniel P. Berrange
# running.
2943 99afc91d Daniel P. Berrange
#
2944 99afc91d Daniel P. Berrange
# Since: 1.2.0
2945 99afc91d Daniel P. Berrange
##
2946 99afc91d Daniel P. Berrange
{ 'enum': 'TargetType',
2947 99afc91d Daniel P. Berrange
  'data': [ 'alpha', 'arm', 'cris', 'i386', 'lm32', 'm68k', 'microblazeel',
2948 99afc91d Daniel P. Berrange
            'microblaze', 'mips64el', 'mips64', 'mipsel', 'mips', 'or32',
2949 99afc91d Daniel P. Berrange
            'ppc64', 'ppcemb', 'ppc', 's390x', 'sh4eb', 'sh4', 'sparc64',
2950 99afc91d Daniel P. Berrange
            'sparc', 'unicore32', 'x86_64', 'xtensaeb', 'xtensa' ] }
2951 99afc91d Daniel P. Berrange
2952 99afc91d Daniel P. Berrange
##
2953 99afc91d Daniel P. Berrange
# @TargetInfo:
2954 99afc91d Daniel P. Berrange
#
2955 99afc91d Daniel P. Berrange
# Information describing the QEMU target.
2956 99afc91d Daniel P. Berrange
#
2957 99afc91d Daniel P. Berrange
# @arch: the target architecture (eg "x86_64", "i386", etc)
2958 99afc91d Daniel P. Berrange
#
2959 99afc91d Daniel P. Berrange
# Since: 1.2.0
2960 99afc91d Daniel P. Berrange
##
2961 99afc91d Daniel P. Berrange
{ 'type': 'TargetInfo',
2962 99afc91d Daniel P. Berrange
  'data': { 'arch': 'TargetType' } }
2963 99afc91d Daniel P. Berrange
2964 99afc91d Daniel P. Berrange
##
2965 99afc91d Daniel P. Berrange
# @query-target:
2966 99afc91d Daniel P. Berrange
#
2967 99afc91d Daniel P. Berrange
# Return information about the target for this QEMU
2968 99afc91d Daniel P. Berrange
#
2969 99afc91d Daniel P. Berrange
# Returns: TargetInfo
2970 99afc91d Daniel P. Berrange
#
2971 99afc91d Daniel P. Berrange
# Since: 1.2.0
2972 99afc91d Daniel P. Berrange
##
2973 99afc91d Daniel P. Berrange
{ 'command': 'query-target', 'returns': 'TargetInfo' }
2974 411656f4 Amos Kong
2975 411656f4 Amos Kong
##
2976 411656f4 Amos Kong
# @QKeyCode:
2977 411656f4 Amos Kong
#
2978 411656f4 Amos Kong
# An enumeration of key name.
2979 411656f4 Amos Kong
#
2980 411656f4 Amos Kong
# This is used by the send-key command.
2981 411656f4 Amos Kong
#
2982 411656f4 Amos Kong
# Since: 1.3.0
2983 411656f4 Amos Kong
##
2984 411656f4 Amos Kong
{ 'enum': 'QKeyCode',
2985 411656f4 Amos Kong
  'data': [ 'shift', 'shift_r', 'alt', 'alt_r', 'altgr', 'altgr_r', 'ctrl',
2986 411656f4 Amos Kong
            'ctrl_r', 'menu', 'esc', '1', '2', '3', '4', '5', '6', '7', '8',
2987 411656f4 Amos Kong
            '9', '0', 'minus', 'equal', 'backspace', 'tab', 'q', 'w', 'e',
2988 411656f4 Amos Kong
            'r', 't', 'y', 'u', 'i', 'o', 'p', 'bracket_left', 'bracket_right',
2989 411656f4 Amos Kong
            'ret', 'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'semicolon',
2990 411656f4 Amos Kong
            'apostrophe', 'grave_accent', 'backslash', 'z', 'x', 'c', 'v', 'b',
2991 411656f4 Amos Kong
            'n', 'm', 'comma', 'dot', 'slash', 'asterisk', 'spc', 'caps_lock',
2992 411656f4 Amos Kong
            'f1', 'f2', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9', 'f10',
2993 411656f4 Amos Kong
            'num_lock', 'scroll_lock', 'kp_divide', 'kp_multiply',
2994 411656f4 Amos Kong
            'kp_subtract', 'kp_add', 'kp_enter', 'kp_decimal', 'sysrq', 'kp_0',
2995 411656f4 Amos Kong
            'kp_1', 'kp_2', 'kp_3', 'kp_4', 'kp_5', 'kp_6', 'kp_7', 'kp_8',
2996 411656f4 Amos Kong
            'kp_9', 'less', 'f11', 'f12', 'print', 'home', 'pgup', 'pgdn', 'end',
2997 411656f4 Amos Kong
            'left', 'up', 'down', 'right', 'insert', 'delete', 'stop', 'again',
2998 411656f4 Amos Kong
            'props', 'undo', 'front', 'copy', 'open', 'paste', 'find', 'cut',
2999 411656f4 Amos Kong
             'lf', 'help', 'meta_l', 'meta_r', 'compose' ] }
3000 e4c8f004 Amos Kong
3001 e4c8f004 Amos Kong
##
3002 9f328977 Luiz Capitulino
# @KeyValue
3003 9f328977 Luiz Capitulino
#
3004 9f328977 Luiz Capitulino
# Represents a keyboard key.
3005 9f328977 Luiz Capitulino
#
3006 9f328977 Luiz Capitulino
# Since: 1.3.0
3007 9f328977 Luiz Capitulino
##
3008 9f328977 Luiz Capitulino
{ 'union': 'KeyValue',
3009 9f328977 Luiz Capitulino
  'data': {
3010 9f328977 Luiz Capitulino
    'number': 'int',
3011 9f328977 Luiz Capitulino
    'qcode': 'QKeyCode' } }
3012 9f328977 Luiz Capitulino
3013 9f328977 Luiz Capitulino
##
3014 e4c8f004 Amos Kong
# @send-key:
3015 e4c8f004 Amos Kong
#
3016 e4c8f004 Amos Kong
# Send keys to guest.
3017 e4c8f004 Amos Kong
#
3018 9f328977 Luiz Capitulino
# @keys: An array of @KeyValue elements. All @KeyValues in this array are
3019 9f328977 Luiz Capitulino
#        simultaneously sent to the guest. A @KeyValue.number value is sent
3020 9f328977 Luiz Capitulino
#        directly to the guest, while @KeyValue.qcode must be a valid
3021 9f328977 Luiz Capitulino
#        @QKeyCode value
3022 e4c8f004 Amos Kong
#
3023 e4c8f004 Amos Kong
# @hold-time: #optional time to delay key up events, milliseconds. Defaults
3024 e4c8f004 Amos Kong
#             to 100
3025 e4c8f004 Amos Kong
#
3026 e4c8f004 Amos Kong
# Returns: Nothing on success
3027 e4c8f004 Amos Kong
#          If key is unknown or redundant, InvalidParameter
3028 e4c8f004 Amos Kong
#
3029 e4c8f004 Amos Kong
# Since: 1.3.0
3030 e4c8f004 Amos Kong
#
3031 e4c8f004 Amos Kong
##
3032 e4c8f004 Amos Kong
{ 'command': 'send-key',
3033 9f328977 Luiz Capitulino
  'data': { 'keys': ['KeyValue'], '*hold-time': 'int' } }
3034 ad39cf6d Luiz Capitulino
3035 ad39cf6d Luiz Capitulino
##
3036 ad39cf6d Luiz Capitulino
# @screendump:
3037 ad39cf6d Luiz Capitulino
#
3038 ad39cf6d Luiz Capitulino
# Write a PPM of the VGA screen to a file.
3039 ad39cf6d Luiz Capitulino
#
3040 ad39cf6d Luiz Capitulino
# @filename: the path of a new PPM file to store the image
3041 ad39cf6d Luiz Capitulino
#
3042 ad39cf6d Luiz Capitulino
# Returns: Nothing on success
3043 ad39cf6d Luiz Capitulino
#
3044 ad39cf6d Luiz Capitulino
# Since: 0.14.0
3045 ad39cf6d Luiz Capitulino
##
3046 ad39cf6d Luiz Capitulino
{ 'command': 'screendump', 'data': {'filename': 'str'} }
3047 6dd844db Paolo Bonzini
3048 6dd844db Paolo Bonzini
##
3049 6dd844db Paolo Bonzini
# @nbd-server-start:
3050 6dd844db Paolo Bonzini
#
3051 6dd844db Paolo Bonzini
# Start an NBD server listening on the given host and port.  Block
3052 6dd844db Paolo Bonzini
# devices can then be exported using @nbd-server-add.  The NBD
3053 6dd844db Paolo Bonzini
# server will present them as named exports; for example, another
3054 6dd844db Paolo Bonzini
# QEMU instance could refer to them as "nbd:HOST:PORT:exportname=NAME".
3055 6dd844db Paolo Bonzini
#
3056 6dd844db Paolo Bonzini
# @addr: Address on which to listen.
3057 6dd844db Paolo Bonzini
#
3058 6dd844db Paolo Bonzini
# Returns: error if the server is already running.
3059 6dd844db Paolo Bonzini
#
3060 6dd844db Paolo Bonzini
# Since: 1.3.0
3061 6dd844db Paolo Bonzini
##
3062 6dd844db Paolo Bonzini
{ 'command': 'nbd-server-start',
3063 6dd844db Paolo Bonzini
  'data': { 'addr': 'SocketAddress' } }
3064 6dd844db Paolo Bonzini
3065 6dd844db Paolo Bonzini
##
3066 6dd844db Paolo Bonzini
# @nbd-server-add:
3067 6dd844db Paolo Bonzini
#
3068 6dd844db Paolo Bonzini
# Export a device to QEMU's embedded NBD server.
3069 6dd844db Paolo Bonzini
#
3070 6dd844db Paolo Bonzini
# @device: Block device to be exported
3071 6dd844db Paolo Bonzini
#
3072 6dd844db Paolo Bonzini
# @writable: Whether clients should be able to write to the device via the
3073 6dd844db Paolo Bonzini
#     NBD connection (default false). #optional
3074 6dd844db Paolo Bonzini
#
3075 6dd844db Paolo Bonzini
# Returns: error if the device is already marked for export.
3076 6dd844db Paolo Bonzini
#
3077 6dd844db Paolo Bonzini
# Since: 1.3.0
3078 6dd844db Paolo Bonzini
##
3079 6dd844db Paolo Bonzini
{ 'command': 'nbd-server-add', 'data': {'device': 'str', '*writable': 'bool'} }
3080 6dd844db Paolo Bonzini
3081 6dd844db Paolo Bonzini
##
3082 6dd844db Paolo Bonzini
# @nbd-server-stop:
3083 6dd844db Paolo Bonzini
#
3084 6dd844db Paolo Bonzini
# Stop QEMU's embedded NBD server, and unregister all devices previously
3085 6dd844db Paolo Bonzini
# added via @nbd-server-add.
3086 6dd844db Paolo Bonzini
#
3087 6dd844db Paolo Bonzini
# Since: 1.3.0
3088 6dd844db Paolo Bonzini
##
3089 6dd844db Paolo Bonzini
{ 'command': 'nbd-server-stop' }
3090 f1a1a356 Gerd Hoffmann
3091 f1a1a356 Gerd Hoffmann
##
3092 ffbdbe59 Gerd Hoffmann
# @ChardevFile:
3093 ffbdbe59 Gerd Hoffmann
#
3094 ffbdbe59 Gerd Hoffmann
# Configuration info for file chardevs.
3095 ffbdbe59 Gerd Hoffmann
#
3096 ffbdbe59 Gerd Hoffmann
# @in:  #optional The name of the input file
3097 ffbdbe59 Gerd Hoffmann
# @out: The name of the output file
3098 ffbdbe59 Gerd Hoffmann
#
3099 ffbdbe59 Gerd Hoffmann
# Since: 1.4
3100 ffbdbe59 Gerd Hoffmann
##
3101 ffbdbe59 Gerd Hoffmann
{ 'type': 'ChardevFile', 'data': { '*in' : 'str',
3102 ffbdbe59 Gerd Hoffmann
                                   'out' : 'str' } }
3103 ffbdbe59 Gerd Hoffmann
3104 ffbdbe59 Gerd Hoffmann
##
3105 d59044ef Gerd Hoffmann
# @ChardevPort:
3106 d59044ef Gerd Hoffmann
#
3107 d59044ef Gerd Hoffmann
# Configuration info for device chardevs.
3108 d59044ef Gerd Hoffmann
#
3109 d59044ef Gerd Hoffmann
# @device: The name of the special file for the device,
3110 d59044ef Gerd Hoffmann
#          i.e. /dev/ttyS0 on Unix or COM1: on Windows
3111 d59044ef Gerd Hoffmann
# @type: What kind of device this is.
3112 d59044ef Gerd Hoffmann
#
3113 d59044ef Gerd Hoffmann
# Since: 1.4
3114 d59044ef Gerd Hoffmann
##
3115 88a946d3 Gerd Hoffmann
{ 'enum': 'ChardevPortKind', 'data': [ 'serial',
3116 88a946d3 Gerd Hoffmann
                                       'parallel' ] }
3117 d59044ef Gerd Hoffmann
3118 d59044ef Gerd Hoffmann
{ 'type': 'ChardevPort', 'data': { 'device' : 'str',
3119 d59044ef Gerd Hoffmann
                                   'type'   : 'ChardevPortKind'} }
3120 d59044ef Gerd Hoffmann
3121 d59044ef Gerd Hoffmann
##
3122 f6bd5d6e Gerd Hoffmann
# @ChardevSocket:
3123 f6bd5d6e Gerd Hoffmann
#
3124 f6bd5d6e Gerd Hoffmann
# Configuration info for socket chardevs.
3125 f6bd5d6e Gerd Hoffmann
#
3126 f6bd5d6e Gerd Hoffmann
# @addr: socket address to listen on (server=true)
3127 f6bd5d6e Gerd Hoffmann
#        or connect to (server=false)
3128 f6bd5d6e Gerd Hoffmann
# @server: #optional create server socket (default: true)
3129 f6bd5d6e Gerd Hoffmann
# @wait: #optional wait for connect (not used for server
3130 f6bd5d6e Gerd Hoffmann
#        sockets, default: false)
3131 f6bd5d6e Gerd Hoffmann
# @nodelay: #optional set TCP_NODELAY socket option (default: false)
3132 f6bd5d6e Gerd Hoffmann
# @telnet: #optional enable telnet protocol (default: false)
3133 f6bd5d6e Gerd Hoffmann
#
3134 f6bd5d6e Gerd Hoffmann
# Since: 1.4
3135 f6bd5d6e Gerd Hoffmann
##
3136 f6bd5d6e Gerd Hoffmann
{ 'type': 'ChardevSocket', 'data': { 'addr'     : 'SocketAddress',
3137 f6bd5d6e Gerd Hoffmann
                                     '*server'  : 'bool',
3138 f6bd5d6e Gerd Hoffmann
                                     '*wait'    : 'bool',
3139 f6bd5d6e Gerd Hoffmann
                                     '*nodelay' : 'bool',
3140 f6bd5d6e Gerd Hoffmann
                                     '*telnet'  : 'bool' } }
3141 f6bd5d6e Gerd Hoffmann
3142 f6bd5d6e Gerd Hoffmann
##
3143 f1a1a356 Gerd Hoffmann
# @ChardevBackend:
3144 f1a1a356 Gerd Hoffmann
#
3145 f1a1a356 Gerd Hoffmann
# Configuration info for the new chardev backend.
3146 f1a1a356 Gerd Hoffmann
#
3147 f1a1a356 Gerd Hoffmann
# Since: 1.4
3148 f1a1a356 Gerd Hoffmann
##
3149 f1a1a356 Gerd Hoffmann
{ 'type': 'ChardevDummy', 'data': { } }
3150 f1a1a356 Gerd Hoffmann
3151 f6bd5d6e Gerd Hoffmann
{ 'union': 'ChardevBackend', 'data': { 'file'   : 'ChardevFile',
3152 f6bd5d6e Gerd Hoffmann
                                       'port'   : 'ChardevPort',
3153 f6bd5d6e Gerd Hoffmann
                                       'socket' : 'ChardevSocket',
3154 0a1a7fab Gerd Hoffmann
                                       'pty'    : 'ChardevDummy',
3155 f6bd5d6e Gerd Hoffmann
                                       'null'   : 'ChardevDummy' } }
3156 f1a1a356 Gerd Hoffmann
3157 f1a1a356 Gerd Hoffmann
##
3158 f1a1a356 Gerd Hoffmann
# @ChardevReturn:
3159 f1a1a356 Gerd Hoffmann
#
3160 f1a1a356 Gerd Hoffmann
# Return info about the chardev backend just created.
3161 f1a1a356 Gerd Hoffmann
#
3162 f1a1a356 Gerd Hoffmann
# Since: 1.4
3163 f1a1a356 Gerd Hoffmann
##
3164 0a1a7fab Gerd Hoffmann
{ 'type' : 'ChardevReturn', 'data': { '*pty' : 'str' } }
3165 f1a1a356 Gerd Hoffmann
3166 f1a1a356 Gerd Hoffmann
##
3167 f1a1a356 Gerd Hoffmann
# @chardev-add:
3168 f1a1a356 Gerd Hoffmann
#
3169 f1a1a356 Gerd Hoffmann
# Add a file chardev
3170 f1a1a356 Gerd Hoffmann
#
3171 f1a1a356 Gerd Hoffmann
# @id: the chardev's ID, must be unique
3172 f1a1a356 Gerd Hoffmann
# @backend: backend type and parameters
3173 f1a1a356 Gerd Hoffmann
#
3174 f1a1a356 Gerd Hoffmann
# Returns: chardev info.
3175 f1a1a356 Gerd Hoffmann
#
3176 f1a1a356 Gerd Hoffmann
# Since: 1.4
3177 f1a1a356 Gerd Hoffmann
##
3178 f1a1a356 Gerd Hoffmann
{ 'command': 'chardev-add', 'data': {'id'      : 'str',
3179 f1a1a356 Gerd Hoffmann
                                     'backend' : 'ChardevBackend' },
3180 f1a1a356 Gerd Hoffmann
  'returns': 'ChardevReturn' }
3181 f1a1a356 Gerd Hoffmann
3182 f1a1a356 Gerd Hoffmann
##
3183 f1a1a356 Gerd Hoffmann
# @chardev-remove:
3184 f1a1a356 Gerd Hoffmann
#
3185 f1a1a356 Gerd Hoffmann
# Remove a chardev
3186 f1a1a356 Gerd Hoffmann
#
3187 f1a1a356 Gerd Hoffmann
# @id: the chardev's ID, must exist and not be in use
3188 f1a1a356 Gerd Hoffmann
#
3189 f1a1a356 Gerd Hoffmann
# Returns: Nothing on success
3190 f1a1a356 Gerd Hoffmann
#
3191 f1a1a356 Gerd Hoffmann
# Since: 1.4
3192 f1a1a356 Gerd Hoffmann
##
3193 f1a1a356 Gerd Hoffmann
{ 'command': 'chardev-remove', 'data': {'id': 'str'} }