Statistics
| Branch: | Revision:

root / qapi-schema.json @ 45724d6d

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