]>
Commit | Line | Data |
---|---|---|
e3193601 AL |
1 | # -*- Mode: Python -*- |
2 | # | |
3 | # QAPI Schema | |
48a32bed AL |
4 | |
5 | ## | |
6 | # @NameInfo: | |
7 | # | |
8 | # Guest name information. | |
9 | # | |
10 | # @name: #optional The name of the guest | |
11 | # | |
12 | # Since 0.14.0 | |
13 | ## | |
14 | { 'type': 'NameInfo', 'data': {'*name': 'str'} } | |
15 | ||
16 | ## | |
17 | # @query-name: | |
18 | # | |
19 | # Return the name information of a guest. | |
20 | # | |
21 | # Returns: @NameInfo of the guest | |
22 | # | |
23 | # Since 0.14.0 | |
24 | ## | |
25 | { 'command': 'query-name', 'returns': 'NameInfo' } | |
b9c15f16 LC |
26 | |
27 | ## | |
28 | # @VersionInfo: | |
29 | # | |
30 | # A description of QEMU's version. | |
31 | # | |
32 | # @qemu.major: The major version of QEMU | |
33 | # | |
34 | # @qemu.minor: The minor version of QEMU | |
35 | # | |
36 | # @qemu.micro: The micro version of QEMU. By current convention, a micro | |
37 | # version of 50 signifies a development branch. A micro version | |
38 | # greater than or equal to 90 signifies a release candidate for | |
39 | # the next minor version. A micro version of less than 50 | |
40 | # signifies a stable release. | |
41 | # | |
42 | # @package: QEMU will always set this field to an empty string. Downstream | |
43 | # versions of QEMU should set this to a non-empty string. The | |
44 | # exact format depends on the downstream however it highly | |
45 | # recommended that a unique name is used. | |
46 | # | |
47 | # Since: 0.14.0 | |
48 | ## | |
49 | { 'type': 'VersionInfo', | |
50 | 'data': {'qemu': {'major': 'int', 'minor': 'int', 'micro': 'int'}, | |
51 | 'package': 'str'} } | |
52 | ||
53 | ## | |
54 | # @query-version: | |
55 | # | |
56 | # Returns the current version of QEMU. | |
57 | # | |
58 | # Returns: A @VersionInfo object describing the current version of QEMU. | |
59 | # | |
60 | # Since: 0.14.0 | |
61 | ## | |
62 | { 'command': 'query-version', 'returns': 'VersionInfo' } | |
292a2602 LC |
63 | |
64 | ## | |
65 | # @KvmInfo: | |
66 | # | |
67 | # Information about support for KVM acceleration | |
68 | # | |
69 | # @enabled: true if KVM acceleration is active | |
70 | # | |
71 | # @present: true if KVM acceleration is built into this executable | |
72 | # | |
73 | # Since: 0.14.0 | |
74 | ## | |
75 | { 'type': 'KvmInfo', 'data': {'enabled': 'bool', 'present': 'bool'} } | |
76 | ||
77 | ## | |
78 | # @query-kvm: | |
79 | # | |
80 | # Returns information about KVM acceleration | |
81 | # | |
82 | # Returns: @KvmInfo | |
83 | # | |
84 | # Since: 0.14.0 | |
85 | ## | |
86 | { 'command': 'query-kvm', 'returns': 'KvmInfo' } | |
87 | ||
1fa9a5e4 LC |
88 | ## |
89 | # @RunState | |
90 | # | |
91 | # An enumation of VM run states. | |
92 | # | |
93 | # @debug: QEMU is running on a debugger | |
94 | # | |
95 | # @inmigrate: guest is paused waiting for an incoming migration | |
96 | # | |
97 | # @internal-error: An internal error that prevents further guest execution | |
98 | # has occurred | |
99 | # | |
100 | # @io-error: the last IOP has failed and the device is configured to pause | |
101 | # on I/O errors | |
102 | # | |
103 | # @paused: guest has been paused via the 'stop' command | |
104 | # | |
105 | # @postmigrate: guest is paused following a successful 'migrate' | |
106 | # | |
107 | # @prelaunch: QEMU was started with -S and guest has not started | |
108 | # | |
109 | # @finish-migrate: guest is paused to finish the migration process | |
110 | # | |
111 | # @restore-vm: guest is paused to restore VM state | |
112 | # | |
113 | # @running: guest is actively running | |
114 | # | |
115 | # @save-vm: guest is paused to save the VM state | |
116 | # | |
117 | # @shutdown: guest is shut down (and -no-shutdown is in use) | |
118 | # | |
119 | # @watchdog: the watchdog action is configured to pause and has been triggered | |
120 | ## | |
121 | { 'enum': 'RunState', | |
122 | 'data': [ 'debug', 'inmigrate', 'internal-error', 'io-error', 'paused', | |
123 | 'postmigrate', 'prelaunch', 'finish-migrate', 'restore-vm', | |
124 | 'running', 'save-vm', 'shutdown', 'watchdog' ] } | |
125 | ||
126 | ## | |
127 | # @StatusInfo: | |
128 | # | |
129 | # Information about VCPU run state | |
130 | # | |
131 | # @running: true if all VCPUs are runnable, false if not runnable | |
132 | # | |
133 | # @singlestep: true if VCPUs are in single-step mode | |
134 | # | |
135 | # @status: the virtual machine @RunState | |
136 | # | |
137 | # Since: 0.14.0 | |
138 | # | |
139 | # Notes: @singlestep is enabled through the GDB stub | |
140 | ## | |
141 | { 'type': 'StatusInfo', | |
142 | 'data': {'running': 'bool', 'singlestep': 'bool', 'status': 'RunState'} } | |
143 | ||
144 | ## | |
145 | # @query-status: | |
146 | # | |
147 | # Query the run status of all VCPUs | |
148 | # | |
149 | # Returns: @StatusInfo reflecting all VCPUs | |
150 | # | |
151 | # Since: 0.14.0 | |
152 | ## | |
153 | { 'command': 'query-status', 'returns': 'StatusInfo' } | |
154 | ||
efab767e LC |
155 | ## |
156 | # @UuidInfo: | |
157 | # | |
158 | # Guest UUID information. | |
159 | # | |
160 | # @UUID: the UUID of the guest | |
161 | # | |
162 | # Since: 0.14.0 | |
163 | # | |
164 | # Notes: If no UUID was specified for the guest, a null UUID is returned. | |
165 | ## | |
166 | { 'type': 'UuidInfo', 'data': {'UUID': 'str'} } | |
167 | ||
168 | ## | |
169 | # @query-uuid: | |
170 | # | |
171 | # Query the guest UUID information. | |
172 | # | |
173 | # Returns: The @UuidInfo for the guest | |
174 | # | |
175 | # Since 0.14.0 | |
176 | ## | |
177 | { 'command': 'query-uuid', 'returns': 'UuidInfo' } | |
178 | ||
c5a415a0 LC |
179 | ## |
180 | # @ChardevInfo: | |
181 | # | |
182 | # Information about a character device. | |
183 | # | |
184 | # @label: the label of the character device | |
185 | # | |
186 | # @filename: the filename of the character device | |
187 | # | |
188 | # Notes: @filename is encoded using the QEMU command line character device | |
189 | # encoding. See the QEMU man page for details. | |
190 | # | |
191 | # Since: 0.14.0 | |
192 | ## | |
193 | { 'type': 'ChardevInfo', 'data': {'label': 'str', 'filename': 'str'} } | |
194 | ||
195 | ## | |
196 | # @query-chardev: | |
197 | # | |
198 | # Returns information about current character devices. | |
199 | # | |
200 | # Returns: a list of @ChardevInfo | |
201 | # | |
202 | # Since: 0.14.0 | |
203 | ## | |
204 | { 'command': 'query-chardev', 'returns': ['ChardevInfo'] } | |
aa9b79bc LC |
205 | |
206 | ## | |
207 | # @CommandInfo: | |
208 | # | |
209 | # Information about a QMP command | |
210 | # | |
211 | # @name: The command name | |
212 | # | |
213 | # Since: 0.14.0 | |
214 | ## | |
215 | { 'type': 'CommandInfo', 'data': {'name': 'str'} } | |
216 | ||
217 | ## | |
218 | # @query-commands: | |
219 | # | |
220 | # Return a list of supported QMP commands by this server | |
221 | # | |
222 | # Returns: A list of @CommandInfo for all supported commands | |
223 | # | |
224 | # Since: 0.14.0 | |
225 | ## | |
226 | { 'command': 'query-commands', 'returns': ['CommandInfo'] } | |
227 | ||
791e7c82 LC |
228 | ## |
229 | # @MigrationStats | |
230 | # | |
231 | # Detailed migration status. | |
232 | # | |
233 | # @transferred: amount of bytes already transferred to the target VM | |
234 | # | |
235 | # @remaining: amount of bytes remaining to be transferred to the target VM | |
236 | # | |
237 | # @total: total amount of bytes involved in the migration process | |
238 | # | |
239 | # Since: 0.14.0. | |
240 | ## | |
241 | { 'type': 'MigrationStats', | |
242 | 'data': {'transferred': 'int', 'remaining': 'int', 'total': 'int' } } | |
243 | ||
244 | ## | |
245 | # @MigrationInfo | |
246 | # | |
247 | # Information about current migration process. | |
248 | # | |
249 | # @status: #optional string describing the current migration status. | |
250 | # As of 0.14.0 this can be 'active', 'completed', 'failed' or | |
251 | # 'cancelled'. If this field is not returned, no migration process | |
252 | # has been initiated | |
253 | # | |
254 | # @ram: #optional @MigrationStats containing detailed migration status, | |
255 | # only returned if status is 'active' | |
256 | # | |
257 | # @disk: #optional @MigrationStats containing detailed disk migration | |
258 | # status, only returned if status is 'active' and it is a block | |
259 | # migration | |
260 | # | |
261 | # Since: 0.14.0 | |
262 | ## | |
263 | { 'type': 'MigrationInfo', | |
264 | 'data': {'*status': 'str', '*ram': 'MigrationStats', | |
265 | '*disk': 'MigrationStats'} } | |
266 | ||
267 | ## | |
268 | # @query-migrate | |
269 | # | |
270 | # Returns information about current migration process. | |
271 | # | |
272 | # Returns: @MigrationInfo | |
273 | # | |
274 | # Since: 0.14.0 | |
275 | ## | |
276 | { 'command': 'query-migrate', 'returns': 'MigrationInfo' } | |
277 | ||
e235cec3 LC |
278 | ## |
279 | # @MouseInfo: | |
280 | # | |
281 | # Information about a mouse device. | |
282 | # | |
283 | # @name: the name of the mouse device | |
284 | # | |
285 | # @index: the index of the mouse device | |
286 | # | |
287 | # @current: true if this device is currently receiving mouse events | |
288 | # | |
289 | # @absolute: true if this device supports absolute coordinates as input | |
290 | # | |
291 | # Since: 0.14.0 | |
292 | ## | |
293 | { 'type': 'MouseInfo', | |
294 | 'data': {'name': 'str', 'index': 'int', 'current': 'bool', | |
295 | 'absolute': 'bool'} } | |
296 | ||
297 | ## | |
298 | # @query-mice: | |
299 | # | |
300 | # Returns information about each active mouse device | |
301 | # | |
302 | # Returns: a list of @MouseInfo for each device | |
303 | # | |
304 | # Since: 0.14.0 | |
305 | ## | |
306 | { 'command': 'query-mice', 'returns': ['MouseInfo'] } | |
307 | ||
7a7f325e LC |
308 | ## |
309 | # @quit: | |
310 | # | |
311 | # This command will cause the QEMU process to exit gracefully. While every | |
312 | # attempt is made to send the QMP response before terminating, this is not | |
313 | # guaranteed. When using this interface, a premature EOF would not be | |
314 | # unexpected. | |
315 | # | |
316 | # Since: 0.14.0 | |
317 | ## | |
318 | { 'command': 'quit' } | |
5f158f21 LC |
319 | |
320 | ## | |
321 | # @stop: | |
322 | # | |
323 | # Stop all guest VCPU execution. | |
324 | # | |
325 | # Since: 0.14.0 | |
326 | # | |
327 | # Notes: This function will succeed even if the guest is already in the stopped | |
328 | # state | |
329 | ## | |
330 | { 'command': 'stop' } | |
38d22653 LC |
331 | |
332 | ## | |
333 | # @system_reset: | |
334 | # | |
335 | # Performs a hard reset of a guest. | |
336 | # | |
337 | # Since: 0.14.0 | |
338 | ## | |
339 | { 'command': 'system_reset' } | |
5bc465e4 LC |
340 | |
341 | ## | |
342 | # @system_powerdown: | |
343 | # | |
344 | # Requests that a guest perform a powerdown operation. | |
345 | # | |
346 | # Since: 0.14.0 | |
347 | # | |
348 | # Notes: A guest may or may not respond to this command. This command | |
349 | # returning does not indicate that a guest has accepted the request or | |
350 | # that it has shut down. Many guests will respond to this command by | |
351 | # prompting the user in some way. | |
352 | ## | |
353 | { 'command': 'system_powerdown' } | |
755f1968 LC |
354 | |
355 | ## | |
356 | # @cpu: | |
357 | # | |
358 | # This command is a nop that is only provided for the purposes of compatibility. | |
359 | # | |
360 | # Since: 0.14.0 | |
361 | # | |
362 | # Notes: Do not use this command. | |
363 | ## | |
364 | { 'command': 'cpu', 'data': {'index': 'int'} } |