Statistics
| Branch: | Revision:

root / qmp-commands.hx @ e3e87df4

History | View | Annotate | Download (54.7 kB)

1 82a56f0d Luiz Capitulino
HXCOMM QMP dispatch table and documentation
2 82a56f0d Luiz Capitulino
HXCOMM Text between SQMP and EQMP is copied to the QMP documention file and
3 82a56f0d Luiz Capitulino
HXCOMM does not show up in the other formats.
4 82a56f0d Luiz Capitulino
5 82a56f0d Luiz Capitulino
SQMP
6 82a56f0d Luiz Capitulino
                        QMP Supported Commands
7 82a56f0d Luiz Capitulino
                        ----------------------
8 82a56f0d Luiz Capitulino
9 82a56f0d Luiz Capitulino
This document describes all commands currently supported by QMP.
10 82a56f0d Luiz Capitulino
11 82a56f0d Luiz Capitulino
Most of the time their usage is exactly the same as in the user Monitor, this
12 82a56f0d Luiz Capitulino
means that any other document which also describe commands (the manpage,
13 82a56f0d Luiz Capitulino
QEMU's manual, etc) can and should be consulted.
14 82a56f0d Luiz Capitulino
15 82a56f0d Luiz Capitulino
QMP has two types of commands: regular and query commands. Regular commands
16 82a56f0d Luiz Capitulino
usually change the Virtual Machine's state someway, while query commands just
17 82a56f0d Luiz Capitulino
return information. The sections below are divided accordingly.
18 82a56f0d Luiz Capitulino
19 82a56f0d Luiz Capitulino
It's important to observe that all communication examples are formatted in
20 82a56f0d Luiz Capitulino
a reader-friendly way, so that they're easier to understand. However, in real
21 82a56f0d Luiz Capitulino
protocol usage, they're emitted as a single line.
22 82a56f0d Luiz Capitulino
23 82a56f0d Luiz Capitulino
Also, the following notation is used to denote data flow:
24 82a56f0d Luiz Capitulino
25 82a56f0d Luiz Capitulino
-> data issued by the Client
26 82a56f0d Luiz Capitulino
<- Server data response
27 82a56f0d Luiz Capitulino
28 82a56f0d Luiz Capitulino
Please, refer to the QMP specification (QMP/qmp-spec.txt) for detailed
29 82a56f0d Luiz Capitulino
information on the Server command and response formats.
30 82a56f0d Luiz Capitulino
31 82a56f0d Luiz Capitulino
NOTE: This document is temporary and will be replaced soon.
32 82a56f0d Luiz Capitulino
33 82a56f0d Luiz Capitulino
1. Stability Considerations
34 82a56f0d Luiz Capitulino
===========================
35 82a56f0d Luiz Capitulino
36 82a56f0d Luiz Capitulino
The current QMP command set (described in this file) may be useful for a
37 82a56f0d Luiz Capitulino
number of use cases, however it's limited and several commands have bad
38 82a56f0d Luiz Capitulino
defined semantics, specially with regard to command completion.
39 82a56f0d Luiz Capitulino
40 82a56f0d Luiz Capitulino
These problems are going to be solved incrementally in the next QEMU releases
41 82a56f0d Luiz Capitulino
and we're going to establish a deprecation policy for badly defined commands.
42 82a56f0d Luiz Capitulino
43 82a56f0d Luiz Capitulino
If you're planning to adopt QMP, please observe the following:
44 82a56f0d Luiz Capitulino
45 c20cdf8b Zhi Yong Wu
    1. The deprecation policy will take effect and be documented soon, please
46 82a56f0d Luiz Capitulino
       check the documentation of each used command as soon as a new release of
47 82a56f0d Luiz Capitulino
       QEMU is available
48 82a56f0d Luiz Capitulino
49 82a56f0d Luiz Capitulino
    2. DO NOT rely on anything which is not explicit documented
50 82a56f0d Luiz Capitulino
51 82a56f0d Luiz Capitulino
    3. Errors, in special, are not documented. Applications should NOT check
52 82a56f0d Luiz Capitulino
       for specific errors classes or data (it's strongly recommended to only
53 82a56f0d Luiz Capitulino
       check for the "error" key)
54 82a56f0d Luiz Capitulino
55 82a56f0d Luiz Capitulino
2. Regular Commands
56 82a56f0d Luiz Capitulino
===================
57 82a56f0d Luiz Capitulino
58 82a56f0d Luiz Capitulino
Server's responses in the examples below are always a success response, please
59 82a56f0d Luiz Capitulino
refer to the QMP specification for more details on error responses.
60 82a56f0d Luiz Capitulino
61 82a56f0d Luiz Capitulino
EQMP
62 82a56f0d Luiz Capitulino
63 82a56f0d Luiz Capitulino
    {
64 82a56f0d Luiz Capitulino
        .name       = "quit",
65 82a56f0d Luiz Capitulino
        .args_type  = "",
66 7a7f325e Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_quit,
67 82a56f0d Luiz Capitulino
    },
68 82a56f0d Luiz Capitulino
69 82a56f0d Luiz Capitulino
SQMP
70 82a56f0d Luiz Capitulino
quit
71 82a56f0d Luiz Capitulino
----
72 82a56f0d Luiz Capitulino
73 82a56f0d Luiz Capitulino
Quit the emulator.
74 82a56f0d Luiz Capitulino
75 82a56f0d Luiz Capitulino
Arguments: None.
76 82a56f0d Luiz Capitulino
77 82a56f0d Luiz Capitulino
Example:
78 82a56f0d Luiz Capitulino
79 82a56f0d Luiz Capitulino
-> { "execute": "quit" }
80 82a56f0d Luiz Capitulino
<- { "return": {} }
81 82a56f0d Luiz Capitulino
82 82a56f0d Luiz Capitulino
EQMP
83 82a56f0d Luiz Capitulino
84 82a56f0d Luiz Capitulino
    {
85 82a56f0d Luiz Capitulino
        .name       = "eject",
86 82a56f0d Luiz Capitulino
        .args_type  = "force:-f,device:B",
87 c245b6a3 Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_eject,
88 82a56f0d Luiz Capitulino
    },
89 82a56f0d Luiz Capitulino
90 82a56f0d Luiz Capitulino
SQMP
91 82a56f0d Luiz Capitulino
eject
92 82a56f0d Luiz Capitulino
-----
93 82a56f0d Luiz Capitulino
94 82a56f0d Luiz Capitulino
Eject a removable medium.
95 82a56f0d Luiz Capitulino
96 82a56f0d Luiz Capitulino
Arguments: 
97 82a56f0d Luiz Capitulino
98 82a56f0d Luiz Capitulino
- force: force ejection (json-bool, optional)
99 82a56f0d Luiz Capitulino
- device: device name (json-string)
100 82a56f0d Luiz Capitulino
101 82a56f0d Luiz Capitulino
Example:
102 82a56f0d Luiz Capitulino
103 82a56f0d Luiz Capitulino
-> { "execute": "eject", "arguments": { "device": "ide1-cd0" } }
104 82a56f0d Luiz Capitulino
<- { "return": {} }
105 82a56f0d Luiz Capitulino
106 82a56f0d Luiz Capitulino
Note: The "force" argument defaults to false.
107 82a56f0d Luiz Capitulino
108 82a56f0d Luiz Capitulino
EQMP
109 82a56f0d Luiz Capitulino
110 82a56f0d Luiz Capitulino
    {
111 82a56f0d Luiz Capitulino
        .name       = "change",
112 82a56f0d Luiz Capitulino
        .args_type  = "device:B,target:F,arg:s?",
113 333a96ec Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_change,
114 82a56f0d Luiz Capitulino
    },
115 82a56f0d Luiz Capitulino
116 82a56f0d Luiz Capitulino
SQMP
117 82a56f0d Luiz Capitulino
change
118 82a56f0d Luiz Capitulino
------
119 82a56f0d Luiz Capitulino
120 82a56f0d Luiz Capitulino
Change a removable medium or VNC configuration.
121 82a56f0d Luiz Capitulino
122 82a56f0d Luiz Capitulino
Arguments:
123 82a56f0d Luiz Capitulino
124 82a56f0d Luiz Capitulino
- "device": device name (json-string)
125 82a56f0d Luiz Capitulino
- "target": filename or item (json-string)
126 82a56f0d Luiz Capitulino
- "arg": additional argument (json-string, optional)
127 82a56f0d Luiz Capitulino
128 82a56f0d Luiz Capitulino
Examples:
129 82a56f0d Luiz Capitulino
130 82a56f0d Luiz Capitulino
1. Change a removable medium
131 82a56f0d Luiz Capitulino
132 82a56f0d Luiz Capitulino
-> { "execute": "change",
133 82a56f0d Luiz Capitulino
             "arguments": { "device": "ide1-cd0",
134 82a56f0d Luiz Capitulino
                            "target": "/srv/images/Fedora-12-x86_64-DVD.iso" } }
135 82a56f0d Luiz Capitulino
<- { "return": {} }
136 82a56f0d Luiz Capitulino
137 82a56f0d Luiz Capitulino
2. Change VNC password
138 82a56f0d Luiz Capitulino
139 82a56f0d Luiz Capitulino
-> { "execute": "change",
140 82a56f0d Luiz Capitulino
             "arguments": { "device": "vnc", "target": "password",
141 82a56f0d Luiz Capitulino
                            "arg": "foobar1" } }
142 82a56f0d Luiz Capitulino
<- { "return": {} }
143 82a56f0d Luiz Capitulino
144 82a56f0d Luiz Capitulino
EQMP
145 82a56f0d Luiz Capitulino
146 82a56f0d Luiz Capitulino
    {
147 82a56f0d Luiz Capitulino
        .name       = "screendump",
148 82a56f0d Luiz Capitulino
        .args_type  = "filename:F",
149 82a56f0d Luiz Capitulino
        .params     = "filename",
150 82a56f0d Luiz Capitulino
        .help       = "save screen into PPM image 'filename'",
151 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
152 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_screen_dump,
153 82a56f0d Luiz Capitulino
    },
154 82a56f0d Luiz Capitulino
155 82a56f0d Luiz Capitulino
SQMP
156 82a56f0d Luiz Capitulino
screendump
157 82a56f0d Luiz Capitulino
----------
158 82a56f0d Luiz Capitulino
159 82a56f0d Luiz Capitulino
Save screen into PPM image.
160 82a56f0d Luiz Capitulino
161 82a56f0d Luiz Capitulino
Arguments:
162 82a56f0d Luiz Capitulino
163 82a56f0d Luiz Capitulino
- "filename": file path (json-string)
164 82a56f0d Luiz Capitulino
165 82a56f0d Luiz Capitulino
Example:
166 82a56f0d Luiz Capitulino
167 82a56f0d Luiz Capitulino
-> { "execute": "screendump", "arguments": { "filename": "/tmp/image" } }
168 82a56f0d Luiz Capitulino
<- { "return": {} }
169 82a56f0d Luiz Capitulino
170 82a56f0d Luiz Capitulino
EQMP
171 82a56f0d Luiz Capitulino
172 82a56f0d Luiz Capitulino
    {
173 82a56f0d Luiz Capitulino
        .name       = "stop",
174 82a56f0d Luiz Capitulino
        .args_type  = "",
175 5f158f21 Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_stop,
176 82a56f0d Luiz Capitulino
    },
177 82a56f0d Luiz Capitulino
178 82a56f0d Luiz Capitulino
SQMP
179 82a56f0d Luiz Capitulino
stop
180 82a56f0d Luiz Capitulino
----
181 82a56f0d Luiz Capitulino
182 82a56f0d Luiz Capitulino
Stop the emulator.
183 82a56f0d Luiz Capitulino
184 82a56f0d Luiz Capitulino
Arguments: None.
185 82a56f0d Luiz Capitulino
186 82a56f0d Luiz Capitulino
Example:
187 82a56f0d Luiz Capitulino
188 82a56f0d Luiz Capitulino
-> { "execute": "stop" }
189 82a56f0d Luiz Capitulino
<- { "return": {} }
190 82a56f0d Luiz Capitulino
191 82a56f0d Luiz Capitulino
EQMP
192 82a56f0d Luiz Capitulino
193 82a56f0d Luiz Capitulino
    {
194 82a56f0d Luiz Capitulino
        .name       = "cont",
195 82a56f0d Luiz Capitulino
        .args_type  = "",
196 e42e818b Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_cont,
197 82a56f0d Luiz Capitulino
    },
198 82a56f0d Luiz Capitulino
199 82a56f0d Luiz Capitulino
SQMP
200 82a56f0d Luiz Capitulino
cont
201 82a56f0d Luiz Capitulino
----
202 82a56f0d Luiz Capitulino
203 82a56f0d Luiz Capitulino
Resume emulation.
204 82a56f0d Luiz Capitulino
205 82a56f0d Luiz Capitulino
Arguments: None.
206 82a56f0d Luiz Capitulino
207 82a56f0d Luiz Capitulino
Example:
208 82a56f0d Luiz Capitulino
209 82a56f0d Luiz Capitulino
-> { "execute": "cont" }
210 82a56f0d Luiz Capitulino
<- { "return": {} }
211 9b9df25a Gerd Hoffmann
212 9b9df25a Gerd Hoffmann
EQMP
213 9b9df25a Gerd Hoffmann
214 9b9df25a Gerd Hoffmann
    {
215 9b9df25a Gerd Hoffmann
        .name       = "system_wakeup",
216 9b9df25a Gerd Hoffmann
        .args_type  = "",
217 9b9df25a Gerd Hoffmann
        .mhandler.cmd_new = qmp_marshal_input_system_wakeup,
218 9b9df25a Gerd Hoffmann
    },
219 9b9df25a Gerd Hoffmann
220 9b9df25a Gerd Hoffmann
SQMP
221 9b9df25a Gerd Hoffmann
system_wakeup
222 9b9df25a Gerd Hoffmann
-------------
223 9b9df25a Gerd Hoffmann
224 9b9df25a Gerd Hoffmann
Wakeup guest from suspend.
225 9b9df25a Gerd Hoffmann
226 9b9df25a Gerd Hoffmann
Arguments: None.
227 9b9df25a Gerd Hoffmann
228 9b9df25a Gerd Hoffmann
Example:
229 9b9df25a Gerd Hoffmann
230 9b9df25a Gerd Hoffmann
-> { "execute": "system_wakeup" }
231 9b9df25a Gerd Hoffmann
<- { "return": {} }
232 82a56f0d Luiz Capitulino
233 82a56f0d Luiz Capitulino
EQMP
234 82a56f0d Luiz Capitulino
235 82a56f0d Luiz Capitulino
    {
236 82a56f0d Luiz Capitulino
        .name       = "system_reset",
237 82a56f0d Luiz Capitulino
        .args_type  = "",
238 38d22653 Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_system_reset,
239 82a56f0d Luiz Capitulino
    },
240 82a56f0d Luiz Capitulino
241 82a56f0d Luiz Capitulino
SQMP
242 82a56f0d Luiz Capitulino
system_reset
243 82a56f0d Luiz Capitulino
------------
244 82a56f0d Luiz Capitulino
245 82a56f0d Luiz Capitulino
Reset the system.
246 82a56f0d Luiz Capitulino
247 82a56f0d Luiz Capitulino
Arguments: None.
248 82a56f0d Luiz Capitulino
249 82a56f0d Luiz Capitulino
Example:
250 82a56f0d Luiz Capitulino
251 82a56f0d Luiz Capitulino
-> { "execute": "system_reset" }
252 82a56f0d Luiz Capitulino
<- { "return": {} }
253 82a56f0d Luiz Capitulino
254 82a56f0d Luiz Capitulino
EQMP
255 82a56f0d Luiz Capitulino
256 82a56f0d Luiz Capitulino
    {
257 82a56f0d Luiz Capitulino
        .name       = "system_powerdown",
258 82a56f0d Luiz Capitulino
        .args_type  = "",
259 22e1bb9c Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_system_powerdown,
260 82a56f0d Luiz Capitulino
    },
261 82a56f0d Luiz Capitulino
262 82a56f0d Luiz Capitulino
SQMP
263 82a56f0d Luiz Capitulino
system_powerdown
264 82a56f0d Luiz Capitulino
----------------
265 82a56f0d Luiz Capitulino
266 82a56f0d Luiz Capitulino
Send system power down event.
267 82a56f0d Luiz Capitulino
268 82a56f0d Luiz Capitulino
Arguments: None.
269 82a56f0d Luiz Capitulino
270 82a56f0d Luiz Capitulino
Example:
271 82a56f0d Luiz Capitulino
272 82a56f0d Luiz Capitulino
-> { "execute": "system_powerdown" }
273 82a56f0d Luiz Capitulino
<- { "return": {} }
274 82a56f0d Luiz Capitulino
275 82a56f0d Luiz Capitulino
EQMP
276 82a56f0d Luiz Capitulino
277 82a56f0d Luiz Capitulino
    {
278 82a56f0d Luiz Capitulino
        .name       = "device_add",
279 82a56f0d Luiz Capitulino
        .args_type  = "device:O",
280 82a56f0d Luiz Capitulino
        .params     = "driver[,prop=value][,...]",
281 82a56f0d Luiz Capitulino
        .help       = "add device, like -device on the command line",
282 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
283 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_device_add,
284 82a56f0d Luiz Capitulino
    },
285 82a56f0d Luiz Capitulino
286 82a56f0d Luiz Capitulino
SQMP
287 82a56f0d Luiz Capitulino
device_add
288 82a56f0d Luiz Capitulino
----------
289 82a56f0d Luiz Capitulino
290 82a56f0d Luiz Capitulino
Add a device.
291 82a56f0d Luiz Capitulino
292 82a56f0d Luiz Capitulino
Arguments:
293 82a56f0d Luiz Capitulino
294 82a56f0d Luiz Capitulino
- "driver": the name of the new device's driver (json-string)
295 82a56f0d Luiz Capitulino
- "bus": the device's parent bus (device tree path, json-string, optional)
296 82a56f0d Luiz Capitulino
- "id": the device's ID, must be unique (json-string)
297 82a56f0d Luiz Capitulino
- device properties
298 82a56f0d Luiz Capitulino
299 82a56f0d Luiz Capitulino
Example:
300 82a56f0d Luiz Capitulino
301 82a56f0d Luiz Capitulino
-> { "execute": "device_add", "arguments": { "driver": "e1000", "id": "net1" } }
302 82a56f0d Luiz Capitulino
<- { "return": {} }
303 82a56f0d Luiz Capitulino
304 82a56f0d Luiz Capitulino
Notes:
305 82a56f0d Luiz Capitulino
306 82a56f0d Luiz Capitulino
(1) For detailed information about this command, please refer to the
307 82a56f0d Luiz Capitulino
    'docs/qdev-device-use.txt' file.
308 82a56f0d Luiz Capitulino
309 82a56f0d Luiz Capitulino
(2) It's possible to list device properties by running QEMU with the
310 82a56f0d Luiz Capitulino
    "-device DEVICE,\?" command-line argument, where DEVICE is the device's name
311 82a56f0d Luiz Capitulino
312 82a56f0d Luiz Capitulino
EQMP
313 82a56f0d Luiz Capitulino
314 82a56f0d Luiz Capitulino
    {
315 82a56f0d Luiz Capitulino
        .name       = "device_del",
316 82a56f0d Luiz Capitulino
        .args_type  = "id:s",
317 a15fef21 Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_device_del,
318 82a56f0d Luiz Capitulino
    },
319 82a56f0d Luiz Capitulino
320 82a56f0d Luiz Capitulino
SQMP
321 82a56f0d Luiz Capitulino
device_del
322 82a56f0d Luiz Capitulino
----------
323 82a56f0d Luiz Capitulino
324 82a56f0d Luiz Capitulino
Remove a device.
325 82a56f0d Luiz Capitulino
326 82a56f0d Luiz Capitulino
Arguments:
327 82a56f0d Luiz Capitulino
328 82a56f0d Luiz Capitulino
- "id": the device's ID (json-string)
329 82a56f0d Luiz Capitulino
330 82a56f0d Luiz Capitulino
Example:
331 82a56f0d Luiz Capitulino
332 82a56f0d Luiz Capitulino
-> { "execute": "device_del", "arguments": { "id": "net1" } }
333 82a56f0d Luiz Capitulino
<- { "return": {} }
334 82a56f0d Luiz Capitulino
335 82a56f0d Luiz Capitulino
EQMP
336 82a56f0d Luiz Capitulino
337 82a56f0d Luiz Capitulino
    {
338 82a56f0d Luiz Capitulino
        .name       = "cpu",
339 82a56f0d Luiz Capitulino
        .args_type  = "index:i",
340 755f1968 Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_cpu,
341 82a56f0d Luiz Capitulino
    },
342 82a56f0d Luiz Capitulino
343 82a56f0d Luiz Capitulino
SQMP
344 82a56f0d Luiz Capitulino
cpu
345 82a56f0d Luiz Capitulino
---
346 82a56f0d Luiz Capitulino
347 82a56f0d Luiz Capitulino
Set the default CPU.
348 82a56f0d Luiz Capitulino
349 82a56f0d Luiz Capitulino
Arguments:
350 82a56f0d Luiz Capitulino
351 82a56f0d Luiz Capitulino
- "index": the CPU's index (json-int)
352 82a56f0d Luiz Capitulino
353 82a56f0d Luiz Capitulino
Example:
354 82a56f0d Luiz Capitulino
355 82a56f0d Luiz Capitulino
-> { "execute": "cpu", "arguments": { "index": 0 } }
356 82a56f0d Luiz Capitulino
<- { "return": {} }
357 82a56f0d Luiz Capitulino
358 82a56f0d Luiz Capitulino
Note: CPUs' indexes are obtained with the 'query-cpus' command.
359 82a56f0d Luiz Capitulino
360 82a56f0d Luiz Capitulino
EQMP
361 82a56f0d Luiz Capitulino
362 82a56f0d Luiz Capitulino
    {
363 82a56f0d Luiz Capitulino
        .name       = "memsave",
364 0cfd6a9a Luiz Capitulino
        .args_type  = "val:l,size:i,filename:s,cpu:i?",
365 0cfd6a9a Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_memsave,
366 82a56f0d Luiz Capitulino
    },
367 82a56f0d Luiz Capitulino
368 82a56f0d Luiz Capitulino
SQMP
369 82a56f0d Luiz Capitulino
memsave
370 82a56f0d Luiz Capitulino
-------
371 82a56f0d Luiz Capitulino
372 82a56f0d Luiz Capitulino
Save to disk virtual memory dump starting at 'val' of size 'size'.
373 82a56f0d Luiz Capitulino
374 82a56f0d Luiz Capitulino
Arguments:
375 82a56f0d Luiz Capitulino
376 82a56f0d Luiz Capitulino
- "val": the starting address (json-int)
377 82a56f0d Luiz Capitulino
- "size": the memory size, in bytes (json-int)
378 82a56f0d Luiz Capitulino
- "filename": file path (json-string)
379 0cfd6a9a Luiz Capitulino
- "cpu": virtual CPU index (json-int, optional)
380 82a56f0d Luiz Capitulino
381 82a56f0d Luiz Capitulino
Example:
382 82a56f0d Luiz Capitulino
383 82a56f0d Luiz Capitulino
-> { "execute": "memsave",
384 82a56f0d Luiz Capitulino
             "arguments": { "val": 10,
385 82a56f0d Luiz Capitulino
                            "size": 100,
386 82a56f0d Luiz Capitulino
                            "filename": "/tmp/virtual-mem-dump" } }
387 82a56f0d Luiz Capitulino
<- { "return": {} }
388 82a56f0d Luiz Capitulino
389 82a56f0d Luiz Capitulino
EQMP
390 82a56f0d Luiz Capitulino
391 82a56f0d Luiz Capitulino
    {
392 82a56f0d Luiz Capitulino
        .name       = "pmemsave",
393 82a56f0d Luiz Capitulino
        .args_type  = "val:l,size:i,filename:s",
394 6d3962bf Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_pmemsave,
395 82a56f0d Luiz Capitulino
    },
396 82a56f0d Luiz Capitulino
397 82a56f0d Luiz Capitulino
SQMP
398 82a56f0d Luiz Capitulino
pmemsave
399 82a56f0d Luiz Capitulino
--------
400 82a56f0d Luiz Capitulino
401 82a56f0d Luiz Capitulino
Save to disk physical memory dump starting at 'val' of size 'size'.
402 82a56f0d Luiz Capitulino
403 82a56f0d Luiz Capitulino
Arguments:
404 82a56f0d Luiz Capitulino
405 82a56f0d Luiz Capitulino
- "val": the starting address (json-int)
406 82a56f0d Luiz Capitulino
- "size": the memory size, in bytes (json-int)
407 82a56f0d Luiz Capitulino
- "filename": file path (json-string)
408 82a56f0d Luiz Capitulino
409 82a56f0d Luiz Capitulino
Example:
410 82a56f0d Luiz Capitulino
411 82a56f0d Luiz Capitulino
-> { "execute": "pmemsave",
412 82a56f0d Luiz Capitulino
             "arguments": { "val": 10,
413 82a56f0d Luiz Capitulino
                            "size": 100,
414 82a56f0d Luiz Capitulino
                            "filename": "/tmp/physical-mem-dump" } }
415 82a56f0d Luiz Capitulino
<- { "return": {} }
416 82a56f0d Luiz Capitulino
417 82a56f0d Luiz Capitulino
EQMP
418 82a56f0d Luiz Capitulino
419 82a56f0d Luiz Capitulino
    {
420 a4046664 Lai Jiangshan
        .name       = "inject-nmi",
421 a4046664 Lai Jiangshan
        .args_type  = "",
422 ab49ab5c Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_inject_nmi,
423 a4046664 Lai Jiangshan
    },
424 a4046664 Lai Jiangshan
425 a4046664 Lai Jiangshan
SQMP
426 a4046664 Lai Jiangshan
inject-nmi
427 a4046664 Lai Jiangshan
----------
428 a4046664 Lai Jiangshan
429 a4046664 Lai Jiangshan
Inject an NMI on guest's CPUs.
430 a4046664 Lai Jiangshan
431 a4046664 Lai Jiangshan
Arguments: None.
432 a4046664 Lai Jiangshan
433 a4046664 Lai Jiangshan
Example:
434 a4046664 Lai Jiangshan
435 a4046664 Lai Jiangshan
-> { "execute": "inject-nmi" }
436 a4046664 Lai Jiangshan
<- { "return": {} }
437 a4046664 Lai Jiangshan
438 a4046664 Lai Jiangshan
Note: inject-nmi is only supported for x86 guest currently, it will
439 a4046664 Lai Jiangshan
      returns "Unsupported" error for non-x86 guest.
440 a4046664 Lai Jiangshan
441 a4046664 Lai Jiangshan
EQMP
442 a4046664 Lai Jiangshan
443 a4046664 Lai Jiangshan
    {
444 a7ae8355 Stefano Stabellini
        .name       = "xen-save-devices-state",
445 a7ae8355 Stefano Stabellini
        .args_type  = "filename:F",
446 a7ae8355 Stefano Stabellini
    .mhandler.cmd_new = qmp_marshal_input_xen_save_devices_state,
447 a7ae8355 Stefano Stabellini
    },
448 a7ae8355 Stefano Stabellini
449 a7ae8355 Stefano Stabellini
SQMP
450 a7ae8355 Stefano Stabellini
xen-save-devices-state
451 a7ae8355 Stefano Stabellini
-------
452 a7ae8355 Stefano Stabellini
453 a7ae8355 Stefano Stabellini
Save the state of all devices to file. The RAM and the block devices
454 a7ae8355 Stefano Stabellini
of the VM are not saved by this command.
455 a7ae8355 Stefano Stabellini
456 a7ae8355 Stefano Stabellini
Arguments:
457 a7ae8355 Stefano Stabellini
458 a7ae8355 Stefano Stabellini
- "filename": the file to save the state of the devices to as binary
459 a7ae8355 Stefano Stabellini
data. See xen-save-devices-state.txt for a description of the binary
460 a7ae8355 Stefano Stabellini
format.
461 a7ae8355 Stefano Stabellini
462 a7ae8355 Stefano Stabellini
Example:
463 a7ae8355 Stefano Stabellini
464 a7ae8355 Stefano Stabellini
-> { "execute": "xen-save-devices-state",
465 a7ae8355 Stefano Stabellini
     "arguments": { "filename": "/tmp/save" } }
466 a7ae8355 Stefano Stabellini
<- { "return": {} }
467 a7ae8355 Stefano Stabellini
468 a7ae8355 Stefano Stabellini
EQMP
469 a7ae8355 Stefano Stabellini
470 a7ae8355 Stefano Stabellini
    {
471 82a56f0d Luiz Capitulino
        .name       = "migrate",
472 82a56f0d Luiz Capitulino
        .args_type  = "detach:-d,blk:-b,inc:-i,uri:s",
473 e1c37d0e Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_migrate,
474 82a56f0d Luiz Capitulino
    },
475 82a56f0d Luiz Capitulino
476 82a56f0d Luiz Capitulino
SQMP
477 82a56f0d Luiz Capitulino
migrate
478 82a56f0d Luiz Capitulino
-------
479 82a56f0d Luiz Capitulino
480 82a56f0d Luiz Capitulino
Migrate to URI.
481 82a56f0d Luiz Capitulino
482 82a56f0d Luiz Capitulino
Arguments:
483 82a56f0d Luiz Capitulino
484 82a56f0d Luiz Capitulino
- "blk": block migration, full disk copy (json-bool, optional)
485 82a56f0d Luiz Capitulino
- "inc": incremental disk copy (json-bool, optional)
486 82a56f0d Luiz Capitulino
- "uri": Destination URI (json-string)
487 82a56f0d Luiz Capitulino
488 82a56f0d Luiz Capitulino
Example:
489 82a56f0d Luiz Capitulino
490 82a56f0d Luiz Capitulino
-> { "execute": "migrate", "arguments": { "uri": "tcp:0:4446" } }
491 82a56f0d Luiz Capitulino
<- { "return": {} }
492 82a56f0d Luiz Capitulino
493 82a56f0d Luiz Capitulino
Notes:
494 82a56f0d Luiz Capitulino
495 82a56f0d Luiz Capitulino
(1) The 'query-migrate' command should be used to check migration's progress
496 82a56f0d Luiz Capitulino
    and final result (this information is provided by the 'status' member)
497 82a56f0d Luiz Capitulino
(2) All boolean arguments default to false
498 82a56f0d Luiz Capitulino
(3) The user Monitor's "detach" argument is invalid in QMP and should not
499 82a56f0d Luiz Capitulino
    be used
500 82a56f0d Luiz Capitulino
501 82a56f0d Luiz Capitulino
EQMP
502 82a56f0d Luiz Capitulino
503 82a56f0d Luiz Capitulino
    {
504 82a56f0d Luiz Capitulino
        .name       = "migrate_cancel",
505 82a56f0d Luiz Capitulino
        .args_type  = "",
506 6cdedb07 Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_migrate_cancel,
507 82a56f0d Luiz Capitulino
    },
508 82a56f0d Luiz Capitulino
509 82a56f0d Luiz Capitulino
SQMP
510 82a56f0d Luiz Capitulino
migrate_cancel
511 82a56f0d Luiz Capitulino
--------------
512 82a56f0d Luiz Capitulino
513 82a56f0d Luiz Capitulino
Cancel the current migration.
514 82a56f0d Luiz Capitulino
515 82a56f0d Luiz Capitulino
Arguments: None.
516 82a56f0d Luiz Capitulino
517 82a56f0d Luiz Capitulino
Example:
518 82a56f0d Luiz Capitulino
519 82a56f0d Luiz Capitulino
-> { "execute": "migrate_cancel" }
520 82a56f0d Luiz Capitulino
<- { "return": {} }
521 82a56f0d Luiz Capitulino
522 82a56f0d Luiz Capitulino
EQMP
523 82a56f0d Luiz Capitulino
524 82a56f0d Luiz Capitulino
    {
525 82a56f0d Luiz Capitulino
        .name       = "migrate_set_speed",
526 3a019b6e Wen Congyang
        .args_type  = "value:o",
527 3dc85383 Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_migrate_set_speed,
528 82a56f0d Luiz Capitulino
    },
529 82a56f0d Luiz Capitulino
530 82a56f0d Luiz Capitulino
SQMP
531 ff73edf5 Jes Sorensen
migrate_set_speed
532 ff73edf5 Jes Sorensen
-----------------
533 e866e239 Gerd Hoffmann
534 ff73edf5 Jes Sorensen
Set maximum speed for migrations.
535 e866e239 Gerd Hoffmann
536 e866e239 Gerd Hoffmann
Arguments:
537 e866e239 Gerd Hoffmann
538 ff73edf5 Jes Sorensen
- "value": maximum speed, in bytes per second (json-int)
539 e866e239 Gerd Hoffmann
540 e866e239 Gerd Hoffmann
Example:
541 e866e239 Gerd Hoffmann
542 ff73edf5 Jes Sorensen
-> { "execute": "migrate_set_speed", "arguments": { "value": 1024 } }
543 e866e239 Gerd Hoffmann
<- { "return": {} }
544 e866e239 Gerd Hoffmann
545 e866e239 Gerd Hoffmann
EQMP
546 e866e239 Gerd Hoffmann
547 e866e239 Gerd Hoffmann
    {
548 ff73edf5 Jes Sorensen
        .name       = "migrate_set_downtime",
549 ff73edf5 Jes Sorensen
        .args_type  = "value:T",
550 4f0a993b Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_migrate_set_downtime,
551 e866e239 Gerd Hoffmann
    },
552 e866e239 Gerd Hoffmann
553 e866e239 Gerd Hoffmann
SQMP
554 ff73edf5 Jes Sorensen
migrate_set_downtime
555 ff73edf5 Jes Sorensen
--------------------
556 82a56f0d Luiz Capitulino
557 ff73edf5 Jes Sorensen
Set maximum tolerated downtime (in seconds) for migrations.
558 82a56f0d Luiz Capitulino
559 82a56f0d Luiz Capitulino
Arguments:
560 82a56f0d Luiz Capitulino
561 ff73edf5 Jes Sorensen
- "value": maximum downtime (json-number)
562 82a56f0d Luiz Capitulino
563 82a56f0d Luiz Capitulino
Example:
564 82a56f0d Luiz Capitulino
565 ff73edf5 Jes Sorensen
-> { "execute": "migrate_set_downtime", "arguments": { "value": 0.1 } }
566 82a56f0d Luiz Capitulino
<- { "return": {} }
567 82a56f0d Luiz Capitulino
568 82a56f0d Luiz Capitulino
EQMP
569 82a56f0d Luiz Capitulino
570 82a56f0d Luiz Capitulino
    {
571 ff73edf5 Jes Sorensen
        .name       = "client_migrate_info",
572 ff73edf5 Jes Sorensen
        .args_type  = "protocol:s,hostname:s,port:i?,tls-port:i?,cert-subject:s?",
573 ff73edf5 Jes Sorensen
        .params     = "protocol hostname port tls-port cert-subject",
574 ff73edf5 Jes Sorensen
        .help       = "send migration info to spice/vnc client",
575 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
576 edc5cb1a Yonit Halperin
        .mhandler.cmd_async = client_migrate_info,
577 edc5cb1a Yonit Halperin
        .flags      = MONITOR_CMD_ASYNC,
578 82a56f0d Luiz Capitulino
    },
579 82a56f0d Luiz Capitulino
580 82a56f0d Luiz Capitulino
SQMP
581 ff73edf5 Jes Sorensen
client_migrate_info
582 ff73edf5 Jes Sorensen
------------------
583 82a56f0d Luiz Capitulino
584 ff73edf5 Jes Sorensen
Set the spice/vnc connection info for the migration target.  The spice/vnc
585 ff73edf5 Jes Sorensen
server will ask the spice/vnc client to automatically reconnect using the
586 ff73edf5 Jes Sorensen
new parameters (if specified) once the vm migration finished successfully.
587 82a56f0d Luiz Capitulino
588 82a56f0d Luiz Capitulino
Arguments:
589 82a56f0d Luiz Capitulino
590 ff73edf5 Jes Sorensen
- "protocol":     protocol: "spice" or "vnc" (json-string)
591 ff73edf5 Jes Sorensen
- "hostname":     migration target hostname (json-string)
592 ff73edf5 Jes Sorensen
- "port":         spice/vnc tcp port for plaintext channels (json-int, optional)
593 ff73edf5 Jes Sorensen
- "tls-port":     spice tcp port for tls-secured channels (json-int, optional)
594 ff73edf5 Jes Sorensen
- "cert-subject": server certificate subject (json-string, optional)
595 82a56f0d Luiz Capitulino
596 82a56f0d Luiz Capitulino
Example:
597 82a56f0d Luiz Capitulino
598 ff73edf5 Jes Sorensen
-> { "execute": "client_migrate_info",
599 ff73edf5 Jes Sorensen
     "arguments": { "protocol": "spice",
600 ff73edf5 Jes Sorensen
                    "hostname": "virt42.lab.kraxel.org",
601 ff73edf5 Jes Sorensen
                    "port": 1234 } }
602 82a56f0d Luiz Capitulino
<- { "return": {} }
603 82a56f0d Luiz Capitulino
604 82a56f0d Luiz Capitulino
EQMP
605 82a56f0d Luiz Capitulino
606 82a56f0d Luiz Capitulino
    {
607 783e9b48 Wen Congyang
        .name       = "dump-guest-memory",
608 783e9b48 Wen Congyang
        .args_type  = "paging:b,protocol:s,begin:i?,end:i?",
609 783e9b48 Wen Congyang
        .params     = "-p protocol [begin] [length]",
610 783e9b48 Wen Congyang
        .help       = "dump guest memory to file",
611 783e9b48 Wen Congyang
        .user_print = monitor_user_noop,
612 783e9b48 Wen Congyang
        .mhandler.cmd_new = qmp_marshal_input_dump_guest_memory,
613 783e9b48 Wen Congyang
    },
614 783e9b48 Wen Congyang
615 783e9b48 Wen Congyang
SQMP
616 783e9b48 Wen Congyang
dump
617 783e9b48 Wen Congyang
618 783e9b48 Wen Congyang
619 783e9b48 Wen Congyang
Dump guest memory to file. The file can be processed with crash or gdb.
620 783e9b48 Wen Congyang
621 783e9b48 Wen Congyang
Arguments:
622 783e9b48 Wen Congyang
623 783e9b48 Wen Congyang
- "paging": do paging to get guest's memory mapping (json-bool)
624 783e9b48 Wen Congyang
- "protocol": destination file(started with "file:") or destination file
625 783e9b48 Wen Congyang
              descriptor (started with "fd:") (json-string)
626 783e9b48 Wen Congyang
- "begin": the starting physical address. It's optional, and should be specified
627 783e9b48 Wen Congyang
           with length together (json-int)
628 783e9b48 Wen Congyang
- "length": the memory size, in bytes. It's optional, and should be specified
629 783e9b48 Wen Congyang
            with begin together (json-int)
630 783e9b48 Wen Congyang
631 783e9b48 Wen Congyang
Example:
632 783e9b48 Wen Congyang
633 783e9b48 Wen Congyang
-> { "execute": "dump-guest-memory", "arguments": { "protocol": "fd:dump" } }
634 783e9b48 Wen Congyang
<- { "return": {} }
635 783e9b48 Wen Congyang
636 783e9b48 Wen Congyang
Notes:
637 783e9b48 Wen Congyang
638 783e9b48 Wen Congyang
(1) All boolean arguments default to false
639 783e9b48 Wen Congyang
640 783e9b48 Wen Congyang
EQMP
641 783e9b48 Wen Congyang
642 783e9b48 Wen Congyang
    {
643 82a56f0d Luiz Capitulino
        .name       = "netdev_add",
644 82a56f0d Luiz Capitulino
        .args_type  = "netdev:O",
645 928059a3 Luiz Capitulino
        .mhandler.cmd_new = qmp_netdev_add,
646 82a56f0d Luiz Capitulino
    },
647 82a56f0d Luiz Capitulino
648 82a56f0d Luiz Capitulino
SQMP
649 82a56f0d Luiz Capitulino
netdev_add
650 82a56f0d Luiz Capitulino
----------
651 82a56f0d Luiz Capitulino
652 82a56f0d Luiz Capitulino
Add host network device.
653 82a56f0d Luiz Capitulino
654 82a56f0d Luiz Capitulino
Arguments:
655 82a56f0d Luiz Capitulino
656 82a56f0d Luiz Capitulino
- "type": the device type, "tap", "user", ... (json-string)
657 82a56f0d Luiz Capitulino
- "id": the device's ID, must be unique (json-string)
658 82a56f0d Luiz Capitulino
- device options
659 82a56f0d Luiz Capitulino
660 82a56f0d Luiz Capitulino
Example:
661 82a56f0d Luiz Capitulino
662 82a56f0d Luiz Capitulino
-> { "execute": "netdev_add", "arguments": { "type": "user", "id": "netdev1" } }
663 82a56f0d Luiz Capitulino
<- { "return": {} }
664 82a56f0d Luiz Capitulino
665 82a56f0d Luiz Capitulino
Note: The supported device options are the same ones supported by the '-net'
666 82a56f0d Luiz Capitulino
      command-line argument, which are listed in the '-help' output or QEMU's
667 82a56f0d Luiz Capitulino
      manual
668 82a56f0d Luiz Capitulino
669 82a56f0d Luiz Capitulino
EQMP
670 82a56f0d Luiz Capitulino
671 82a56f0d Luiz Capitulino
    {
672 82a56f0d Luiz Capitulino
        .name       = "netdev_del",
673 82a56f0d Luiz Capitulino
        .args_type  = "id:s",
674 5f964155 Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_netdev_del,
675 82a56f0d Luiz Capitulino
    },
676 82a56f0d Luiz Capitulino
677 82a56f0d Luiz Capitulino
SQMP
678 82a56f0d Luiz Capitulino
netdev_del
679 82a56f0d Luiz Capitulino
----------
680 82a56f0d Luiz Capitulino
681 82a56f0d Luiz Capitulino
Remove host network device.
682 82a56f0d Luiz Capitulino
683 82a56f0d Luiz Capitulino
Arguments:
684 82a56f0d Luiz Capitulino
685 82a56f0d Luiz Capitulino
- "id": the device's ID, must be unique (json-string)
686 82a56f0d Luiz Capitulino
687 82a56f0d Luiz Capitulino
Example:
688 82a56f0d Luiz Capitulino
689 82a56f0d Luiz Capitulino
-> { "execute": "netdev_del", "arguments": { "id": "netdev1" } }
690 82a56f0d Luiz Capitulino
<- { "return": {} }
691 82a56f0d Luiz Capitulino
692 6d4a2b3a Christoph Hellwig
693 6d4a2b3a Christoph Hellwig
EQMP
694 6d4a2b3a Christoph Hellwig
695 6d4a2b3a Christoph Hellwig
    {
696 6d4a2b3a Christoph Hellwig
        .name       = "block_resize",
697 6d4a2b3a Christoph Hellwig
        .args_type  = "device:B,size:o",
698 5e7caacb Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_block_resize,
699 6d4a2b3a Christoph Hellwig
    },
700 6d4a2b3a Christoph Hellwig
701 6d4a2b3a Christoph Hellwig
SQMP
702 6d4a2b3a Christoph Hellwig
block_resize
703 6d4a2b3a Christoph Hellwig
------------
704 6d4a2b3a Christoph Hellwig
705 6d4a2b3a Christoph Hellwig
Resize a block image while a guest is running.
706 6d4a2b3a Christoph Hellwig
707 6d4a2b3a Christoph Hellwig
Arguments:
708 6d4a2b3a Christoph Hellwig
709 6d4a2b3a Christoph Hellwig
- "device": the device's ID, must be unique (json-string)
710 6d4a2b3a Christoph Hellwig
- "size": new size
711 6d4a2b3a Christoph Hellwig
712 6d4a2b3a Christoph Hellwig
Example:
713 6d4a2b3a Christoph Hellwig
714 6d4a2b3a Christoph Hellwig
-> { "execute": "block_resize", "arguments": { "device": "scratch", "size": 1073741824 } }
715 6d4a2b3a Christoph Hellwig
<- { "return": {} }
716 6d4a2b3a Christoph Hellwig
717 82a56f0d Luiz Capitulino
EQMP
718 82a56f0d Luiz Capitulino
719 82a56f0d Luiz Capitulino
    {
720 db58f9c0 Stefan Hajnoczi
        .name       = "block-stream",
721 c83c66c3 Stefan Hajnoczi
        .args_type  = "device:B,base:s?,speed:o?",
722 12bd451f Stefan Hajnoczi
        .mhandler.cmd_new = qmp_marshal_input_block_stream,
723 12bd451f Stefan Hajnoczi
    },
724 12bd451f Stefan Hajnoczi
725 12bd451f Stefan Hajnoczi
    {
726 db58f9c0 Stefan Hajnoczi
        .name       = "block-job-set-speed",
727 882ec7ce Stefan Hajnoczi
        .args_type  = "device:B,speed:o",
728 2d47c6e9 Stefan Hajnoczi
        .mhandler.cmd_new = qmp_marshal_input_block_job_set_speed,
729 2d47c6e9 Stefan Hajnoczi
    },
730 2d47c6e9 Stefan Hajnoczi
731 2d47c6e9 Stefan Hajnoczi
    {
732 db58f9c0 Stefan Hajnoczi
        .name       = "block-job-cancel",
733 370521a1 Stefan Hajnoczi
        .args_type  = "device:B",
734 370521a1 Stefan Hajnoczi
        .mhandler.cmd_new = qmp_marshal_input_block_job_cancel,
735 370521a1 Stefan Hajnoczi
    },
736 c186402c Jeff Cody
    {
737 52e7c241 Paolo Bonzini
        .name       = "transaction",
738 b9f8978c Paolo Bonzini
        .args_type  = "actions:q",
739 52e7c241 Paolo Bonzini
        .mhandler.cmd_new = qmp_marshal_input_transaction,
740 c186402c Jeff Cody
    },
741 c186402c Jeff Cody
742 c186402c Jeff Cody
SQMP
743 52e7c241 Paolo Bonzini
transaction
744 52e7c241 Paolo Bonzini
-----------
745 c186402c Jeff Cody
746 52e7c241 Paolo Bonzini
Atomically operate on one or more block devices.  The only supported
747 52e7c241 Paolo Bonzini
operation for now is snapshotting.  If there is any failure performing
748 52e7c241 Paolo Bonzini
any of the operations, all snapshots for the group are abandoned, and
749 52e7c241 Paolo Bonzini
the original disks pre-snapshot attempt are used.
750 c186402c Jeff Cody
751 52e7c241 Paolo Bonzini
A list of dictionaries is accepted, that contains the actions to be performed.
752 52e7c241 Paolo Bonzini
For snapshots this is the device, the file to use for the new snapshot,
753 52e7c241 Paolo Bonzini
and the format.  The default format, if not specified, is qcow2.
754 c186402c Jeff Cody
755 bc8b094f Paolo Bonzini
Each new snapshot defaults to being created by QEMU (wiping any
756 bc8b094f Paolo Bonzini
contents if the file already exists), but it is also possible to reuse
757 bc8b094f Paolo Bonzini
an externally-created file.  In the latter case, you should ensure that
758 bc8b094f Paolo Bonzini
the new image file has the same contents as the current one; QEMU cannot
759 bc8b094f Paolo Bonzini
perform any meaningful check.  Typically this is achieved by using the
760 bc8b094f Paolo Bonzini
current image file as the backing file for the new image.
761 bc8b094f Paolo Bonzini
762 c186402c Jeff Cody
Arguments:
763 c186402c Jeff Cody
764 52e7c241 Paolo Bonzini
actions array:
765 52e7c241 Paolo Bonzini
    - "type": the operation to perform.  The only supported
766 52e7c241 Paolo Bonzini
      value is "blockdev-snapshot-sync". (json-string)
767 52e7c241 Paolo Bonzini
    - "data": a dictionary.  The contents depend on the value
768 52e7c241 Paolo Bonzini
      of "type".  When "type" is "blockdev-snapshot-sync":
769 52e7c241 Paolo Bonzini
      - "device": device name to snapshot (json-string)
770 52e7c241 Paolo Bonzini
      - "snapshot-file": name of new image file (json-string)
771 52e7c241 Paolo Bonzini
      - "format": format of new image (json-string, optional)
772 bc8b094f Paolo Bonzini
      - "mode": whether and how QEMU should create the snapshot file
773 bc8b094f Paolo Bonzini
        (NewImageMode, optional, default "absolute-paths")
774 c186402c Jeff Cody
775 c186402c Jeff Cody
Example:
776 c186402c Jeff Cody
777 52e7c241 Paolo Bonzini
-> { "execute": "transaction",
778 52e7c241 Paolo Bonzini
     "arguments": { "actions": [
779 52e7c241 Paolo Bonzini
         { 'type': 'blockdev-snapshot-sync', 'data' : { "device": "ide-hd0",
780 52e7c241 Paolo Bonzini
                                         "snapshot-file": "/some/place/my-image",
781 52e7c241 Paolo Bonzini
                                         "format": "qcow2" } },
782 52e7c241 Paolo Bonzini
         { 'type': 'blockdev-snapshot-sync', 'data' : { "device": "ide-hd1",
783 52e7c241 Paolo Bonzini
                                         "snapshot-file": "/some/place/my-image2",
784 bc8b094f Paolo Bonzini
                                         "mode": "existing",
785 52e7c241 Paolo Bonzini
                                         "format": "qcow2" } } ] } }
786 c186402c Jeff Cody
<- { "return": {} }
787 c186402c Jeff Cody
788 c186402c Jeff Cody
EQMP
789 370521a1 Stefan Hajnoczi
790 370521a1 Stefan Hajnoczi
    {
791 d967b2f1 Jes Sorensen
        .name       = "blockdev-snapshot-sync",
792 31155b9b Paolo Bonzini
        .args_type  = "device:B,snapshot-file:s,format:s?,mode:s?",
793 6106e249 Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_blockdev_snapshot_sync,
794 d967b2f1 Jes Sorensen
    },
795 d967b2f1 Jes Sorensen
796 d967b2f1 Jes Sorensen
SQMP
797 d967b2f1 Jes Sorensen
blockdev-snapshot-sync
798 d967b2f1 Jes Sorensen
----------------------
799 d967b2f1 Jes Sorensen
800 d967b2f1 Jes Sorensen
Synchronous snapshot of a block device. snapshot-file specifies the
801 d967b2f1 Jes Sorensen
target of the new image. If the file exists, or if it is a device, the
802 d967b2f1 Jes Sorensen
snapshot will be created in the existing file/device. If does not
803 d967b2f1 Jes Sorensen
exist, a new file will be created. format specifies the format of the
804 d967b2f1 Jes Sorensen
snapshot image, default is qcow2.
805 d967b2f1 Jes Sorensen
806 d967b2f1 Jes Sorensen
Arguments:
807 d967b2f1 Jes Sorensen
808 d967b2f1 Jes Sorensen
- "device": device name to snapshot (json-string)
809 d967b2f1 Jes Sorensen
- "snapshot-file": name of new image file (json-string)
810 6cc2a415 Paolo Bonzini
- "mode": whether and how QEMU should create the snapshot file
811 6cc2a415 Paolo Bonzini
  (NewImageMode, optional, default "absolute-paths")
812 d967b2f1 Jes Sorensen
- "format": format of new image (json-string, optional)
813 d967b2f1 Jes Sorensen
814 d967b2f1 Jes Sorensen
Example:
815 d967b2f1 Jes Sorensen
816 7f3850c2 Luiz Capitulino
-> { "execute": "blockdev-snapshot-sync", "arguments": { "device": "ide-hd0",
817 7f3850c2 Luiz Capitulino
                                                         "snapshot-file":
818 7f3850c2 Luiz Capitulino
                                                        "/some/place/my-image",
819 7f3850c2 Luiz Capitulino
                                                        "format": "qcow2" } }
820 d967b2f1 Jes Sorensen
<- { "return": {} }
821 d967b2f1 Jes Sorensen
822 d967b2f1 Jes Sorensen
EQMP
823 d967b2f1 Jes Sorensen
824 d967b2f1 Jes Sorensen
    {
825 82a56f0d Luiz Capitulino
        .name       = "balloon",
826 82a56f0d Luiz Capitulino
        .args_type  = "value:M",
827 d72f3264 Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_balloon,
828 82a56f0d Luiz Capitulino
    },
829 82a56f0d Luiz Capitulino
830 82a56f0d Luiz Capitulino
SQMP
831 82a56f0d Luiz Capitulino
balloon
832 82a56f0d Luiz Capitulino
-------
833 82a56f0d Luiz Capitulino
834 82a56f0d Luiz Capitulino
Request VM to change its memory allocation (in bytes).
835 82a56f0d Luiz Capitulino
836 82a56f0d Luiz Capitulino
Arguments:
837 82a56f0d Luiz Capitulino
838 82a56f0d Luiz Capitulino
- "value": New memory allocation (json-int)
839 82a56f0d Luiz Capitulino
840 82a56f0d Luiz Capitulino
Example:
841 82a56f0d Luiz Capitulino
842 82a56f0d Luiz Capitulino
-> { "execute": "balloon", "arguments": { "value": 536870912 } }
843 82a56f0d Luiz Capitulino
<- { "return": {} }
844 82a56f0d Luiz Capitulino
845 82a56f0d Luiz Capitulino
EQMP
846 82a56f0d Luiz Capitulino
847 82a56f0d Luiz Capitulino
    {
848 82a56f0d Luiz Capitulino
        .name       = "set_link",
849 82a56f0d Luiz Capitulino
        .args_type  = "name:s,up:b",
850 4b37156c Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_set_link,
851 82a56f0d Luiz Capitulino
    },
852 82a56f0d Luiz Capitulino
853 82a56f0d Luiz Capitulino
SQMP
854 82a56f0d Luiz Capitulino
set_link
855 82a56f0d Luiz Capitulino
--------
856 82a56f0d Luiz Capitulino
857 82a56f0d Luiz Capitulino
Change the link status of a network adapter.
858 82a56f0d Luiz Capitulino
859 82a56f0d Luiz Capitulino
Arguments:
860 82a56f0d Luiz Capitulino
861 82a56f0d Luiz Capitulino
- "name": network device name (json-string)
862 82a56f0d Luiz Capitulino
- "up": status is up (json-bool)
863 82a56f0d Luiz Capitulino
864 82a56f0d Luiz Capitulino
Example:
865 82a56f0d Luiz Capitulino
866 82a56f0d Luiz Capitulino
-> { "execute": "set_link", "arguments": { "name": "e1000.0", "up": false } }
867 82a56f0d Luiz Capitulino
<- { "return": {} }
868 82a56f0d Luiz Capitulino
869 82a56f0d Luiz Capitulino
EQMP
870 82a56f0d Luiz Capitulino
871 82a56f0d Luiz Capitulino
    {
872 82a56f0d Luiz Capitulino
        .name       = "getfd",
873 82a56f0d Luiz Capitulino
        .args_type  = "fdname:s",
874 82a56f0d Luiz Capitulino
        .params     = "getfd name",
875 82a56f0d Luiz Capitulino
        .help       = "receive a file descriptor via SCM rights and assign it a name",
876 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
877 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_getfd,
878 82a56f0d Luiz Capitulino
    },
879 82a56f0d Luiz Capitulino
880 82a56f0d Luiz Capitulino
SQMP
881 82a56f0d Luiz Capitulino
getfd
882 82a56f0d Luiz Capitulino
-----
883 82a56f0d Luiz Capitulino
884 82a56f0d Luiz Capitulino
Receive a file descriptor via SCM rights and assign it a name.
885 82a56f0d Luiz Capitulino
886 82a56f0d Luiz Capitulino
Arguments:
887 82a56f0d Luiz Capitulino
888 82a56f0d Luiz Capitulino
- "fdname": file descriptor name (json-string)
889 82a56f0d Luiz Capitulino
890 82a56f0d Luiz Capitulino
Example:
891 82a56f0d Luiz Capitulino
892 82a56f0d Luiz Capitulino
-> { "execute": "getfd", "arguments": { "fdname": "fd1" } }
893 82a56f0d Luiz Capitulino
<- { "return": {} }
894 82a56f0d Luiz Capitulino
895 82a56f0d Luiz Capitulino
EQMP
896 82a56f0d Luiz Capitulino
897 82a56f0d Luiz Capitulino
    {
898 82a56f0d Luiz Capitulino
        .name       = "closefd",
899 82a56f0d Luiz Capitulino
        .args_type  = "fdname:s",
900 82a56f0d Luiz Capitulino
        .params     = "closefd name",
901 82a56f0d Luiz Capitulino
        .help       = "close a file descriptor previously passed via SCM rights",
902 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
903 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_closefd,
904 82a56f0d Luiz Capitulino
    },
905 82a56f0d Luiz Capitulino
906 82a56f0d Luiz Capitulino
SQMP
907 82a56f0d Luiz Capitulino
closefd
908 82a56f0d Luiz Capitulino
-------
909 82a56f0d Luiz Capitulino
910 82a56f0d Luiz Capitulino
Close a file descriptor previously passed via SCM rights.
911 82a56f0d Luiz Capitulino
912 82a56f0d Luiz Capitulino
Arguments:
913 82a56f0d Luiz Capitulino
914 82a56f0d Luiz Capitulino
- "fdname": file descriptor name (json-string)
915 82a56f0d Luiz Capitulino
916 82a56f0d Luiz Capitulino
Example:
917 82a56f0d Luiz Capitulino
918 82a56f0d Luiz Capitulino
-> { "execute": "closefd", "arguments": { "fdname": "fd1" } }
919 82a56f0d Luiz Capitulino
<- { "return": {} }
920 82a56f0d Luiz Capitulino
921 82a56f0d Luiz Capitulino
EQMP
922 82a56f0d Luiz Capitulino
923 82a56f0d Luiz Capitulino
    {
924 82a56f0d Luiz Capitulino
        .name       = "block_passwd",
925 82a56f0d Luiz Capitulino
        .args_type  = "device:B,password:s",
926 a4dea8a9 Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_block_passwd,
927 82a56f0d Luiz Capitulino
    },
928 82a56f0d Luiz Capitulino
929 82a56f0d Luiz Capitulino
SQMP
930 82a56f0d Luiz Capitulino
block_passwd
931 82a56f0d Luiz Capitulino
------------
932 82a56f0d Luiz Capitulino
933 82a56f0d Luiz Capitulino
Set the password of encrypted block devices.
934 82a56f0d Luiz Capitulino
935 82a56f0d Luiz Capitulino
Arguments:
936 82a56f0d Luiz Capitulino
937 82a56f0d Luiz Capitulino
- "device": device name (json-string)
938 82a56f0d Luiz Capitulino
- "password": password (json-string)
939 82a56f0d Luiz Capitulino
940 82a56f0d Luiz Capitulino
Example:
941 82a56f0d Luiz Capitulino
942 82a56f0d Luiz Capitulino
-> { "execute": "block_passwd", "arguments": { "device": "ide0-hd0",
943 82a56f0d Luiz Capitulino
                                               "password": "12345" } }
944 82a56f0d Luiz Capitulino
<- { "return": {} }
945 82a56f0d Luiz Capitulino
946 82a56f0d Luiz Capitulino
EQMP
947 82a56f0d Luiz Capitulino
948 82a56f0d Luiz Capitulino
    {
949 727f005e Zhi Yong Wu
        .name       = "block_set_io_throttle",
950 727f005e Zhi Yong Wu
        .args_type  = "device:B,bps:l,bps_rd:l,bps_wr:l,iops:l,iops_rd:l,iops_wr:l",
951 80047da5 Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_block_set_io_throttle,
952 727f005e Zhi Yong Wu
    },
953 727f005e Zhi Yong Wu
954 727f005e Zhi Yong Wu
SQMP
955 727f005e Zhi Yong Wu
block_set_io_throttle
956 727f005e Zhi Yong Wu
------------
957 727f005e Zhi Yong Wu
958 727f005e Zhi Yong Wu
Change I/O throttle limits for a block drive.
959 727f005e Zhi Yong Wu
960 727f005e Zhi Yong Wu
Arguments:
961 727f005e Zhi Yong Wu
962 727f005e Zhi Yong Wu
- "device": device name (json-string)
963 727f005e Zhi Yong Wu
- "bps":  total throughput limit in bytes per second(json-int)
964 727f005e Zhi Yong Wu
- "bps_rd":  read throughput limit in bytes per second(json-int)
965 727f005e Zhi Yong Wu
- "bps_wr":  read throughput limit in bytes per second(json-int)
966 727f005e Zhi Yong Wu
- "iops":  total I/O operations per second(json-int)
967 727f005e Zhi Yong Wu
- "iops_rd":  read I/O operations per second(json-int)
968 727f005e Zhi Yong Wu
- "iops_wr":  write I/O operations per second(json-int)
969 727f005e Zhi Yong Wu
970 727f005e Zhi Yong Wu
Example:
971 727f005e Zhi Yong Wu
972 727f005e Zhi Yong Wu
-> { "execute": "block_set_io_throttle", "arguments": { "device": "virtio0",
973 727f005e Zhi Yong Wu
                                               "bps": "1000000",
974 727f005e Zhi Yong Wu
                                               "bps_rd": "0",
975 727f005e Zhi Yong Wu
                                               "bps_wr": "0",
976 727f005e Zhi Yong Wu
                                               "iops": "0",
977 727f005e Zhi Yong Wu
                                               "iops_rd": "0",
978 727f005e Zhi Yong Wu
                                               "iops_wr": "0" } }
979 727f005e Zhi Yong Wu
<- { "return": {} }
980 727f005e Zhi Yong Wu
981 727f005e Zhi Yong Wu
EQMP
982 727f005e Zhi Yong Wu
983 727f005e Zhi Yong Wu
    {
984 7572150c Gerd Hoffmann
        .name       = "set_password",
985 7572150c Gerd Hoffmann
        .args_type  = "protocol:s,password:s,connected:s?",
986 fbf796fd Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_set_password,
987 7572150c Gerd Hoffmann
    },
988 7572150c Gerd Hoffmann
989 7572150c Gerd Hoffmann
SQMP
990 7572150c Gerd Hoffmann
set_password
991 7572150c Gerd Hoffmann
------------
992 7572150c Gerd Hoffmann
993 7572150c Gerd Hoffmann
Set the password for vnc/spice protocols.
994 7572150c Gerd Hoffmann
995 7572150c Gerd Hoffmann
Arguments:
996 7572150c Gerd Hoffmann
997 7572150c Gerd Hoffmann
- "protocol": protocol name (json-string)
998 7572150c Gerd Hoffmann
- "password": password (json-string)
999 7572150c Gerd Hoffmann
- "connected": [ keep | disconnect | fail ] (josn-string, optional)
1000 7572150c Gerd Hoffmann
1001 7572150c Gerd Hoffmann
Example:
1002 7572150c Gerd Hoffmann
1003 7572150c Gerd Hoffmann
-> { "execute": "set_password", "arguments": { "protocol": "vnc",
1004 7572150c Gerd Hoffmann
                                               "password": "secret" } }
1005 7572150c Gerd Hoffmann
<- { "return": {} }
1006 7572150c Gerd Hoffmann
1007 7572150c Gerd Hoffmann
EQMP
1008 7572150c Gerd Hoffmann
1009 7572150c Gerd Hoffmann
    {
1010 7572150c Gerd Hoffmann
        .name       = "expire_password",
1011 7572150c Gerd Hoffmann
        .args_type  = "protocol:s,time:s",
1012 9ad5372d Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_expire_password,
1013 7572150c Gerd Hoffmann
    },
1014 7572150c Gerd Hoffmann
1015 7572150c Gerd Hoffmann
SQMP
1016 7572150c Gerd Hoffmann
expire_password
1017 7572150c Gerd Hoffmann
---------------
1018 7572150c Gerd Hoffmann
1019 7572150c Gerd Hoffmann
Set the password expire time for vnc/spice protocols.
1020 7572150c Gerd Hoffmann
1021 7572150c Gerd Hoffmann
Arguments:
1022 7572150c Gerd Hoffmann
1023 7572150c Gerd Hoffmann
- "protocol": protocol name (json-string)
1024 7572150c Gerd Hoffmann
- "time": [ now | never | +secs | secs ] (json-string)
1025 7572150c Gerd Hoffmann
1026 7572150c Gerd Hoffmann
Example:
1027 7572150c Gerd Hoffmann
1028 7572150c Gerd Hoffmann
-> { "execute": "expire_password", "arguments": { "protocol": "vnc",
1029 7572150c Gerd Hoffmann
                                                  "time": "+60" } }
1030 7572150c Gerd Hoffmann
<- { "return": {} }
1031 7572150c Gerd Hoffmann
1032 7572150c Gerd Hoffmann
EQMP
1033 7572150c Gerd Hoffmann
1034 7572150c Gerd Hoffmann
    {
1035 13661089 Daniel P. Berrange
        .name       = "add_client",
1036 f1f5f407 Daniel P. Berrange
        .args_type  = "protocol:s,fdname:s,skipauth:b?,tls:b?",
1037 f1f5f407 Daniel P. Berrange
        .params     = "protocol fdname skipauth tls",
1038 13661089 Daniel P. Berrange
        .help       = "add a graphics client",
1039 13661089 Daniel P. Berrange
        .user_print = monitor_user_noop,
1040 13661089 Daniel P. Berrange
        .mhandler.cmd_new = add_graphics_client,
1041 13661089 Daniel P. Berrange
    },
1042 13661089 Daniel P. Berrange
1043 13661089 Daniel P. Berrange
SQMP
1044 13661089 Daniel P. Berrange
add_client
1045 13661089 Daniel P. Berrange
----------
1046 13661089 Daniel P. Berrange
1047 13661089 Daniel P. Berrange
Add a graphics client
1048 13661089 Daniel P. Berrange
1049 13661089 Daniel P. Berrange
Arguments:
1050 13661089 Daniel P. Berrange
1051 13661089 Daniel P. Berrange
- "protocol": protocol name (json-string)
1052 13661089 Daniel P. Berrange
- "fdname": file descriptor name (json-string)
1053 f1f5f407 Daniel P. Berrange
- "skipauth": whether to skip authentication (json-bool, optional)
1054 f1f5f407 Daniel P. Berrange
- "tls": whether to perform TLS (json-bool, optional)
1055 13661089 Daniel P. Berrange
1056 13661089 Daniel P. Berrange
Example:
1057 13661089 Daniel P. Berrange
1058 13661089 Daniel P. Berrange
-> { "execute": "add_client", "arguments": { "protocol": "vnc",
1059 13661089 Daniel P. Berrange
                                             "fdname": "myclient" } }
1060 13661089 Daniel P. Berrange
<- { "return": {} }
1061 13661089 Daniel P. Berrange
1062 13661089 Daniel P. Berrange
EQMP
1063 13661089 Daniel P. Berrange
    {
1064 82a56f0d Luiz Capitulino
        .name       = "qmp_capabilities",
1065 82a56f0d Luiz Capitulino
        .args_type  = "",
1066 82a56f0d Luiz Capitulino
        .params     = "",
1067 82a56f0d Luiz Capitulino
        .help       = "enable QMP capabilities",
1068 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
1069 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_qmp_capabilities,
1070 82a56f0d Luiz Capitulino
    },
1071 82a56f0d Luiz Capitulino
1072 82a56f0d Luiz Capitulino
SQMP
1073 82a56f0d Luiz Capitulino
qmp_capabilities
1074 82a56f0d Luiz Capitulino
----------------
1075 82a56f0d Luiz Capitulino
1076 82a56f0d Luiz Capitulino
Enable QMP capabilities.
1077 82a56f0d Luiz Capitulino
1078 82a56f0d Luiz Capitulino
Arguments: None.
1079 82a56f0d Luiz Capitulino
1080 82a56f0d Luiz Capitulino
Example:
1081 82a56f0d Luiz Capitulino
1082 82a56f0d Luiz Capitulino
-> { "execute": "qmp_capabilities" }
1083 82a56f0d Luiz Capitulino
<- { "return": {} }
1084 82a56f0d Luiz Capitulino
1085 82a56f0d Luiz Capitulino
Note: This command must be issued before issuing any other command.
1086 82a56f0d Luiz Capitulino
1087 0268d97c Luiz Capitulino
EQMP
1088 0268d97c Luiz Capitulino
1089 0268d97c Luiz Capitulino
    {
1090 0268d97c Luiz Capitulino
        .name       = "human-monitor-command",
1091 0268d97c Luiz Capitulino
        .args_type  = "command-line:s,cpu-index:i?",
1092 d51a67b4 Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_human_monitor_command,
1093 0268d97c Luiz Capitulino
    },
1094 0268d97c Luiz Capitulino
1095 0268d97c Luiz Capitulino
SQMP
1096 0268d97c Luiz Capitulino
human-monitor-command
1097 0268d97c Luiz Capitulino
---------------------
1098 0268d97c Luiz Capitulino
1099 0268d97c Luiz Capitulino
Execute a Human Monitor command.
1100 0268d97c Luiz Capitulino
1101 0268d97c Luiz Capitulino
Arguments: 
1102 0268d97c Luiz Capitulino
1103 0268d97c Luiz Capitulino
- command-line: the command name and its arguments, just like the
1104 0268d97c Luiz Capitulino
                Human Monitor's shell (json-string)
1105 0268d97c Luiz Capitulino
- cpu-index: select the CPU number to be used by commands which access CPU
1106 0268d97c Luiz Capitulino
             data, like 'info registers'. The Monitor selects CPU 0 if this
1107 0268d97c Luiz Capitulino
             argument is not provided (json-int, optional)
1108 0268d97c Luiz Capitulino
1109 0268d97c Luiz Capitulino
Example:
1110 0268d97c Luiz Capitulino
1111 0268d97c Luiz Capitulino
-> { "execute": "human-monitor-command", "arguments": { "command-line": "info kvm" } }
1112 0268d97c Luiz Capitulino
<- { "return": "kvm support: enabled\r\n" }
1113 0268d97c Luiz Capitulino
1114 0268d97c Luiz Capitulino
Notes:
1115 0268d97c Luiz Capitulino
1116 0268d97c Luiz Capitulino
(1) The Human Monitor is NOT an stable interface, this means that command
1117 0268d97c Luiz Capitulino
    names, arguments and responses can change or be removed at ANY time.
1118 0268d97c Luiz Capitulino
    Applications that rely on long term stability guarantees should NOT
1119 0268d97c Luiz Capitulino
    use this command
1120 0268d97c Luiz Capitulino
1121 0268d97c Luiz Capitulino
(2) Limitations:
1122 0268d97c Luiz Capitulino
1123 0268d97c Luiz Capitulino
    o This command is stateless, this means that commands that depend
1124 0268d97c Luiz Capitulino
      on state information (such as getfd) might not work
1125 0268d97c Luiz Capitulino
1126 0268d97c Luiz Capitulino
    o Commands that prompt the user for data (eg. 'cont' when the block
1127 0268d97c Luiz Capitulino
      device is encrypted) don't currently work
1128 0268d97c Luiz Capitulino
1129 82a56f0d Luiz Capitulino
3. Query Commands
1130 82a56f0d Luiz Capitulino
=================
1131 82a56f0d Luiz Capitulino
1132 82a56f0d Luiz Capitulino
HXCOMM Each query command below is inside a SQMP/EQMP section, do NOT change
1133 82a56f0d Luiz Capitulino
HXCOMM this! We will possibly move query commands definitions inside those
1134 82a56f0d Luiz Capitulino
HXCOMM sections, just like regular commands.
1135 82a56f0d Luiz Capitulino
1136 82a56f0d Luiz Capitulino
EQMP
1137 82a56f0d Luiz Capitulino
1138 82a56f0d Luiz Capitulino
SQMP
1139 82a56f0d Luiz Capitulino
query-version
1140 82a56f0d Luiz Capitulino
-------------
1141 82a56f0d Luiz Capitulino
1142 82a56f0d Luiz Capitulino
Show QEMU version.
1143 82a56f0d Luiz Capitulino
1144 82a56f0d Luiz Capitulino
Return a json-object with the following information:
1145 82a56f0d Luiz Capitulino
1146 82a56f0d Luiz Capitulino
- "qemu": A json-object containing three integer values:
1147 82a56f0d Luiz Capitulino
    - "major": QEMU's major version (json-int)
1148 82a56f0d Luiz Capitulino
    - "minor": QEMU's minor version (json-int)
1149 82a56f0d Luiz Capitulino
    - "micro": QEMU's micro version (json-int)
1150 82a56f0d Luiz Capitulino
- "package": package's version (json-string)
1151 82a56f0d Luiz Capitulino
1152 82a56f0d Luiz Capitulino
Example:
1153 82a56f0d Luiz Capitulino
1154 82a56f0d Luiz Capitulino
-> { "execute": "query-version" }
1155 82a56f0d Luiz Capitulino
<- {
1156 82a56f0d Luiz Capitulino
      "return":{
1157 82a56f0d Luiz Capitulino
         "qemu":{
1158 82a56f0d Luiz Capitulino
            "major":0,
1159 82a56f0d Luiz Capitulino
            "minor":11,
1160 82a56f0d Luiz Capitulino
            "micro":5
1161 82a56f0d Luiz Capitulino
         },
1162 82a56f0d Luiz Capitulino
         "package":""
1163 82a56f0d Luiz Capitulino
      }
1164 82a56f0d Luiz Capitulino
   }
1165 82a56f0d Luiz Capitulino
1166 82a56f0d Luiz Capitulino
EQMP
1167 82a56f0d Luiz Capitulino
1168 b9c15f16 Luiz Capitulino
    {
1169 b9c15f16 Luiz Capitulino
        .name       = "query-version",
1170 b9c15f16 Luiz Capitulino
        .args_type  = "",
1171 b9c15f16 Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_query_version,
1172 b9c15f16 Luiz Capitulino
    },
1173 b9c15f16 Luiz Capitulino
1174 82a56f0d Luiz Capitulino
SQMP
1175 82a56f0d Luiz Capitulino
query-commands
1176 82a56f0d Luiz Capitulino
--------------
1177 82a56f0d Luiz Capitulino
1178 82a56f0d Luiz Capitulino
List QMP available commands.
1179 82a56f0d Luiz Capitulino
1180 82a56f0d Luiz Capitulino
Each command is represented by a json-object, the returned value is a json-array
1181 82a56f0d Luiz Capitulino
of all commands.
1182 82a56f0d Luiz Capitulino
1183 82a56f0d Luiz Capitulino
Each json-object contain:
1184 82a56f0d Luiz Capitulino
1185 82a56f0d Luiz Capitulino
- "name": command's name (json-string)
1186 82a56f0d Luiz Capitulino
1187 82a56f0d Luiz Capitulino
Example:
1188 82a56f0d Luiz Capitulino
1189 82a56f0d Luiz Capitulino
-> { "execute": "query-commands" }
1190 82a56f0d Luiz Capitulino
<- {
1191 82a56f0d Luiz Capitulino
      "return":[
1192 82a56f0d Luiz Capitulino
         {
1193 82a56f0d Luiz Capitulino
            "name":"query-balloon"
1194 82a56f0d Luiz Capitulino
         },
1195 82a56f0d Luiz Capitulino
         {
1196 82a56f0d Luiz Capitulino
            "name":"system_powerdown"
1197 82a56f0d Luiz Capitulino
         }
1198 82a56f0d Luiz Capitulino
      ]
1199 82a56f0d Luiz Capitulino
   }
1200 82a56f0d Luiz Capitulino
1201 82a56f0d Luiz Capitulino
Note: This example has been shortened as the real response is too long.
1202 82a56f0d Luiz Capitulino
1203 82a56f0d Luiz Capitulino
EQMP
1204 82a56f0d Luiz Capitulino
1205 aa9b79bc Luiz Capitulino
    {
1206 aa9b79bc Luiz Capitulino
        .name       = "query-commands",
1207 aa9b79bc Luiz Capitulino
        .args_type  = "",
1208 aa9b79bc Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_query_commands,
1209 aa9b79bc Luiz Capitulino
    },
1210 aa9b79bc Luiz Capitulino
1211 82a56f0d Luiz Capitulino
SQMP
1212 4860853d Daniel P. Berrange
query-events
1213 4860853d Daniel P. Berrange
--------------
1214 4860853d Daniel P. Berrange
1215 4860853d Daniel P. Berrange
List QMP available events.
1216 4860853d Daniel P. Berrange
1217 4860853d Daniel P. Berrange
Each event is represented by a json-object, the returned value is a json-array
1218 4860853d Daniel P. Berrange
of all events.
1219 4860853d Daniel P. Berrange
1220 4860853d Daniel P. Berrange
Each json-object contains:
1221 4860853d Daniel P. Berrange
1222 4860853d Daniel P. Berrange
- "name": event's name (json-string)
1223 4860853d Daniel P. Berrange
1224 4860853d Daniel P. Berrange
Example:
1225 4860853d Daniel P. Berrange
1226 4860853d Daniel P. Berrange
-> { "execute": "query-events" }
1227 4860853d Daniel P. Berrange
<- {
1228 4860853d Daniel P. Berrange
      "return":[
1229 4860853d Daniel P. Berrange
         {
1230 4860853d Daniel P. Berrange
            "name":"SHUTDOWN"
1231 4860853d Daniel P. Berrange
         },
1232 4860853d Daniel P. Berrange
         {
1233 4860853d Daniel P. Berrange
            "name":"RESET"
1234 4860853d Daniel P. Berrange
         }
1235 4860853d Daniel P. Berrange
      ]
1236 4860853d Daniel P. Berrange
   }
1237 4860853d Daniel P. Berrange
1238 4860853d Daniel P. Berrange
Note: This example has been shortened as the real response is too long.
1239 4860853d Daniel P. Berrange
1240 4860853d Daniel P. Berrange
EQMP
1241 4860853d Daniel P. Berrange
1242 4860853d Daniel P. Berrange
    {
1243 4860853d Daniel P. Berrange
        .name       = "query-events",
1244 4860853d Daniel P. Berrange
        .args_type  = "",
1245 4860853d Daniel P. Berrange
        .mhandler.cmd_new = qmp_marshal_input_query_events,
1246 4860853d Daniel P. Berrange
    },
1247 4860853d Daniel P. Berrange
1248 4860853d Daniel P. Berrange
SQMP
1249 82a56f0d Luiz Capitulino
query-chardev
1250 82a56f0d Luiz Capitulino
-------------
1251 82a56f0d Luiz Capitulino
1252 82a56f0d Luiz Capitulino
Each device is represented by a json-object. The returned value is a json-array
1253 82a56f0d Luiz Capitulino
of all devices.
1254 82a56f0d Luiz Capitulino
1255 82a56f0d Luiz Capitulino
Each json-object contain the following:
1256 82a56f0d Luiz Capitulino
1257 82a56f0d Luiz Capitulino
- "label": device's label (json-string)
1258 82a56f0d Luiz Capitulino
- "filename": device's file (json-string)
1259 82a56f0d Luiz Capitulino
1260 82a56f0d Luiz Capitulino
Example:
1261 82a56f0d Luiz Capitulino
1262 82a56f0d Luiz Capitulino
-> { "execute": "query-chardev" }
1263 82a56f0d Luiz Capitulino
<- {
1264 82a56f0d Luiz Capitulino
      "return":[
1265 82a56f0d Luiz Capitulino
         {
1266 82a56f0d Luiz Capitulino
            "label":"monitor",
1267 82a56f0d Luiz Capitulino
            "filename":"stdio"
1268 82a56f0d Luiz Capitulino
         },
1269 82a56f0d Luiz Capitulino
         {
1270 82a56f0d Luiz Capitulino
            "label":"serial0",
1271 82a56f0d Luiz Capitulino
            "filename":"vc"
1272 82a56f0d Luiz Capitulino
         }
1273 82a56f0d Luiz Capitulino
      ]
1274 82a56f0d Luiz Capitulino
   }
1275 82a56f0d Luiz Capitulino
1276 82a56f0d Luiz Capitulino
EQMP
1277 82a56f0d Luiz Capitulino
1278 c5a415a0 Luiz Capitulino
    {
1279 c5a415a0 Luiz Capitulino
        .name       = "query-chardev",
1280 c5a415a0 Luiz Capitulino
        .args_type  = "",
1281 c5a415a0 Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_query_chardev,
1282 c5a415a0 Luiz Capitulino
    },
1283 c5a415a0 Luiz Capitulino
1284 82a56f0d Luiz Capitulino
SQMP
1285 82a56f0d Luiz Capitulino
query-block
1286 82a56f0d Luiz Capitulino
-----------
1287 82a56f0d Luiz Capitulino
1288 82a56f0d Luiz Capitulino
Show the block devices.
1289 82a56f0d Luiz Capitulino
1290 82a56f0d Luiz Capitulino
Each block device information is stored in a json-object and the returned value
1291 82a56f0d Luiz Capitulino
is a json-array of all devices.
1292 82a56f0d Luiz Capitulino
1293 82a56f0d Luiz Capitulino
Each json-object contain the following:
1294 82a56f0d Luiz Capitulino
1295 82a56f0d Luiz Capitulino
- "device": device name (json-string)
1296 82a56f0d Luiz Capitulino
- "type": device type (json-string)
1297 d8aeeb31 Markus Armbruster
         - deprecated, retained for backward compatibility
1298 d8aeeb31 Markus Armbruster
         - Possible values: "unknown"
1299 82a56f0d Luiz Capitulino
- "removable": true if the device is removable, false otherwise (json-bool)
1300 82a56f0d Luiz Capitulino
- "locked": true if the device is locked, false otherwise (json-bool)
1301 e4def80b Markus Armbruster
- "tray-open": only present if removable, true if the device has a tray,
1302 e4def80b Markus Armbruster
               and it is open (json-bool)
1303 82a56f0d Luiz Capitulino
- "inserted": only present if the device is inserted, it is a json-object
1304 82a56f0d Luiz Capitulino
   containing the following:
1305 82a56f0d Luiz Capitulino
         - "file": device file name (json-string)
1306 82a56f0d Luiz Capitulino
         - "ro": true if read-only, false otherwise (json-bool)
1307 82a56f0d Luiz Capitulino
         - "drv": driver format name (json-string)
1308 82a56f0d Luiz Capitulino
             - Possible values: "blkdebug", "bochs", "cloop", "cow", "dmg",
1309 82a56f0d Luiz Capitulino
                                "file", "file", "ftp", "ftps", "host_cdrom",
1310 82a56f0d Luiz Capitulino
                                "host_device", "host_floppy", "http", "https",
1311 82a56f0d Luiz Capitulino
                                "nbd", "parallels", "qcow", "qcow2", "raw",
1312 82a56f0d Luiz Capitulino
                                "tftp", "vdi", "vmdk", "vpc", "vvfat"
1313 82a56f0d Luiz Capitulino
         - "backing_file": backing file name (json-string, optional)
1314 82a56f0d Luiz Capitulino
         - "encrypted": true if encrypted, false otherwise (json-bool)
1315 727f005e Zhi Yong Wu
         - "bps": limit total bytes per second (json-int)
1316 727f005e Zhi Yong Wu
         - "bps_rd": limit read bytes per second (json-int)
1317 727f005e Zhi Yong Wu
         - "bps_wr": limit write bytes per second (json-int)
1318 727f005e Zhi Yong Wu
         - "iops": limit total I/O operations per second (json-int)
1319 727f005e Zhi Yong Wu
         - "iops_rd": limit read operations per second (json-int)
1320 727f005e Zhi Yong Wu
         - "iops_wr": limit write operations per second (json-int)
1321 727f005e Zhi Yong Wu
1322 f04ef601 Luiz Capitulino
- "io-status": I/O operation status, only present if the device supports it
1323 f04ef601 Luiz Capitulino
               and the VM is configured to stop on errors. It's always reset
1324 f04ef601 Luiz Capitulino
               to "ok" when the "cont" command is issued (json_string, optional)
1325 f04ef601 Luiz Capitulino
             - Possible values: "ok", "failed", "nospace"
1326 82a56f0d Luiz Capitulino
1327 82a56f0d Luiz Capitulino
Example:
1328 82a56f0d Luiz Capitulino
1329 82a56f0d Luiz Capitulino
-> { "execute": "query-block" }
1330 82a56f0d Luiz Capitulino
<- {
1331 82a56f0d Luiz Capitulino
      "return":[
1332 82a56f0d Luiz Capitulino
         {
1333 f04ef601 Luiz Capitulino
            "io-status": "ok",
1334 82a56f0d Luiz Capitulino
            "device":"ide0-hd0",
1335 82a56f0d Luiz Capitulino
            "locked":false,
1336 82a56f0d Luiz Capitulino
            "removable":false,
1337 82a56f0d Luiz Capitulino
            "inserted":{
1338 82a56f0d Luiz Capitulino
               "ro":false,
1339 82a56f0d Luiz Capitulino
               "drv":"qcow2",
1340 82a56f0d Luiz Capitulino
               "encrypted":false,
1341 727f005e Zhi Yong Wu
               "file":"disks/test.img",
1342 727f005e Zhi Yong Wu
               "bps":1000000,
1343 727f005e Zhi Yong Wu
               "bps_rd":0,
1344 727f005e Zhi Yong Wu
               "bps_wr":0,
1345 727f005e Zhi Yong Wu
               "iops":1000000,
1346 727f005e Zhi Yong Wu
               "iops_rd":0,
1347 727f005e Zhi Yong Wu
               "iops_wr":0,
1348 82a56f0d Luiz Capitulino
            },
1349 d8aeeb31 Markus Armbruster
            "type":"unknown"
1350 82a56f0d Luiz Capitulino
         },
1351 82a56f0d Luiz Capitulino
         {
1352 f04ef601 Luiz Capitulino
            "io-status": "ok",
1353 82a56f0d Luiz Capitulino
            "device":"ide1-cd0",
1354 82a56f0d Luiz Capitulino
            "locked":false,
1355 82a56f0d Luiz Capitulino
            "removable":true,
1356 d8aeeb31 Markus Armbruster
            "type":"unknown"
1357 82a56f0d Luiz Capitulino
         },
1358 82a56f0d Luiz Capitulino
         {
1359 82a56f0d Luiz Capitulino
            "device":"floppy0",
1360 82a56f0d Luiz Capitulino
            "locked":false,
1361 82a56f0d Luiz Capitulino
            "removable":true,
1362 d8aeeb31 Markus Armbruster
            "type":"unknown"
1363 82a56f0d Luiz Capitulino
         },
1364 82a56f0d Luiz Capitulino
         {
1365 82a56f0d Luiz Capitulino
            "device":"sd0",
1366 82a56f0d Luiz Capitulino
            "locked":false,
1367 82a56f0d Luiz Capitulino
            "removable":true,
1368 d8aeeb31 Markus Armbruster
            "type":"unknown"
1369 82a56f0d Luiz Capitulino
         }
1370 82a56f0d Luiz Capitulino
      ]
1371 82a56f0d Luiz Capitulino
   }
1372 82a56f0d Luiz Capitulino
1373 82a56f0d Luiz Capitulino
EQMP
1374 82a56f0d Luiz Capitulino
1375 b2023818 Luiz Capitulino
    {
1376 b2023818 Luiz Capitulino
        .name       = "query-block",
1377 b2023818 Luiz Capitulino
        .args_type  = "",
1378 b2023818 Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_query_block,
1379 b2023818 Luiz Capitulino
    },
1380 b2023818 Luiz Capitulino
1381 82a56f0d Luiz Capitulino
SQMP
1382 82a56f0d Luiz Capitulino
query-blockstats
1383 82a56f0d Luiz Capitulino
----------------
1384 82a56f0d Luiz Capitulino
1385 82a56f0d Luiz Capitulino
Show block device statistics.
1386 82a56f0d Luiz Capitulino
1387 82a56f0d Luiz Capitulino
Each device statistic information is stored in a json-object and the returned
1388 82a56f0d Luiz Capitulino
value is a json-array of all devices.
1389 82a56f0d Luiz Capitulino
1390 82a56f0d Luiz Capitulino
Each json-object contain the following:
1391 82a56f0d Luiz Capitulino
1392 82a56f0d Luiz Capitulino
- "device": device name (json-string)
1393 82a56f0d Luiz Capitulino
- "stats": A json-object with the statistics information, it contains:
1394 82a56f0d Luiz Capitulino
    - "rd_bytes": bytes read (json-int)
1395 82a56f0d Luiz Capitulino
    - "wr_bytes": bytes written (json-int)
1396 82a56f0d Luiz Capitulino
    - "rd_operations": read operations (json-int)
1397 82a56f0d Luiz Capitulino
    - "wr_operations": write operations (json-int)
1398 e8045d67 Christoph Hellwig
    - "flush_operations": cache flush operations (json-int)
1399 c488c7f6 Christoph Hellwig
    - "wr_total_time_ns": total time spend on writes in nano-seconds (json-int)
1400 c488c7f6 Christoph Hellwig
    - "rd_total_time_ns": total time spend on reads in nano-seconds (json-int)
1401 c488c7f6 Christoph Hellwig
    - "flush_total_time_ns": total time spend on cache flushes in nano-seconds (json-int)
1402 82a56f0d Luiz Capitulino
    - "wr_highest_offset": Highest offset of a sector written since the
1403 82a56f0d Luiz Capitulino
                           BlockDriverState has been opened (json-int)
1404 82a56f0d Luiz Capitulino
- "parent": Contains recursively the statistics of the underlying
1405 82a56f0d Luiz Capitulino
            protocol (e.g. the host file for a qcow2 image). If there is
1406 82a56f0d Luiz Capitulino
            no underlying protocol, this field is omitted
1407 82a56f0d Luiz Capitulino
            (json-object, optional)
1408 82a56f0d Luiz Capitulino
1409 82a56f0d Luiz Capitulino
Example:
1410 82a56f0d Luiz Capitulino
1411 82a56f0d Luiz Capitulino
-> { "execute": "query-blockstats" }
1412 82a56f0d Luiz Capitulino
<- {
1413 82a56f0d Luiz Capitulino
      "return":[
1414 82a56f0d Luiz Capitulino
         {
1415 82a56f0d Luiz Capitulino
            "device":"ide0-hd0",
1416 82a56f0d Luiz Capitulino
            "parent":{
1417 82a56f0d Luiz Capitulino
               "stats":{
1418 82a56f0d Luiz Capitulino
                  "wr_highest_offset":3686448128,
1419 82a56f0d Luiz Capitulino
                  "wr_bytes":9786368,
1420 82a56f0d Luiz Capitulino
                  "wr_operations":751,
1421 82a56f0d Luiz Capitulino
                  "rd_bytes":122567168,
1422 82a56f0d Luiz Capitulino
                  "rd_operations":36772
1423 c488c7f6 Christoph Hellwig
                  "wr_total_times_ns":313253456
1424 c488c7f6 Christoph Hellwig
                  "rd_total_times_ns":3465673657
1425 c488c7f6 Christoph Hellwig
                  "flush_total_times_ns":49653
1426 e8045d67 Christoph Hellwig
                  "flush_operations":61,
1427 82a56f0d Luiz Capitulino
               }
1428 82a56f0d Luiz Capitulino
            },
1429 82a56f0d Luiz Capitulino
            "stats":{
1430 82a56f0d Luiz Capitulino
               "wr_highest_offset":2821110784,
1431 82a56f0d Luiz Capitulino
               "wr_bytes":9786368,
1432 82a56f0d Luiz Capitulino
               "wr_operations":692,
1433 82a56f0d Luiz Capitulino
               "rd_bytes":122739200,
1434 82a56f0d Luiz Capitulino
               "rd_operations":36604
1435 e8045d67 Christoph Hellwig
               "flush_operations":51,
1436 c488c7f6 Christoph Hellwig
               "wr_total_times_ns":313253456
1437 c488c7f6 Christoph Hellwig
               "rd_total_times_ns":3465673657
1438 c488c7f6 Christoph Hellwig
               "flush_total_times_ns":49653
1439 82a56f0d Luiz Capitulino
            }
1440 82a56f0d Luiz Capitulino
         },
1441 82a56f0d Luiz Capitulino
         {
1442 82a56f0d Luiz Capitulino
            "device":"ide1-cd0",
1443 82a56f0d Luiz Capitulino
            "stats":{
1444 82a56f0d Luiz Capitulino
               "wr_highest_offset":0,
1445 82a56f0d Luiz Capitulino
               "wr_bytes":0,
1446 82a56f0d Luiz Capitulino
               "wr_operations":0,
1447 82a56f0d Luiz Capitulino
               "rd_bytes":0,
1448 82a56f0d Luiz Capitulino
               "rd_operations":0
1449 e8045d67 Christoph Hellwig
               "flush_operations":0,
1450 c488c7f6 Christoph Hellwig
               "wr_total_times_ns":0
1451 c488c7f6 Christoph Hellwig
               "rd_total_times_ns":0
1452 c488c7f6 Christoph Hellwig
               "flush_total_times_ns":0
1453 82a56f0d Luiz Capitulino
            }
1454 82a56f0d Luiz Capitulino
         },
1455 82a56f0d Luiz Capitulino
         {
1456 82a56f0d Luiz Capitulino
            "device":"floppy0",
1457 82a56f0d Luiz Capitulino
            "stats":{
1458 82a56f0d Luiz Capitulino
               "wr_highest_offset":0,
1459 82a56f0d Luiz Capitulino
               "wr_bytes":0,
1460 82a56f0d Luiz Capitulino
               "wr_operations":0,
1461 82a56f0d Luiz Capitulino
               "rd_bytes":0,
1462 82a56f0d Luiz Capitulino
               "rd_operations":0
1463 e8045d67 Christoph Hellwig
               "flush_operations":0,
1464 c488c7f6 Christoph Hellwig
               "wr_total_times_ns":0
1465 c488c7f6 Christoph Hellwig
               "rd_total_times_ns":0
1466 c488c7f6 Christoph Hellwig
               "flush_total_times_ns":0
1467 82a56f0d Luiz Capitulino
            }
1468 82a56f0d Luiz Capitulino
         },
1469 82a56f0d Luiz Capitulino
         {
1470 82a56f0d Luiz Capitulino
            "device":"sd0",
1471 82a56f0d Luiz Capitulino
            "stats":{
1472 82a56f0d Luiz Capitulino
               "wr_highest_offset":0,
1473 82a56f0d Luiz Capitulino
               "wr_bytes":0,
1474 82a56f0d Luiz Capitulino
               "wr_operations":0,
1475 82a56f0d Luiz Capitulino
               "rd_bytes":0,
1476 82a56f0d Luiz Capitulino
               "rd_operations":0
1477 e8045d67 Christoph Hellwig
               "flush_operations":0,
1478 c488c7f6 Christoph Hellwig
               "wr_total_times_ns":0
1479 c488c7f6 Christoph Hellwig
               "rd_total_times_ns":0
1480 c488c7f6 Christoph Hellwig
               "flush_total_times_ns":0
1481 82a56f0d Luiz Capitulino
            }
1482 82a56f0d Luiz Capitulino
         }
1483 82a56f0d Luiz Capitulino
      ]
1484 82a56f0d Luiz Capitulino
   }
1485 82a56f0d Luiz Capitulino
1486 82a56f0d Luiz Capitulino
EQMP
1487 82a56f0d Luiz Capitulino
1488 f11f57e4 Luiz Capitulino
    {
1489 f11f57e4 Luiz Capitulino
        .name       = "query-blockstats",
1490 f11f57e4 Luiz Capitulino
        .args_type  = "",
1491 f11f57e4 Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_query_blockstats,
1492 f11f57e4 Luiz Capitulino
    },
1493 f11f57e4 Luiz Capitulino
1494 82a56f0d Luiz Capitulino
SQMP
1495 82a56f0d Luiz Capitulino
query-cpus
1496 82a56f0d Luiz Capitulino
----------
1497 82a56f0d Luiz Capitulino
1498 82a56f0d Luiz Capitulino
Show CPU information.
1499 82a56f0d Luiz Capitulino
1500 82a56f0d Luiz Capitulino
Return a json-array. Each CPU is represented by a json-object, which contains:
1501 82a56f0d Luiz Capitulino
1502 82a56f0d Luiz Capitulino
- "CPU": CPU index (json-int)
1503 82a56f0d Luiz Capitulino
- "current": true if this is the current CPU, false otherwise (json-bool)
1504 82a56f0d Luiz Capitulino
- "halted": true if the cpu is halted, false otherwise (json-bool)
1505 82a56f0d Luiz Capitulino
- Current program counter. The key's name depends on the architecture:
1506 82a56f0d Luiz Capitulino
     "pc": i386/x86_64 (json-int)
1507 82a56f0d Luiz Capitulino
     "nip": PPC (json-int)
1508 82a56f0d Luiz Capitulino
     "pc" and "npc": sparc (json-int)
1509 82a56f0d Luiz Capitulino
     "PC": mips (json-int)
1510 dc7a09cf Jan Kiszka
- "thread_id": ID of the underlying host thread (json-int)
1511 82a56f0d Luiz Capitulino
1512 82a56f0d Luiz Capitulino
Example:
1513 82a56f0d Luiz Capitulino
1514 82a56f0d Luiz Capitulino
-> { "execute": "query-cpus" }
1515 82a56f0d Luiz Capitulino
<- {
1516 82a56f0d Luiz Capitulino
      "return":[
1517 82a56f0d Luiz Capitulino
         {
1518 82a56f0d Luiz Capitulino
            "CPU":0,
1519 82a56f0d Luiz Capitulino
            "current":true,
1520 82a56f0d Luiz Capitulino
            "halted":false,
1521 82a56f0d Luiz Capitulino
            "pc":3227107138
1522 dc7a09cf Jan Kiszka
            "thread_id":3134
1523 82a56f0d Luiz Capitulino
         },
1524 82a56f0d Luiz Capitulino
         {
1525 82a56f0d Luiz Capitulino
            "CPU":1,
1526 82a56f0d Luiz Capitulino
            "current":false,
1527 82a56f0d Luiz Capitulino
            "halted":true,
1528 82a56f0d Luiz Capitulino
            "pc":7108165
1529 dc7a09cf Jan Kiszka
            "thread_id":3135
1530 82a56f0d Luiz Capitulino
         }
1531 82a56f0d Luiz Capitulino
      ]
1532 82a56f0d Luiz Capitulino
   }
1533 82a56f0d Luiz Capitulino
1534 82a56f0d Luiz Capitulino
EQMP
1535 82a56f0d Luiz Capitulino
1536 de0b36b6 Luiz Capitulino
    {
1537 de0b36b6 Luiz Capitulino
        .name       = "query-cpus",
1538 de0b36b6 Luiz Capitulino
        .args_type  = "",
1539 de0b36b6 Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_query_cpus,
1540 de0b36b6 Luiz Capitulino
    },
1541 de0b36b6 Luiz Capitulino
1542 82a56f0d Luiz Capitulino
SQMP
1543 82a56f0d Luiz Capitulino
query-pci
1544 82a56f0d Luiz Capitulino
---------
1545 82a56f0d Luiz Capitulino
1546 82a56f0d Luiz Capitulino
PCI buses and devices information.
1547 82a56f0d Luiz Capitulino
1548 82a56f0d Luiz Capitulino
The returned value is a json-array of all buses. Each bus is represented by
1549 82a56f0d Luiz Capitulino
a json-object, which has a key with a json-array of all PCI devices attached
1550 82a56f0d Luiz Capitulino
to it. Each device is represented by a json-object.
1551 82a56f0d Luiz Capitulino
1552 82a56f0d Luiz Capitulino
The bus json-object contains the following:
1553 82a56f0d Luiz Capitulino
1554 82a56f0d Luiz Capitulino
- "bus": bus number (json-int)
1555 82a56f0d Luiz Capitulino
- "devices": a json-array of json-objects, each json-object represents a
1556 82a56f0d Luiz Capitulino
             PCI device
1557 82a56f0d Luiz Capitulino
1558 82a56f0d Luiz Capitulino
The PCI device json-object contains the following:
1559 82a56f0d Luiz Capitulino
1560 82a56f0d Luiz Capitulino
- "bus": identical to the parent's bus number (json-int)
1561 82a56f0d Luiz Capitulino
- "slot": slot number (json-int)
1562 82a56f0d Luiz Capitulino
- "function": function number (json-int)
1563 82a56f0d Luiz Capitulino
- "class_info": a json-object containing:
1564 82a56f0d Luiz Capitulino
     - "desc": device class description (json-string, optional)
1565 82a56f0d Luiz Capitulino
     - "class": device class number (json-int)
1566 82a56f0d Luiz Capitulino
- "id": a json-object containing:
1567 82a56f0d Luiz Capitulino
     - "device": device ID (json-int)
1568 82a56f0d Luiz Capitulino
     - "vendor": vendor ID (json-int)
1569 82a56f0d Luiz Capitulino
- "irq": device's IRQ if assigned (json-int, optional)
1570 82a56f0d Luiz Capitulino
- "qdev_id": qdev id string (json-string)
1571 82a56f0d Luiz Capitulino
- "pci_bridge": It's a json-object, only present if this device is a
1572 82a56f0d Luiz Capitulino
                PCI bridge, contains:
1573 82a56f0d Luiz Capitulino
     - "bus": bus number (json-int)
1574 82a56f0d Luiz Capitulino
     - "secondary": secondary bus number (json-int)
1575 82a56f0d Luiz Capitulino
     - "subordinate": subordinate bus number (json-int)
1576 82a56f0d Luiz Capitulino
     - "io_range": I/O memory range information, a json-object with the
1577 82a56f0d Luiz Capitulino
                   following members:
1578 82a56f0d Luiz Capitulino
                 - "base": base address, in bytes (json-int)
1579 82a56f0d Luiz Capitulino
                 - "limit": limit address, in bytes (json-int)
1580 82a56f0d Luiz Capitulino
     - "memory_range": memory range information, a json-object with the
1581 82a56f0d Luiz Capitulino
                       following members:
1582 82a56f0d Luiz Capitulino
                 - "base": base address, in bytes (json-int)
1583 82a56f0d Luiz Capitulino
                 - "limit": limit address, in bytes (json-int)
1584 82a56f0d Luiz Capitulino
     - "prefetchable_range": Prefetchable memory range information, a
1585 82a56f0d Luiz Capitulino
                             json-object with the following members:
1586 82a56f0d Luiz Capitulino
                 - "base": base address, in bytes (json-int)
1587 82a56f0d Luiz Capitulino
                 - "limit": limit address, in bytes (json-int)
1588 82a56f0d Luiz Capitulino
     - "devices": a json-array of PCI devices if there's any attached, each
1589 82a56f0d Luiz Capitulino
                  each element is represented by a json-object, which contains
1590 82a56f0d Luiz Capitulino
                  the same members of the 'PCI device json-object' described
1591 82a56f0d Luiz Capitulino
                  above (optional)
1592 82a56f0d Luiz Capitulino
- "regions": a json-array of json-objects, each json-object represents a
1593 82a56f0d Luiz Capitulino
             memory region of this device
1594 82a56f0d Luiz Capitulino
1595 82a56f0d Luiz Capitulino
The memory range json-object contains the following:
1596 82a56f0d Luiz Capitulino
1597 82a56f0d Luiz Capitulino
- "base": base memory address (json-int)
1598 82a56f0d Luiz Capitulino
- "limit": limit value (json-int)
1599 82a56f0d Luiz Capitulino
1600 82a56f0d Luiz Capitulino
The region json-object can be an I/O region or a memory region, an I/O region
1601 82a56f0d Luiz Capitulino
json-object contains the following:
1602 82a56f0d Luiz Capitulino
1603 82a56f0d Luiz Capitulino
- "type": "io" (json-string, fixed)
1604 82a56f0d Luiz Capitulino
- "bar": BAR number (json-int)
1605 82a56f0d Luiz Capitulino
- "address": memory address (json-int)
1606 82a56f0d Luiz Capitulino
- "size": memory size (json-int)
1607 82a56f0d Luiz Capitulino
1608 82a56f0d Luiz Capitulino
A memory region json-object contains the following:
1609 82a56f0d Luiz Capitulino
1610 82a56f0d Luiz Capitulino
- "type": "memory" (json-string, fixed)
1611 82a56f0d Luiz Capitulino
- "bar": BAR number (json-int)
1612 82a56f0d Luiz Capitulino
- "address": memory address (json-int)
1613 82a56f0d Luiz Capitulino
- "size": memory size (json-int)
1614 82a56f0d Luiz Capitulino
- "mem_type_64": true or false (json-bool)
1615 82a56f0d Luiz Capitulino
- "prefetch": true or false (json-bool)
1616 82a56f0d Luiz Capitulino
1617 82a56f0d Luiz Capitulino
Example:
1618 82a56f0d Luiz Capitulino
1619 82a56f0d Luiz Capitulino
-> { "execute": "query-pci" }
1620 82a56f0d Luiz Capitulino
<- {
1621 82a56f0d Luiz Capitulino
      "return":[
1622 82a56f0d Luiz Capitulino
         {
1623 82a56f0d Luiz Capitulino
            "bus":0,
1624 82a56f0d Luiz Capitulino
            "devices":[
1625 82a56f0d Luiz Capitulino
               {
1626 82a56f0d Luiz Capitulino
                  "bus":0,
1627 82a56f0d Luiz Capitulino
                  "qdev_id":"",
1628 82a56f0d Luiz Capitulino
                  "slot":0,
1629 82a56f0d Luiz Capitulino
                  "class_info":{
1630 82a56f0d Luiz Capitulino
                     "class":1536,
1631 82a56f0d Luiz Capitulino
                     "desc":"Host bridge"
1632 82a56f0d Luiz Capitulino
                  },
1633 82a56f0d Luiz Capitulino
                  "id":{
1634 82a56f0d Luiz Capitulino
                     "device":32902,
1635 82a56f0d Luiz Capitulino
                     "vendor":4663
1636 82a56f0d Luiz Capitulino
                  },
1637 82a56f0d Luiz Capitulino
                  "function":0,
1638 82a56f0d Luiz Capitulino
                  "regions":[
1639 82a56f0d Luiz Capitulino
   
1640 82a56f0d Luiz Capitulino
                  ]
1641 82a56f0d Luiz Capitulino
               },
1642 82a56f0d Luiz Capitulino
               {
1643 82a56f0d Luiz Capitulino
                  "bus":0,
1644 82a56f0d Luiz Capitulino
                  "qdev_id":"",
1645 82a56f0d Luiz Capitulino
                  "slot":1,
1646 82a56f0d Luiz Capitulino
                  "class_info":{
1647 82a56f0d Luiz Capitulino
                     "class":1537,
1648 82a56f0d Luiz Capitulino
                     "desc":"ISA bridge"
1649 82a56f0d Luiz Capitulino
                  },
1650 82a56f0d Luiz Capitulino
                  "id":{
1651 82a56f0d Luiz Capitulino
                     "device":32902,
1652 82a56f0d Luiz Capitulino
                     "vendor":28672
1653 82a56f0d Luiz Capitulino
                  },
1654 82a56f0d Luiz Capitulino
                  "function":0,
1655 82a56f0d Luiz Capitulino
                  "regions":[
1656 82a56f0d Luiz Capitulino
   
1657 82a56f0d Luiz Capitulino
                  ]
1658 82a56f0d Luiz Capitulino
               },
1659 82a56f0d Luiz Capitulino
               {
1660 82a56f0d Luiz Capitulino
                  "bus":0,
1661 82a56f0d Luiz Capitulino
                  "qdev_id":"",
1662 82a56f0d Luiz Capitulino
                  "slot":1,
1663 82a56f0d Luiz Capitulino
                  "class_info":{
1664 82a56f0d Luiz Capitulino
                     "class":257,
1665 82a56f0d Luiz Capitulino
                     "desc":"IDE controller"
1666 82a56f0d Luiz Capitulino
                  },
1667 82a56f0d Luiz Capitulino
                  "id":{
1668 82a56f0d Luiz Capitulino
                     "device":32902,
1669 82a56f0d Luiz Capitulino
                     "vendor":28688
1670 82a56f0d Luiz Capitulino
                  },
1671 82a56f0d Luiz Capitulino
                  "function":1,
1672 82a56f0d Luiz Capitulino
                  "regions":[
1673 82a56f0d Luiz Capitulino
                     {
1674 82a56f0d Luiz Capitulino
                        "bar":4,
1675 82a56f0d Luiz Capitulino
                        "size":16,
1676 82a56f0d Luiz Capitulino
                        "address":49152,
1677 82a56f0d Luiz Capitulino
                        "type":"io"
1678 82a56f0d Luiz Capitulino
                     }
1679 82a56f0d Luiz Capitulino
                  ]
1680 82a56f0d Luiz Capitulino
               },
1681 82a56f0d Luiz Capitulino
               {
1682 82a56f0d Luiz Capitulino
                  "bus":0,
1683 82a56f0d Luiz Capitulino
                  "qdev_id":"",
1684 82a56f0d Luiz Capitulino
                  "slot":2,
1685 82a56f0d Luiz Capitulino
                  "class_info":{
1686 82a56f0d Luiz Capitulino
                     "class":768,
1687 82a56f0d Luiz Capitulino
                     "desc":"VGA controller"
1688 82a56f0d Luiz Capitulino
                  },
1689 82a56f0d Luiz Capitulino
                  "id":{
1690 82a56f0d Luiz Capitulino
                     "device":4115,
1691 82a56f0d Luiz Capitulino
                     "vendor":184
1692 82a56f0d Luiz Capitulino
                  },
1693 82a56f0d Luiz Capitulino
                  "function":0,
1694 82a56f0d Luiz Capitulino
                  "regions":[
1695 82a56f0d Luiz Capitulino
                     {
1696 82a56f0d Luiz Capitulino
                        "prefetch":true,
1697 82a56f0d Luiz Capitulino
                        "mem_type_64":false,
1698 82a56f0d Luiz Capitulino
                        "bar":0,
1699 82a56f0d Luiz Capitulino
                        "size":33554432,
1700 82a56f0d Luiz Capitulino
                        "address":4026531840,
1701 82a56f0d Luiz Capitulino
                        "type":"memory"
1702 82a56f0d Luiz Capitulino
                     },
1703 82a56f0d Luiz Capitulino
                     {
1704 82a56f0d Luiz Capitulino
                        "prefetch":false,
1705 82a56f0d Luiz Capitulino
                        "mem_type_64":false,
1706 82a56f0d Luiz Capitulino
                        "bar":1,
1707 82a56f0d Luiz Capitulino
                        "size":4096,
1708 82a56f0d Luiz Capitulino
                        "address":4060086272,
1709 82a56f0d Luiz Capitulino
                        "type":"memory"
1710 82a56f0d Luiz Capitulino
                     },
1711 82a56f0d Luiz Capitulino
                     {
1712 82a56f0d Luiz Capitulino
                        "prefetch":false,
1713 82a56f0d Luiz Capitulino
                        "mem_type_64":false,
1714 82a56f0d Luiz Capitulino
                        "bar":6,
1715 82a56f0d Luiz Capitulino
                        "size":65536,
1716 82a56f0d Luiz Capitulino
                        "address":-1,
1717 82a56f0d Luiz Capitulino
                        "type":"memory"
1718 82a56f0d Luiz Capitulino
                     }
1719 82a56f0d Luiz Capitulino
                  ]
1720 82a56f0d Luiz Capitulino
               },
1721 82a56f0d Luiz Capitulino
               {
1722 82a56f0d Luiz Capitulino
                  "bus":0,
1723 82a56f0d Luiz Capitulino
                  "qdev_id":"",
1724 82a56f0d Luiz Capitulino
                  "irq":11,
1725 82a56f0d Luiz Capitulino
                  "slot":4,
1726 82a56f0d Luiz Capitulino
                  "class_info":{
1727 82a56f0d Luiz Capitulino
                     "class":1280,
1728 82a56f0d Luiz Capitulino
                     "desc":"RAM controller"
1729 82a56f0d Luiz Capitulino
                  },
1730 82a56f0d Luiz Capitulino
                  "id":{
1731 82a56f0d Luiz Capitulino
                     "device":6900,
1732 82a56f0d Luiz Capitulino
                     "vendor":4098
1733 82a56f0d Luiz Capitulino
                  },
1734 82a56f0d Luiz Capitulino
                  "function":0,
1735 82a56f0d Luiz Capitulino
                  "regions":[
1736 82a56f0d Luiz Capitulino
                     {
1737 82a56f0d Luiz Capitulino
                        "bar":0,
1738 82a56f0d Luiz Capitulino
                        "size":32,
1739 82a56f0d Luiz Capitulino
                        "address":49280,
1740 82a56f0d Luiz Capitulino
                        "type":"io"
1741 82a56f0d Luiz Capitulino
                     }
1742 82a56f0d Luiz Capitulino
                  ]
1743 82a56f0d Luiz Capitulino
               }
1744 82a56f0d Luiz Capitulino
            ]
1745 82a56f0d Luiz Capitulino
         }
1746 82a56f0d Luiz Capitulino
      ]
1747 82a56f0d Luiz Capitulino
   }
1748 82a56f0d Luiz Capitulino
1749 82a56f0d Luiz Capitulino
Note: This example has been shortened as the real response is too long.
1750 82a56f0d Luiz Capitulino
1751 82a56f0d Luiz Capitulino
EQMP
1752 82a56f0d Luiz Capitulino
1753 79627472 Luiz Capitulino
    {
1754 79627472 Luiz Capitulino
        .name       = "query-pci",
1755 79627472 Luiz Capitulino
        .args_type  = "",
1756 79627472 Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_query_pci,
1757 79627472 Luiz Capitulino
    },
1758 79627472 Luiz Capitulino
1759 82a56f0d Luiz Capitulino
SQMP
1760 82a56f0d Luiz Capitulino
query-kvm
1761 82a56f0d Luiz Capitulino
---------
1762 82a56f0d Luiz Capitulino
1763 82a56f0d Luiz Capitulino
Show KVM information.
1764 82a56f0d Luiz Capitulino
1765 82a56f0d Luiz Capitulino
Return a json-object with the following information:
1766 82a56f0d Luiz Capitulino
1767 82a56f0d Luiz Capitulino
- "enabled": true if KVM support is enabled, false otherwise (json-bool)
1768 82a56f0d Luiz Capitulino
- "present": true if QEMU has KVM support, false otherwise (json-bool)
1769 82a56f0d Luiz Capitulino
1770 82a56f0d Luiz Capitulino
Example:
1771 82a56f0d Luiz Capitulino
1772 82a56f0d Luiz Capitulino
-> { "execute": "query-kvm" }
1773 82a56f0d Luiz Capitulino
<- { "return": { "enabled": true, "present": true } }
1774 82a56f0d Luiz Capitulino
1775 82a56f0d Luiz Capitulino
EQMP
1776 82a56f0d Luiz Capitulino
1777 292a2602 Luiz Capitulino
    {
1778 292a2602 Luiz Capitulino
        .name       = "query-kvm",
1779 292a2602 Luiz Capitulino
        .args_type  = "",
1780 292a2602 Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_query_kvm,
1781 292a2602 Luiz Capitulino
    },
1782 292a2602 Luiz Capitulino
1783 82a56f0d Luiz Capitulino
SQMP
1784 82a56f0d Luiz Capitulino
query-status
1785 82a56f0d Luiz Capitulino
------------
1786 82a56f0d Luiz Capitulino
1787 82a56f0d Luiz Capitulino
Return a json-object with the following information:
1788 82a56f0d Luiz Capitulino
1789 82a56f0d Luiz Capitulino
- "running": true if the VM is running, or false if it is paused (json-bool)
1790 82a56f0d Luiz Capitulino
- "singlestep": true if the VM is in single step mode,
1791 82a56f0d Luiz Capitulino
                false otherwise (json-bool)
1792 9e37b9dc Luiz Capitulino
- "status": one of the following values (json-string)
1793 9e37b9dc Luiz Capitulino
    "debug" - QEMU is running on a debugger
1794 9e37b9dc Luiz Capitulino
    "inmigrate" - guest is paused waiting for an incoming migration
1795 9e37b9dc Luiz Capitulino
    "internal-error" - An internal error that prevents further guest
1796 9e37b9dc Luiz Capitulino
    execution has occurred
1797 9e37b9dc Luiz Capitulino
    "io-error" - the last IOP has failed and the device is configured
1798 9e37b9dc Luiz Capitulino
    to pause on I/O errors
1799 9e37b9dc Luiz Capitulino
    "paused" - guest has been paused via the 'stop' command
1800 9e37b9dc Luiz Capitulino
    "postmigrate" - guest is paused following a successful 'migrate'
1801 9e37b9dc Luiz Capitulino
    "prelaunch" - QEMU was started with -S and guest has not started
1802 9e37b9dc Luiz Capitulino
    "finish-migrate" - guest is paused to finish the migration process
1803 9e37b9dc Luiz Capitulino
    "restore-vm" - guest is paused to restore VM state
1804 9e37b9dc Luiz Capitulino
    "running" - guest is actively running
1805 9e37b9dc Luiz Capitulino
    "save-vm" - guest is paused to save the VM state
1806 9e37b9dc Luiz Capitulino
    "shutdown" - guest is shut down (and -no-shutdown is in use)
1807 9e37b9dc Luiz Capitulino
    "watchdog" - the watchdog action is configured to pause and
1808 9e37b9dc Luiz Capitulino
     has been triggered
1809 82a56f0d Luiz Capitulino
1810 82a56f0d Luiz Capitulino
Example:
1811 82a56f0d Luiz Capitulino
1812 82a56f0d Luiz Capitulino
-> { "execute": "query-status" }
1813 9e37b9dc Luiz Capitulino
<- { "return": { "running": true, "singlestep": false, "status": "running" } }
1814 82a56f0d Luiz Capitulino
1815 82a56f0d Luiz Capitulino
EQMP
1816 1fa9a5e4 Luiz Capitulino
    
1817 1fa9a5e4 Luiz Capitulino
    {
1818 1fa9a5e4 Luiz Capitulino
        .name       = "query-status",
1819 1fa9a5e4 Luiz Capitulino
        .args_type  = "",
1820 1fa9a5e4 Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_query_status,
1821 1fa9a5e4 Luiz Capitulino
    },
1822 82a56f0d Luiz Capitulino
1823 82a56f0d Luiz Capitulino
SQMP
1824 82a56f0d Luiz Capitulino
query-mice
1825 82a56f0d Luiz Capitulino
----------
1826 82a56f0d Luiz Capitulino
1827 82a56f0d Luiz Capitulino
Show VM mice information.
1828 82a56f0d Luiz Capitulino
1829 82a56f0d Luiz Capitulino
Each mouse is represented by a json-object, the returned value is a json-array
1830 82a56f0d Luiz Capitulino
of all mice.
1831 82a56f0d Luiz Capitulino
1832 82a56f0d Luiz Capitulino
The mouse json-object contains the following:
1833 82a56f0d Luiz Capitulino
1834 82a56f0d Luiz Capitulino
- "name": mouse's name (json-string)
1835 82a56f0d Luiz Capitulino
- "index": mouse's index (json-int)
1836 82a56f0d Luiz Capitulino
- "current": true if this mouse is receiving events, false otherwise (json-bool)
1837 82a56f0d Luiz Capitulino
- "absolute": true if the mouse generates absolute input events (json-bool)
1838 82a56f0d Luiz Capitulino
1839 82a56f0d Luiz Capitulino
Example:
1840 82a56f0d Luiz Capitulino
1841 82a56f0d Luiz Capitulino
-> { "execute": "query-mice" }
1842 82a56f0d Luiz Capitulino
<- {
1843 82a56f0d Luiz Capitulino
      "return":[
1844 82a56f0d Luiz Capitulino
         {
1845 82a56f0d Luiz Capitulino
            "name":"QEMU Microsoft Mouse",
1846 82a56f0d Luiz Capitulino
            "index":0,
1847 82a56f0d Luiz Capitulino
            "current":false,
1848 82a56f0d Luiz Capitulino
            "absolute":false
1849 82a56f0d Luiz Capitulino
         },
1850 82a56f0d Luiz Capitulino
         {
1851 82a56f0d Luiz Capitulino
            "name":"QEMU PS/2 Mouse",
1852 82a56f0d Luiz Capitulino
            "index":1,
1853 82a56f0d Luiz Capitulino
            "current":true,
1854 82a56f0d Luiz Capitulino
            "absolute":true
1855 82a56f0d Luiz Capitulino
         }
1856 82a56f0d Luiz Capitulino
      ]
1857 82a56f0d Luiz Capitulino
   }
1858 82a56f0d Luiz Capitulino
1859 82a56f0d Luiz Capitulino
EQMP
1860 82a56f0d Luiz Capitulino
1861 e235cec3 Luiz Capitulino
    {
1862 e235cec3 Luiz Capitulino
        .name       = "query-mice",
1863 e235cec3 Luiz Capitulino
        .args_type  = "",
1864 e235cec3 Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_query_mice,
1865 e235cec3 Luiz Capitulino
    },
1866 e235cec3 Luiz Capitulino
1867 82a56f0d Luiz Capitulino
SQMP
1868 82a56f0d Luiz Capitulino
query-vnc
1869 82a56f0d Luiz Capitulino
---------
1870 82a56f0d Luiz Capitulino
1871 82a56f0d Luiz Capitulino
Show VNC server information.
1872 82a56f0d Luiz Capitulino
1873 82a56f0d Luiz Capitulino
Return a json-object with server information. Connected clients are returned
1874 82a56f0d Luiz Capitulino
as a json-array of json-objects.
1875 82a56f0d Luiz Capitulino
1876 82a56f0d Luiz Capitulino
The main json-object contains the following:
1877 82a56f0d Luiz Capitulino
1878 82a56f0d Luiz Capitulino
- "enabled": true or false (json-bool)
1879 82a56f0d Luiz Capitulino
- "host": server's IP address (json-string)
1880 82a56f0d Luiz Capitulino
- "family": address family (json-string)
1881 82a56f0d Luiz Capitulino
         - Possible values: "ipv4", "ipv6", "unix", "unknown"
1882 82a56f0d Luiz Capitulino
- "service": server's port number (json-string)
1883 82a56f0d Luiz Capitulino
- "auth": authentication method (json-string)
1884 82a56f0d Luiz Capitulino
         - Possible values: "invalid", "none", "ra2", "ra2ne", "sasl", "tight",
1885 82a56f0d Luiz Capitulino
                            "tls", "ultra", "unknown", "vencrypt", "vencrypt",
1886 82a56f0d Luiz Capitulino
                            "vencrypt+plain", "vencrypt+tls+none",
1887 82a56f0d Luiz Capitulino
                            "vencrypt+tls+plain", "vencrypt+tls+sasl",
1888 82a56f0d Luiz Capitulino
                            "vencrypt+tls+vnc", "vencrypt+x509+none",
1889 82a56f0d Luiz Capitulino
                            "vencrypt+x509+plain", "vencrypt+x509+sasl",
1890 82a56f0d Luiz Capitulino
                            "vencrypt+x509+vnc", "vnc"
1891 82a56f0d Luiz Capitulino
- "clients": a json-array of all connected clients
1892 82a56f0d Luiz Capitulino
1893 82a56f0d Luiz Capitulino
Clients are described by a json-object, each one contain the following:
1894 82a56f0d Luiz Capitulino
1895 82a56f0d Luiz Capitulino
- "host": client's IP address (json-string)
1896 82a56f0d Luiz Capitulino
- "family": address family (json-string)
1897 82a56f0d Luiz Capitulino
         - Possible values: "ipv4", "ipv6", "unix", "unknown"
1898 82a56f0d Luiz Capitulino
- "service": client's port number (json-string)
1899 82a56f0d Luiz Capitulino
- "x509_dname": TLS dname (json-string, optional)
1900 82a56f0d Luiz Capitulino
- "sasl_username": SASL username (json-string, optional)
1901 82a56f0d Luiz Capitulino
1902 82a56f0d Luiz Capitulino
Example:
1903 82a56f0d Luiz Capitulino
1904 82a56f0d Luiz Capitulino
-> { "execute": "query-vnc" }
1905 82a56f0d Luiz Capitulino
<- {
1906 82a56f0d Luiz Capitulino
      "return":{
1907 82a56f0d Luiz Capitulino
         "enabled":true,
1908 82a56f0d Luiz Capitulino
         "host":"0.0.0.0",
1909 82a56f0d Luiz Capitulino
         "service":"50402",
1910 82a56f0d Luiz Capitulino
         "auth":"vnc",
1911 82a56f0d Luiz Capitulino
         "family":"ipv4",
1912 82a56f0d Luiz Capitulino
         "clients":[
1913 82a56f0d Luiz Capitulino
            {
1914 82a56f0d Luiz Capitulino
               "host":"127.0.0.1",
1915 82a56f0d Luiz Capitulino
               "service":"50401",
1916 82a56f0d Luiz Capitulino
               "family":"ipv4"
1917 82a56f0d Luiz Capitulino
            }
1918 82a56f0d Luiz Capitulino
         ]
1919 82a56f0d Luiz Capitulino
      }
1920 82a56f0d Luiz Capitulino
   }
1921 82a56f0d Luiz Capitulino
1922 82a56f0d Luiz Capitulino
EQMP
1923 82a56f0d Luiz Capitulino
1924 2b54aa87 Luiz Capitulino
    {
1925 2b54aa87 Luiz Capitulino
        .name       = "query-vnc",
1926 2b54aa87 Luiz Capitulino
        .args_type  = "",
1927 2b54aa87 Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_query_vnc,
1928 2b54aa87 Luiz Capitulino
    },
1929 2b54aa87 Luiz Capitulino
1930 82a56f0d Luiz Capitulino
SQMP
1931 cb42a870 Gerd Hoffmann
query-spice
1932 cb42a870 Gerd Hoffmann
-----------
1933 cb42a870 Gerd Hoffmann
1934 cb42a870 Gerd Hoffmann
Show SPICE server information.
1935 cb42a870 Gerd Hoffmann
1936 cb42a870 Gerd Hoffmann
Return a json-object with server information. Connected clients are returned
1937 cb42a870 Gerd Hoffmann
as a json-array of json-objects.
1938 cb42a870 Gerd Hoffmann
1939 cb42a870 Gerd Hoffmann
The main json-object contains the following:
1940 cb42a870 Gerd Hoffmann
1941 cb42a870 Gerd Hoffmann
- "enabled": true or false (json-bool)
1942 cb42a870 Gerd Hoffmann
- "host": server's IP address (json-string)
1943 cb42a870 Gerd Hoffmann
- "port": server's port number (json-int, optional)
1944 cb42a870 Gerd Hoffmann
- "tls-port": server's port number (json-int, optional)
1945 cb42a870 Gerd Hoffmann
- "auth": authentication method (json-string)
1946 cb42a870 Gerd Hoffmann
         - Possible values: "none", "spice"
1947 cb42a870 Gerd Hoffmann
- "channels": a json-array of all active channels clients
1948 cb42a870 Gerd Hoffmann
1949 cb42a870 Gerd Hoffmann
Channels are described by a json-object, each one contain the following:
1950 cb42a870 Gerd Hoffmann
1951 cb42a870 Gerd Hoffmann
- "host": client's IP address (json-string)
1952 cb42a870 Gerd Hoffmann
- "family": address family (json-string)
1953 cb42a870 Gerd Hoffmann
         - Possible values: "ipv4", "ipv6", "unix", "unknown"
1954 cb42a870 Gerd Hoffmann
- "port": client's port number (json-string)
1955 cb42a870 Gerd Hoffmann
- "connection-id": spice connection id.  All channels with the same id
1956 cb42a870 Gerd Hoffmann
                   belong to the same spice session (json-int)
1957 cb42a870 Gerd Hoffmann
- "channel-type": channel type.  "1" is the main control channel, filter for
1958 cb42a870 Gerd Hoffmann
                  this one if you want track spice sessions only (json-int)
1959 cb42a870 Gerd Hoffmann
- "channel-id": channel id.  Usually "0", might be different needed when
1960 cb42a870 Gerd Hoffmann
                multiple channels of the same type exist, such as multiple
1961 cb42a870 Gerd Hoffmann
                display channels in a multihead setup (json-int)
1962 cb42a870 Gerd Hoffmann
- "tls": whevener the channel is encrypted (json-bool)
1963 cb42a870 Gerd Hoffmann
1964 cb42a870 Gerd Hoffmann
Example:
1965 cb42a870 Gerd Hoffmann
1966 cb42a870 Gerd Hoffmann
-> { "execute": "query-spice" }
1967 cb42a870 Gerd Hoffmann
<- {
1968 cb42a870 Gerd Hoffmann
      "return": {
1969 cb42a870 Gerd Hoffmann
         "enabled": true,
1970 cb42a870 Gerd Hoffmann
         "auth": "spice",
1971 cb42a870 Gerd Hoffmann
         "port": 5920,
1972 cb42a870 Gerd Hoffmann
         "tls-port": 5921,
1973 cb42a870 Gerd Hoffmann
         "host": "0.0.0.0",
1974 cb42a870 Gerd Hoffmann
         "channels": [
1975 cb42a870 Gerd Hoffmann
            {
1976 cb42a870 Gerd Hoffmann
               "port": "54924",
1977 cb42a870 Gerd Hoffmann
               "family": "ipv4",
1978 cb42a870 Gerd Hoffmann
               "channel-type": 1,
1979 cb42a870 Gerd Hoffmann
               "connection-id": 1804289383,
1980 cb42a870 Gerd Hoffmann
               "host": "127.0.0.1",
1981 cb42a870 Gerd Hoffmann
               "channel-id": 0,
1982 cb42a870 Gerd Hoffmann
               "tls": true
1983 cb42a870 Gerd Hoffmann
            },
1984 cb42a870 Gerd Hoffmann
            {
1985 cb42a870 Gerd Hoffmann
               "port": "36710",
1986 cb42a870 Gerd Hoffmann
               "family": "ipv4",
1987 cb42a870 Gerd Hoffmann
               "channel-type": 4,
1988 cb42a870 Gerd Hoffmann
               "connection-id": 1804289383,
1989 cb42a870 Gerd Hoffmann
               "host": "127.0.0.1",
1990 cb42a870 Gerd Hoffmann
               "channel-id": 0,
1991 cb42a870 Gerd Hoffmann
               "tls": false
1992 cb42a870 Gerd Hoffmann
            },
1993 cb42a870 Gerd Hoffmann
            [ ... more channels follow ... ]
1994 cb42a870 Gerd Hoffmann
         ]
1995 cb42a870 Gerd Hoffmann
      }
1996 cb42a870 Gerd Hoffmann
   }
1997 cb42a870 Gerd Hoffmann
1998 cb42a870 Gerd Hoffmann
EQMP
1999 cb42a870 Gerd Hoffmann
2000 d1f29646 Luiz Capitulino
#if defined(CONFIG_SPICE)
2001 d1f29646 Luiz Capitulino
    {
2002 d1f29646 Luiz Capitulino
        .name       = "query-spice",
2003 d1f29646 Luiz Capitulino
        .args_type  = "",
2004 d1f29646 Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_query_spice,
2005 d1f29646 Luiz Capitulino
    },
2006 d1f29646 Luiz Capitulino
#endif
2007 d1f29646 Luiz Capitulino
2008 cb42a870 Gerd Hoffmann
SQMP
2009 82a56f0d Luiz Capitulino
query-name
2010 82a56f0d Luiz Capitulino
----------
2011 82a56f0d Luiz Capitulino
2012 82a56f0d Luiz Capitulino
Show VM name.
2013 82a56f0d Luiz Capitulino
2014 82a56f0d Luiz Capitulino
Return a json-object with the following information:
2015 82a56f0d Luiz Capitulino
2016 82a56f0d Luiz Capitulino
- "name": VM's name (json-string, optional)
2017 82a56f0d Luiz Capitulino
2018 82a56f0d Luiz Capitulino
Example:
2019 82a56f0d Luiz Capitulino
2020 82a56f0d Luiz Capitulino
-> { "execute": "query-name" }
2021 82a56f0d Luiz Capitulino
<- { "return": { "name": "qemu-name" } }
2022 82a56f0d Luiz Capitulino
2023 82a56f0d Luiz Capitulino
EQMP
2024 82a56f0d Luiz Capitulino
2025 48a32bed Anthony Liguori
    {
2026 48a32bed Anthony Liguori
        .name       = "query-name",
2027 48a32bed Anthony Liguori
        .args_type  = "",
2028 48a32bed Anthony Liguori
        .mhandler.cmd_new = qmp_marshal_input_query_name,
2029 48a32bed Anthony Liguori
    },
2030 48a32bed Anthony Liguori
2031 82a56f0d Luiz Capitulino
SQMP
2032 82a56f0d Luiz Capitulino
query-uuid
2033 82a56f0d Luiz Capitulino
----------
2034 82a56f0d Luiz Capitulino
2035 82a56f0d Luiz Capitulino
Show VM UUID.
2036 82a56f0d Luiz Capitulino
2037 82a56f0d Luiz Capitulino
Return a json-object with the following information:
2038 82a56f0d Luiz Capitulino
2039 82a56f0d Luiz Capitulino
- "UUID": Universally Unique Identifier (json-string)
2040 82a56f0d Luiz Capitulino
2041 82a56f0d Luiz Capitulino
Example:
2042 82a56f0d Luiz Capitulino
2043 82a56f0d Luiz Capitulino
-> { "execute": "query-uuid" }
2044 82a56f0d Luiz Capitulino
<- { "return": { "UUID": "550e8400-e29b-41d4-a716-446655440000" } }
2045 82a56f0d Luiz Capitulino
2046 82a56f0d Luiz Capitulino
EQMP
2047 82a56f0d Luiz Capitulino
2048 efab767e Luiz Capitulino
    {
2049 efab767e Luiz Capitulino
        .name       = "query-uuid",
2050 efab767e Luiz Capitulino
        .args_type  = "",
2051 efab767e Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_query_uuid,
2052 efab767e Luiz Capitulino
    },
2053 efab767e Luiz Capitulino
2054 82a56f0d Luiz Capitulino
SQMP
2055 82a56f0d Luiz Capitulino
query-migrate
2056 82a56f0d Luiz Capitulino
-------------
2057 82a56f0d Luiz Capitulino
2058 82a56f0d Luiz Capitulino
Migration status.
2059 82a56f0d Luiz Capitulino
2060 82a56f0d Luiz Capitulino
Return a json-object. If migration is active there will be another json-object
2061 82a56f0d Luiz Capitulino
with RAM migration status and if block migration is active another one with
2062 82a56f0d Luiz Capitulino
block migration status.
2063 82a56f0d Luiz Capitulino
2064 82a56f0d Luiz Capitulino
The main json-object contains the following:
2065 82a56f0d Luiz Capitulino
2066 82a56f0d Luiz Capitulino
- "status": migration status (json-string)
2067 82a56f0d Luiz Capitulino
     - Possible values: "active", "completed", "failed", "cancelled"
2068 82a56f0d Luiz Capitulino
- "ram": only present if "status" is "active", it is a json-object with the
2069 82a56f0d Luiz Capitulino
  following RAM information (in bytes):
2070 82a56f0d Luiz Capitulino
         - "transferred": amount transferred (json-int)
2071 82a56f0d Luiz Capitulino
         - "remaining": amount remaining (json-int)
2072 82a56f0d Luiz Capitulino
         - "total": total (json-int)
2073 82a56f0d Luiz Capitulino
- "disk": only present if "status" is "active" and it is a block migration,
2074 82a56f0d Luiz Capitulino
  it is a json-object with the following disk information (in bytes):
2075 82a56f0d Luiz Capitulino
         - "transferred": amount transferred (json-int)
2076 82a56f0d Luiz Capitulino
         - "remaining": amount remaining (json-int)
2077 82a56f0d Luiz Capitulino
         - "total": total (json-int)
2078 82a56f0d Luiz Capitulino
2079 82a56f0d Luiz Capitulino
Examples:
2080 82a56f0d Luiz Capitulino
2081 82a56f0d Luiz Capitulino
1. Before the first migration
2082 82a56f0d Luiz Capitulino
2083 82a56f0d Luiz Capitulino
-> { "execute": "query-migrate" }
2084 82a56f0d Luiz Capitulino
<- { "return": {} }
2085 82a56f0d Luiz Capitulino
2086 82a56f0d Luiz Capitulino
2. Migration is done and has succeeded
2087 82a56f0d Luiz Capitulino
2088 82a56f0d Luiz Capitulino
-> { "execute": "query-migrate" }
2089 82a56f0d Luiz Capitulino
<- { "return": { "status": "completed" } }
2090 82a56f0d Luiz Capitulino
2091 82a56f0d Luiz Capitulino
3. Migration is done and has failed
2092 82a56f0d Luiz Capitulino
2093 82a56f0d Luiz Capitulino
-> { "execute": "query-migrate" }
2094 82a56f0d Luiz Capitulino
<- { "return": { "status": "failed" } }
2095 82a56f0d Luiz Capitulino
2096 82a56f0d Luiz Capitulino
4. Migration is being performed and is not a block migration:
2097 82a56f0d Luiz Capitulino
2098 82a56f0d Luiz Capitulino
-> { "execute": "query-migrate" }
2099 82a56f0d Luiz Capitulino
<- {
2100 82a56f0d Luiz Capitulino
      "return":{
2101 82a56f0d Luiz Capitulino
         "status":"active",
2102 82a56f0d Luiz Capitulino
         "ram":{
2103 82a56f0d Luiz Capitulino
            "transferred":123,
2104 82a56f0d Luiz Capitulino
            "remaining":123,
2105 82a56f0d Luiz Capitulino
            "total":246
2106 82a56f0d Luiz Capitulino
         }
2107 82a56f0d Luiz Capitulino
      }
2108 82a56f0d Luiz Capitulino
   }
2109 82a56f0d Luiz Capitulino
2110 82a56f0d Luiz Capitulino
5. Migration is being performed and is a block migration:
2111 82a56f0d Luiz Capitulino
2112 82a56f0d Luiz Capitulino
-> { "execute": "query-migrate" }
2113 82a56f0d Luiz Capitulino
<- {
2114 82a56f0d Luiz Capitulino
      "return":{
2115 82a56f0d Luiz Capitulino
         "status":"active",
2116 82a56f0d Luiz Capitulino
         "ram":{
2117 82a56f0d Luiz Capitulino
            "total":1057024,
2118 82a56f0d Luiz Capitulino
            "remaining":1053304,
2119 82a56f0d Luiz Capitulino
            "transferred":3720
2120 82a56f0d Luiz Capitulino
         },
2121 82a56f0d Luiz Capitulino
         "disk":{
2122 82a56f0d Luiz Capitulino
            "total":20971520,
2123 82a56f0d Luiz Capitulino
            "remaining":20880384,
2124 82a56f0d Luiz Capitulino
            "transferred":91136
2125 82a56f0d Luiz Capitulino
         }
2126 82a56f0d Luiz Capitulino
      }
2127 82a56f0d Luiz Capitulino
   }
2128 82a56f0d Luiz Capitulino
2129 82a56f0d Luiz Capitulino
EQMP
2130 82a56f0d Luiz Capitulino
2131 791e7c82 Luiz Capitulino
    {
2132 791e7c82 Luiz Capitulino
        .name       = "query-migrate",
2133 791e7c82 Luiz Capitulino
        .args_type  = "",
2134 791e7c82 Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_query_migrate,
2135 791e7c82 Luiz Capitulino
    },
2136 791e7c82 Luiz Capitulino
2137 82a56f0d Luiz Capitulino
SQMP
2138 82a56f0d Luiz Capitulino
query-balloon
2139 82a56f0d Luiz Capitulino
-------------
2140 82a56f0d Luiz Capitulino
2141 82a56f0d Luiz Capitulino
Show balloon information.
2142 82a56f0d Luiz Capitulino
2143 82a56f0d Luiz Capitulino
Make an asynchronous request for balloon info. When the request completes a
2144 82a56f0d Luiz Capitulino
json-object will be returned containing the following data:
2145 82a56f0d Luiz Capitulino
2146 82a56f0d Luiz Capitulino
- "actual": current balloon value in bytes (json-int)
2147 82a56f0d Luiz Capitulino
- "mem_swapped_in": Amount of memory swapped in bytes (json-int, optional)
2148 82a56f0d Luiz Capitulino
- "mem_swapped_out": Amount of memory swapped out in bytes (json-int, optional)
2149 82a56f0d Luiz Capitulino
- "major_page_faults": Number of major faults (json-int, optional)
2150 82a56f0d Luiz Capitulino
- "minor_page_faults": Number of minor faults (json-int, optional)
2151 82a56f0d Luiz Capitulino
- "free_mem": Total amount of free and unused memory in
2152 82a56f0d Luiz Capitulino
              bytes (json-int, optional)
2153 82a56f0d Luiz Capitulino
- "total_mem": Total amount of available memory in bytes (json-int, optional)
2154 82a56f0d Luiz Capitulino
2155 82a56f0d Luiz Capitulino
Example:
2156 82a56f0d Luiz Capitulino
2157 82a56f0d Luiz Capitulino
-> { "execute": "query-balloon" }
2158 82a56f0d Luiz Capitulino
<- {
2159 82a56f0d Luiz Capitulino
      "return":{
2160 82a56f0d Luiz Capitulino
         "actual":1073741824,
2161 82a56f0d Luiz Capitulino
         "mem_swapped_in":0,
2162 82a56f0d Luiz Capitulino
         "mem_swapped_out":0,
2163 82a56f0d Luiz Capitulino
         "major_page_faults":142,
2164 82a56f0d Luiz Capitulino
         "minor_page_faults":239245,
2165 82a56f0d Luiz Capitulino
         "free_mem":1014185984,
2166 82a56f0d Luiz Capitulino
         "total_mem":1044668416
2167 82a56f0d Luiz Capitulino
      }
2168 82a56f0d Luiz Capitulino
   }
2169 82a56f0d Luiz Capitulino
2170 82a56f0d Luiz Capitulino
EQMP
2171 82a56f0d Luiz Capitulino
2172 96637bcd Luiz Capitulino
    {
2173 96637bcd Luiz Capitulino
        .name       = "query-balloon",
2174 96637bcd Luiz Capitulino
        .args_type  = "",
2175 96637bcd Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_query_balloon,
2176 96637bcd Luiz Capitulino
    },
2177 b4b12c62 Anthony Liguori
2178 b4b12c62 Anthony Liguori
    {
2179 fb5458cd Stefan Hajnoczi
        .name       = "query-block-jobs",
2180 fb5458cd Stefan Hajnoczi
        .args_type  = "",
2181 fb5458cd Stefan Hajnoczi
        .mhandler.cmd_new = qmp_marshal_input_query_block_jobs,
2182 fb5458cd Stefan Hajnoczi
    },
2183 fb5458cd Stefan Hajnoczi
2184 fb5458cd Stefan Hajnoczi
    {
2185 b4b12c62 Anthony Liguori
        .name       = "qom-list",
2186 b4b12c62 Anthony Liguori
        .args_type  = "path:s",
2187 b4b12c62 Anthony Liguori
        .mhandler.cmd_new = qmp_marshal_input_qom_list,
2188 b4b12c62 Anthony Liguori
    },
2189 eb6e8ea5 Anthony Liguori
2190 eb6e8ea5 Anthony Liguori
    {
2191 eb6e8ea5 Anthony Liguori
        .name       = "qom-set",
2192 b9f8978c Paolo Bonzini
	.args_type  = "path:s,property:s,value:q",
2193 eb6e8ea5 Anthony Liguori
	.mhandler.cmd_new = qmp_qom_set,
2194 eb6e8ea5 Anthony Liguori
    },
2195 eb6e8ea5 Anthony Liguori
2196 eb6e8ea5 Anthony Liguori
    {
2197 eb6e8ea5 Anthony Liguori
        .name       = "qom-get",
2198 eb6e8ea5 Anthony Liguori
	.args_type  = "path:s,property:s",
2199 eb6e8ea5 Anthony Liguori
	.mhandler.cmd_new = qmp_qom_get,
2200 eb6e8ea5 Anthony Liguori
    },
2201 270b243f Luiz Capitulino
2202 270b243f Luiz Capitulino
    {
2203 270b243f Luiz Capitulino
        .name       = "change-vnc-password",
2204 270b243f Luiz Capitulino
        .args_type  = "password:s",
2205 270b243f Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_change_vnc_password,
2206 270b243f Luiz Capitulino
    },
2207 5eeee3fa Anthony Liguori
    {
2208 5eeee3fa Anthony Liguori
        .name       = "qom-list-types",
2209 5eeee3fa Anthony Liguori
        .args_type  = "implements:s?,abstract:b?",
2210 5eeee3fa Anthony Liguori
        .mhandler.cmd_new = qmp_marshal_input_qom_list_types,
2211 5eeee3fa Anthony Liguori
    },