Statistics
| Branch: | Revision:

root / qapi-schema.json @ a8a00822

History | View | Annotate | Download (23.7 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 b2023818 Luiz Capitulino
# Since: 0.14.0
374 b2023818 Luiz Capitulino
#
375 b2023818 Luiz Capitulino
# Notes: This interface is only found in @BlockInfo.
376 b2023818 Luiz Capitulino
##
377 b2023818 Luiz Capitulino
{ 'type': 'BlockDeviceInfo',
378 b2023818 Luiz Capitulino
  'data': { 'file': 'str', 'ro': 'bool', 'drv': 'str',
379 b2023818 Luiz Capitulino
            '*backing_file': 'str', 'encrypted': 'bool' } }
380 b2023818 Luiz Capitulino
381 b2023818 Luiz Capitulino
##
382 b2023818 Luiz Capitulino
# @BlockDeviceIoStatus:
383 b2023818 Luiz Capitulino
#
384 b2023818 Luiz Capitulino
# An enumeration of block device I/O status.
385 b2023818 Luiz Capitulino
#
386 b2023818 Luiz Capitulino
# @ok: The last I/O operation has succeeded
387 b2023818 Luiz Capitulino
#
388 b2023818 Luiz Capitulino
# @failed: The last I/O operation has failed
389 b2023818 Luiz Capitulino
#
390 b2023818 Luiz Capitulino
# @nospace: The last I/O operation has failed due to a no-space condition
391 b2023818 Luiz Capitulino
#
392 b2023818 Luiz Capitulino
# Since: 1.0
393 b2023818 Luiz Capitulino
##
394 b2023818 Luiz Capitulino
{ 'enum': 'BlockDeviceIoStatus', 'data': [ 'ok', 'failed', 'nospace' ] }
395 b2023818 Luiz Capitulino
396 b2023818 Luiz Capitulino
##
397 b2023818 Luiz Capitulino
# @BlockInfo:
398 b2023818 Luiz Capitulino
#
399 b2023818 Luiz Capitulino
# Block device information.  This structure describes a virtual device and
400 b2023818 Luiz Capitulino
# the backing device associated with it.
401 b2023818 Luiz Capitulino
#
402 b2023818 Luiz Capitulino
# @device: The device name associated with the virtual device.
403 b2023818 Luiz Capitulino
#
404 b2023818 Luiz Capitulino
# @type: This field is returned only for compatibility reasons, it should
405 b2023818 Luiz Capitulino
#        not be used (always returns 'unknown')
406 b2023818 Luiz Capitulino
#
407 b2023818 Luiz Capitulino
# @removable: True if the device supports removable media.
408 b2023818 Luiz Capitulino
#
409 b2023818 Luiz Capitulino
# @locked: True if the guest has locked this device from having its media
410 b2023818 Luiz Capitulino
#          removed
411 b2023818 Luiz Capitulino
#
412 b2023818 Luiz Capitulino
# @tray_open: #optional True if the device has a tray and it is open
413 b2023818 Luiz Capitulino
#             (only present if removable is true)
414 b2023818 Luiz Capitulino
#
415 b2023818 Luiz Capitulino
# @io-status: #optional @BlockDeviceIoStatus. Only present if the device
416 b2023818 Luiz Capitulino
#             supports it and the VM is configured to stop on errors
417 b2023818 Luiz Capitulino
#
418 b2023818 Luiz Capitulino
# @inserted: #optional @BlockDeviceInfo describing the device if media is
419 b2023818 Luiz Capitulino
#            present
420 b2023818 Luiz Capitulino
#
421 b2023818 Luiz Capitulino
# Since:  0.14.0
422 b2023818 Luiz Capitulino
##
423 b2023818 Luiz Capitulino
{ 'type': 'BlockInfo',
424 b2023818 Luiz Capitulino
  'data': {'device': 'str', 'type': 'str', 'removable': 'bool',
425 b2023818 Luiz Capitulino
           'locked': 'bool', '*inserted': 'BlockDeviceInfo',
426 b2023818 Luiz Capitulino
           '*tray_open': 'bool', '*io-status': 'BlockDeviceIoStatus'} }
427 b2023818 Luiz Capitulino
428 b2023818 Luiz Capitulino
##
429 b2023818 Luiz Capitulino
# @query-block:
430 b2023818 Luiz Capitulino
#
431 b2023818 Luiz Capitulino
# Get a list of BlockInfo for all virtual block devices.
432 b2023818 Luiz Capitulino
#
433 b2023818 Luiz Capitulino
# Returns: a list of @BlockInfo describing each virtual block device
434 b2023818 Luiz Capitulino
#
435 b2023818 Luiz Capitulino
# Since: 0.14.0
436 b2023818 Luiz Capitulino
##
437 b2023818 Luiz Capitulino
{ 'command': 'query-block', 'returns': ['BlockInfo'] }
438 b2023818 Luiz Capitulino
439 b2023818 Luiz Capitulino
##
440 f11f57e4 Luiz Capitulino
# @BlockDeviceStats:
441 f11f57e4 Luiz Capitulino
#
442 f11f57e4 Luiz Capitulino
# Statistics of a virtual block device or a block backing device.
443 f11f57e4 Luiz Capitulino
#
444 f11f57e4 Luiz Capitulino
# @rd_bytes:      The number of bytes read by the device.
445 f11f57e4 Luiz Capitulino
#
446 f11f57e4 Luiz Capitulino
# @wr_bytes:      The number of bytes written by the device.
447 f11f57e4 Luiz Capitulino
#
448 f11f57e4 Luiz Capitulino
# @rd_operations: The number of read operations performed by the device.
449 f11f57e4 Luiz Capitulino
#
450 f11f57e4 Luiz Capitulino
# @wr_operations: The number of write operations performed by the device.
451 f11f57e4 Luiz Capitulino
#
452 f11f57e4 Luiz Capitulino
# @flush_operations: The number of cache flush operations performed by the
453 f11f57e4 Luiz Capitulino
#                    device (since 0.15.0)
454 f11f57e4 Luiz Capitulino
#
455 f11f57e4 Luiz Capitulino
# @flush_total_time_ns: Total time spend on cache flushes in nano-seconds
456 f11f57e4 Luiz Capitulino
#                       (since 0.15.0).
457 f11f57e4 Luiz Capitulino
#
458 f11f57e4 Luiz Capitulino
# @wr_total_time_ns: Total time spend on writes in nano-seconds (since 0.15.0).
459 f11f57e4 Luiz Capitulino
#
460 f11f57e4 Luiz Capitulino
# @rd_total_time_ns: Total_time_spend on reads in nano-seconds (since 0.15.0).
461 f11f57e4 Luiz Capitulino
#
462 f11f57e4 Luiz Capitulino
# @wr_highest_offset: The offset after the greatest byte written to the
463 f11f57e4 Luiz Capitulino
#                     device.  The intended use of this information is for
464 f11f57e4 Luiz Capitulino
#                     growable sparse files (like qcow2) that are used on top
465 f11f57e4 Luiz Capitulino
#                     of a physical device.
466 f11f57e4 Luiz Capitulino
#
467 f11f57e4 Luiz Capitulino
# Since: 0.14.0
468 f11f57e4 Luiz Capitulino
##
469 f11f57e4 Luiz Capitulino
{ 'type': 'BlockDeviceStats',
470 f11f57e4 Luiz Capitulino
  'data': {'rd_bytes': 'int', 'wr_bytes': 'int', 'rd_operations': 'int',
471 f11f57e4 Luiz Capitulino
           'wr_operations': 'int', 'flush_operations': 'int',
472 f11f57e4 Luiz Capitulino
           'flush_total_time_ns': 'int', 'wr_total_time_ns': 'int',
473 f11f57e4 Luiz Capitulino
           'rd_total_time_ns': 'int', 'wr_highest_offset': 'int' } }
474 f11f57e4 Luiz Capitulino
475 f11f57e4 Luiz Capitulino
##
476 f11f57e4 Luiz Capitulino
# @BlockStats:
477 f11f57e4 Luiz Capitulino
#
478 f11f57e4 Luiz Capitulino
# Statistics of a virtual block device or a block backing device.
479 f11f57e4 Luiz Capitulino
#
480 f11f57e4 Luiz Capitulino
# @device: #optional If the stats are for a virtual block device, the name
481 f11f57e4 Luiz Capitulino
#          corresponding to the virtual block device.
482 f11f57e4 Luiz Capitulino
#
483 f11f57e4 Luiz Capitulino
# @stats:  A @BlockDeviceStats for the device.
484 f11f57e4 Luiz Capitulino
#
485 f11f57e4 Luiz Capitulino
# @parent: #optional This may point to the backing block device if this is a
486 f11f57e4 Luiz Capitulino
#          a virtual block device.  If it's a backing block, this will point
487 f11f57e4 Luiz Capitulino
#          to the backing file is one is present.
488 f11f57e4 Luiz Capitulino
#
489 f11f57e4 Luiz Capitulino
# Since: 0.14.0
490 f11f57e4 Luiz Capitulino
##
491 f11f57e4 Luiz Capitulino
{ 'type': 'BlockStats',
492 f11f57e4 Luiz Capitulino
  'data': {'*device': 'str', 'stats': 'BlockDeviceStats',
493 f11f57e4 Luiz Capitulino
           '*parent': 'BlockStats'} }
494 f11f57e4 Luiz Capitulino
495 f11f57e4 Luiz Capitulino
##
496 f11f57e4 Luiz Capitulino
# @query-blockstats:
497 f11f57e4 Luiz Capitulino
#
498 f11f57e4 Luiz Capitulino
# Query the @BlockStats for all virtual block devices.
499 f11f57e4 Luiz Capitulino
#
500 f11f57e4 Luiz Capitulino
# Returns: A list of @BlockStats for each virtual block devices.
501 f11f57e4 Luiz Capitulino
#
502 f11f57e4 Luiz Capitulino
# Since: 0.14.0
503 f11f57e4 Luiz Capitulino
##
504 f11f57e4 Luiz Capitulino
{ 'command': 'query-blockstats', 'returns': ['BlockStats'] }
505 f11f57e4 Luiz Capitulino
506 f11f57e4 Luiz Capitulino
##
507 2b54aa87 Luiz Capitulino
# @VncClientInfo:
508 2b54aa87 Luiz Capitulino
#
509 2b54aa87 Luiz Capitulino
# Information about a connected VNC client.
510 2b54aa87 Luiz Capitulino
#
511 2b54aa87 Luiz Capitulino
# @host: The host name of the client.  QEMU tries to resolve this to a DNS name
512 2b54aa87 Luiz Capitulino
#        when possible.
513 2b54aa87 Luiz Capitulino
#
514 2b54aa87 Luiz Capitulino
# @family: 'ipv6' if the client is connected via IPv6 and TCP
515 2b54aa87 Luiz Capitulino
#          'ipv4' if the client is connected via IPv4 and TCP
516 2b54aa87 Luiz Capitulino
#          'unix' if the client is connected via a unix domain socket
517 2b54aa87 Luiz Capitulino
#          'unknown' otherwise
518 2b54aa87 Luiz Capitulino
#
519 2b54aa87 Luiz Capitulino
# @service: The service name of the client's port.  This may depends on the
520 2b54aa87 Luiz Capitulino
#           host system's service database so symbolic names should not be
521 2b54aa87 Luiz Capitulino
#           relied on.
522 2b54aa87 Luiz Capitulino
#
523 2b54aa87 Luiz Capitulino
# @x509_dname: #optional If x509 authentication is in use, the Distinguished
524 2b54aa87 Luiz Capitulino
#              Name of the client.
525 2b54aa87 Luiz Capitulino
#
526 2b54aa87 Luiz Capitulino
# @sasl_username: #optional If SASL authentication is in use, the SASL username
527 2b54aa87 Luiz Capitulino
#                 used for authentication.
528 2b54aa87 Luiz Capitulino
#
529 2b54aa87 Luiz Capitulino
# Since: 0.14.0
530 2b54aa87 Luiz Capitulino
##
531 2b54aa87 Luiz Capitulino
{ 'type': 'VncClientInfo',
532 2b54aa87 Luiz Capitulino
  'data': {'host': 'str', 'family': 'str', 'service': 'str',
533 2b54aa87 Luiz Capitulino
           '*x509_dname': 'str', '*sasl_username': 'str'} }
534 2b54aa87 Luiz Capitulino
535 2b54aa87 Luiz Capitulino
##
536 2b54aa87 Luiz Capitulino
# @VncInfo:
537 2b54aa87 Luiz Capitulino
#
538 2b54aa87 Luiz Capitulino
# Information about the VNC session.
539 2b54aa87 Luiz Capitulino
#
540 2b54aa87 Luiz Capitulino
# @enabled: true if the VNC server is enabled, false otherwise
541 2b54aa87 Luiz Capitulino
#
542 2b54aa87 Luiz Capitulino
# @host: #optional The hostname the VNC server is bound to.  This depends on
543 2b54aa87 Luiz Capitulino
#        the name resolution on the host and may be an IP address.
544 2b54aa87 Luiz Capitulino
#
545 2b54aa87 Luiz Capitulino
# @family: #optional 'ipv6' if the host is listening for IPv6 connections
546 2b54aa87 Luiz Capitulino
#                    'ipv4' if the host is listening for IPv4 connections
547 2b54aa87 Luiz Capitulino
#                    'unix' if the host is listening on a unix domain socket
548 2b54aa87 Luiz Capitulino
#                    'unknown' otherwise
549 2b54aa87 Luiz Capitulino
#
550 2b54aa87 Luiz Capitulino
# @service: #optional The service name of the server's port.  This may depends
551 2b54aa87 Luiz Capitulino
#           on the host system's service database so symbolic names should not
552 2b54aa87 Luiz Capitulino
#           be relied on.
553 2b54aa87 Luiz Capitulino
#
554 2b54aa87 Luiz Capitulino
# @auth: #optional the current authentication type used by the server
555 2b54aa87 Luiz Capitulino
#        'none' if no authentication is being used
556 2b54aa87 Luiz Capitulino
#        'vnc' if VNC authentication is being used
557 2b54aa87 Luiz Capitulino
#        'vencrypt+plain' if VEncrypt is used with plain text authentication
558 2b54aa87 Luiz Capitulino
#        'vencrypt+tls+none' if VEncrypt is used with TLS and no authentication
559 2b54aa87 Luiz Capitulino
#        'vencrypt+tls+vnc' if VEncrypt is used with TLS and VNC authentication
560 2b54aa87 Luiz Capitulino
#        'vencrypt+tls+plain' if VEncrypt is used with TLS and plain text auth
561 2b54aa87 Luiz Capitulino
#        'vencrypt+x509+none' if VEncrypt is used with x509 and no auth
562 2b54aa87 Luiz Capitulino
#        'vencrypt+x509+vnc' if VEncrypt is used with x509 and VNC auth
563 2b54aa87 Luiz Capitulino
#        'vencrypt+x509+plain' if VEncrypt is used with x509 and plain text auth
564 2b54aa87 Luiz Capitulino
#        'vencrypt+tls+sasl' if VEncrypt is used with TLS and SASL auth
565 2b54aa87 Luiz Capitulino
#        'vencrypt+x509+sasl' if VEncrypt is used with x509 and SASL auth
566 2b54aa87 Luiz Capitulino
#
567 2b54aa87 Luiz Capitulino
# @clients: a list of @VncClientInfo of all currently connected clients
568 2b54aa87 Luiz Capitulino
#
569 2b54aa87 Luiz Capitulino
# Since: 0.14.0
570 2b54aa87 Luiz Capitulino
##
571 2b54aa87 Luiz Capitulino
{ 'type': 'VncInfo',
572 2b54aa87 Luiz Capitulino
  'data': {'enabled': 'bool', '*host': 'str', '*family': 'str',
573 2b54aa87 Luiz Capitulino
           '*service': 'str', '*auth': 'str', '*clients': ['VncClientInfo']} }
574 2b54aa87 Luiz Capitulino
575 2b54aa87 Luiz Capitulino
##
576 2b54aa87 Luiz Capitulino
# @query-vnc:
577 2b54aa87 Luiz Capitulino
#
578 2b54aa87 Luiz Capitulino
# Returns information about the current VNC server
579 2b54aa87 Luiz Capitulino
#
580 2b54aa87 Luiz Capitulino
# Returns: @VncInfo
581 2b54aa87 Luiz Capitulino
#          If VNC support is not compiled in, FeatureDisabled
582 2b54aa87 Luiz Capitulino
#
583 2b54aa87 Luiz Capitulino
# Since: 0.14.0
584 2b54aa87 Luiz Capitulino
##
585 2b54aa87 Luiz Capitulino
{ 'command': 'query-vnc', 'returns': 'VncInfo' }
586 2b54aa87 Luiz Capitulino
587 2b54aa87 Luiz Capitulino
##
588 d1f29646 Luiz Capitulino
# @SpiceChannel
589 d1f29646 Luiz Capitulino
#
590 d1f29646 Luiz Capitulino
# Information about a SPICE client channel.
591 d1f29646 Luiz Capitulino
#
592 d1f29646 Luiz Capitulino
# @host: The host name of the client.  QEMU tries to resolve this to a DNS name
593 d1f29646 Luiz Capitulino
#        when possible.
594 d1f29646 Luiz Capitulino
#
595 d1f29646 Luiz Capitulino
# @family: 'ipv6' if the client is connected via IPv6 and TCP
596 d1f29646 Luiz Capitulino
#          'ipv4' if the client is connected via IPv4 and TCP
597 d1f29646 Luiz Capitulino
#          'unix' if the client is connected via a unix domain socket
598 d1f29646 Luiz Capitulino
#          'unknown' otherwise
599 d1f29646 Luiz Capitulino
#
600 d1f29646 Luiz Capitulino
# @port: The client's port number.
601 d1f29646 Luiz Capitulino
#
602 d1f29646 Luiz Capitulino
# @connection-id: SPICE connection id number.  All channels with the same id
603 d1f29646 Luiz Capitulino
#                 belong to the same SPICE session.
604 d1f29646 Luiz Capitulino
#
605 d1f29646 Luiz Capitulino
# @connection-type: SPICE channel type number.  "1" is the main control channel,
606 d1f29646 Luiz Capitulino
#                   filter for this one if you want track spice sessions only
607 d1f29646 Luiz Capitulino
#
608 d1f29646 Luiz Capitulino
# @channel-id: SPICE channel ID number.  Usually "0", might be different needed
609 d1f29646 Luiz Capitulino
#              when multiple channels of the same type exist, such as multiple
610 d1f29646 Luiz Capitulino
#              display channels in a multihead setup
611 d1f29646 Luiz Capitulino
#
612 d1f29646 Luiz Capitulino
# @tls: true if the channel is encrypted, false otherwise.
613 d1f29646 Luiz Capitulino
#
614 d1f29646 Luiz Capitulino
# Since: 0.14.0
615 d1f29646 Luiz Capitulino
##
616 d1f29646 Luiz Capitulino
{ 'type': 'SpiceChannel',
617 d1f29646 Luiz Capitulino
  'data': {'host': 'str', 'family': 'str', 'port': 'str',
618 d1f29646 Luiz Capitulino
           'connection-id': 'int', 'channel-type': 'int', 'channel-id': 'int',
619 d1f29646 Luiz Capitulino
           'tls': 'bool'} }
620 d1f29646 Luiz Capitulino
621 d1f29646 Luiz Capitulino
##
622 d1f29646 Luiz Capitulino
# @SpiceInfo
623 d1f29646 Luiz Capitulino
#
624 d1f29646 Luiz Capitulino
# Information about the SPICE session.
625 d1f29646 Luiz Capitulino
# 
626 d1f29646 Luiz Capitulino
# @enabled: true if the SPICE server is enabled, false otherwise
627 d1f29646 Luiz Capitulino
#
628 d1f29646 Luiz Capitulino
# @host: #optional The hostname the SPICE server is bound to.  This depends on
629 d1f29646 Luiz Capitulino
#        the name resolution on the host and may be an IP address.
630 d1f29646 Luiz Capitulino
#
631 d1f29646 Luiz Capitulino
# @port: #optional The SPICE server's port number.
632 d1f29646 Luiz Capitulino
#
633 d1f29646 Luiz Capitulino
# @compiled-version: #optional SPICE server version.
634 d1f29646 Luiz Capitulino
#
635 d1f29646 Luiz Capitulino
# @tls-port: #optional The SPICE server's TLS port number.
636 d1f29646 Luiz Capitulino
#
637 d1f29646 Luiz Capitulino
# @auth: #optional the current authentication type used by the server
638 d1f29646 Luiz Capitulino
#        'none' if no authentication is being used
639 d1f29646 Luiz Capitulino
#        'spice' (TODO: describe)
640 d1f29646 Luiz Capitulino
#
641 d1f29646 Luiz Capitulino
# @channels: a list of @SpiceChannel for each active spice channel
642 d1f29646 Luiz Capitulino
#
643 d1f29646 Luiz Capitulino
# Since: 0.14.0
644 d1f29646 Luiz Capitulino
##
645 d1f29646 Luiz Capitulino
{ 'type': 'SpiceInfo',
646 d1f29646 Luiz Capitulino
  'data': {'enabled': 'bool', '*host': 'str', '*port': 'int',
647 d1f29646 Luiz Capitulino
           '*tls-port': 'int', '*auth': 'str', '*compiled-version': 'str',
648 d1f29646 Luiz Capitulino
           '*channels': ['SpiceChannel']} }
649 d1f29646 Luiz Capitulino
650 d1f29646 Luiz Capitulino
##
651 d1f29646 Luiz Capitulino
# @query-spice
652 d1f29646 Luiz Capitulino
#
653 d1f29646 Luiz Capitulino
# Returns information about the current SPICE server
654 d1f29646 Luiz Capitulino
#
655 d1f29646 Luiz Capitulino
# Returns: @SpiceInfo
656 d1f29646 Luiz Capitulino
#
657 d1f29646 Luiz Capitulino
# Since: 0.14.0
658 d1f29646 Luiz Capitulino
##
659 d1f29646 Luiz Capitulino
{ 'command': 'query-spice', 'returns': 'SpiceInfo' }
660 d1f29646 Luiz Capitulino
661 d1f29646 Luiz Capitulino
##
662 96637bcd Luiz Capitulino
# @BalloonInfo:
663 96637bcd Luiz Capitulino
#
664 96637bcd Luiz Capitulino
# Information about the guest balloon device.
665 96637bcd Luiz Capitulino
#
666 96637bcd Luiz Capitulino
# @actual: the number of bytes the balloon currently contains
667 96637bcd Luiz Capitulino
#
668 96637bcd Luiz Capitulino
# @mem_swapped_in: #optional number of pages swapped in within the guest
669 96637bcd Luiz Capitulino
#
670 96637bcd Luiz Capitulino
# @mem_swapped_out: #optional number of pages swapped out within the guest
671 96637bcd Luiz Capitulino
#
672 96637bcd Luiz Capitulino
# @major_page_faults: #optional number of major page faults within the guest
673 96637bcd Luiz Capitulino
#
674 96637bcd Luiz Capitulino
# @minor_page_faults: #optional number of minor page faults within the guest
675 96637bcd Luiz Capitulino
#
676 96637bcd Luiz Capitulino
# @free_mem: #optional amount of memory (in bytes) free in the guest
677 96637bcd Luiz Capitulino
#
678 96637bcd Luiz Capitulino
# @total_mem: #optional amount of memory (in bytes) visible to the guest
679 96637bcd Luiz Capitulino
#
680 96637bcd Luiz Capitulino
# Since: 0.14.0
681 96637bcd Luiz Capitulino
#
682 96637bcd Luiz Capitulino
# Notes: all current versions of QEMU do not fill out optional information in
683 96637bcd Luiz Capitulino
#        this structure.
684 96637bcd Luiz Capitulino
##
685 96637bcd Luiz Capitulino
{ 'type': 'BalloonInfo',
686 96637bcd Luiz Capitulino
  'data': {'actual': 'int', '*mem_swapped_in': 'int',
687 96637bcd Luiz Capitulino
           '*mem_swapped_out': 'int', '*major_page_faults': 'int',
688 96637bcd Luiz Capitulino
           '*minor_page_faults': 'int', '*free_mem': 'int',
689 96637bcd Luiz Capitulino
           '*total_mem': 'int'} }
690 96637bcd Luiz Capitulino
691 96637bcd Luiz Capitulino
##
692 96637bcd Luiz Capitulino
# @query-balloon:
693 96637bcd Luiz Capitulino
#
694 96637bcd Luiz Capitulino
# Return information about the balloon device.
695 96637bcd Luiz Capitulino
#
696 96637bcd Luiz Capitulino
# Returns: @BalloonInfo on success
697 96637bcd Luiz Capitulino
#          If the balloon driver is enabled but not functional because the KVM
698 96637bcd Luiz Capitulino
#          kernel module cannot support it, KvmMissingCap
699 96637bcd Luiz Capitulino
#          If no balloon device is present, DeviceNotActive
700 96637bcd Luiz Capitulino
#
701 96637bcd Luiz Capitulino
# Since: 0.14.0
702 96637bcd Luiz Capitulino
##
703 96637bcd Luiz Capitulino
{ 'command': 'query-balloon', 'returns': 'BalloonInfo' }
704 96637bcd Luiz Capitulino
705 96637bcd Luiz Capitulino
##
706 79627472 Luiz Capitulino
# @PciMemoryRange:
707 79627472 Luiz Capitulino
#
708 79627472 Luiz Capitulino
# A PCI device memory region
709 79627472 Luiz Capitulino
#
710 79627472 Luiz Capitulino
# @base: the starting address (guest physical)
711 79627472 Luiz Capitulino
#
712 79627472 Luiz Capitulino
# @limit: the ending address (guest physical)
713 79627472 Luiz Capitulino
#
714 79627472 Luiz Capitulino
# Since: 0.14.0
715 79627472 Luiz Capitulino
##
716 79627472 Luiz Capitulino
{ 'type': 'PciMemoryRange', 'data': {'base': 'int', 'limit': 'int'} }
717 79627472 Luiz Capitulino
718 79627472 Luiz Capitulino
##
719 79627472 Luiz Capitulino
# @PciMemoryRegion
720 79627472 Luiz Capitulino
#
721 79627472 Luiz Capitulino
# Information about a PCI device I/O region.
722 79627472 Luiz Capitulino
#
723 79627472 Luiz Capitulino
# @bar: the index of the Base Address Register for this region
724 79627472 Luiz Capitulino
#
725 79627472 Luiz Capitulino
# @type: 'io' if the region is a PIO region
726 79627472 Luiz Capitulino
#        'memory' if the region is a MMIO region
727 79627472 Luiz Capitulino
#
728 79627472 Luiz Capitulino
# @prefetch: #optional if @type is 'memory', true if the memory is prefetchable
729 79627472 Luiz Capitulino
#
730 79627472 Luiz Capitulino
# @mem_type_64: #optional if @type is 'memory', true if the BAR is 64-bit
731 79627472 Luiz Capitulino
#
732 79627472 Luiz Capitulino
# Since: 0.14.0
733 79627472 Luiz Capitulino
##
734 79627472 Luiz Capitulino
{ 'type': 'PciMemoryRegion',
735 79627472 Luiz Capitulino
  'data': {'bar': 'int', 'type': 'str', 'address': 'int', 'size': 'int',
736 79627472 Luiz Capitulino
           '*prefetch': 'bool', '*mem_type_64': 'bool' } }
737 79627472 Luiz Capitulino
738 79627472 Luiz Capitulino
##
739 79627472 Luiz Capitulino
# @PciBridgeInfo:
740 79627472 Luiz Capitulino
#
741 79627472 Luiz Capitulino
# Information about a PCI Bridge device
742 79627472 Luiz Capitulino
#
743 79627472 Luiz Capitulino
# @bus.number: primary bus interface number.  This should be the number of the
744 79627472 Luiz Capitulino
#              bus the device resides on.
745 79627472 Luiz Capitulino
#
746 79627472 Luiz Capitulino
# @bus.secondary: secondary bus interface number.  This is the number of the
747 79627472 Luiz Capitulino
#                 main bus for the bridge
748 79627472 Luiz Capitulino
#
749 79627472 Luiz Capitulino
# @bus.subordinate: This is the highest number bus that resides below the
750 79627472 Luiz Capitulino
#                   bridge.
751 79627472 Luiz Capitulino
#
752 79627472 Luiz Capitulino
# @bus.io_range: The PIO range for all devices on this bridge
753 79627472 Luiz Capitulino
#
754 79627472 Luiz Capitulino
# @bus.memory_range: The MMIO range for all devices on this bridge
755 79627472 Luiz Capitulino
#
756 79627472 Luiz Capitulino
# @bus.prefetchable_range: The range of prefetchable MMIO for all devices on
757 79627472 Luiz Capitulino
#                          this bridge
758 79627472 Luiz Capitulino
#
759 79627472 Luiz Capitulino
# @devices: a list of @PciDeviceInfo for each device on this bridge
760 79627472 Luiz Capitulino
#
761 79627472 Luiz Capitulino
# Since: 0.14.0
762 79627472 Luiz Capitulino
##
763 79627472 Luiz Capitulino
{ 'type': 'PciBridgeInfo',
764 79627472 Luiz Capitulino
  'data': {'bus': { 'number': 'int', 'secondary': 'int', 'subordinate': 'int',
765 79627472 Luiz Capitulino
                    'io_range': 'PciMemoryRange',
766 79627472 Luiz Capitulino
                    'memory_range': 'PciMemoryRange',
767 79627472 Luiz Capitulino
                    'prefetchable_range': 'PciMemoryRange' },
768 79627472 Luiz Capitulino
           '*devices': ['PciDeviceInfo']} }
769 79627472 Luiz Capitulino
770 79627472 Luiz Capitulino
##
771 79627472 Luiz Capitulino
# @PciDeviceInfo:
772 79627472 Luiz Capitulino
#
773 79627472 Luiz Capitulino
# Information about a PCI device
774 79627472 Luiz Capitulino
#
775 79627472 Luiz Capitulino
# @bus: the bus number of the device
776 79627472 Luiz Capitulino
#
777 79627472 Luiz Capitulino
# @slot: the slot the device is located in
778 79627472 Luiz Capitulino
#
779 79627472 Luiz Capitulino
# @function: the function of the slot used by the device
780 79627472 Luiz Capitulino
#
781 79627472 Luiz Capitulino
# @class_info.desc: #optional a string description of the device's class
782 79627472 Luiz Capitulino
#
783 79627472 Luiz Capitulino
# @class_info.class: the class code of the device
784 79627472 Luiz Capitulino
#
785 79627472 Luiz Capitulino
# @id.device: the PCI device id
786 79627472 Luiz Capitulino
#
787 79627472 Luiz Capitulino
# @id.vendor: the PCI vendor id
788 79627472 Luiz Capitulino
#
789 79627472 Luiz Capitulino
# @irq: #optional if an IRQ is assigned to the device, the IRQ number
790 79627472 Luiz Capitulino
#
791 79627472 Luiz Capitulino
# @qdev_id: the device name of the PCI device
792 79627472 Luiz Capitulino
#
793 79627472 Luiz Capitulino
# @pci_bridge: if the device is a PCI bridge, the bridge information
794 79627472 Luiz Capitulino
#
795 79627472 Luiz Capitulino
# @regions: a list of the PCI I/O regions associated with the device
796 79627472 Luiz Capitulino
#
797 79627472 Luiz Capitulino
# Notes: the contents of @class_info.desc are not stable and should only be
798 79627472 Luiz Capitulino
#        treated as informational.
799 79627472 Luiz Capitulino
#
800 79627472 Luiz Capitulino
# Since: 0.14.0
801 79627472 Luiz Capitulino
##
802 79627472 Luiz Capitulino
{ 'type': 'PciDeviceInfo',
803 79627472 Luiz Capitulino
  'data': {'bus': 'int', 'slot': 'int', 'function': 'int',
804 79627472 Luiz Capitulino
           'class_info': {'*desc': 'str', 'class': 'int'},
805 79627472 Luiz Capitulino
           'id': {'device': 'int', 'vendor': 'int'},
806 79627472 Luiz Capitulino
           '*irq': 'int', 'qdev_id': 'str', '*pci_bridge': 'PciBridgeInfo',
807 79627472 Luiz Capitulino
           'regions': ['PciMemoryRegion']} }
808 79627472 Luiz Capitulino
809 79627472 Luiz Capitulino
##
810 79627472 Luiz Capitulino
# @PciInfo:
811 79627472 Luiz Capitulino
#
812 79627472 Luiz Capitulino
# Information about a PCI bus
813 79627472 Luiz Capitulino
#
814 79627472 Luiz Capitulino
# @bus: the bus index
815 79627472 Luiz Capitulino
#
816 79627472 Luiz Capitulino
# @devices: a list of devices on this bus
817 79627472 Luiz Capitulino
#
818 79627472 Luiz Capitulino
# Since: 0.14.0
819 79627472 Luiz Capitulino
##
820 79627472 Luiz Capitulino
{ 'type': 'PciInfo', 'data': {'bus': 'int', 'devices': ['PciDeviceInfo']} }
821 79627472 Luiz Capitulino
822 79627472 Luiz Capitulino
##
823 79627472 Luiz Capitulino
# @query-pci:
824 79627472 Luiz Capitulino
#
825 79627472 Luiz Capitulino
# Return information about the PCI bus topology of the guest.
826 79627472 Luiz Capitulino
#
827 79627472 Luiz Capitulino
# Returns: a list of @PciInfo for each PCI bus
828 79627472 Luiz Capitulino
#
829 79627472 Luiz Capitulino
# Since: 0.14.0
830 79627472 Luiz Capitulino
##
831 79627472 Luiz Capitulino
{ 'command': 'query-pci', 'returns': ['PciInfo'] }
832 79627472 Luiz Capitulino
833 79627472 Luiz Capitulino
##
834 7a7f325e Luiz Capitulino
# @quit:
835 7a7f325e Luiz Capitulino
#
836 7a7f325e Luiz Capitulino
# This command will cause the QEMU process to exit gracefully.  While every
837 7a7f325e Luiz Capitulino
# attempt is made to send the QMP response before terminating, this is not
838 7a7f325e Luiz Capitulino
# guaranteed.  When using this interface, a premature EOF would not be
839 7a7f325e Luiz Capitulino
# unexpected.
840 7a7f325e Luiz Capitulino
#
841 7a7f325e Luiz Capitulino
# Since: 0.14.0
842 7a7f325e Luiz Capitulino
##
843 7a7f325e Luiz Capitulino
{ 'command': 'quit' }
844 5f158f21 Luiz Capitulino
845 5f158f21 Luiz Capitulino
##
846 5f158f21 Luiz Capitulino
# @stop:
847 5f158f21 Luiz Capitulino
#
848 5f158f21 Luiz Capitulino
# Stop all guest VCPU execution.
849 5f158f21 Luiz Capitulino
#
850 5f158f21 Luiz Capitulino
# Since:  0.14.0
851 5f158f21 Luiz Capitulino
#
852 5f158f21 Luiz Capitulino
# Notes:  This function will succeed even if the guest is already in the stopped
853 5f158f21 Luiz Capitulino
#         state
854 5f158f21 Luiz Capitulino
##
855 5f158f21 Luiz Capitulino
{ 'command': 'stop' }
856 38d22653 Luiz Capitulino
857 38d22653 Luiz Capitulino
##
858 38d22653 Luiz Capitulino
# @system_reset:
859 38d22653 Luiz Capitulino
#
860 38d22653 Luiz Capitulino
# Performs a hard reset of a guest.
861 38d22653 Luiz Capitulino
#
862 38d22653 Luiz Capitulino
# Since: 0.14.0
863 38d22653 Luiz Capitulino
##
864 38d22653 Luiz Capitulino
{ 'command': 'system_reset' }
865 5bc465e4 Luiz Capitulino
866 5bc465e4 Luiz Capitulino
##
867 5bc465e4 Luiz Capitulino
# @system_powerdown:
868 5bc465e4 Luiz Capitulino
#
869 5bc465e4 Luiz Capitulino
# Requests that a guest perform a powerdown operation.
870 5bc465e4 Luiz Capitulino
#
871 5bc465e4 Luiz Capitulino
# Since: 0.14.0
872 5bc465e4 Luiz Capitulino
#
873 5bc465e4 Luiz Capitulino
# Notes: A guest may or may not respond to this command.  This command
874 5bc465e4 Luiz Capitulino
#        returning does not indicate that a guest has accepted the request or
875 5bc465e4 Luiz Capitulino
#        that it has shut down.  Many guests will respond to this command by
876 5bc465e4 Luiz Capitulino
#        prompting the user in some way.
877 5bc465e4 Luiz Capitulino
##
878 5bc465e4 Luiz Capitulino
{ 'command': 'system_powerdown' }
879 755f1968 Luiz Capitulino
880 755f1968 Luiz Capitulino
##
881 755f1968 Luiz Capitulino
# @cpu:
882 755f1968 Luiz Capitulino
#
883 755f1968 Luiz Capitulino
# This command is a nop that is only provided for the purposes of compatibility.
884 755f1968 Luiz Capitulino
#
885 755f1968 Luiz Capitulino
# Since: 0.14.0
886 755f1968 Luiz Capitulino
#
887 755f1968 Luiz Capitulino
# Notes: Do not use this command.
888 755f1968 Luiz Capitulino
##
889 755f1968 Luiz Capitulino
{ 'command': 'cpu', 'data': {'index': 'int'} }