Statistics
| Branch: | Revision:

root / qapi-schema.json @ 52e7c241

History | View | Annotate | Download (46.8 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 48a32bed Anthony Liguori
# @NameInfo:
7 48a32bed Anthony Liguori
#
8 48a32bed Anthony Liguori
# Guest name information.
9 48a32bed Anthony Liguori
#
10 48a32bed Anthony Liguori
# @name: #optional The name of the guest
11 48a32bed Anthony Liguori
#
12 48a32bed Anthony Liguori
# Since 0.14.0
13 48a32bed Anthony Liguori
##
14 48a32bed Anthony Liguori
{ 'type': 'NameInfo', 'data': {'*name': 'str'} }
15 48a32bed Anthony Liguori
16 48a32bed Anthony Liguori
##
17 48a32bed Anthony Liguori
# @query-name:
18 48a32bed Anthony Liguori
#
19 48a32bed Anthony Liguori
# Return the name information of a guest.
20 48a32bed Anthony Liguori
#
21 48a32bed Anthony Liguori
# Returns: @NameInfo of the guest
22 48a32bed Anthony Liguori
#
23 48a32bed Anthony Liguori
# Since 0.14.0
24 48a32bed Anthony Liguori
##
25 48a32bed Anthony Liguori
{ 'command': 'query-name', 'returns': 'NameInfo' }
26 b9c15f16 Luiz Capitulino
27 b9c15f16 Luiz Capitulino
##
28 b9c15f16 Luiz Capitulino
# @VersionInfo:
29 b9c15f16 Luiz Capitulino
#
30 b9c15f16 Luiz Capitulino
# A description of QEMU's version.
31 b9c15f16 Luiz Capitulino
#
32 b9c15f16 Luiz Capitulino
# @qemu.major:  The major version of QEMU
33 b9c15f16 Luiz Capitulino
#
34 b9c15f16 Luiz Capitulino
# @qemu.minor:  The minor version of QEMU
35 b9c15f16 Luiz Capitulino
#
36 b9c15f16 Luiz Capitulino
# @qemu.micro:  The micro version of QEMU.  By current convention, a micro
37 b9c15f16 Luiz Capitulino
#               version of 50 signifies a development branch.  A micro version
38 b9c15f16 Luiz Capitulino
#               greater than or equal to 90 signifies a release candidate for
39 b9c15f16 Luiz Capitulino
#               the next minor version.  A micro version of less than 50
40 b9c15f16 Luiz Capitulino
#               signifies a stable release.
41 b9c15f16 Luiz Capitulino
#
42 b9c15f16 Luiz Capitulino
# @package:     QEMU will always set this field to an empty string.  Downstream
43 b9c15f16 Luiz Capitulino
#               versions of QEMU should set this to a non-empty string.  The
44 b9c15f16 Luiz Capitulino
#               exact format depends on the downstream however it highly
45 b9c15f16 Luiz Capitulino
#               recommended that a unique name is used.
46 b9c15f16 Luiz Capitulino
#
47 b9c15f16 Luiz Capitulino
# Since: 0.14.0
48 b9c15f16 Luiz Capitulino
##
49 b9c15f16 Luiz Capitulino
{ 'type': 'VersionInfo',
50 b9c15f16 Luiz Capitulino
  'data': {'qemu': {'major': 'int', 'minor': 'int', 'micro': 'int'},
51 b9c15f16 Luiz Capitulino
           'package': 'str'} }
52 b9c15f16 Luiz Capitulino
53 b9c15f16 Luiz Capitulino
##
54 b9c15f16 Luiz Capitulino
# @query-version:
55 b9c15f16 Luiz Capitulino
#
56 b9c15f16 Luiz Capitulino
# Returns the current version of QEMU.
57 b9c15f16 Luiz Capitulino
#
58 b9c15f16 Luiz Capitulino
# Returns:  A @VersionInfo object describing the current version of QEMU.
59 b9c15f16 Luiz Capitulino
#
60 b9c15f16 Luiz Capitulino
# Since: 0.14.0
61 b9c15f16 Luiz Capitulino
##
62 b9c15f16 Luiz Capitulino
{ 'command': 'query-version', 'returns': 'VersionInfo' }
63 292a2602 Luiz Capitulino
64 292a2602 Luiz Capitulino
##
65 292a2602 Luiz Capitulino
# @KvmInfo:
66 292a2602 Luiz Capitulino
#
67 292a2602 Luiz Capitulino
# Information about support for KVM acceleration
68 292a2602 Luiz Capitulino
#
69 292a2602 Luiz Capitulino
# @enabled: true if KVM acceleration is active
70 292a2602 Luiz Capitulino
#
71 292a2602 Luiz Capitulino
# @present: true if KVM acceleration is built into this executable
72 292a2602 Luiz Capitulino
#
73 292a2602 Luiz Capitulino
# Since: 0.14.0
74 292a2602 Luiz Capitulino
##
75 292a2602 Luiz Capitulino
{ 'type': 'KvmInfo', 'data': {'enabled': 'bool', 'present': 'bool'} }
76 292a2602 Luiz Capitulino
77 292a2602 Luiz Capitulino
##
78 292a2602 Luiz Capitulino
# @query-kvm:
79 292a2602 Luiz Capitulino
#
80 292a2602 Luiz Capitulino
# Returns information about KVM acceleration
81 292a2602 Luiz Capitulino
#
82 292a2602 Luiz Capitulino
# Returns: @KvmInfo
83 292a2602 Luiz Capitulino
#
84 292a2602 Luiz Capitulino
# Since: 0.14.0
85 292a2602 Luiz Capitulino
##
86 292a2602 Luiz Capitulino
{ 'command': 'query-kvm', 'returns': 'KvmInfo' }
87 292a2602 Luiz Capitulino
88 1fa9a5e4 Luiz Capitulino
##
89 1fa9a5e4 Luiz Capitulino
# @RunState
90 1fa9a5e4 Luiz Capitulino
#
91 1fa9a5e4 Luiz Capitulino
# An enumation of VM run states.
92 1fa9a5e4 Luiz Capitulino
#
93 1fa9a5e4 Luiz Capitulino
# @debug: QEMU is running on a debugger
94 1fa9a5e4 Luiz Capitulino
#
95 1fa9a5e4 Luiz Capitulino
# @inmigrate: guest is paused waiting for an incoming migration
96 1fa9a5e4 Luiz Capitulino
#
97 1fa9a5e4 Luiz Capitulino
# @internal-error: An internal error that prevents further guest execution
98 1fa9a5e4 Luiz Capitulino
# has occurred
99 1fa9a5e4 Luiz Capitulino
#
100 1fa9a5e4 Luiz Capitulino
# @io-error: the last IOP has failed and the device is configured to pause
101 1fa9a5e4 Luiz Capitulino
# on I/O errors
102 1fa9a5e4 Luiz Capitulino
#
103 1fa9a5e4 Luiz Capitulino
# @paused: guest has been paused via the 'stop' command
104 1fa9a5e4 Luiz Capitulino
#
105 1fa9a5e4 Luiz Capitulino
# @postmigrate: guest is paused following a successful 'migrate'
106 1fa9a5e4 Luiz Capitulino
#
107 1fa9a5e4 Luiz Capitulino
# @prelaunch: QEMU was started with -S and guest has not started
108 1fa9a5e4 Luiz Capitulino
#
109 1fa9a5e4 Luiz Capitulino
# @finish-migrate: guest is paused to finish the migration process
110 1fa9a5e4 Luiz Capitulino
#
111 1fa9a5e4 Luiz Capitulino
# @restore-vm: guest is paused to restore VM state
112 1fa9a5e4 Luiz Capitulino
#
113 1fa9a5e4 Luiz Capitulino
# @running: guest is actively running
114 1fa9a5e4 Luiz Capitulino
#
115 1fa9a5e4 Luiz Capitulino
# @save-vm: guest is paused to save the VM state
116 1fa9a5e4 Luiz Capitulino
#
117 1fa9a5e4 Luiz Capitulino
# @shutdown: guest is shut down (and -no-shutdown is in use)
118 1fa9a5e4 Luiz Capitulino
#
119 1fa9a5e4 Luiz Capitulino
# @watchdog: the watchdog action is configured to pause and has been triggered
120 1fa9a5e4 Luiz Capitulino
##
121 1fa9a5e4 Luiz Capitulino
{ 'enum': 'RunState',
122 1fa9a5e4 Luiz Capitulino
  'data': [ 'debug', 'inmigrate', 'internal-error', 'io-error', 'paused',
123 1fa9a5e4 Luiz Capitulino
            'postmigrate', 'prelaunch', 'finish-migrate', 'restore-vm',
124 1fa9a5e4 Luiz Capitulino
            'running', 'save-vm', 'shutdown', 'watchdog' ] }
125 1fa9a5e4 Luiz Capitulino
126 1fa9a5e4 Luiz Capitulino
##
127 1fa9a5e4 Luiz Capitulino
# @StatusInfo:
128 1fa9a5e4 Luiz Capitulino
#
129 1fa9a5e4 Luiz Capitulino
# Information about VCPU run state
130 1fa9a5e4 Luiz Capitulino
#
131 1fa9a5e4 Luiz Capitulino
# @running: true if all VCPUs are runnable, false if not runnable
132 1fa9a5e4 Luiz Capitulino
#
133 1fa9a5e4 Luiz Capitulino
# @singlestep: true if VCPUs are in single-step mode
134 1fa9a5e4 Luiz Capitulino
#
135 1fa9a5e4 Luiz Capitulino
# @status: the virtual machine @RunState
136 1fa9a5e4 Luiz Capitulino
#
137 1fa9a5e4 Luiz Capitulino
# Since:  0.14.0
138 1fa9a5e4 Luiz Capitulino
#
139 1fa9a5e4 Luiz Capitulino
# Notes: @singlestep is enabled through the GDB stub
140 1fa9a5e4 Luiz Capitulino
##
141 1fa9a5e4 Luiz Capitulino
{ 'type': 'StatusInfo',
142 1fa9a5e4 Luiz Capitulino
  'data': {'running': 'bool', 'singlestep': 'bool', 'status': 'RunState'} }
143 1fa9a5e4 Luiz Capitulino
144 1fa9a5e4 Luiz Capitulino
##
145 1fa9a5e4 Luiz Capitulino
# @query-status:
146 1fa9a5e4 Luiz Capitulino
#
147 1fa9a5e4 Luiz Capitulino
# Query the run status of all VCPUs
148 1fa9a5e4 Luiz Capitulino
#
149 1fa9a5e4 Luiz Capitulino
# Returns: @StatusInfo reflecting all VCPUs
150 1fa9a5e4 Luiz Capitulino
#
151 1fa9a5e4 Luiz Capitulino
# Since:  0.14.0
152 1fa9a5e4 Luiz Capitulino
##
153 1fa9a5e4 Luiz Capitulino
{ 'command': 'query-status', 'returns': 'StatusInfo' }
154 1fa9a5e4 Luiz Capitulino
155 efab767e Luiz Capitulino
##
156 efab767e Luiz Capitulino
# @UuidInfo:
157 efab767e Luiz Capitulino
#
158 efab767e Luiz Capitulino
# Guest UUID information.
159 efab767e Luiz Capitulino
#
160 efab767e Luiz Capitulino
# @UUID: the UUID of the guest
161 efab767e Luiz Capitulino
#
162 efab767e Luiz Capitulino
# Since: 0.14.0
163 efab767e Luiz Capitulino
#
164 efab767e Luiz Capitulino
# Notes: If no UUID was specified for the guest, a null UUID is returned.
165 efab767e Luiz Capitulino
##
166 efab767e Luiz Capitulino
{ 'type': 'UuidInfo', 'data': {'UUID': 'str'} }
167 efab767e Luiz Capitulino
168 efab767e Luiz Capitulino
##
169 efab767e Luiz Capitulino
# @query-uuid:
170 efab767e Luiz Capitulino
#
171 efab767e Luiz Capitulino
# Query the guest UUID information.
172 efab767e Luiz Capitulino
#
173 efab767e Luiz Capitulino
# Returns: The @UuidInfo for the guest
174 efab767e Luiz Capitulino
#
175 efab767e Luiz Capitulino
# Since 0.14.0
176 efab767e Luiz Capitulino
##
177 efab767e Luiz Capitulino
{ 'command': 'query-uuid', 'returns': 'UuidInfo' }
178 efab767e Luiz Capitulino
179 c5a415a0 Luiz Capitulino
##
180 c5a415a0 Luiz Capitulino
# @ChardevInfo:
181 c5a415a0 Luiz Capitulino
#
182 c5a415a0 Luiz Capitulino
# Information about a character device.
183 c5a415a0 Luiz Capitulino
#
184 c5a415a0 Luiz Capitulino
# @label: the label of the character device
185 c5a415a0 Luiz Capitulino
#
186 c5a415a0 Luiz Capitulino
# @filename: the filename of the character device
187 c5a415a0 Luiz Capitulino
#
188 c5a415a0 Luiz Capitulino
# Notes: @filename is encoded using the QEMU command line character device
189 c5a415a0 Luiz Capitulino
#        encoding.  See the QEMU man page for details.
190 c5a415a0 Luiz Capitulino
#
191 c5a415a0 Luiz Capitulino
# Since: 0.14.0
192 c5a415a0 Luiz Capitulino
##
193 c5a415a0 Luiz Capitulino
{ 'type': 'ChardevInfo', 'data': {'label': 'str', 'filename': 'str'} }
194 c5a415a0 Luiz Capitulino
195 c5a415a0 Luiz Capitulino
##
196 c5a415a0 Luiz Capitulino
# @query-chardev:
197 c5a415a0 Luiz Capitulino
#
198 c5a415a0 Luiz Capitulino
# Returns information about current character devices.
199 c5a415a0 Luiz Capitulino
#
200 c5a415a0 Luiz Capitulino
# Returns: a list of @ChardevInfo
201 c5a415a0 Luiz Capitulino
#
202 c5a415a0 Luiz Capitulino
# Since: 0.14.0
203 c5a415a0 Luiz Capitulino
##
204 c5a415a0 Luiz Capitulino
{ 'command': 'query-chardev', 'returns': ['ChardevInfo'] }
205 aa9b79bc Luiz Capitulino
206 aa9b79bc Luiz Capitulino
##
207 aa9b79bc Luiz Capitulino
# @CommandInfo:
208 aa9b79bc Luiz Capitulino
#
209 aa9b79bc Luiz Capitulino
# Information about a QMP command
210 aa9b79bc Luiz Capitulino
#
211 aa9b79bc Luiz Capitulino
# @name: The command name
212 aa9b79bc Luiz Capitulino
#
213 aa9b79bc Luiz Capitulino
# Since: 0.14.0
214 aa9b79bc Luiz Capitulino
##
215 aa9b79bc Luiz Capitulino
{ 'type': 'CommandInfo', 'data': {'name': 'str'} }
216 aa9b79bc Luiz Capitulino
217 aa9b79bc Luiz Capitulino
##
218 aa9b79bc Luiz Capitulino
# @query-commands:
219 aa9b79bc Luiz Capitulino
#
220 aa9b79bc Luiz Capitulino
# Return a list of supported QMP commands by this server
221 aa9b79bc Luiz Capitulino
#
222 aa9b79bc Luiz Capitulino
# Returns: A list of @CommandInfo for all supported commands
223 aa9b79bc Luiz Capitulino
#
224 aa9b79bc Luiz Capitulino
# Since: 0.14.0
225 aa9b79bc Luiz Capitulino
##
226 aa9b79bc Luiz Capitulino
{ 'command': 'query-commands', 'returns': ['CommandInfo'] }
227 aa9b79bc Luiz Capitulino
228 7a7f325e Luiz Capitulino
##
229 791e7c82 Luiz Capitulino
# @MigrationStats
230 791e7c82 Luiz Capitulino
#
231 791e7c82 Luiz Capitulino
# Detailed migration status.
232 791e7c82 Luiz Capitulino
#
233 791e7c82 Luiz Capitulino
# @transferred: amount of bytes already transferred to the target VM
234 791e7c82 Luiz Capitulino
#
235 791e7c82 Luiz Capitulino
# @remaining: amount of bytes remaining to be transferred to the target VM
236 791e7c82 Luiz Capitulino
#
237 791e7c82 Luiz Capitulino
# @total: total amount of bytes involved in the migration process
238 791e7c82 Luiz Capitulino
#
239 791e7c82 Luiz Capitulino
# Since: 0.14.0.
240 791e7c82 Luiz Capitulino
##
241 791e7c82 Luiz Capitulino
{ 'type': 'MigrationStats',
242 791e7c82 Luiz Capitulino
  'data': {'transferred': 'int', 'remaining': 'int', 'total': 'int' } }
243 791e7c82 Luiz Capitulino
244 791e7c82 Luiz Capitulino
##
245 791e7c82 Luiz Capitulino
# @MigrationInfo
246 791e7c82 Luiz Capitulino
#
247 791e7c82 Luiz Capitulino
# Information about current migration process.
248 791e7c82 Luiz Capitulino
#
249 791e7c82 Luiz Capitulino
# @status: #optional string describing the current migration status.
250 791e7c82 Luiz Capitulino
#          As of 0.14.0 this can be 'active', 'completed', 'failed' or
251 791e7c82 Luiz Capitulino
#          'cancelled'. If this field is not returned, no migration process
252 791e7c82 Luiz Capitulino
#          has been initiated
253 791e7c82 Luiz Capitulino
#
254 791e7c82 Luiz Capitulino
# @ram: #optional @MigrationStats containing detailed migration status,
255 791e7c82 Luiz Capitulino
#       only returned if status is 'active'
256 791e7c82 Luiz Capitulino
#
257 791e7c82 Luiz Capitulino
# @disk: #optional @MigrationStats containing detailed disk migration
258 791e7c82 Luiz Capitulino
#        status, only returned if status is 'active' and it is a block
259 791e7c82 Luiz Capitulino
#        migration
260 791e7c82 Luiz Capitulino
#
261 791e7c82 Luiz Capitulino
# Since: 0.14.0
262 791e7c82 Luiz Capitulino
##
263 791e7c82 Luiz Capitulino
{ 'type': 'MigrationInfo',
264 791e7c82 Luiz Capitulino
  'data': {'*status': 'str', '*ram': 'MigrationStats',
265 791e7c82 Luiz Capitulino
           '*disk': 'MigrationStats'} }
266 791e7c82 Luiz Capitulino
267 791e7c82 Luiz Capitulino
##
268 791e7c82 Luiz Capitulino
# @query-migrate
269 791e7c82 Luiz Capitulino
#
270 791e7c82 Luiz Capitulino
# Returns information about current migration process.
271 791e7c82 Luiz Capitulino
#
272 791e7c82 Luiz Capitulino
# Returns: @MigrationInfo
273 791e7c82 Luiz Capitulino
#
274 791e7c82 Luiz Capitulino
# Since: 0.14.0
275 791e7c82 Luiz Capitulino
##
276 791e7c82 Luiz Capitulino
{ 'command': 'query-migrate', 'returns': 'MigrationInfo' }
277 791e7c82 Luiz Capitulino
278 791e7c82 Luiz Capitulino
##
279 e235cec3 Luiz Capitulino
# @MouseInfo:
280 e235cec3 Luiz Capitulino
#
281 e235cec3 Luiz Capitulino
# Information about a mouse device.
282 e235cec3 Luiz Capitulino
#
283 e235cec3 Luiz Capitulino
# @name: the name of the mouse device
284 e235cec3 Luiz Capitulino
#
285 e235cec3 Luiz Capitulino
# @index: the index of the mouse device
286 e235cec3 Luiz Capitulino
#
287 e235cec3 Luiz Capitulino
# @current: true if this device is currently receiving mouse events
288 e235cec3 Luiz Capitulino
#
289 e235cec3 Luiz Capitulino
# @absolute: true if this device supports absolute coordinates as input
290 e235cec3 Luiz Capitulino
#
291 e235cec3 Luiz Capitulino
# Since: 0.14.0
292 e235cec3 Luiz Capitulino
##
293 e235cec3 Luiz Capitulino
{ 'type': 'MouseInfo',
294 e235cec3 Luiz Capitulino
  'data': {'name': 'str', 'index': 'int', 'current': 'bool',
295 e235cec3 Luiz Capitulino
           'absolute': 'bool'} }
296 e235cec3 Luiz Capitulino
297 e235cec3 Luiz Capitulino
##
298 e235cec3 Luiz Capitulino
# @query-mice:
299 e235cec3 Luiz Capitulino
#
300 e235cec3 Luiz Capitulino
# Returns information about each active mouse device
301 e235cec3 Luiz Capitulino
#
302 e235cec3 Luiz Capitulino
# Returns: a list of @MouseInfo for each device
303 e235cec3 Luiz Capitulino
#
304 e235cec3 Luiz Capitulino
# Since: 0.14.0
305 e235cec3 Luiz Capitulino
##
306 e235cec3 Luiz Capitulino
{ 'command': 'query-mice', 'returns': ['MouseInfo'] }
307 e235cec3 Luiz Capitulino
308 e235cec3 Luiz Capitulino
##
309 de0b36b6 Luiz Capitulino
# @CpuInfo:
310 de0b36b6 Luiz Capitulino
#
311 de0b36b6 Luiz Capitulino
# Information about a virtual CPU
312 de0b36b6 Luiz Capitulino
#
313 de0b36b6 Luiz Capitulino
# @CPU: the index of the virtual CPU
314 de0b36b6 Luiz Capitulino
#
315 de0b36b6 Luiz Capitulino
# @current: this only exists for backwards compatible and should be ignored
316 de0b36b6 Luiz Capitulino
# 
317 de0b36b6 Luiz Capitulino
# @halted: true if the virtual CPU is in the halt state.  Halt usually refers
318 de0b36b6 Luiz Capitulino
#          to a processor specific low power mode.
319 de0b36b6 Luiz Capitulino
#
320 de0b36b6 Luiz Capitulino
# @pc: #optional If the target is i386 or x86_64, this is the 64-bit instruction
321 de0b36b6 Luiz Capitulino
#                pointer.
322 de0b36b6 Luiz Capitulino
#                If the target is Sparc, this is the PC component of the
323 de0b36b6 Luiz Capitulino
#                instruction pointer.
324 de0b36b6 Luiz Capitulino
#
325 de0b36b6 Luiz Capitulino
# @nip: #optional If the target is PPC, the instruction pointer
326 de0b36b6 Luiz Capitulino
#
327 de0b36b6 Luiz Capitulino
# @npc: #optional If the target is Sparc, the NPC component of the instruction
328 de0b36b6 Luiz Capitulino
#                 pointer
329 de0b36b6 Luiz Capitulino
#
330 de0b36b6 Luiz Capitulino
# @PC: #optional If the target is MIPS, the instruction pointer
331 de0b36b6 Luiz Capitulino
#
332 de0b36b6 Luiz Capitulino
# @thread_id: ID of the underlying host thread
333 de0b36b6 Luiz Capitulino
#
334 de0b36b6 Luiz Capitulino
# Since: 0.14.0
335 de0b36b6 Luiz Capitulino
#
336 de0b36b6 Luiz Capitulino
# Notes: @halted is a transient state that changes frequently.  By the time the
337 de0b36b6 Luiz Capitulino
#        data is sent to the client, the guest may no longer be halted.
338 de0b36b6 Luiz Capitulino
##
339 de0b36b6 Luiz Capitulino
{ 'type': 'CpuInfo',
340 de0b36b6 Luiz Capitulino
  'data': {'CPU': 'int', 'current': 'bool', 'halted': 'bool', '*pc': 'int',
341 de0b36b6 Luiz Capitulino
           '*nip': 'int', '*npc': 'int', '*PC': 'int', 'thread_id': 'int'} }
342 de0b36b6 Luiz Capitulino
343 de0b36b6 Luiz Capitulino
##
344 de0b36b6 Luiz Capitulino
# @query-cpus:
345 de0b36b6 Luiz Capitulino
#
346 de0b36b6 Luiz Capitulino
# Returns a list of information about each virtual CPU.
347 de0b36b6 Luiz Capitulino
#
348 de0b36b6 Luiz Capitulino
# Returns: a list of @CpuInfo for each virtual CPU
349 de0b36b6 Luiz Capitulino
#
350 de0b36b6 Luiz Capitulino
# Since: 0.14.0
351 de0b36b6 Luiz Capitulino
##
352 de0b36b6 Luiz Capitulino
{ 'command': 'query-cpus', 'returns': ['CpuInfo'] }
353 de0b36b6 Luiz Capitulino
354 de0b36b6 Luiz Capitulino
##
355 b2023818 Luiz Capitulino
# @BlockDeviceInfo:
356 b2023818 Luiz Capitulino
#
357 b2023818 Luiz Capitulino
# Information about the backing device for a block device.
358 b2023818 Luiz Capitulino
#
359 b2023818 Luiz Capitulino
# @file: the filename of the backing device
360 b2023818 Luiz Capitulino
#
361 b2023818 Luiz Capitulino
# @ro: true if the backing device was open read-only
362 b2023818 Luiz Capitulino
#
363 b2023818 Luiz Capitulino
# @drv: the name of the block format used to open the backing device. As of
364 b2023818 Luiz Capitulino
#       0.14.0 this can be: 'blkdebug', 'bochs', 'cloop', 'cow', 'dmg',
365 b2023818 Luiz Capitulino
#       'file', 'file', 'ftp', 'ftps', 'host_cdrom', 'host_device',
366 b2023818 Luiz Capitulino
#       'host_floppy', 'http', 'https', 'nbd', 'parallels', 'qcow',
367 b2023818 Luiz Capitulino
#       'qcow2', 'raw', 'tftp', 'vdi', 'vmdk', 'vpc', 'vvfat'
368 b2023818 Luiz Capitulino
#
369 b2023818 Luiz Capitulino
# @backing_file: #optional the name of the backing file (for copy-on-write)
370 b2023818 Luiz Capitulino
#
371 b2023818 Luiz Capitulino
# @encrypted: true if the backing device is encrypted
372 b2023818 Luiz Capitulino
#
373 727f005e Zhi Yong Wu
# @bps: total throughput limit in bytes per second is specified
374 727f005e Zhi Yong Wu
#
375 727f005e Zhi Yong Wu
# @bps_rd: read throughput limit in bytes per second is specified
376 727f005e Zhi Yong Wu
#
377 727f005e Zhi Yong Wu
# @bps_wr: write throughput limit in bytes per second is specified
378 727f005e Zhi Yong Wu
#
379 727f005e Zhi Yong Wu
# @iops: total I/O operations per second is specified
380 727f005e Zhi Yong Wu
#
381 727f005e Zhi Yong Wu
# @iops_rd: read I/O operations per second is specified
382 727f005e Zhi Yong Wu
#
383 727f005e Zhi Yong Wu
# @iops_wr: write I/O operations per second is specified
384 727f005e Zhi Yong Wu
#
385 b2023818 Luiz Capitulino
# Since: 0.14.0
386 b2023818 Luiz Capitulino
#
387 b2023818 Luiz Capitulino
# Notes: This interface is only found in @BlockInfo.
388 b2023818 Luiz Capitulino
##
389 b2023818 Luiz Capitulino
{ 'type': 'BlockDeviceInfo',
390 b2023818 Luiz Capitulino
  'data': { 'file': 'str', 'ro': 'bool', 'drv': 'str',
391 727f005e Zhi Yong Wu
            '*backing_file': 'str', 'encrypted': 'bool',
392 727f005e Zhi Yong Wu
            'bps': 'int', 'bps_rd': 'int', 'bps_wr': 'int',
393 727f005e Zhi Yong Wu
            'iops': 'int', 'iops_rd': 'int', 'iops_wr': 'int'} }
394 b2023818 Luiz Capitulino
395 b2023818 Luiz Capitulino
##
396 b2023818 Luiz Capitulino
# @BlockDeviceIoStatus:
397 b2023818 Luiz Capitulino
#
398 b2023818 Luiz Capitulino
# An enumeration of block device I/O status.
399 b2023818 Luiz Capitulino
#
400 b2023818 Luiz Capitulino
# @ok: The last I/O operation has succeeded
401 b2023818 Luiz Capitulino
#
402 b2023818 Luiz Capitulino
# @failed: The last I/O operation has failed
403 b2023818 Luiz Capitulino
#
404 b2023818 Luiz Capitulino
# @nospace: The last I/O operation has failed due to a no-space condition
405 b2023818 Luiz Capitulino
#
406 b2023818 Luiz Capitulino
# Since: 1.0
407 b2023818 Luiz Capitulino
##
408 b2023818 Luiz Capitulino
{ 'enum': 'BlockDeviceIoStatus', 'data': [ 'ok', 'failed', 'nospace' ] }
409 b2023818 Luiz Capitulino
410 b2023818 Luiz Capitulino
##
411 b2023818 Luiz Capitulino
# @BlockInfo:
412 b2023818 Luiz Capitulino
#
413 b2023818 Luiz Capitulino
# Block device information.  This structure describes a virtual device and
414 b2023818 Luiz Capitulino
# the backing device associated with it.
415 b2023818 Luiz Capitulino
#
416 b2023818 Luiz Capitulino
# @device: The device name associated with the virtual device.
417 b2023818 Luiz Capitulino
#
418 b2023818 Luiz Capitulino
# @type: This field is returned only for compatibility reasons, it should
419 b2023818 Luiz Capitulino
#        not be used (always returns 'unknown')
420 b2023818 Luiz Capitulino
#
421 b2023818 Luiz Capitulino
# @removable: True if the device supports removable media.
422 b2023818 Luiz Capitulino
#
423 b2023818 Luiz Capitulino
# @locked: True if the guest has locked this device from having its media
424 b2023818 Luiz Capitulino
#          removed
425 b2023818 Luiz Capitulino
#
426 b2023818 Luiz Capitulino
# @tray_open: #optional True if the device has a tray and it is open
427 b2023818 Luiz Capitulino
#             (only present if removable is true)
428 b2023818 Luiz Capitulino
#
429 b2023818 Luiz Capitulino
# @io-status: #optional @BlockDeviceIoStatus. Only present if the device
430 b2023818 Luiz Capitulino
#             supports it and the VM is configured to stop on errors
431 b2023818 Luiz Capitulino
#
432 b2023818 Luiz Capitulino
# @inserted: #optional @BlockDeviceInfo describing the device if media is
433 b2023818 Luiz Capitulino
#            present
434 b2023818 Luiz Capitulino
#
435 b2023818 Luiz Capitulino
# Since:  0.14.0
436 b2023818 Luiz Capitulino
##
437 b2023818 Luiz Capitulino
{ 'type': 'BlockInfo',
438 b2023818 Luiz Capitulino
  'data': {'device': 'str', 'type': 'str', 'removable': 'bool',
439 b2023818 Luiz Capitulino
           'locked': 'bool', '*inserted': 'BlockDeviceInfo',
440 b2023818 Luiz Capitulino
           '*tray_open': 'bool', '*io-status': 'BlockDeviceIoStatus'} }
441 b2023818 Luiz Capitulino
442 b2023818 Luiz Capitulino
##
443 b2023818 Luiz Capitulino
# @query-block:
444 b2023818 Luiz Capitulino
#
445 b2023818 Luiz Capitulino
# Get a list of BlockInfo for all virtual block devices.
446 b2023818 Luiz Capitulino
#
447 b2023818 Luiz Capitulino
# Returns: a list of @BlockInfo describing each virtual block device
448 b2023818 Luiz Capitulino
#
449 b2023818 Luiz Capitulino
# Since: 0.14.0
450 b2023818 Luiz Capitulino
##
451 b2023818 Luiz Capitulino
{ 'command': 'query-block', 'returns': ['BlockInfo'] }
452 b2023818 Luiz Capitulino
453 b2023818 Luiz Capitulino
##
454 f11f57e4 Luiz Capitulino
# @BlockDeviceStats:
455 f11f57e4 Luiz Capitulino
#
456 f11f57e4 Luiz Capitulino
# Statistics of a virtual block device or a block backing device.
457 f11f57e4 Luiz Capitulino
#
458 f11f57e4 Luiz Capitulino
# @rd_bytes:      The number of bytes read by the device.
459 f11f57e4 Luiz Capitulino
#
460 f11f57e4 Luiz Capitulino
# @wr_bytes:      The number of bytes written by the device.
461 f11f57e4 Luiz Capitulino
#
462 f11f57e4 Luiz Capitulino
# @rd_operations: The number of read operations performed by the device.
463 f11f57e4 Luiz Capitulino
#
464 f11f57e4 Luiz Capitulino
# @wr_operations: The number of write operations performed by the device.
465 f11f57e4 Luiz Capitulino
#
466 f11f57e4 Luiz Capitulino
# @flush_operations: The number of cache flush operations performed by the
467 f11f57e4 Luiz Capitulino
#                    device (since 0.15.0)
468 f11f57e4 Luiz Capitulino
#
469 f11f57e4 Luiz Capitulino
# @flush_total_time_ns: Total time spend on cache flushes in nano-seconds
470 f11f57e4 Luiz Capitulino
#                       (since 0.15.0).
471 f11f57e4 Luiz Capitulino
#
472 f11f57e4 Luiz Capitulino
# @wr_total_time_ns: Total time spend on writes in nano-seconds (since 0.15.0).
473 f11f57e4 Luiz Capitulino
#
474 f11f57e4 Luiz Capitulino
# @rd_total_time_ns: Total_time_spend on reads in nano-seconds (since 0.15.0).
475 f11f57e4 Luiz Capitulino
#
476 f11f57e4 Luiz Capitulino
# @wr_highest_offset: The offset after the greatest byte written to the
477 f11f57e4 Luiz Capitulino
#                     device.  The intended use of this information is for
478 f11f57e4 Luiz Capitulino
#                     growable sparse files (like qcow2) that are used on top
479 f11f57e4 Luiz Capitulino
#                     of a physical device.
480 f11f57e4 Luiz Capitulino
#
481 f11f57e4 Luiz Capitulino
# Since: 0.14.0
482 f11f57e4 Luiz Capitulino
##
483 f11f57e4 Luiz Capitulino
{ 'type': 'BlockDeviceStats',
484 f11f57e4 Luiz Capitulino
  'data': {'rd_bytes': 'int', 'wr_bytes': 'int', 'rd_operations': 'int',
485 f11f57e4 Luiz Capitulino
           'wr_operations': 'int', 'flush_operations': 'int',
486 f11f57e4 Luiz Capitulino
           'flush_total_time_ns': 'int', 'wr_total_time_ns': 'int',
487 f11f57e4 Luiz Capitulino
           'rd_total_time_ns': 'int', 'wr_highest_offset': 'int' } }
488 f11f57e4 Luiz Capitulino
489 f11f57e4 Luiz Capitulino
##
490 f11f57e4 Luiz Capitulino
# @BlockStats:
491 f11f57e4 Luiz Capitulino
#
492 f11f57e4 Luiz Capitulino
# Statistics of a virtual block device or a block backing device.
493 f11f57e4 Luiz Capitulino
#
494 f11f57e4 Luiz Capitulino
# @device: #optional If the stats are for a virtual block device, the name
495 f11f57e4 Luiz Capitulino
#          corresponding to the virtual block device.
496 f11f57e4 Luiz Capitulino
#
497 f11f57e4 Luiz Capitulino
# @stats:  A @BlockDeviceStats for the device.
498 f11f57e4 Luiz Capitulino
#
499 f11f57e4 Luiz Capitulino
# @parent: #optional This may point to the backing block device if this is a
500 f11f57e4 Luiz Capitulino
#          a virtual block device.  If it's a backing block, this will point
501 f11f57e4 Luiz Capitulino
#          to the backing file is one is present.
502 f11f57e4 Luiz Capitulino
#
503 f11f57e4 Luiz Capitulino
# Since: 0.14.0
504 f11f57e4 Luiz Capitulino
##
505 f11f57e4 Luiz Capitulino
{ 'type': 'BlockStats',
506 f11f57e4 Luiz Capitulino
  'data': {'*device': 'str', 'stats': 'BlockDeviceStats',
507 f11f57e4 Luiz Capitulino
           '*parent': 'BlockStats'} }
508 f11f57e4 Luiz Capitulino
509 f11f57e4 Luiz Capitulino
##
510 f11f57e4 Luiz Capitulino
# @query-blockstats:
511 f11f57e4 Luiz Capitulino
#
512 f11f57e4 Luiz Capitulino
# Query the @BlockStats for all virtual block devices.
513 f11f57e4 Luiz Capitulino
#
514 f11f57e4 Luiz Capitulino
# Returns: A list of @BlockStats for each virtual block devices.
515 f11f57e4 Luiz Capitulino
#
516 f11f57e4 Luiz Capitulino
# Since: 0.14.0
517 f11f57e4 Luiz Capitulino
##
518 f11f57e4 Luiz Capitulino
{ 'command': 'query-blockstats', 'returns': ['BlockStats'] }
519 f11f57e4 Luiz Capitulino
520 f11f57e4 Luiz Capitulino
##
521 2b54aa87 Luiz Capitulino
# @VncClientInfo:
522 2b54aa87 Luiz Capitulino
#
523 2b54aa87 Luiz Capitulino
# Information about a connected VNC client.
524 2b54aa87 Luiz Capitulino
#
525 2b54aa87 Luiz Capitulino
# @host: The host name of the client.  QEMU tries to resolve this to a DNS name
526 2b54aa87 Luiz Capitulino
#        when possible.
527 2b54aa87 Luiz Capitulino
#
528 2b54aa87 Luiz Capitulino
# @family: 'ipv6' if the client is connected via IPv6 and TCP
529 2b54aa87 Luiz Capitulino
#          'ipv4' if the client is connected via IPv4 and TCP
530 2b54aa87 Luiz Capitulino
#          'unix' if the client is connected via a unix domain socket
531 2b54aa87 Luiz Capitulino
#          'unknown' otherwise
532 2b54aa87 Luiz Capitulino
#
533 2b54aa87 Luiz Capitulino
# @service: The service name of the client's port.  This may depends on the
534 2b54aa87 Luiz Capitulino
#           host system's service database so symbolic names should not be
535 2b54aa87 Luiz Capitulino
#           relied on.
536 2b54aa87 Luiz Capitulino
#
537 2b54aa87 Luiz Capitulino
# @x509_dname: #optional If x509 authentication is in use, the Distinguished
538 2b54aa87 Luiz Capitulino
#              Name of the client.
539 2b54aa87 Luiz Capitulino
#
540 2b54aa87 Luiz Capitulino
# @sasl_username: #optional If SASL authentication is in use, the SASL username
541 2b54aa87 Luiz Capitulino
#                 used for authentication.
542 2b54aa87 Luiz Capitulino
#
543 2b54aa87 Luiz Capitulino
# Since: 0.14.0
544 2b54aa87 Luiz Capitulino
##
545 2b54aa87 Luiz Capitulino
{ 'type': 'VncClientInfo',
546 2b54aa87 Luiz Capitulino
  'data': {'host': 'str', 'family': 'str', 'service': 'str',
547 2b54aa87 Luiz Capitulino
           '*x509_dname': 'str', '*sasl_username': 'str'} }
548 2b54aa87 Luiz Capitulino
549 2b54aa87 Luiz Capitulino
##
550 2b54aa87 Luiz Capitulino
# @VncInfo:
551 2b54aa87 Luiz Capitulino
#
552 2b54aa87 Luiz Capitulino
# Information about the VNC session.
553 2b54aa87 Luiz Capitulino
#
554 2b54aa87 Luiz Capitulino
# @enabled: true if the VNC server is enabled, false otherwise
555 2b54aa87 Luiz Capitulino
#
556 2b54aa87 Luiz Capitulino
# @host: #optional The hostname the VNC server is bound to.  This depends on
557 2b54aa87 Luiz Capitulino
#        the name resolution on the host and may be an IP address.
558 2b54aa87 Luiz Capitulino
#
559 2b54aa87 Luiz Capitulino
# @family: #optional 'ipv6' if the host is listening for IPv6 connections
560 2b54aa87 Luiz Capitulino
#                    'ipv4' if the host is listening for IPv4 connections
561 2b54aa87 Luiz Capitulino
#                    'unix' if the host is listening on a unix domain socket
562 2b54aa87 Luiz Capitulino
#                    'unknown' otherwise
563 2b54aa87 Luiz Capitulino
#
564 2b54aa87 Luiz Capitulino
# @service: #optional The service name of the server's port.  This may depends
565 2b54aa87 Luiz Capitulino
#           on the host system's service database so symbolic names should not
566 2b54aa87 Luiz Capitulino
#           be relied on.
567 2b54aa87 Luiz Capitulino
#
568 2b54aa87 Luiz Capitulino
# @auth: #optional the current authentication type used by the server
569 2b54aa87 Luiz Capitulino
#        'none' if no authentication is being used
570 2b54aa87 Luiz Capitulino
#        'vnc' if VNC authentication is being used
571 2b54aa87 Luiz Capitulino
#        'vencrypt+plain' if VEncrypt is used with plain text authentication
572 2b54aa87 Luiz Capitulino
#        'vencrypt+tls+none' if VEncrypt is used with TLS and no authentication
573 2b54aa87 Luiz Capitulino
#        'vencrypt+tls+vnc' if VEncrypt is used with TLS and VNC authentication
574 2b54aa87 Luiz Capitulino
#        'vencrypt+tls+plain' if VEncrypt is used with TLS and plain text auth
575 2b54aa87 Luiz Capitulino
#        'vencrypt+x509+none' if VEncrypt is used with x509 and no auth
576 2b54aa87 Luiz Capitulino
#        'vencrypt+x509+vnc' if VEncrypt is used with x509 and VNC auth
577 2b54aa87 Luiz Capitulino
#        'vencrypt+x509+plain' if VEncrypt is used with x509 and plain text auth
578 2b54aa87 Luiz Capitulino
#        'vencrypt+tls+sasl' if VEncrypt is used with TLS and SASL auth
579 2b54aa87 Luiz Capitulino
#        'vencrypt+x509+sasl' if VEncrypt is used with x509 and SASL auth
580 2b54aa87 Luiz Capitulino
#
581 2b54aa87 Luiz Capitulino
# @clients: a list of @VncClientInfo of all currently connected clients
582 2b54aa87 Luiz Capitulino
#
583 2b54aa87 Luiz Capitulino
# Since: 0.14.0
584 2b54aa87 Luiz Capitulino
##
585 2b54aa87 Luiz Capitulino
{ 'type': 'VncInfo',
586 2b54aa87 Luiz Capitulino
  'data': {'enabled': 'bool', '*host': 'str', '*family': 'str',
587 2b54aa87 Luiz Capitulino
           '*service': 'str', '*auth': 'str', '*clients': ['VncClientInfo']} }
588 2b54aa87 Luiz Capitulino
589 2b54aa87 Luiz Capitulino
##
590 2b54aa87 Luiz Capitulino
# @query-vnc:
591 2b54aa87 Luiz Capitulino
#
592 2b54aa87 Luiz Capitulino
# Returns information about the current VNC server
593 2b54aa87 Luiz Capitulino
#
594 2b54aa87 Luiz Capitulino
# Returns: @VncInfo
595 2b54aa87 Luiz Capitulino
#          If VNC support is not compiled in, FeatureDisabled
596 2b54aa87 Luiz Capitulino
#
597 2b54aa87 Luiz Capitulino
# Since: 0.14.0
598 2b54aa87 Luiz Capitulino
##
599 2b54aa87 Luiz Capitulino
{ 'command': 'query-vnc', 'returns': 'VncInfo' }
600 2b54aa87 Luiz Capitulino
601 2b54aa87 Luiz Capitulino
##
602 d1f29646 Luiz Capitulino
# @SpiceChannel
603 d1f29646 Luiz Capitulino
#
604 d1f29646 Luiz Capitulino
# Information about a SPICE client channel.
605 d1f29646 Luiz Capitulino
#
606 d1f29646 Luiz Capitulino
# @host: The host name of the client.  QEMU tries to resolve this to a DNS name
607 d1f29646 Luiz Capitulino
#        when possible.
608 d1f29646 Luiz Capitulino
#
609 d1f29646 Luiz Capitulino
# @family: 'ipv6' if the client is connected via IPv6 and TCP
610 d1f29646 Luiz Capitulino
#          'ipv4' if the client is connected via IPv4 and TCP
611 d1f29646 Luiz Capitulino
#          'unix' if the client is connected via a unix domain socket
612 d1f29646 Luiz Capitulino
#          'unknown' otherwise
613 d1f29646 Luiz Capitulino
#
614 d1f29646 Luiz Capitulino
# @port: The client's port number.
615 d1f29646 Luiz Capitulino
#
616 d1f29646 Luiz Capitulino
# @connection-id: SPICE connection id number.  All channels with the same id
617 d1f29646 Luiz Capitulino
#                 belong to the same SPICE session.
618 d1f29646 Luiz Capitulino
#
619 d1f29646 Luiz Capitulino
# @connection-type: SPICE channel type number.  "1" is the main control channel,
620 d1f29646 Luiz Capitulino
#                   filter for this one if you want track spice sessions only
621 d1f29646 Luiz Capitulino
#
622 d1f29646 Luiz Capitulino
# @channel-id: SPICE channel ID number.  Usually "0", might be different needed
623 d1f29646 Luiz Capitulino
#              when multiple channels of the same type exist, such as multiple
624 d1f29646 Luiz Capitulino
#              display channels in a multihead setup
625 d1f29646 Luiz Capitulino
#
626 d1f29646 Luiz Capitulino
# @tls: true if the channel is encrypted, false otherwise.
627 d1f29646 Luiz Capitulino
#
628 d1f29646 Luiz Capitulino
# Since: 0.14.0
629 d1f29646 Luiz Capitulino
##
630 d1f29646 Luiz Capitulino
{ 'type': 'SpiceChannel',
631 d1f29646 Luiz Capitulino
  'data': {'host': 'str', 'family': 'str', 'port': 'str',
632 d1f29646 Luiz Capitulino
           'connection-id': 'int', 'channel-type': 'int', 'channel-id': 'int',
633 d1f29646 Luiz Capitulino
           'tls': 'bool'} }
634 d1f29646 Luiz Capitulino
635 d1f29646 Luiz Capitulino
##
636 d1f29646 Luiz Capitulino
# @SpiceInfo
637 d1f29646 Luiz Capitulino
#
638 d1f29646 Luiz Capitulino
# Information about the SPICE session.
639 d1f29646 Luiz Capitulino
# 
640 d1f29646 Luiz Capitulino
# @enabled: true if the SPICE server is enabled, false otherwise
641 d1f29646 Luiz Capitulino
#
642 d1f29646 Luiz Capitulino
# @host: #optional The hostname the SPICE server is bound to.  This depends on
643 d1f29646 Luiz Capitulino
#        the name resolution on the host and may be an IP address.
644 d1f29646 Luiz Capitulino
#
645 d1f29646 Luiz Capitulino
# @port: #optional The SPICE server's port number.
646 d1f29646 Luiz Capitulino
#
647 d1f29646 Luiz Capitulino
# @compiled-version: #optional SPICE server version.
648 d1f29646 Luiz Capitulino
#
649 d1f29646 Luiz Capitulino
# @tls-port: #optional The SPICE server's TLS port number.
650 d1f29646 Luiz Capitulino
#
651 d1f29646 Luiz Capitulino
# @auth: #optional the current authentication type used by the server
652 d1f29646 Luiz Capitulino
#        'none' if no authentication is being used
653 d1f29646 Luiz Capitulino
#        'spice' (TODO: describe)
654 d1f29646 Luiz Capitulino
#
655 d1f29646 Luiz Capitulino
# @channels: a list of @SpiceChannel for each active spice channel
656 d1f29646 Luiz Capitulino
#
657 d1f29646 Luiz Capitulino
# Since: 0.14.0
658 d1f29646 Luiz Capitulino
##
659 d1f29646 Luiz Capitulino
{ 'type': 'SpiceInfo',
660 d1f29646 Luiz Capitulino
  'data': {'enabled': 'bool', '*host': 'str', '*port': 'int',
661 d1f29646 Luiz Capitulino
           '*tls-port': 'int', '*auth': 'str', '*compiled-version': 'str',
662 d1f29646 Luiz Capitulino
           '*channels': ['SpiceChannel']} }
663 d1f29646 Luiz Capitulino
664 d1f29646 Luiz Capitulino
##
665 d1f29646 Luiz Capitulino
# @query-spice
666 d1f29646 Luiz Capitulino
#
667 d1f29646 Luiz Capitulino
# Returns information about the current SPICE server
668 d1f29646 Luiz Capitulino
#
669 d1f29646 Luiz Capitulino
# Returns: @SpiceInfo
670 d1f29646 Luiz Capitulino
#
671 d1f29646 Luiz Capitulino
# Since: 0.14.0
672 d1f29646 Luiz Capitulino
##
673 d1f29646 Luiz Capitulino
{ 'command': 'query-spice', 'returns': 'SpiceInfo' }
674 d1f29646 Luiz Capitulino
675 d1f29646 Luiz Capitulino
##
676 96637bcd Luiz Capitulino
# @BalloonInfo:
677 96637bcd Luiz Capitulino
#
678 96637bcd Luiz Capitulino
# Information about the guest balloon device.
679 96637bcd Luiz Capitulino
#
680 96637bcd Luiz Capitulino
# @actual: the number of bytes the balloon currently contains
681 96637bcd Luiz Capitulino
#
682 96637bcd Luiz Capitulino
# @mem_swapped_in: #optional number of pages swapped in within the guest
683 96637bcd Luiz Capitulino
#
684 96637bcd Luiz Capitulino
# @mem_swapped_out: #optional number of pages swapped out within the guest
685 96637bcd Luiz Capitulino
#
686 96637bcd Luiz Capitulino
# @major_page_faults: #optional number of major page faults within the guest
687 96637bcd Luiz Capitulino
#
688 96637bcd Luiz Capitulino
# @minor_page_faults: #optional number of minor page faults within the guest
689 96637bcd Luiz Capitulino
#
690 96637bcd Luiz Capitulino
# @free_mem: #optional amount of memory (in bytes) free in the guest
691 96637bcd Luiz Capitulino
#
692 96637bcd Luiz Capitulino
# @total_mem: #optional amount of memory (in bytes) visible to the guest
693 96637bcd Luiz Capitulino
#
694 96637bcd Luiz Capitulino
# Since: 0.14.0
695 96637bcd Luiz Capitulino
#
696 96637bcd Luiz Capitulino
# Notes: all current versions of QEMU do not fill out optional information in
697 96637bcd Luiz Capitulino
#        this structure.
698 96637bcd Luiz Capitulino
##
699 96637bcd Luiz Capitulino
{ 'type': 'BalloonInfo',
700 96637bcd Luiz Capitulino
  'data': {'actual': 'int', '*mem_swapped_in': 'int',
701 96637bcd Luiz Capitulino
           '*mem_swapped_out': 'int', '*major_page_faults': 'int',
702 96637bcd Luiz Capitulino
           '*minor_page_faults': 'int', '*free_mem': 'int',
703 96637bcd Luiz Capitulino
           '*total_mem': 'int'} }
704 96637bcd Luiz Capitulino
705 96637bcd Luiz Capitulino
##
706 96637bcd Luiz Capitulino
# @query-balloon:
707 96637bcd Luiz Capitulino
#
708 96637bcd Luiz Capitulino
# Return information about the balloon device.
709 96637bcd Luiz Capitulino
#
710 96637bcd Luiz Capitulino
# Returns: @BalloonInfo on success
711 96637bcd Luiz Capitulino
#          If the balloon driver is enabled but not functional because the KVM
712 96637bcd Luiz Capitulino
#          kernel module cannot support it, KvmMissingCap
713 96637bcd Luiz Capitulino
#          If no balloon device is present, DeviceNotActive
714 96637bcd Luiz Capitulino
#
715 96637bcd Luiz Capitulino
# Since: 0.14.0
716 96637bcd Luiz Capitulino
##
717 96637bcd Luiz Capitulino
{ 'command': 'query-balloon', 'returns': 'BalloonInfo' }
718 96637bcd Luiz Capitulino
719 96637bcd Luiz Capitulino
##
720 79627472 Luiz Capitulino
# @PciMemoryRange:
721 79627472 Luiz Capitulino
#
722 79627472 Luiz Capitulino
# A PCI device memory region
723 79627472 Luiz Capitulino
#
724 79627472 Luiz Capitulino
# @base: the starting address (guest physical)
725 79627472 Luiz Capitulino
#
726 79627472 Luiz Capitulino
# @limit: the ending address (guest physical)
727 79627472 Luiz Capitulino
#
728 79627472 Luiz Capitulino
# Since: 0.14.0
729 79627472 Luiz Capitulino
##
730 79627472 Luiz Capitulino
{ 'type': 'PciMemoryRange', 'data': {'base': 'int', 'limit': 'int'} }
731 79627472 Luiz Capitulino
732 79627472 Luiz Capitulino
##
733 79627472 Luiz Capitulino
# @PciMemoryRegion
734 79627472 Luiz Capitulino
#
735 79627472 Luiz Capitulino
# Information about a PCI device I/O region.
736 79627472 Luiz Capitulino
#
737 79627472 Luiz Capitulino
# @bar: the index of the Base Address Register for this region
738 79627472 Luiz Capitulino
#
739 79627472 Luiz Capitulino
# @type: 'io' if the region is a PIO region
740 79627472 Luiz Capitulino
#        'memory' if the region is a MMIO region
741 79627472 Luiz Capitulino
#
742 79627472 Luiz Capitulino
# @prefetch: #optional if @type is 'memory', true if the memory is prefetchable
743 79627472 Luiz Capitulino
#
744 79627472 Luiz Capitulino
# @mem_type_64: #optional if @type is 'memory', true if the BAR is 64-bit
745 79627472 Luiz Capitulino
#
746 79627472 Luiz Capitulino
# Since: 0.14.0
747 79627472 Luiz Capitulino
##
748 79627472 Luiz Capitulino
{ 'type': 'PciMemoryRegion',
749 79627472 Luiz Capitulino
  'data': {'bar': 'int', 'type': 'str', 'address': 'int', 'size': 'int',
750 79627472 Luiz Capitulino
           '*prefetch': 'bool', '*mem_type_64': 'bool' } }
751 79627472 Luiz Capitulino
752 79627472 Luiz Capitulino
##
753 79627472 Luiz Capitulino
# @PciBridgeInfo:
754 79627472 Luiz Capitulino
#
755 79627472 Luiz Capitulino
# Information about a PCI Bridge device
756 79627472 Luiz Capitulino
#
757 79627472 Luiz Capitulino
# @bus.number: primary bus interface number.  This should be the number of the
758 79627472 Luiz Capitulino
#              bus the device resides on.
759 79627472 Luiz Capitulino
#
760 79627472 Luiz Capitulino
# @bus.secondary: secondary bus interface number.  This is the number of the
761 79627472 Luiz Capitulino
#                 main bus for the bridge
762 79627472 Luiz Capitulino
#
763 79627472 Luiz Capitulino
# @bus.subordinate: This is the highest number bus that resides below the
764 79627472 Luiz Capitulino
#                   bridge.
765 79627472 Luiz Capitulino
#
766 79627472 Luiz Capitulino
# @bus.io_range: The PIO range for all devices on this bridge
767 79627472 Luiz Capitulino
#
768 79627472 Luiz Capitulino
# @bus.memory_range: The MMIO range for all devices on this bridge
769 79627472 Luiz Capitulino
#
770 79627472 Luiz Capitulino
# @bus.prefetchable_range: The range of prefetchable MMIO for all devices on
771 79627472 Luiz Capitulino
#                          this bridge
772 79627472 Luiz Capitulino
#
773 79627472 Luiz Capitulino
# @devices: a list of @PciDeviceInfo for each device on this bridge
774 79627472 Luiz Capitulino
#
775 79627472 Luiz Capitulino
# Since: 0.14.0
776 79627472 Luiz Capitulino
##
777 79627472 Luiz Capitulino
{ 'type': 'PciBridgeInfo',
778 79627472 Luiz Capitulino
  'data': {'bus': { 'number': 'int', 'secondary': 'int', 'subordinate': 'int',
779 79627472 Luiz Capitulino
                    'io_range': 'PciMemoryRange',
780 79627472 Luiz Capitulino
                    'memory_range': 'PciMemoryRange',
781 79627472 Luiz Capitulino
                    'prefetchable_range': 'PciMemoryRange' },
782 79627472 Luiz Capitulino
           '*devices': ['PciDeviceInfo']} }
783 79627472 Luiz Capitulino
784 79627472 Luiz Capitulino
##
785 79627472 Luiz Capitulino
# @PciDeviceInfo:
786 79627472 Luiz Capitulino
#
787 79627472 Luiz Capitulino
# Information about a PCI device
788 79627472 Luiz Capitulino
#
789 79627472 Luiz Capitulino
# @bus: the bus number of the device
790 79627472 Luiz Capitulino
#
791 79627472 Luiz Capitulino
# @slot: the slot the device is located in
792 79627472 Luiz Capitulino
#
793 79627472 Luiz Capitulino
# @function: the function of the slot used by the device
794 79627472 Luiz Capitulino
#
795 79627472 Luiz Capitulino
# @class_info.desc: #optional a string description of the device's class
796 79627472 Luiz Capitulino
#
797 79627472 Luiz Capitulino
# @class_info.class: the class code of the device
798 79627472 Luiz Capitulino
#
799 79627472 Luiz Capitulino
# @id.device: the PCI device id
800 79627472 Luiz Capitulino
#
801 79627472 Luiz Capitulino
# @id.vendor: the PCI vendor id
802 79627472 Luiz Capitulino
#
803 79627472 Luiz Capitulino
# @irq: #optional if an IRQ is assigned to the device, the IRQ number
804 79627472 Luiz Capitulino
#
805 79627472 Luiz Capitulino
# @qdev_id: the device name of the PCI device
806 79627472 Luiz Capitulino
#
807 79627472 Luiz Capitulino
# @pci_bridge: if the device is a PCI bridge, the bridge information
808 79627472 Luiz Capitulino
#
809 79627472 Luiz Capitulino
# @regions: a list of the PCI I/O regions associated with the device
810 79627472 Luiz Capitulino
#
811 79627472 Luiz Capitulino
# Notes: the contents of @class_info.desc are not stable and should only be
812 79627472 Luiz Capitulino
#        treated as informational.
813 79627472 Luiz Capitulino
#
814 79627472 Luiz Capitulino
# Since: 0.14.0
815 79627472 Luiz Capitulino
##
816 79627472 Luiz Capitulino
{ 'type': 'PciDeviceInfo',
817 79627472 Luiz Capitulino
  'data': {'bus': 'int', 'slot': 'int', 'function': 'int',
818 79627472 Luiz Capitulino
           'class_info': {'*desc': 'str', 'class': 'int'},
819 79627472 Luiz Capitulino
           'id': {'device': 'int', 'vendor': 'int'},
820 79627472 Luiz Capitulino
           '*irq': 'int', 'qdev_id': 'str', '*pci_bridge': 'PciBridgeInfo',
821 79627472 Luiz Capitulino
           'regions': ['PciMemoryRegion']} }
822 79627472 Luiz Capitulino
823 79627472 Luiz Capitulino
##
824 79627472 Luiz Capitulino
# @PciInfo:
825 79627472 Luiz Capitulino
#
826 79627472 Luiz Capitulino
# Information about a PCI bus
827 79627472 Luiz Capitulino
#
828 79627472 Luiz Capitulino
# @bus: the bus index
829 79627472 Luiz Capitulino
#
830 79627472 Luiz Capitulino
# @devices: a list of devices on this bus
831 79627472 Luiz Capitulino
#
832 79627472 Luiz Capitulino
# Since: 0.14.0
833 79627472 Luiz Capitulino
##
834 79627472 Luiz Capitulino
{ 'type': 'PciInfo', 'data': {'bus': 'int', 'devices': ['PciDeviceInfo']} }
835 79627472 Luiz Capitulino
836 79627472 Luiz Capitulino
##
837 79627472 Luiz Capitulino
# @query-pci:
838 79627472 Luiz Capitulino
#
839 79627472 Luiz Capitulino
# Return information about the PCI bus topology of the guest.
840 79627472 Luiz Capitulino
#
841 79627472 Luiz Capitulino
# Returns: a list of @PciInfo for each PCI bus
842 79627472 Luiz Capitulino
#
843 79627472 Luiz Capitulino
# Since: 0.14.0
844 79627472 Luiz Capitulino
##
845 79627472 Luiz Capitulino
{ 'command': 'query-pci', 'returns': ['PciInfo'] }
846 79627472 Luiz Capitulino
847 79627472 Luiz Capitulino
##
848 fb5458cd Stefan Hajnoczi
# @BlockJobInfo:
849 fb5458cd Stefan Hajnoczi
#
850 fb5458cd Stefan Hajnoczi
# Information about a long-running block device operation.
851 fb5458cd Stefan Hajnoczi
#
852 fb5458cd Stefan Hajnoczi
# @type: the job type ('stream' for image streaming)
853 fb5458cd Stefan Hajnoczi
#
854 fb5458cd Stefan Hajnoczi
# @device: the block device name
855 fb5458cd Stefan Hajnoczi
#
856 fb5458cd Stefan Hajnoczi
# @len: the maximum progress value
857 fb5458cd Stefan Hajnoczi
#
858 fb5458cd Stefan Hajnoczi
# @offset: the current progress value
859 fb5458cd Stefan Hajnoczi
#
860 fb5458cd Stefan Hajnoczi
# @speed: the rate limit, bytes per second
861 fb5458cd Stefan Hajnoczi
#
862 fb5458cd Stefan Hajnoczi
# Since: 1.1
863 fb5458cd Stefan Hajnoczi
##
864 fb5458cd Stefan Hajnoczi
{ 'type': 'BlockJobInfo',
865 fb5458cd Stefan Hajnoczi
  'data': {'type': 'str', 'device': 'str', 'len': 'int',
866 fb5458cd Stefan Hajnoczi
           'offset': 'int', 'speed': 'int'} }
867 fb5458cd Stefan Hajnoczi
868 fb5458cd Stefan Hajnoczi
##
869 fb5458cd Stefan Hajnoczi
# @query-block-jobs:
870 fb5458cd Stefan Hajnoczi
#
871 fb5458cd Stefan Hajnoczi
# Return information about long-running block device operations.
872 fb5458cd Stefan Hajnoczi
#
873 fb5458cd Stefan Hajnoczi
# Returns: a list of @BlockJobInfo for each active block job
874 fb5458cd Stefan Hajnoczi
#
875 fb5458cd Stefan Hajnoczi
# Since: 1.1
876 fb5458cd Stefan Hajnoczi
##
877 fb5458cd Stefan Hajnoczi
{ 'command': 'query-block-jobs', 'returns': ['BlockJobInfo'] }
878 fb5458cd Stefan Hajnoczi
879 fb5458cd Stefan Hajnoczi
##
880 7a7f325e Luiz Capitulino
# @quit:
881 7a7f325e Luiz Capitulino
#
882 7a7f325e Luiz Capitulino
# This command will cause the QEMU process to exit gracefully.  While every
883 7a7f325e Luiz Capitulino
# attempt is made to send the QMP response before terminating, this is not
884 7a7f325e Luiz Capitulino
# guaranteed.  When using this interface, a premature EOF would not be
885 7a7f325e Luiz Capitulino
# unexpected.
886 7a7f325e Luiz Capitulino
#
887 7a7f325e Luiz Capitulino
# Since: 0.14.0
888 7a7f325e Luiz Capitulino
##
889 7a7f325e Luiz Capitulino
{ 'command': 'quit' }
890 5f158f21 Luiz Capitulino
891 5f158f21 Luiz Capitulino
##
892 5f158f21 Luiz Capitulino
# @stop:
893 5f158f21 Luiz Capitulino
#
894 5f158f21 Luiz Capitulino
# Stop all guest VCPU execution.
895 5f158f21 Luiz Capitulino
#
896 5f158f21 Luiz Capitulino
# Since:  0.14.0
897 5f158f21 Luiz Capitulino
#
898 5f158f21 Luiz Capitulino
# Notes:  This function will succeed even if the guest is already in the stopped
899 5f158f21 Luiz Capitulino
#         state
900 5f158f21 Luiz Capitulino
##
901 5f158f21 Luiz Capitulino
{ 'command': 'stop' }
902 38d22653 Luiz Capitulino
903 38d22653 Luiz Capitulino
##
904 38d22653 Luiz Capitulino
# @system_reset:
905 38d22653 Luiz Capitulino
#
906 38d22653 Luiz Capitulino
# Performs a hard reset of a guest.
907 38d22653 Luiz Capitulino
#
908 38d22653 Luiz Capitulino
# Since: 0.14.0
909 38d22653 Luiz Capitulino
##
910 38d22653 Luiz Capitulino
{ 'command': 'system_reset' }
911 5bc465e4 Luiz Capitulino
912 5bc465e4 Luiz Capitulino
##
913 5bc465e4 Luiz Capitulino
# @system_powerdown:
914 5bc465e4 Luiz Capitulino
#
915 5bc465e4 Luiz Capitulino
# Requests that a guest perform a powerdown operation.
916 5bc465e4 Luiz Capitulino
#
917 5bc465e4 Luiz Capitulino
# Since: 0.14.0
918 5bc465e4 Luiz Capitulino
#
919 5bc465e4 Luiz Capitulino
# Notes: A guest may or may not respond to this command.  This command
920 5bc465e4 Luiz Capitulino
#        returning does not indicate that a guest has accepted the request or
921 5bc465e4 Luiz Capitulino
#        that it has shut down.  Many guests will respond to this command by
922 5bc465e4 Luiz Capitulino
#        prompting the user in some way.
923 5bc465e4 Luiz Capitulino
##
924 5bc465e4 Luiz Capitulino
{ 'command': 'system_powerdown' }
925 755f1968 Luiz Capitulino
926 755f1968 Luiz Capitulino
##
927 755f1968 Luiz Capitulino
# @cpu:
928 755f1968 Luiz Capitulino
#
929 755f1968 Luiz Capitulino
# This command is a nop that is only provided for the purposes of compatibility.
930 755f1968 Luiz Capitulino
#
931 755f1968 Luiz Capitulino
# Since: 0.14.0
932 755f1968 Luiz Capitulino
#
933 755f1968 Luiz Capitulino
# Notes: Do not use this command.
934 755f1968 Luiz Capitulino
##
935 755f1968 Luiz Capitulino
{ 'command': 'cpu', 'data': {'index': 'int'} }
936 0cfd6a9a Luiz Capitulino
937 0cfd6a9a Luiz Capitulino
##
938 0cfd6a9a Luiz Capitulino
# @memsave:
939 0cfd6a9a Luiz Capitulino
#
940 0cfd6a9a Luiz Capitulino
# Save a portion of guest memory to a file.
941 0cfd6a9a Luiz Capitulino
#
942 0cfd6a9a Luiz Capitulino
# @val: the virtual address of the guest to start from
943 0cfd6a9a Luiz Capitulino
#
944 0cfd6a9a Luiz Capitulino
# @size: the size of memory region to save
945 0cfd6a9a Luiz Capitulino
#
946 0cfd6a9a Luiz Capitulino
# @filename: the file to save the memory to as binary data
947 0cfd6a9a Luiz Capitulino
#
948 0cfd6a9a Luiz Capitulino
# @cpu-index: #optional the index of the virtual CPU to use for translating the
949 0cfd6a9a Luiz Capitulino
#                       virtual address (defaults to CPU 0)
950 0cfd6a9a Luiz Capitulino
#
951 0cfd6a9a Luiz Capitulino
# Returns: Nothing on success
952 0cfd6a9a Luiz Capitulino
#          If @cpu is not a valid VCPU, InvalidParameterValue
953 0cfd6a9a Luiz Capitulino
#          If @filename cannot be opened, OpenFileFailed
954 0cfd6a9a Luiz Capitulino
#          If an I/O error occurs while writing the file, IOError
955 0cfd6a9a Luiz Capitulino
#
956 0cfd6a9a Luiz Capitulino
# Since: 0.14.0
957 0cfd6a9a Luiz Capitulino
#
958 0cfd6a9a Luiz Capitulino
# Notes: Errors were not reliably returned until 1.1
959 0cfd6a9a Luiz Capitulino
##
960 0cfd6a9a Luiz Capitulino
{ 'command': 'memsave',
961 0cfd6a9a Luiz Capitulino
  'data': {'val': 'int', 'size': 'int', 'filename': 'str', '*cpu-index': 'int'} }
962 6d3962bf Luiz Capitulino
963 6d3962bf Luiz Capitulino
##
964 6d3962bf Luiz Capitulino
# @pmemsave:
965 6d3962bf Luiz Capitulino
#
966 6d3962bf Luiz Capitulino
# Save a portion of guest physical memory to a file.
967 6d3962bf Luiz Capitulino
#
968 6d3962bf Luiz Capitulino
# @val: the physical address of the guest to start from
969 6d3962bf Luiz Capitulino
#
970 6d3962bf Luiz Capitulino
# @size: the size of memory region to save
971 6d3962bf Luiz Capitulino
#
972 6d3962bf Luiz Capitulino
# @filename: the file to save the memory to as binary data
973 6d3962bf Luiz Capitulino
#
974 6d3962bf Luiz Capitulino
# Returns: Nothing on success
975 6d3962bf Luiz Capitulino
#          If @filename cannot be opened, OpenFileFailed
976 6d3962bf Luiz Capitulino
#          If an I/O error occurs while writing the file, IOError
977 6d3962bf Luiz Capitulino
#
978 6d3962bf Luiz Capitulino
# Since: 0.14.0
979 6d3962bf Luiz Capitulino
#
980 6d3962bf Luiz Capitulino
# Notes: Errors were not reliably returned until 1.1
981 6d3962bf Luiz Capitulino
##
982 6d3962bf Luiz Capitulino
{ 'command': 'pmemsave',
983 6d3962bf Luiz Capitulino
  'data': {'val': 'int', 'size': 'int', 'filename': 'str'} }
984 e42e818b Luiz Capitulino
985 e42e818b Luiz Capitulino
##
986 e42e818b Luiz Capitulino
# @cont:
987 e42e818b Luiz Capitulino
#
988 e42e818b Luiz Capitulino
# Resume guest VCPU execution.
989 e42e818b Luiz Capitulino
#
990 e42e818b Luiz Capitulino
# Since:  0.14.0
991 e42e818b Luiz Capitulino
#
992 e42e818b Luiz Capitulino
# Returns:  If successful, nothing
993 e42e818b Luiz Capitulino
#           If the QEMU is waiting for an incoming migration, MigrationExpected
994 e42e818b Luiz Capitulino
#           If QEMU was started with an encrypted block device and a key has
995 e42e818b Luiz Capitulino
#              not yet been set, DeviceEncrypted.
996 e42e818b Luiz Capitulino
#
997 e42e818b Luiz Capitulino
# Notes:  This command will succeed if the guest is currently running.
998 e42e818b Luiz Capitulino
##
999 e42e818b Luiz Capitulino
{ 'command': 'cont' }
1000 e42e818b Luiz Capitulino
1001 ab49ab5c Luiz Capitulino
##
1002 9b9df25a Gerd Hoffmann
# @system_wakeup:
1003 9b9df25a Gerd Hoffmann
#
1004 9b9df25a Gerd Hoffmann
# Wakeup guest from suspend.  Does nothing in case the guest isn't suspended.
1005 9b9df25a Gerd Hoffmann
#
1006 9b9df25a Gerd Hoffmann
# Since:  1.1
1007 9b9df25a Gerd Hoffmann
#
1008 9b9df25a Gerd Hoffmann
# Returns:  nothing.
1009 9b9df25a Gerd Hoffmann
##
1010 9b9df25a Gerd Hoffmann
{ 'command': 'system_wakeup' }
1011 9b9df25a Gerd Hoffmann
1012 9b9df25a Gerd Hoffmann
##
1013 ab49ab5c Luiz Capitulino
# @inject-nmi:
1014 ab49ab5c Luiz Capitulino
#
1015 ab49ab5c Luiz Capitulino
# Injects an Non-Maskable Interrupt into all guest's VCPUs.
1016 ab49ab5c Luiz Capitulino
#
1017 ab49ab5c Luiz Capitulino
# Returns:  If successful, nothing
1018 ab49ab5c Luiz Capitulino
#           If the Virtual Machine doesn't support NMI injection, Unsupported
1019 ab49ab5c Luiz Capitulino
#
1020 ab49ab5c Luiz Capitulino
# Since:  0.14.0
1021 ab49ab5c Luiz Capitulino
#
1022 ab49ab5c Luiz Capitulino
# Notes: Only x86 Virtual Machines support this command.
1023 ab49ab5c Luiz Capitulino
##
1024 ab49ab5c Luiz Capitulino
{ 'command': 'inject-nmi' }
1025 4b37156c Luiz Capitulino
1026 4b37156c Luiz Capitulino
##
1027 4b37156c Luiz Capitulino
# @set_link:
1028 4b37156c Luiz Capitulino
#
1029 4b37156c Luiz Capitulino
# Sets the link status of a virtual network adapter.
1030 4b37156c Luiz Capitulino
#
1031 4b37156c Luiz Capitulino
# @name: the device name of the virtual network adapter
1032 4b37156c Luiz Capitulino
#
1033 4b37156c Luiz Capitulino
# @up: true to set the link status to be up
1034 4b37156c Luiz Capitulino
#
1035 4b37156c Luiz Capitulino
# Returns: Nothing on success
1036 4b37156c Luiz Capitulino
#          If @name is not a valid network device, DeviceNotFound
1037 4b37156c Luiz Capitulino
#
1038 4b37156c Luiz Capitulino
# Since: 0.14.0
1039 4b37156c Luiz Capitulino
#
1040 4b37156c Luiz Capitulino
# Notes: Not all network adapters support setting link status.  This command
1041 4b37156c Luiz Capitulino
#        will succeed even if the network adapter does not support link status
1042 4b37156c Luiz Capitulino
#        notification.
1043 4b37156c Luiz Capitulino
##
1044 4b37156c Luiz Capitulino
{ 'command': 'set_link', 'data': {'name': 'str', 'up': 'bool'} }
1045 a4dea8a9 Luiz Capitulino
1046 a4dea8a9 Luiz Capitulino
##
1047 a4dea8a9 Luiz Capitulino
# @block_passwd:
1048 a4dea8a9 Luiz Capitulino
#
1049 a4dea8a9 Luiz Capitulino
# This command sets the password of a block device that has not been open
1050 a4dea8a9 Luiz Capitulino
# with a password and requires one.
1051 a4dea8a9 Luiz Capitulino
#
1052 a4dea8a9 Luiz Capitulino
# The two cases where this can happen are a block device is created through
1053 a4dea8a9 Luiz Capitulino
# QEMU's initial command line or a block device is changed through the legacy
1054 a4dea8a9 Luiz Capitulino
# @change interface.
1055 a4dea8a9 Luiz Capitulino
#
1056 a4dea8a9 Luiz Capitulino
# In the event that the block device is created through the initial command
1057 a4dea8a9 Luiz Capitulino
# line, the VM will start in the stopped state regardless of whether '-S' is
1058 a4dea8a9 Luiz Capitulino
# used.  The intention is for a management tool to query the block devices to
1059 a4dea8a9 Luiz Capitulino
# determine which ones are encrypted, set the passwords with this command, and
1060 a4dea8a9 Luiz Capitulino
# then start the guest with the @cont command.
1061 a4dea8a9 Luiz Capitulino
#
1062 a4dea8a9 Luiz Capitulino
# @device:   the name of the device to set the password on
1063 a4dea8a9 Luiz Capitulino
#
1064 a4dea8a9 Luiz Capitulino
# @password: the password to use for the device
1065 a4dea8a9 Luiz Capitulino
#
1066 a4dea8a9 Luiz Capitulino
# Returns: nothing on success
1067 a4dea8a9 Luiz Capitulino
#          If @device is not a valid block device, DeviceNotFound
1068 a4dea8a9 Luiz Capitulino
#          If @device is not encrypted, DeviceNotEncrypted
1069 a4dea8a9 Luiz Capitulino
#          If @password is not valid for this device, InvalidPassword
1070 a4dea8a9 Luiz Capitulino
#
1071 a4dea8a9 Luiz Capitulino
# Notes:  Not all block formats support encryption and some that do are not
1072 a4dea8a9 Luiz Capitulino
#         able to validate that a password is correct.  Disk corruption may
1073 a4dea8a9 Luiz Capitulino
#         occur if an invalid password is specified.
1074 a4dea8a9 Luiz Capitulino
#
1075 a4dea8a9 Luiz Capitulino
# Since: 0.14.0
1076 a4dea8a9 Luiz Capitulino
##
1077 a4dea8a9 Luiz Capitulino
{ 'command': 'block_passwd', 'data': {'device': 'str', 'password': 'str'} }
1078 d72f3264 Luiz Capitulino
1079 d72f3264 Luiz Capitulino
##
1080 d72f3264 Luiz Capitulino
# @balloon:
1081 d72f3264 Luiz Capitulino
#
1082 d72f3264 Luiz Capitulino
# Request the balloon driver to change its balloon size.
1083 d72f3264 Luiz Capitulino
#
1084 d72f3264 Luiz Capitulino
# @value: the target size of the balloon in bytes
1085 d72f3264 Luiz Capitulino
#
1086 d72f3264 Luiz Capitulino
# Returns: Nothing on success
1087 d72f3264 Luiz Capitulino
#          If the balloon driver is enabled but not functional because the KVM
1088 d72f3264 Luiz Capitulino
#            kernel module cannot support it, KvmMissingCap
1089 d72f3264 Luiz Capitulino
#          If no balloon device is present, DeviceNotActive
1090 d72f3264 Luiz Capitulino
#
1091 d72f3264 Luiz Capitulino
# Notes: This command just issues a request to the guest.  When it returns,
1092 d72f3264 Luiz Capitulino
#        the balloon size may not have changed.  A guest can change the balloon
1093 d72f3264 Luiz Capitulino
#        size independent of this command.
1094 d72f3264 Luiz Capitulino
#
1095 d72f3264 Luiz Capitulino
# Since: 0.14.0
1096 d72f3264 Luiz Capitulino
##
1097 d72f3264 Luiz Capitulino
{ 'command': 'balloon', 'data': {'value': 'int'} }
1098 5e7caacb Luiz Capitulino
1099 5e7caacb Luiz Capitulino
##
1100 5e7caacb Luiz Capitulino
# @block_resize
1101 5e7caacb Luiz Capitulino
#
1102 5e7caacb Luiz Capitulino
# Resize a block image while a guest is running.
1103 5e7caacb Luiz Capitulino
#
1104 5e7caacb Luiz Capitulino
# @device:  the name of the device to get the image resized
1105 5e7caacb Luiz Capitulino
#
1106 5e7caacb Luiz Capitulino
# @size:  new image size in bytes
1107 5e7caacb Luiz Capitulino
#
1108 5e7caacb Luiz Capitulino
# Returns: nothing on success
1109 5e7caacb Luiz Capitulino
#          If @device is not a valid block device, DeviceNotFound
1110 939a1cc3 Stefan Hajnoczi
#          If @size is negative, InvalidParameterValue
1111 939a1cc3 Stefan Hajnoczi
#          If the block device has no medium inserted, DeviceHasNoMedium
1112 939a1cc3 Stefan Hajnoczi
#          If the block device does not support resize, Unsupported
1113 939a1cc3 Stefan Hajnoczi
#          If the block device is read-only, DeviceIsReadOnly
1114 939a1cc3 Stefan Hajnoczi
#          If a long-running operation is using the device, DeviceInUse
1115 5e7caacb Luiz Capitulino
#
1116 5e7caacb Luiz Capitulino
# Since: 0.14.0
1117 5e7caacb Luiz Capitulino
##
1118 5e7caacb Luiz Capitulino
{ 'command': 'block_resize', 'data': { 'device': 'str', 'size': 'int' }}
1119 6106e249 Luiz Capitulino
1120 6106e249 Luiz Capitulino
##
1121 52e7c241 Paolo Bonzini
# @BlockdevSnapshot
1122 8802d1fd Jeff Cody
#
1123 8802d1fd Jeff Cody
# @device:  the name of the device to generate the snapshot from.
1124 8802d1fd Jeff Cody
#
1125 8802d1fd Jeff Cody
# @snapshot-file: the target of the new image. A new file will be created.
1126 8802d1fd Jeff Cody
#
1127 8802d1fd Jeff Cody
# @format: #optional the format of the snapshot image, default is 'qcow2'.
1128 8802d1fd Jeff Cody
##
1129 52e7c241 Paolo Bonzini
{ 'type': 'BlockdevSnapshot',
1130 52e7c241 Paolo Bonzini
  'data': { 'device': 'str', 'snapshot-file': 'str', '*format': 'str' } }
1131 8802d1fd Jeff Cody
1132 8802d1fd Jeff Cody
##
1133 52e7c241 Paolo Bonzini
# @BlockdevAction
1134 8802d1fd Jeff Cody
#
1135 52e7c241 Paolo Bonzini
# A discriminated record of operations that can be performed with
1136 52e7c241 Paolo Bonzini
# @transaction.
1137 52e7c241 Paolo Bonzini
##
1138 52e7c241 Paolo Bonzini
{ 'union': 'BlockdevAction',
1139 52e7c241 Paolo Bonzini
  'data': {
1140 52e7c241 Paolo Bonzini
       'blockdev-snapshot-sync': 'BlockdevSnapshot',
1141 52e7c241 Paolo Bonzini
   } }
1142 52e7c241 Paolo Bonzini
1143 52e7c241 Paolo Bonzini
##
1144 52e7c241 Paolo Bonzini
# @transaction
1145 52e7c241 Paolo Bonzini
#
1146 52e7c241 Paolo Bonzini
# Atomically operate on a group of one or more block devices.  If
1147 52e7c241 Paolo Bonzini
# any operation fails, then the entire set of actions will be
1148 52e7c241 Paolo Bonzini
# abandoned and the appropriate error returned.  The only operation
1149 52e7c241 Paolo Bonzini
# supported is currently blockdev-snapshot-sync.
1150 8802d1fd Jeff Cody
#
1151 8802d1fd Jeff Cody
#  List of:
1152 52e7c241 Paolo Bonzini
#  @BlockdevAction: information needed for the device snapshot
1153 8802d1fd Jeff Cody
#
1154 8802d1fd Jeff Cody
# Returns: nothing on success
1155 8802d1fd Jeff Cody
#          If @device is not a valid block device, DeviceNotFound
1156 8802d1fd Jeff Cody
#          If @device is busy, DeviceInUse will be returned
1157 8802d1fd Jeff Cody
#          If @snapshot-file can't be created, OpenFileFailed
1158 8802d1fd Jeff Cody
#          If @snapshot-file can't be opened, OpenFileFailed
1159 8802d1fd Jeff Cody
#          If @format is invalid, InvalidBlockFormat
1160 8802d1fd Jeff Cody
#
1161 52e7c241 Paolo Bonzini
# Note: The transaction aborts on the first failure.  Therefore, there will
1162 52e7c241 Paolo Bonzini
# be only one device or snapshot file returned in an error condition, and
1163 52e7c241 Paolo Bonzini
# subsequent actions will not have been attempted.
1164 52e7c241 Paolo Bonzini
#
1165 52e7c241 Paolo Bonzini
# Since 1.1
1166 8802d1fd Jeff Cody
##
1167 52e7c241 Paolo Bonzini
{ 'command': 'transaction',
1168 52e7c241 Paolo Bonzini
  'data': { 'actions': [ 'BlockdevAction' ] } }
1169 8802d1fd Jeff Cody
1170 8802d1fd Jeff Cody
##
1171 6106e249 Luiz Capitulino
# @blockdev-snapshot-sync
1172 6106e249 Luiz Capitulino
#
1173 6106e249 Luiz Capitulino
# Generates a synchronous snapshot of a block device.
1174 6106e249 Luiz Capitulino
#
1175 6106e249 Luiz Capitulino
# @device:  the name of the device to generate the snapshot from.
1176 6106e249 Luiz Capitulino
#
1177 6106e249 Luiz Capitulino
# @snapshot-file: the target of the new image. If the file exists, or if it
1178 6106e249 Luiz Capitulino
#                 is a device, the snapshot will be created in the existing
1179 6106e249 Luiz Capitulino
#                 file/device. If does not exist, a new file will be created.
1180 6106e249 Luiz Capitulino
#
1181 6106e249 Luiz Capitulino
# @format: #optional the format of the snapshot image, default is 'qcow2'.
1182 6106e249 Luiz Capitulino
#
1183 6106e249 Luiz Capitulino
# Returns: nothing on success
1184 6106e249 Luiz Capitulino
#          If @device is not a valid block device, DeviceNotFound
1185 6106e249 Luiz Capitulino
#          If @snapshot-file can't be opened, OpenFileFailed
1186 6106e249 Luiz Capitulino
#          If @format is invalid, InvalidBlockFormat
1187 6106e249 Luiz Capitulino
#
1188 6106e249 Luiz Capitulino
# Notes: One of the last steps taken by this command is to close the current
1189 6106e249 Luiz Capitulino
#        image being used by @device and open the @snapshot-file one. If that
1190 6106e249 Luiz Capitulino
#        fails, the command will try to reopen the original image file. If
1191 6106e249 Luiz Capitulino
#        that also fails OpenFileFailed will be returned and the guest may get
1192 6106e249 Luiz Capitulino
#        unexpected errors.
1193 6106e249 Luiz Capitulino
#
1194 6106e249 Luiz Capitulino
# Since 0.14.0
1195 6106e249 Luiz Capitulino
##
1196 6106e249 Luiz Capitulino
{ 'command': 'blockdev-snapshot-sync',
1197 6106e249 Luiz Capitulino
  'data': { 'device': 'str', 'snapshot-file': 'str', '*format': 'str' } }
1198 d51a67b4 Luiz Capitulino
1199 d51a67b4 Luiz Capitulino
##
1200 d51a67b4 Luiz Capitulino
# @human-monitor-command:
1201 d51a67b4 Luiz Capitulino
#
1202 d51a67b4 Luiz Capitulino
# Execute a command on the human monitor and return the output.
1203 d51a67b4 Luiz Capitulino
#
1204 d51a67b4 Luiz Capitulino
# @command-line: the command to execute in the human monitor
1205 d51a67b4 Luiz Capitulino
#
1206 d51a67b4 Luiz Capitulino
# @cpu-index: #optional The CPU to use for commands that require an implicit CPU
1207 d51a67b4 Luiz Capitulino
#
1208 d51a67b4 Luiz Capitulino
# Returns: the output of the command as a string
1209 d51a67b4 Luiz Capitulino
#
1210 d51a67b4 Luiz Capitulino
# Since: 0.14.0
1211 d51a67b4 Luiz Capitulino
#
1212 d51a67b4 Luiz Capitulino
# Notes: This command only exists as a stop-gap.  It's use is highly
1213 d51a67b4 Luiz Capitulino
#        discouraged.  The semantics of this command are not guaranteed.
1214 d51a67b4 Luiz Capitulino
#
1215 d51a67b4 Luiz Capitulino
#        Known limitations:
1216 d51a67b4 Luiz Capitulino
#
1217 d51a67b4 Luiz Capitulino
#        o This command is stateless, this means that commands that depend
1218 d51a67b4 Luiz Capitulino
#          on state information (such as getfd) might not work
1219 d51a67b4 Luiz Capitulino
#
1220 d51a67b4 Luiz Capitulino
#       o Commands that prompt the user for data (eg. 'cont' when the block
1221 d51a67b4 Luiz Capitulino
#         device is encrypted) don't currently work
1222 d51a67b4 Luiz Capitulino
##
1223 d51a67b4 Luiz Capitulino
{ 'command': 'human-monitor-command',
1224 d51a67b4 Luiz Capitulino
  'data': {'command-line': 'str', '*cpu-index': 'int'},
1225 d51a67b4 Luiz Capitulino
  'returns': 'str' } 
1226 6cdedb07 Luiz Capitulino
1227 6cdedb07 Luiz Capitulino
##
1228 6cdedb07 Luiz Capitulino
# @migrate_cancel
1229 6cdedb07 Luiz Capitulino
#
1230 6cdedb07 Luiz Capitulino
# Cancel the current executing migration process.
1231 6cdedb07 Luiz Capitulino
#
1232 6cdedb07 Luiz Capitulino
# Returns: nothing on success
1233 6cdedb07 Luiz Capitulino
#
1234 6cdedb07 Luiz Capitulino
# Notes: This command succeeds even if there is no migration process running.
1235 6cdedb07 Luiz Capitulino
#
1236 6cdedb07 Luiz Capitulino
# Since: 0.14.0
1237 6cdedb07 Luiz Capitulino
##
1238 6cdedb07 Luiz Capitulino
{ 'command': 'migrate_cancel' }
1239 4f0a993b Luiz Capitulino
1240 4f0a993b Luiz Capitulino
##
1241 4f0a993b Luiz Capitulino
# @migrate_set_downtime
1242 4f0a993b Luiz Capitulino
#
1243 4f0a993b Luiz Capitulino
# Set maximum tolerated downtime for migration.
1244 4f0a993b Luiz Capitulino
#
1245 4f0a993b Luiz Capitulino
# @value: maximum downtime in seconds
1246 4f0a993b Luiz Capitulino
#
1247 4f0a993b Luiz Capitulino
# Returns: nothing on success
1248 4f0a993b Luiz Capitulino
#
1249 4f0a993b Luiz Capitulino
# Since: 0.14.0
1250 4f0a993b Luiz Capitulino
##
1251 4f0a993b Luiz Capitulino
{ 'command': 'migrate_set_downtime', 'data': {'value': 'number'} }
1252 3dc85383 Luiz Capitulino
1253 3dc85383 Luiz Capitulino
##
1254 3dc85383 Luiz Capitulino
# @migrate_set_speed
1255 3dc85383 Luiz Capitulino
#
1256 3dc85383 Luiz Capitulino
# Set maximum speed for migration.
1257 3dc85383 Luiz Capitulino
#
1258 3dc85383 Luiz Capitulino
# @value: maximum speed in bytes.
1259 3dc85383 Luiz Capitulino
#
1260 3dc85383 Luiz Capitulino
# Returns: nothing on success
1261 3dc85383 Luiz Capitulino
#
1262 3dc85383 Luiz Capitulino
# Notes: A value lesser than zero will be automatically round up to zero.
1263 3dc85383 Luiz Capitulino
#
1264 3dc85383 Luiz Capitulino
# Since: 0.14.0
1265 3dc85383 Luiz Capitulino
##
1266 3dc85383 Luiz Capitulino
{ 'command': 'migrate_set_speed', 'data': {'value': 'int'} }
1267 b4b12c62 Anthony Liguori
1268 b4b12c62 Anthony Liguori
##
1269 b4b12c62 Anthony Liguori
# @DevicePropertyInfo:
1270 b4b12c62 Anthony Liguori
#
1271 b4b12c62 Anthony Liguori
# @name: the name of the property
1272 b4b12c62 Anthony Liguori
#
1273 b4b12c62 Anthony Liguori
# @type: the type of the property.  This will typically come in one of four
1274 b4b12c62 Anthony Liguori
#        forms:
1275 b4b12c62 Anthony Liguori
#
1276 b4b12c62 Anthony Liguori
#        1) A primitive type such as 'u8', 'u16', 'bool', 'str', or 'double'.
1277 b4b12c62 Anthony Liguori
#           These types are mapped to the appropriate JSON type.
1278 b4b12c62 Anthony Liguori
#
1279 b4b12c62 Anthony Liguori
#        2) A legacy type in the form 'legacy<subtype>' where subtype is the
1280 b4b12c62 Anthony Liguori
#           legacy qdev typename.  These types are always treated as strings.
1281 b4b12c62 Anthony Liguori
#
1282 b4b12c62 Anthony Liguori
#        3) A child type in the form 'child<subtype>' where subtype is a qdev
1283 b4b12c62 Anthony Liguori
#           device type name.  Child properties create the composition tree.
1284 b4b12c62 Anthony Liguori
#
1285 b4b12c62 Anthony Liguori
#        4) A link type in the form 'link<subtype>' where subtype is a qdev
1286 b4b12c62 Anthony Liguori
#           device type name.  Link properties form the device model graph.
1287 b4b12c62 Anthony Liguori
#
1288 b4b12c62 Anthony Liguori
# Since: 1.1
1289 b4b12c62 Anthony Liguori
#
1290 b4b12c62 Anthony Liguori
# Notes: This type is experimental.  Its syntax may change in future releases.
1291 b4b12c62 Anthony Liguori
##
1292 57c9fafe Anthony Liguori
{ 'type': 'ObjectPropertyInfo',
1293 b4b12c62 Anthony Liguori
  'data': { 'name': 'str', 'type': 'str' } }
1294 b4b12c62 Anthony Liguori
1295 b4b12c62 Anthony Liguori
##
1296 b4b12c62 Anthony Liguori
# @qom-list:
1297 b4b12c62 Anthony Liguori
#
1298 57c9fafe Anthony Liguori
# This command will list any properties of a object given a path in the object
1299 b4b12c62 Anthony Liguori
# model.
1300 b4b12c62 Anthony Liguori
#
1301 57c9fafe Anthony Liguori
# @path: the path within the object model.  See @qom-get for a description of
1302 b4b12c62 Anthony Liguori
#        this parameter.
1303 b4b12c62 Anthony Liguori
#
1304 57c9fafe Anthony Liguori
# Returns: a list of @ObjectPropertyInfo that describe the properties of the
1305 57c9fafe Anthony Liguori
#          object.
1306 b4b12c62 Anthony Liguori
#
1307 b4b12c62 Anthony Liguori
# Since: 1.1
1308 b4b12c62 Anthony Liguori
#
1309 b4b12c62 Anthony Liguori
# Notes: This command is experimental.  It's syntax may change in future
1310 b4b12c62 Anthony Liguori
#        releases.
1311 b4b12c62 Anthony Liguori
##
1312 b4b12c62 Anthony Liguori
{ 'command': 'qom-list',
1313 b4b12c62 Anthony Liguori
  'data': { 'path': 'str' },
1314 57c9fafe Anthony Liguori
  'returns': [ 'ObjectPropertyInfo' ] }
1315 eb6e8ea5 Anthony Liguori
1316 eb6e8ea5 Anthony Liguori
##
1317 eb6e8ea5 Anthony Liguori
# @qom-get:
1318 eb6e8ea5 Anthony Liguori
#
1319 57c9fafe Anthony Liguori
# This command will get a property from a object model path and return the
1320 eb6e8ea5 Anthony Liguori
# value.
1321 eb6e8ea5 Anthony Liguori
#
1322 57c9fafe Anthony Liguori
# @path: The path within the object model.  There are two forms of supported
1323 eb6e8ea5 Anthony Liguori
#        paths--absolute and partial paths.
1324 eb6e8ea5 Anthony Liguori
#
1325 57c9fafe Anthony Liguori
#        Absolute paths are derived from the root object and can follow child<>
1326 eb6e8ea5 Anthony Liguori
#        or link<> properties.  Since they can follow link<> properties, they
1327 eb6e8ea5 Anthony Liguori
#        can be arbitrarily long.  Absolute paths look like absolute filenames
1328 eb6e8ea5 Anthony Liguori
#        and are prefixed  with a leading slash.
1329 eb6e8ea5 Anthony Liguori
#
1330 eb6e8ea5 Anthony Liguori
#        Partial paths look like relative filenames.  They do not begin
1331 eb6e8ea5 Anthony Liguori
#        with a prefix.  The matching rules for partial paths are subtle but
1332 57c9fafe Anthony Liguori
#        designed to make specifying objects easy.  At each level of the
1333 eb6e8ea5 Anthony Liguori
#        composition tree, the partial path is matched as an absolute path.
1334 eb6e8ea5 Anthony Liguori
#        The first match is not returned.  At least two matches are searched
1335 eb6e8ea5 Anthony Liguori
#        for.  A successful result is only returned if only one match is
1336 eb6e8ea5 Anthony Liguori
#        found.  If more than one match is found, a flag is return to
1337 eb6e8ea5 Anthony Liguori
#        indicate that the match was ambiguous.
1338 eb6e8ea5 Anthony Liguori
#
1339 eb6e8ea5 Anthony Liguori
# @property: The property name to read
1340 eb6e8ea5 Anthony Liguori
#
1341 eb6e8ea5 Anthony Liguori
# Returns: The property value.  The type depends on the property type.  legacy<>
1342 eb6e8ea5 Anthony Liguori
#          properties are returned as #str.  child<> and link<> properties are
1343 eb6e8ea5 Anthony Liguori
#          returns as #str pathnames.  All integer property types (u8, u16, etc)
1344 eb6e8ea5 Anthony Liguori
#          are returned as #int.
1345 eb6e8ea5 Anthony Liguori
#
1346 eb6e8ea5 Anthony Liguori
# Since: 1.1
1347 eb6e8ea5 Anthony Liguori
#
1348 eb6e8ea5 Anthony Liguori
# Notes: This command is experimental and may change syntax in future releases.
1349 eb6e8ea5 Anthony Liguori
##
1350 eb6e8ea5 Anthony Liguori
{ 'command': 'qom-get',
1351 eb6e8ea5 Anthony Liguori
  'data': { 'path': 'str', 'property': 'str' },
1352 eb6e8ea5 Anthony Liguori
  'returns': 'visitor',
1353 eb6e8ea5 Anthony Liguori
  'gen': 'no' }
1354 eb6e8ea5 Anthony Liguori
1355 eb6e8ea5 Anthony Liguori
##
1356 eb6e8ea5 Anthony Liguori
# @qom-set:
1357 eb6e8ea5 Anthony Liguori
#
1358 57c9fafe Anthony Liguori
# This command will set a property from a object model path.
1359 eb6e8ea5 Anthony Liguori
#
1360 eb6e8ea5 Anthony Liguori
# @path: see @qom-get for a description of this parameter
1361 eb6e8ea5 Anthony Liguori
#
1362 eb6e8ea5 Anthony Liguori
# @property: the property name to set
1363 eb6e8ea5 Anthony Liguori
#
1364 eb6e8ea5 Anthony Liguori
# @value: a value who's type is appropriate for the property type.  See @qom-get
1365 eb6e8ea5 Anthony Liguori
#         for a description of type mapping.
1366 eb6e8ea5 Anthony Liguori
#
1367 eb6e8ea5 Anthony Liguori
# Since: 1.1
1368 eb6e8ea5 Anthony Liguori
#
1369 eb6e8ea5 Anthony Liguori
# Notes: This command is experimental and may change syntax in future releases.
1370 eb6e8ea5 Anthony Liguori
##
1371 eb6e8ea5 Anthony Liguori
{ 'command': 'qom-set',
1372 eb6e8ea5 Anthony Liguori
  'data': { 'path': 'str', 'property': 'str', 'value': 'visitor' },
1373 eb6e8ea5 Anthony Liguori
  'gen': 'no' }
1374 fbf796fd Luiz Capitulino
1375 fbf796fd Luiz Capitulino
##
1376 fbf796fd Luiz Capitulino
# @set_password:
1377 fbf796fd Luiz Capitulino
#
1378 fbf796fd Luiz Capitulino
# Sets the password of a remote display session.
1379 fbf796fd Luiz Capitulino
#
1380 fbf796fd Luiz Capitulino
# @protocol: `vnc' to modify the VNC server password
1381 fbf796fd Luiz Capitulino
#            `spice' to modify the Spice server password
1382 fbf796fd Luiz Capitulino
#
1383 fbf796fd Luiz Capitulino
# @password: the new password
1384 fbf796fd Luiz Capitulino
#
1385 fbf796fd Luiz Capitulino
# @connected: #optional how to handle existing clients when changing the
1386 fbf796fd Luiz Capitulino
#                       password.  If nothing is specified, defaults to `keep' 
1387 fbf796fd Luiz Capitulino
#                       `fail' to fail the command if clients are connected
1388 fbf796fd Luiz Capitulino
#                       `disconnect' to disconnect existing clients
1389 fbf796fd Luiz Capitulino
#                       `keep' to maintain existing clients
1390 fbf796fd Luiz Capitulino
#
1391 fbf796fd Luiz Capitulino
# Returns: Nothing on success
1392 fbf796fd Luiz Capitulino
#          If Spice is not enabled, DeviceNotFound
1393 fbf796fd Luiz Capitulino
#          If @protocol does not support connected, InvalidParameter
1394 fbf796fd Luiz Capitulino
#          If @protocol is invalid, InvalidParameter
1395 fbf796fd Luiz Capitulino
#          If any other error occurs, SetPasswdFailed
1396 fbf796fd Luiz Capitulino
#
1397 fbf796fd Luiz Capitulino
# Notes: If VNC is not enabled, SetPasswdFailed is returned.
1398 fbf796fd Luiz Capitulino
#
1399 fbf796fd Luiz Capitulino
# Since: 0.14.0
1400 fbf796fd Luiz Capitulino
##
1401 fbf796fd Luiz Capitulino
{ 'command': 'set_password',
1402 fbf796fd Luiz Capitulino
  'data': {'protocol': 'str', 'password': 'str', '*connected': 'str'} }
1403 9ad5372d Luiz Capitulino
1404 9ad5372d Luiz Capitulino
##
1405 9ad5372d Luiz Capitulino
# @expire_password:
1406 9ad5372d Luiz Capitulino
#
1407 9ad5372d Luiz Capitulino
# Expire the password of a remote display server.
1408 9ad5372d Luiz Capitulino
#
1409 9ad5372d Luiz Capitulino
# @protocol: the name of the remote display protocol `vnc' or `spice'
1410 9ad5372d Luiz Capitulino
#
1411 9ad5372d Luiz Capitulino
# @time: when to expire the password.
1412 9ad5372d Luiz Capitulino
#        `now' to expire the password immediately
1413 9ad5372d Luiz Capitulino
#        `never' to cancel password expiration
1414 9ad5372d Luiz Capitulino
#        `+INT' where INT is the number of seconds from now (integer)
1415 9ad5372d Luiz Capitulino
#        `INT' where INT is the absolute time in seconds
1416 9ad5372d Luiz Capitulino
#
1417 9ad5372d Luiz Capitulino
# Returns: Nothing on success
1418 9ad5372d Luiz Capitulino
#          If @protocol is `spice' and Spice is not active, DeviceNotFound
1419 9ad5372d Luiz Capitulino
#          If an error occurs setting password expiration, SetPasswdFailed
1420 9ad5372d Luiz Capitulino
#          If @protocol is not `spice' or 'vnc', InvalidParameter
1421 9ad5372d Luiz Capitulino
#
1422 9ad5372d Luiz Capitulino
# Since: 0.14.0
1423 9ad5372d Luiz Capitulino
#
1424 9ad5372d Luiz Capitulino
# Notes: Time is relative to the server and currently there is no way to
1425 9ad5372d Luiz Capitulino
#        coordinate server time with client time.  It is not recommended to
1426 9ad5372d Luiz Capitulino
#        use the absolute time version of the @time parameter unless you're
1427 9ad5372d Luiz Capitulino
#        sure you are on the same machine as the QEMU instance.
1428 9ad5372d Luiz Capitulino
##
1429 9ad5372d Luiz Capitulino
{ 'command': 'expire_password', 'data': {'protocol': 'str', 'time': 'str'} }
1430 c245b6a3 Luiz Capitulino
1431 c245b6a3 Luiz Capitulino
##
1432 c245b6a3 Luiz Capitulino
# @eject:
1433 c245b6a3 Luiz Capitulino
#
1434 c245b6a3 Luiz Capitulino
# Ejects a device from a removable drive.
1435 c245b6a3 Luiz Capitulino
#
1436 c245b6a3 Luiz Capitulino
# @device:  The name of the device
1437 c245b6a3 Luiz Capitulino
#
1438 c245b6a3 Luiz Capitulino
# @force:   @optional If true, eject regardless of whether the drive is locked.
1439 c245b6a3 Luiz Capitulino
#           If not specified, the default value is false.
1440 c245b6a3 Luiz Capitulino
#
1441 c245b6a3 Luiz Capitulino
# Returns:  Nothing on success
1442 c245b6a3 Luiz Capitulino
#           If @device is not a valid block device, DeviceNotFound
1443 c245b6a3 Luiz Capitulino
#           If @device is not removable and @force is false, DeviceNotRemovable
1444 c245b6a3 Luiz Capitulino
#           If @force is false and @device is locked, DeviceLocked
1445 c245b6a3 Luiz Capitulino
#
1446 c245b6a3 Luiz Capitulino
# Notes:    Ejecting a device will no media results in success
1447 c245b6a3 Luiz Capitulino
#
1448 c245b6a3 Luiz Capitulino
# Since: 0.14.0
1449 c245b6a3 Luiz Capitulino
##
1450 c245b6a3 Luiz Capitulino
{ 'command': 'eject', 'data': {'device': 'str', '*force': 'bool'} }
1451 270b243f Luiz Capitulino
1452 270b243f Luiz Capitulino
##
1453 270b243f Luiz Capitulino
# @change-vnc-password:
1454 270b243f Luiz Capitulino
#
1455 270b243f Luiz Capitulino
# Change the VNC server password.
1456 270b243f Luiz Capitulino
#
1457 270b243f Luiz Capitulino
# @target:  the new password to use with VNC authentication
1458 270b243f Luiz Capitulino
#
1459 270b243f Luiz Capitulino
# Since: 1.1
1460 270b243f Luiz Capitulino
#
1461 270b243f Luiz Capitulino
# Notes:  An empty password in this command will set the password to the empty
1462 270b243f Luiz Capitulino
#         string.  Existing clients are unaffected by executing this command.
1463 270b243f Luiz Capitulino
##
1464 270b243f Luiz Capitulino
{ 'command': 'change-vnc-password', 'data': {'password': 'str'} }
1465 333a96ec Luiz Capitulino
1466 333a96ec Luiz Capitulino
##
1467 333a96ec Luiz Capitulino
# @change:
1468 333a96ec Luiz Capitulino
#
1469 333a96ec Luiz Capitulino
# This command is multiple commands multiplexed together.
1470 333a96ec Luiz Capitulino
#
1471 333a96ec Luiz Capitulino
# @device: This is normally the name of a block device but it may also be 'vnc'.
1472 333a96ec Luiz Capitulino
#          when it's 'vnc', then sub command depends on @target
1473 333a96ec Luiz Capitulino
#
1474 333a96ec Luiz Capitulino
# @target: If @device is a block device, then this is the new filename.
1475 333a96ec Luiz Capitulino
#          If @device is 'vnc', then if the value 'password' selects the vnc
1476 333a96ec Luiz Capitulino
#          change password command.   Otherwise, this specifies a new server URI
1477 333a96ec Luiz Capitulino
#          address to listen to for VNC connections.
1478 333a96ec Luiz Capitulino
#
1479 333a96ec Luiz Capitulino
# @arg:    If @device is a block device, then this is an optional format to open
1480 333a96ec Luiz Capitulino
#          the device with.
1481 333a96ec Luiz Capitulino
#          If @device is 'vnc' and @target is 'password', this is the new VNC
1482 333a96ec Luiz Capitulino
#          password to set.  If this argument is an empty string, then no future
1483 333a96ec Luiz Capitulino
#          logins will be allowed.
1484 333a96ec Luiz Capitulino
#
1485 333a96ec Luiz Capitulino
# Returns: Nothing on success.
1486 333a96ec Luiz Capitulino
#          If @device is not a valid block device, DeviceNotFound
1487 333a96ec Luiz Capitulino
#          If @format is not a valid block format, InvalidBlockFormat
1488 333a96ec Luiz Capitulino
#          If the new block device is encrypted, DeviceEncrypted.  Note that
1489 333a96ec Luiz Capitulino
#          if this error is returned, the device has been opened successfully
1490 333a96ec Luiz Capitulino
#          and an additional call to @block_passwd is required to set the
1491 333a96ec Luiz Capitulino
#          device's password.  The behavior of reads and writes to the block
1492 333a96ec Luiz Capitulino
#          device between when these calls are executed is undefined.
1493 333a96ec Luiz Capitulino
#
1494 333a96ec Luiz Capitulino
# Notes:  It is strongly recommended that this interface is not used especially
1495 333a96ec Luiz Capitulino
#         for changing block devices.
1496 333a96ec Luiz Capitulino
#
1497 333a96ec Luiz Capitulino
# Since: 0.14.0
1498 333a96ec Luiz Capitulino
##
1499 333a96ec Luiz Capitulino
{ 'command': 'change',
1500 333a96ec Luiz Capitulino
  'data': {'device': 'str', 'target': 'str', '*arg': 'str'} }
1501 80047da5 Luiz Capitulino
1502 80047da5 Luiz Capitulino
##
1503 80047da5 Luiz Capitulino
# @block_set_io_throttle:
1504 80047da5 Luiz Capitulino
#
1505 80047da5 Luiz Capitulino
# Change I/O throttle limits for a block drive.
1506 80047da5 Luiz Capitulino
#
1507 80047da5 Luiz Capitulino
# @device: The name of the device
1508 80047da5 Luiz Capitulino
#
1509 80047da5 Luiz Capitulino
# @bps: total throughput limit in bytes per second
1510 80047da5 Luiz Capitulino
#
1511 80047da5 Luiz Capitulino
# @bps_rd: read throughput limit in bytes per second
1512 80047da5 Luiz Capitulino
#
1513 80047da5 Luiz Capitulino
# @bps_wr: write throughput limit in bytes per second
1514 80047da5 Luiz Capitulino
#
1515 80047da5 Luiz Capitulino
# @iops: total I/O operations per second
1516 80047da5 Luiz Capitulino
#
1517 80047da5 Luiz Capitulino
# @ops_rd: read I/O operations per second
1518 80047da5 Luiz Capitulino
#
1519 80047da5 Luiz Capitulino
# @iops_wr: write I/O operations per second
1520 80047da5 Luiz Capitulino
#
1521 80047da5 Luiz Capitulino
# Returns: Nothing on success
1522 80047da5 Luiz Capitulino
#          If @device is not a valid block device, DeviceNotFound
1523 80047da5 Luiz Capitulino
#          If the argument combination is invalid, InvalidParameterCombination
1524 80047da5 Luiz Capitulino
#
1525 80047da5 Luiz Capitulino
# Since: 1.1
1526 80047da5 Luiz Capitulino
## 
1527 80047da5 Luiz Capitulino
{ 'command': 'block_set_io_throttle',
1528 80047da5 Luiz Capitulino
  'data': { 'device': 'str', 'bps': 'int', 'bps_rd': 'int', 'bps_wr': 'int',
1529 80047da5 Luiz Capitulino
            'iops': 'int', 'iops_rd': 'int', 'iops_wr': 'int' } }
1530 12bd451f Stefan Hajnoczi
1531 12bd451f Stefan Hajnoczi
# @block_stream:
1532 12bd451f Stefan Hajnoczi
#
1533 12bd451f Stefan Hajnoczi
# Copy data from a backing file into a block device.
1534 12bd451f Stefan Hajnoczi
#
1535 12bd451f Stefan Hajnoczi
# The block streaming operation is performed in the background until the entire
1536 12bd451f Stefan Hajnoczi
# backing file has been copied.  This command returns immediately once streaming
1537 12bd451f Stefan Hajnoczi
# has started.  The status of ongoing block streaming operations can be checked
1538 12bd451f Stefan Hajnoczi
# with query-block-jobs.  The operation can be stopped before it has completed
1539 12bd451f Stefan Hajnoczi
# using the block_job_cancel command.
1540 12bd451f Stefan Hajnoczi
#
1541 12bd451f Stefan Hajnoczi
# If a base file is specified then sectors are not copied from that base file and
1542 12bd451f Stefan Hajnoczi
# its backing chain.  When streaming completes the image file will have the base
1543 12bd451f Stefan Hajnoczi
# file as its backing file.  This can be used to stream a subset of the backing
1544 12bd451f Stefan Hajnoczi
# file chain instead of flattening the entire image.
1545 12bd451f Stefan Hajnoczi
#
1546 12bd451f Stefan Hajnoczi
# On successful completion the image file is updated to drop the backing file
1547 12bd451f Stefan Hajnoczi
# and the BLOCK_JOB_COMPLETED event is emitted.
1548 12bd451f Stefan Hajnoczi
#
1549 12bd451f Stefan Hajnoczi
# @device: the device name
1550 12bd451f Stefan Hajnoczi
#
1551 12bd451f Stefan Hajnoczi
# @base:   #optional the common backing file name
1552 12bd451f Stefan Hajnoczi
#
1553 12bd451f Stefan Hajnoczi
# Returns: Nothing on success
1554 12bd451f Stefan Hajnoczi
#          If streaming is already active on this device, DeviceInUse
1555 12bd451f Stefan Hajnoczi
#          If @device does not exist, DeviceNotFound
1556 12bd451f Stefan Hajnoczi
#          If image streaming is not supported by this device, NotSupported
1557 019b8cbf Marcelo Tosatti
#          If @base does not exist, BaseNotFound
1558 12bd451f Stefan Hajnoczi
#
1559 12bd451f Stefan Hajnoczi
# Since: 1.1
1560 12bd451f Stefan Hajnoczi
##
1561 12bd451f Stefan Hajnoczi
{ 'command': 'block_stream', 'data': { 'device': 'str', '*base': 'str' } }
1562 2d47c6e9 Stefan Hajnoczi
1563 2d47c6e9 Stefan Hajnoczi
##
1564 2d47c6e9 Stefan Hajnoczi
# @block_job_set_speed:
1565 2d47c6e9 Stefan Hajnoczi
#
1566 2d47c6e9 Stefan Hajnoczi
# Set maximum speed for a background block operation.
1567 2d47c6e9 Stefan Hajnoczi
#
1568 2d47c6e9 Stefan Hajnoczi
# This command can only be issued when there is an active block job.
1569 2d47c6e9 Stefan Hajnoczi
#
1570 2d47c6e9 Stefan Hajnoczi
# Throttling can be disabled by setting the speed to 0.
1571 2d47c6e9 Stefan Hajnoczi
#
1572 2d47c6e9 Stefan Hajnoczi
# @device: the device name
1573 2d47c6e9 Stefan Hajnoczi
#
1574 2d47c6e9 Stefan Hajnoczi
# @value:  the maximum speed, in bytes per second
1575 2d47c6e9 Stefan Hajnoczi
#
1576 2d47c6e9 Stefan Hajnoczi
# Returns: Nothing on success
1577 2d47c6e9 Stefan Hajnoczi
#          If the job type does not support throttling, NotSupported
1578 2d47c6e9 Stefan Hajnoczi
#          If streaming is not active on this device, DeviceNotActive
1579 2d47c6e9 Stefan Hajnoczi
#
1580 2d47c6e9 Stefan Hajnoczi
# Since: 1.1
1581 2d47c6e9 Stefan Hajnoczi
##
1582 2d47c6e9 Stefan Hajnoczi
{ 'command': 'block_job_set_speed',
1583 2d47c6e9 Stefan Hajnoczi
  'data': { 'device': 'str', 'value': 'int' } }
1584 370521a1 Stefan Hajnoczi
1585 370521a1 Stefan Hajnoczi
##
1586 370521a1 Stefan Hajnoczi
# @block_job_cancel:
1587 370521a1 Stefan Hajnoczi
#
1588 370521a1 Stefan Hajnoczi
# Stop an active block streaming operation.
1589 370521a1 Stefan Hajnoczi
#
1590 370521a1 Stefan Hajnoczi
# This command returns immediately after marking the active block streaming
1591 370521a1 Stefan Hajnoczi
# operation for cancellation.  It is an error to call this command if no
1592 370521a1 Stefan Hajnoczi
# operation is in progress.
1593 370521a1 Stefan Hajnoczi
#
1594 370521a1 Stefan Hajnoczi
# The operation will cancel as soon as possible and then emit the
1595 370521a1 Stefan Hajnoczi
# BLOCK_JOB_CANCELLED event.  Before that happens the job is still visible when
1596 370521a1 Stefan Hajnoczi
# enumerated using query-block-jobs.
1597 370521a1 Stefan Hajnoczi
#
1598 370521a1 Stefan Hajnoczi
# The image file retains its backing file unless the streaming operation happens
1599 370521a1 Stefan Hajnoczi
# to complete just as it is being cancelled.
1600 370521a1 Stefan Hajnoczi
#
1601 370521a1 Stefan Hajnoczi
# A new block streaming operation can be started at a later time to finish
1602 370521a1 Stefan Hajnoczi
# copying all data from the backing file.
1603 370521a1 Stefan Hajnoczi
#
1604 370521a1 Stefan Hajnoczi
# @device: the device name
1605 370521a1 Stefan Hajnoczi
#
1606 370521a1 Stefan Hajnoczi
# Returns: Nothing on success
1607 370521a1 Stefan Hajnoczi
#          If streaming is not active on this device, DeviceNotActive
1608 370521a1 Stefan Hajnoczi
#          If cancellation already in progress, DeviceInUse
1609 370521a1 Stefan Hajnoczi
#
1610 370521a1 Stefan Hajnoczi
# Since: 1.1
1611 370521a1 Stefan Hajnoczi
##
1612 370521a1 Stefan Hajnoczi
{ 'command': 'block_job_cancel', 'data': { 'device': 'str' } }
1613 5eeee3fa Anthony Liguori
1614 5eeee3fa Anthony Liguori
##
1615 5eeee3fa Anthony Liguori
# @ObjectTypeInfo:
1616 5eeee3fa Anthony Liguori
#
1617 5eeee3fa Anthony Liguori
# This structure describes a search result from @qom-list-types
1618 5eeee3fa Anthony Liguori
#
1619 5eeee3fa Anthony Liguori
# @name: the type name found in the search
1620 5eeee3fa Anthony Liguori
#
1621 5eeee3fa Anthony Liguori
# Since: 1.1
1622 5eeee3fa Anthony Liguori
#
1623 5eeee3fa Anthony Liguori
# Notes: This command is experimental and may change syntax in future releases.
1624 5eeee3fa Anthony Liguori
##
1625 5eeee3fa Anthony Liguori
{ 'type': 'ObjectTypeInfo',
1626 5eeee3fa Anthony Liguori
  'data': { 'name': 'str' } }
1627 5eeee3fa Anthony Liguori
1628 5eeee3fa Anthony Liguori
##
1629 5eeee3fa Anthony Liguori
# @qom-list-types:
1630 5eeee3fa Anthony Liguori
#
1631 5eeee3fa Anthony Liguori
# This command will return a list of types given search parameters
1632 5eeee3fa Anthony Liguori
#
1633 5eeee3fa Anthony Liguori
# @implements: if specified, only return types that implement this type name
1634 5eeee3fa Anthony Liguori
#
1635 5eeee3fa Anthony Liguori
# @abstract: if true, include abstract types in the results
1636 5eeee3fa Anthony Liguori
#
1637 5eeee3fa Anthony Liguori
# Returns: a list of @ObjectTypeInfo or an empty list if no results are found
1638 5eeee3fa Anthony Liguori
#
1639 5eeee3fa Anthony Liguori
# Since: 1.1
1640 5eeee3fa Anthony Liguori
#
1641 5eeee3fa Anthony Liguori
# Notes: This command is experimental and may change syntax in future releases.
1642 5eeee3fa Anthony Liguori
##
1643 5eeee3fa Anthony Liguori
{ 'command': 'qom-list-types',
1644 5eeee3fa Anthony Liguori
  'data': { '*implements': 'str', '*abstract': 'bool' },
1645 5eeee3fa Anthony Liguori
  'returns': [ 'ObjectTypeInfo' ] }