Statistics
| Branch: | Revision:

root / qmp-commands.hx @ e120d449

History | View | Annotate | Download (53.4 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 82a56f0d Luiz Capitulino
        .name       = "netdev_add",
608 82a56f0d Luiz Capitulino
        .args_type  = "netdev:O",
609 82a56f0d Luiz Capitulino
        .params     = "[user|tap|socket],id=str[,prop=value][,...]",
610 82a56f0d Luiz Capitulino
        .help       = "add host network device",
611 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
612 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_netdev_add,
613 82a56f0d Luiz Capitulino
    },
614 82a56f0d Luiz Capitulino
615 82a56f0d Luiz Capitulino
SQMP
616 82a56f0d Luiz Capitulino
netdev_add
617 82a56f0d Luiz Capitulino
----------
618 82a56f0d Luiz Capitulino
619 82a56f0d Luiz Capitulino
Add host network device.
620 82a56f0d Luiz Capitulino
621 82a56f0d Luiz Capitulino
Arguments:
622 82a56f0d Luiz Capitulino
623 82a56f0d Luiz Capitulino
- "type": the device type, "tap", "user", ... (json-string)
624 82a56f0d Luiz Capitulino
- "id": the device's ID, must be unique (json-string)
625 82a56f0d Luiz Capitulino
- device options
626 82a56f0d Luiz Capitulino
627 82a56f0d Luiz Capitulino
Example:
628 82a56f0d Luiz Capitulino
629 82a56f0d Luiz Capitulino
-> { "execute": "netdev_add", "arguments": { "type": "user", "id": "netdev1" } }
630 82a56f0d Luiz Capitulino
<- { "return": {} }
631 82a56f0d Luiz Capitulino
632 82a56f0d Luiz Capitulino
Note: The supported device options are the same ones supported by the '-net'
633 82a56f0d Luiz Capitulino
      command-line argument, which are listed in the '-help' output or QEMU's
634 82a56f0d Luiz Capitulino
      manual
635 82a56f0d Luiz Capitulino
636 82a56f0d Luiz Capitulino
EQMP
637 82a56f0d Luiz Capitulino
638 82a56f0d Luiz Capitulino
    {
639 82a56f0d Luiz Capitulino
        .name       = "netdev_del",
640 82a56f0d Luiz Capitulino
        .args_type  = "id:s",
641 82a56f0d Luiz Capitulino
        .params     = "id",
642 82a56f0d Luiz Capitulino
        .help       = "remove host network device",
643 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
644 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_netdev_del,
645 82a56f0d Luiz Capitulino
    },
646 82a56f0d Luiz Capitulino
647 82a56f0d Luiz Capitulino
SQMP
648 82a56f0d Luiz Capitulino
netdev_del
649 82a56f0d Luiz Capitulino
----------
650 82a56f0d Luiz Capitulino
651 82a56f0d Luiz Capitulino
Remove host network device.
652 82a56f0d Luiz Capitulino
653 82a56f0d Luiz Capitulino
Arguments:
654 82a56f0d Luiz Capitulino
655 82a56f0d Luiz Capitulino
- "id": the device's ID, must be unique (json-string)
656 82a56f0d Luiz Capitulino
657 82a56f0d Luiz Capitulino
Example:
658 82a56f0d Luiz Capitulino
659 82a56f0d Luiz Capitulino
-> { "execute": "netdev_del", "arguments": { "id": "netdev1" } }
660 82a56f0d Luiz Capitulino
<- { "return": {} }
661 82a56f0d Luiz Capitulino
662 6d4a2b3a Christoph Hellwig
663 6d4a2b3a Christoph Hellwig
EQMP
664 6d4a2b3a Christoph Hellwig
665 6d4a2b3a Christoph Hellwig
    {
666 6d4a2b3a Christoph Hellwig
        .name       = "block_resize",
667 6d4a2b3a Christoph Hellwig
        .args_type  = "device:B,size:o",
668 5e7caacb Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_block_resize,
669 6d4a2b3a Christoph Hellwig
    },
670 6d4a2b3a Christoph Hellwig
671 6d4a2b3a Christoph Hellwig
SQMP
672 6d4a2b3a Christoph Hellwig
block_resize
673 6d4a2b3a Christoph Hellwig
------------
674 6d4a2b3a Christoph Hellwig
675 6d4a2b3a Christoph Hellwig
Resize a block image while a guest is running.
676 6d4a2b3a Christoph Hellwig
677 6d4a2b3a Christoph Hellwig
Arguments:
678 6d4a2b3a Christoph Hellwig
679 6d4a2b3a Christoph Hellwig
- "device": the device's ID, must be unique (json-string)
680 6d4a2b3a Christoph Hellwig
- "size": new size
681 6d4a2b3a Christoph Hellwig
682 6d4a2b3a Christoph Hellwig
Example:
683 6d4a2b3a Christoph Hellwig
684 6d4a2b3a Christoph Hellwig
-> { "execute": "block_resize", "arguments": { "device": "scratch", "size": 1073741824 } }
685 6d4a2b3a Christoph Hellwig
<- { "return": {} }
686 6d4a2b3a Christoph Hellwig
687 82a56f0d Luiz Capitulino
EQMP
688 82a56f0d Luiz Capitulino
689 82a56f0d Luiz Capitulino
    {
690 db58f9c0 Stefan Hajnoczi
        .name       = "block-stream",
691 c83c66c3 Stefan Hajnoczi
        .args_type  = "device:B,base:s?,speed:o?",
692 12bd451f Stefan Hajnoczi
        .mhandler.cmd_new = qmp_marshal_input_block_stream,
693 12bd451f Stefan Hajnoczi
    },
694 12bd451f Stefan Hajnoczi
695 12bd451f Stefan Hajnoczi
    {
696 db58f9c0 Stefan Hajnoczi
        .name       = "block-job-set-speed",
697 882ec7ce Stefan Hajnoczi
        .args_type  = "device:B,speed:o",
698 2d47c6e9 Stefan Hajnoczi
        .mhandler.cmd_new = qmp_marshal_input_block_job_set_speed,
699 2d47c6e9 Stefan Hajnoczi
    },
700 2d47c6e9 Stefan Hajnoczi
701 2d47c6e9 Stefan Hajnoczi
    {
702 db58f9c0 Stefan Hajnoczi
        .name       = "block-job-cancel",
703 370521a1 Stefan Hajnoczi
        .args_type  = "device:B",
704 370521a1 Stefan Hajnoczi
        .mhandler.cmd_new = qmp_marshal_input_block_job_cancel,
705 370521a1 Stefan Hajnoczi
    },
706 c186402c Jeff Cody
    {
707 52e7c241 Paolo Bonzini
        .name       = "transaction",
708 b9f8978c Paolo Bonzini
        .args_type  = "actions:q",
709 52e7c241 Paolo Bonzini
        .mhandler.cmd_new = qmp_marshal_input_transaction,
710 c186402c Jeff Cody
    },
711 c186402c Jeff Cody
712 c186402c Jeff Cody
SQMP
713 52e7c241 Paolo Bonzini
transaction
714 52e7c241 Paolo Bonzini
-----------
715 c186402c Jeff Cody
716 52e7c241 Paolo Bonzini
Atomically operate on one or more block devices.  The only supported
717 52e7c241 Paolo Bonzini
operation for now is snapshotting.  If there is any failure performing
718 52e7c241 Paolo Bonzini
any of the operations, all snapshots for the group are abandoned, and
719 52e7c241 Paolo Bonzini
the original disks pre-snapshot attempt are used.
720 c186402c Jeff Cody
721 52e7c241 Paolo Bonzini
A list of dictionaries is accepted, that contains the actions to be performed.
722 52e7c241 Paolo Bonzini
For snapshots this is the device, the file to use for the new snapshot,
723 52e7c241 Paolo Bonzini
and the format.  The default format, if not specified, is qcow2.
724 c186402c Jeff Cody
725 bc8b094f Paolo Bonzini
Each new snapshot defaults to being created by QEMU (wiping any
726 bc8b094f Paolo Bonzini
contents if the file already exists), but it is also possible to reuse
727 bc8b094f Paolo Bonzini
an externally-created file.  In the latter case, you should ensure that
728 bc8b094f Paolo Bonzini
the new image file has the same contents as the current one; QEMU cannot
729 bc8b094f Paolo Bonzini
perform any meaningful check.  Typically this is achieved by using the
730 bc8b094f Paolo Bonzini
current image file as the backing file for the new image.
731 bc8b094f Paolo Bonzini
732 c186402c Jeff Cody
Arguments:
733 c186402c Jeff Cody
734 52e7c241 Paolo Bonzini
actions array:
735 52e7c241 Paolo Bonzini
    - "type": the operation to perform.  The only supported
736 52e7c241 Paolo Bonzini
      value is "blockdev-snapshot-sync". (json-string)
737 52e7c241 Paolo Bonzini
    - "data": a dictionary.  The contents depend on the value
738 52e7c241 Paolo Bonzini
      of "type".  When "type" is "blockdev-snapshot-sync":
739 52e7c241 Paolo Bonzini
      - "device": device name to snapshot (json-string)
740 52e7c241 Paolo Bonzini
      - "snapshot-file": name of new image file (json-string)
741 52e7c241 Paolo Bonzini
      - "format": format of new image (json-string, optional)
742 bc8b094f Paolo Bonzini
      - "mode": whether and how QEMU should create the snapshot file
743 bc8b094f Paolo Bonzini
        (NewImageMode, optional, default "absolute-paths")
744 c186402c Jeff Cody
745 c186402c Jeff Cody
Example:
746 c186402c Jeff Cody
747 52e7c241 Paolo Bonzini
-> { "execute": "transaction",
748 52e7c241 Paolo Bonzini
     "arguments": { "actions": [
749 52e7c241 Paolo Bonzini
         { 'type': 'blockdev-snapshot-sync', 'data' : { "device": "ide-hd0",
750 52e7c241 Paolo Bonzini
                                         "snapshot-file": "/some/place/my-image",
751 52e7c241 Paolo Bonzini
                                         "format": "qcow2" } },
752 52e7c241 Paolo Bonzini
         { 'type': 'blockdev-snapshot-sync', 'data' : { "device": "ide-hd1",
753 52e7c241 Paolo Bonzini
                                         "snapshot-file": "/some/place/my-image2",
754 bc8b094f Paolo Bonzini
                                         "mode": "existing",
755 52e7c241 Paolo Bonzini
                                         "format": "qcow2" } } ] } }
756 c186402c Jeff Cody
<- { "return": {} }
757 c186402c Jeff Cody
758 c186402c Jeff Cody
EQMP
759 370521a1 Stefan Hajnoczi
760 370521a1 Stefan Hajnoczi
    {
761 d967b2f1 Jes Sorensen
        .name       = "blockdev-snapshot-sync",
762 6106e249 Luiz Capitulino
        .args_type  = "device:B,snapshot-file:s,format:s?",
763 6106e249 Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_blockdev_snapshot_sync,
764 d967b2f1 Jes Sorensen
    },
765 d967b2f1 Jes Sorensen
766 d967b2f1 Jes Sorensen
SQMP
767 d967b2f1 Jes Sorensen
blockdev-snapshot-sync
768 d967b2f1 Jes Sorensen
----------------------
769 d967b2f1 Jes Sorensen
770 d967b2f1 Jes Sorensen
Synchronous snapshot of a block device. snapshot-file specifies the
771 d967b2f1 Jes Sorensen
target of the new image. If the file exists, or if it is a device, the
772 d967b2f1 Jes Sorensen
snapshot will be created in the existing file/device. If does not
773 d967b2f1 Jes Sorensen
exist, a new file will be created. format specifies the format of the
774 d967b2f1 Jes Sorensen
snapshot image, default is qcow2.
775 d967b2f1 Jes Sorensen
776 d967b2f1 Jes Sorensen
Arguments:
777 d967b2f1 Jes Sorensen
778 d967b2f1 Jes Sorensen
- "device": device name to snapshot (json-string)
779 d967b2f1 Jes Sorensen
- "snapshot-file": name of new image file (json-string)
780 6cc2a415 Paolo Bonzini
- "mode": whether and how QEMU should create the snapshot file
781 6cc2a415 Paolo Bonzini
  (NewImageMode, optional, default "absolute-paths")
782 d967b2f1 Jes Sorensen
- "format": format of new image (json-string, optional)
783 d967b2f1 Jes Sorensen
784 d967b2f1 Jes Sorensen
Example:
785 d967b2f1 Jes Sorensen
786 7f3850c2 Luiz Capitulino
-> { "execute": "blockdev-snapshot-sync", "arguments": { "device": "ide-hd0",
787 7f3850c2 Luiz Capitulino
                                                         "snapshot-file":
788 7f3850c2 Luiz Capitulino
                                                        "/some/place/my-image",
789 7f3850c2 Luiz Capitulino
                                                        "format": "qcow2" } }
790 d967b2f1 Jes Sorensen
<- { "return": {} }
791 d967b2f1 Jes Sorensen
792 d967b2f1 Jes Sorensen
EQMP
793 d967b2f1 Jes Sorensen
794 d967b2f1 Jes Sorensen
    {
795 82a56f0d Luiz Capitulino
        .name       = "balloon",
796 82a56f0d Luiz Capitulino
        .args_type  = "value:M",
797 d72f3264 Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_balloon,
798 82a56f0d Luiz Capitulino
    },
799 82a56f0d Luiz Capitulino
800 82a56f0d Luiz Capitulino
SQMP
801 82a56f0d Luiz Capitulino
balloon
802 82a56f0d Luiz Capitulino
-------
803 82a56f0d Luiz Capitulino
804 82a56f0d Luiz Capitulino
Request VM to change its memory allocation (in bytes).
805 82a56f0d Luiz Capitulino
806 82a56f0d Luiz Capitulino
Arguments:
807 82a56f0d Luiz Capitulino
808 82a56f0d Luiz Capitulino
- "value": New memory allocation (json-int)
809 82a56f0d Luiz Capitulino
810 82a56f0d Luiz Capitulino
Example:
811 82a56f0d Luiz Capitulino
812 82a56f0d Luiz Capitulino
-> { "execute": "balloon", "arguments": { "value": 536870912 } }
813 82a56f0d Luiz Capitulino
<- { "return": {} }
814 82a56f0d Luiz Capitulino
815 82a56f0d Luiz Capitulino
EQMP
816 82a56f0d Luiz Capitulino
817 82a56f0d Luiz Capitulino
    {
818 82a56f0d Luiz Capitulino
        .name       = "set_link",
819 82a56f0d Luiz Capitulino
        .args_type  = "name:s,up:b",
820 4b37156c Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_set_link,
821 82a56f0d Luiz Capitulino
    },
822 82a56f0d Luiz Capitulino
823 82a56f0d Luiz Capitulino
SQMP
824 82a56f0d Luiz Capitulino
set_link
825 82a56f0d Luiz Capitulino
--------
826 82a56f0d Luiz Capitulino
827 82a56f0d Luiz Capitulino
Change the link status of a network adapter.
828 82a56f0d Luiz Capitulino
829 82a56f0d Luiz Capitulino
Arguments:
830 82a56f0d Luiz Capitulino
831 82a56f0d Luiz Capitulino
- "name": network device name (json-string)
832 82a56f0d Luiz Capitulino
- "up": status is up (json-bool)
833 82a56f0d Luiz Capitulino
834 82a56f0d Luiz Capitulino
Example:
835 82a56f0d Luiz Capitulino
836 82a56f0d Luiz Capitulino
-> { "execute": "set_link", "arguments": { "name": "e1000.0", "up": false } }
837 82a56f0d Luiz Capitulino
<- { "return": {} }
838 82a56f0d Luiz Capitulino
839 82a56f0d Luiz Capitulino
EQMP
840 82a56f0d Luiz Capitulino
841 82a56f0d Luiz Capitulino
    {
842 82a56f0d Luiz Capitulino
        .name       = "getfd",
843 82a56f0d Luiz Capitulino
        .args_type  = "fdname:s",
844 82a56f0d Luiz Capitulino
        .params     = "getfd name",
845 82a56f0d Luiz Capitulino
        .help       = "receive a file descriptor via SCM rights and assign it a name",
846 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
847 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_getfd,
848 82a56f0d Luiz Capitulino
    },
849 82a56f0d Luiz Capitulino
850 82a56f0d Luiz Capitulino
SQMP
851 82a56f0d Luiz Capitulino
getfd
852 82a56f0d Luiz Capitulino
-----
853 82a56f0d Luiz Capitulino
854 82a56f0d Luiz Capitulino
Receive a file descriptor via SCM rights and assign it a name.
855 82a56f0d Luiz Capitulino
856 82a56f0d Luiz Capitulino
Arguments:
857 82a56f0d Luiz Capitulino
858 82a56f0d Luiz Capitulino
- "fdname": file descriptor name (json-string)
859 82a56f0d Luiz Capitulino
860 82a56f0d Luiz Capitulino
Example:
861 82a56f0d Luiz Capitulino
862 82a56f0d Luiz Capitulino
-> { "execute": "getfd", "arguments": { "fdname": "fd1" } }
863 82a56f0d Luiz Capitulino
<- { "return": {} }
864 82a56f0d Luiz Capitulino
865 82a56f0d Luiz Capitulino
EQMP
866 82a56f0d Luiz Capitulino
867 82a56f0d Luiz Capitulino
    {
868 82a56f0d Luiz Capitulino
        .name       = "closefd",
869 82a56f0d Luiz Capitulino
        .args_type  = "fdname:s",
870 82a56f0d Luiz Capitulino
        .params     = "closefd name",
871 82a56f0d Luiz Capitulino
        .help       = "close a file descriptor previously passed via SCM rights",
872 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
873 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_closefd,
874 82a56f0d Luiz Capitulino
    },
875 82a56f0d Luiz Capitulino
876 82a56f0d Luiz Capitulino
SQMP
877 82a56f0d Luiz Capitulino
closefd
878 82a56f0d Luiz Capitulino
-------
879 82a56f0d Luiz Capitulino
880 82a56f0d Luiz Capitulino
Close a file descriptor previously passed via SCM rights.
881 82a56f0d Luiz Capitulino
882 82a56f0d Luiz Capitulino
Arguments:
883 82a56f0d Luiz Capitulino
884 82a56f0d Luiz Capitulino
- "fdname": file descriptor name (json-string)
885 82a56f0d Luiz Capitulino
886 82a56f0d Luiz Capitulino
Example:
887 82a56f0d Luiz Capitulino
888 82a56f0d Luiz Capitulino
-> { "execute": "closefd", "arguments": { "fdname": "fd1" } }
889 82a56f0d Luiz Capitulino
<- { "return": {} }
890 82a56f0d Luiz Capitulino
891 82a56f0d Luiz Capitulino
EQMP
892 82a56f0d Luiz Capitulino
893 82a56f0d Luiz Capitulino
    {
894 82a56f0d Luiz Capitulino
        .name       = "block_passwd",
895 82a56f0d Luiz Capitulino
        .args_type  = "device:B,password:s",
896 a4dea8a9 Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_block_passwd,
897 82a56f0d Luiz Capitulino
    },
898 82a56f0d Luiz Capitulino
899 82a56f0d Luiz Capitulino
SQMP
900 82a56f0d Luiz Capitulino
block_passwd
901 82a56f0d Luiz Capitulino
------------
902 82a56f0d Luiz Capitulino
903 82a56f0d Luiz Capitulino
Set the password of encrypted block devices.
904 82a56f0d Luiz Capitulino
905 82a56f0d Luiz Capitulino
Arguments:
906 82a56f0d Luiz Capitulino
907 82a56f0d Luiz Capitulino
- "device": device name (json-string)
908 82a56f0d Luiz Capitulino
- "password": password (json-string)
909 82a56f0d Luiz Capitulino
910 82a56f0d Luiz Capitulino
Example:
911 82a56f0d Luiz Capitulino
912 82a56f0d Luiz Capitulino
-> { "execute": "block_passwd", "arguments": { "device": "ide0-hd0",
913 82a56f0d Luiz Capitulino
                                               "password": "12345" } }
914 82a56f0d Luiz Capitulino
<- { "return": {} }
915 82a56f0d Luiz Capitulino
916 82a56f0d Luiz Capitulino
EQMP
917 82a56f0d Luiz Capitulino
918 82a56f0d Luiz Capitulino
    {
919 727f005e Zhi Yong Wu
        .name       = "block_set_io_throttle",
920 727f005e Zhi Yong Wu
        .args_type  = "device:B,bps:l,bps_rd:l,bps_wr:l,iops:l,iops_rd:l,iops_wr:l",
921 80047da5 Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_block_set_io_throttle,
922 727f005e Zhi Yong Wu
    },
923 727f005e Zhi Yong Wu
924 727f005e Zhi Yong Wu
SQMP
925 727f005e Zhi Yong Wu
block_set_io_throttle
926 727f005e Zhi Yong Wu
------------
927 727f005e Zhi Yong Wu
928 727f005e Zhi Yong Wu
Change I/O throttle limits for a block drive.
929 727f005e Zhi Yong Wu
930 727f005e Zhi Yong Wu
Arguments:
931 727f005e Zhi Yong Wu
932 727f005e Zhi Yong Wu
- "device": device name (json-string)
933 727f005e Zhi Yong Wu
- "bps":  total throughput limit in bytes per second(json-int)
934 727f005e Zhi Yong Wu
- "bps_rd":  read throughput limit in bytes per second(json-int)
935 727f005e Zhi Yong Wu
- "bps_wr":  read throughput limit in bytes per second(json-int)
936 727f005e Zhi Yong Wu
- "iops":  total I/O operations per second(json-int)
937 727f005e Zhi Yong Wu
- "iops_rd":  read I/O operations per second(json-int)
938 727f005e Zhi Yong Wu
- "iops_wr":  write I/O operations per second(json-int)
939 727f005e Zhi Yong Wu
940 727f005e Zhi Yong Wu
Example:
941 727f005e Zhi Yong Wu
942 727f005e Zhi Yong Wu
-> { "execute": "block_set_io_throttle", "arguments": { "device": "virtio0",
943 727f005e Zhi Yong Wu
                                               "bps": "1000000",
944 727f005e Zhi Yong Wu
                                               "bps_rd": "0",
945 727f005e Zhi Yong Wu
                                               "bps_wr": "0",
946 727f005e Zhi Yong Wu
                                               "iops": "0",
947 727f005e Zhi Yong Wu
                                               "iops_rd": "0",
948 727f005e Zhi Yong Wu
                                               "iops_wr": "0" } }
949 727f005e Zhi Yong Wu
<- { "return": {} }
950 727f005e Zhi Yong Wu
951 727f005e Zhi Yong Wu
EQMP
952 727f005e Zhi Yong Wu
953 727f005e Zhi Yong Wu
    {
954 7572150c Gerd Hoffmann
        .name       = "set_password",
955 7572150c Gerd Hoffmann
        .args_type  = "protocol:s,password:s,connected:s?",
956 fbf796fd Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_set_password,
957 7572150c Gerd Hoffmann
    },
958 7572150c Gerd Hoffmann
959 7572150c Gerd Hoffmann
SQMP
960 7572150c Gerd Hoffmann
set_password
961 7572150c Gerd Hoffmann
------------
962 7572150c Gerd Hoffmann
963 7572150c Gerd Hoffmann
Set the password for vnc/spice protocols.
964 7572150c Gerd Hoffmann
965 7572150c Gerd Hoffmann
Arguments:
966 7572150c Gerd Hoffmann
967 7572150c Gerd Hoffmann
- "protocol": protocol name (json-string)
968 7572150c Gerd Hoffmann
- "password": password (json-string)
969 7572150c Gerd Hoffmann
- "connected": [ keep | disconnect | fail ] (josn-string, optional)
970 7572150c Gerd Hoffmann
971 7572150c Gerd Hoffmann
Example:
972 7572150c Gerd Hoffmann
973 7572150c Gerd Hoffmann
-> { "execute": "set_password", "arguments": { "protocol": "vnc",
974 7572150c Gerd Hoffmann
                                               "password": "secret" } }
975 7572150c Gerd Hoffmann
<- { "return": {} }
976 7572150c Gerd Hoffmann
977 7572150c Gerd Hoffmann
EQMP
978 7572150c Gerd Hoffmann
979 7572150c Gerd Hoffmann
    {
980 7572150c Gerd Hoffmann
        .name       = "expire_password",
981 7572150c Gerd Hoffmann
        .args_type  = "protocol:s,time:s",
982 9ad5372d Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_expire_password,
983 7572150c Gerd Hoffmann
    },
984 7572150c Gerd Hoffmann
985 7572150c Gerd Hoffmann
SQMP
986 7572150c Gerd Hoffmann
expire_password
987 7572150c Gerd Hoffmann
---------------
988 7572150c Gerd Hoffmann
989 7572150c Gerd Hoffmann
Set the password expire time for vnc/spice protocols.
990 7572150c Gerd Hoffmann
991 7572150c Gerd Hoffmann
Arguments:
992 7572150c Gerd Hoffmann
993 7572150c Gerd Hoffmann
- "protocol": protocol name (json-string)
994 7572150c Gerd Hoffmann
- "time": [ now | never | +secs | secs ] (json-string)
995 7572150c Gerd Hoffmann
996 7572150c Gerd Hoffmann
Example:
997 7572150c Gerd Hoffmann
998 7572150c Gerd Hoffmann
-> { "execute": "expire_password", "arguments": { "protocol": "vnc",
999 7572150c Gerd Hoffmann
                                                  "time": "+60" } }
1000 7572150c Gerd Hoffmann
<- { "return": {} }
1001 7572150c Gerd Hoffmann
1002 7572150c Gerd Hoffmann
EQMP
1003 7572150c Gerd Hoffmann
1004 7572150c Gerd Hoffmann
    {
1005 13661089 Daniel P. Berrange
        .name       = "add_client",
1006 f1f5f407 Daniel P. Berrange
        .args_type  = "protocol:s,fdname:s,skipauth:b?,tls:b?",
1007 f1f5f407 Daniel P. Berrange
        .params     = "protocol fdname skipauth tls",
1008 13661089 Daniel P. Berrange
        .help       = "add a graphics client",
1009 13661089 Daniel P. Berrange
        .user_print = monitor_user_noop,
1010 13661089 Daniel P. Berrange
        .mhandler.cmd_new = add_graphics_client,
1011 13661089 Daniel P. Berrange
    },
1012 13661089 Daniel P. Berrange
1013 13661089 Daniel P. Berrange
SQMP
1014 13661089 Daniel P. Berrange
add_client
1015 13661089 Daniel P. Berrange
----------
1016 13661089 Daniel P. Berrange
1017 13661089 Daniel P. Berrange
Add a graphics client
1018 13661089 Daniel P. Berrange
1019 13661089 Daniel P. Berrange
Arguments:
1020 13661089 Daniel P. Berrange
1021 13661089 Daniel P. Berrange
- "protocol": protocol name (json-string)
1022 13661089 Daniel P. Berrange
- "fdname": file descriptor name (json-string)
1023 f1f5f407 Daniel P. Berrange
- "skipauth": whether to skip authentication (json-bool, optional)
1024 f1f5f407 Daniel P. Berrange
- "tls": whether to perform TLS (json-bool, optional)
1025 13661089 Daniel P. Berrange
1026 13661089 Daniel P. Berrange
Example:
1027 13661089 Daniel P. Berrange
1028 13661089 Daniel P. Berrange
-> { "execute": "add_client", "arguments": { "protocol": "vnc",
1029 13661089 Daniel P. Berrange
                                             "fdname": "myclient" } }
1030 13661089 Daniel P. Berrange
<- { "return": {} }
1031 13661089 Daniel P. Berrange
1032 13661089 Daniel P. Berrange
EQMP
1033 13661089 Daniel P. Berrange
    {
1034 82a56f0d Luiz Capitulino
        .name       = "qmp_capabilities",
1035 82a56f0d Luiz Capitulino
        .args_type  = "",
1036 82a56f0d Luiz Capitulino
        .params     = "",
1037 82a56f0d Luiz Capitulino
        .help       = "enable QMP capabilities",
1038 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
1039 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_qmp_capabilities,
1040 82a56f0d Luiz Capitulino
    },
1041 82a56f0d Luiz Capitulino
1042 82a56f0d Luiz Capitulino
SQMP
1043 82a56f0d Luiz Capitulino
qmp_capabilities
1044 82a56f0d Luiz Capitulino
----------------
1045 82a56f0d Luiz Capitulino
1046 82a56f0d Luiz Capitulino
Enable QMP capabilities.
1047 82a56f0d Luiz Capitulino
1048 82a56f0d Luiz Capitulino
Arguments: None.
1049 82a56f0d Luiz Capitulino
1050 82a56f0d Luiz Capitulino
Example:
1051 82a56f0d Luiz Capitulino
1052 82a56f0d Luiz Capitulino
-> { "execute": "qmp_capabilities" }
1053 82a56f0d Luiz Capitulino
<- { "return": {} }
1054 82a56f0d Luiz Capitulino
1055 82a56f0d Luiz Capitulino
Note: This command must be issued before issuing any other command.
1056 82a56f0d Luiz Capitulino
1057 0268d97c Luiz Capitulino
EQMP
1058 0268d97c Luiz Capitulino
1059 0268d97c Luiz Capitulino
    {
1060 0268d97c Luiz Capitulino
        .name       = "human-monitor-command",
1061 0268d97c Luiz Capitulino
        .args_type  = "command-line:s,cpu-index:i?",
1062 d51a67b4 Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_human_monitor_command,
1063 0268d97c Luiz Capitulino
    },
1064 0268d97c Luiz Capitulino
1065 0268d97c Luiz Capitulino
SQMP
1066 0268d97c Luiz Capitulino
human-monitor-command
1067 0268d97c Luiz Capitulino
---------------------
1068 0268d97c Luiz Capitulino
1069 0268d97c Luiz Capitulino
Execute a Human Monitor command.
1070 0268d97c Luiz Capitulino
1071 0268d97c Luiz Capitulino
Arguments: 
1072 0268d97c Luiz Capitulino
1073 0268d97c Luiz Capitulino
- command-line: the command name and its arguments, just like the
1074 0268d97c Luiz Capitulino
                Human Monitor's shell (json-string)
1075 0268d97c Luiz Capitulino
- cpu-index: select the CPU number to be used by commands which access CPU
1076 0268d97c Luiz Capitulino
             data, like 'info registers'. The Monitor selects CPU 0 if this
1077 0268d97c Luiz Capitulino
             argument is not provided (json-int, optional)
1078 0268d97c Luiz Capitulino
1079 0268d97c Luiz Capitulino
Example:
1080 0268d97c Luiz Capitulino
1081 0268d97c Luiz Capitulino
-> { "execute": "human-monitor-command", "arguments": { "command-line": "info kvm" } }
1082 0268d97c Luiz Capitulino
<- { "return": "kvm support: enabled\r\n" }
1083 0268d97c Luiz Capitulino
1084 0268d97c Luiz Capitulino
Notes:
1085 0268d97c Luiz Capitulino
1086 0268d97c Luiz Capitulino
(1) The Human Monitor is NOT an stable interface, this means that command
1087 0268d97c Luiz Capitulino
    names, arguments and responses can change or be removed at ANY time.
1088 0268d97c Luiz Capitulino
    Applications that rely on long term stability guarantees should NOT
1089 0268d97c Luiz Capitulino
    use this command
1090 0268d97c Luiz Capitulino
1091 0268d97c Luiz Capitulino
(2) Limitations:
1092 0268d97c Luiz Capitulino
1093 0268d97c Luiz Capitulino
    o This command is stateless, this means that commands that depend
1094 0268d97c Luiz Capitulino
      on state information (such as getfd) might not work
1095 0268d97c Luiz Capitulino
1096 0268d97c Luiz Capitulino
    o Commands that prompt the user for data (eg. 'cont' when the block
1097 0268d97c Luiz Capitulino
      device is encrypted) don't currently work
1098 0268d97c Luiz Capitulino
1099 82a56f0d Luiz Capitulino
3. Query Commands
1100 82a56f0d Luiz Capitulino
=================
1101 82a56f0d Luiz Capitulino
1102 82a56f0d Luiz Capitulino
HXCOMM Each query command below is inside a SQMP/EQMP section, do NOT change
1103 82a56f0d Luiz Capitulino
HXCOMM this! We will possibly move query commands definitions inside those
1104 82a56f0d Luiz Capitulino
HXCOMM sections, just like regular commands.
1105 82a56f0d Luiz Capitulino
1106 82a56f0d Luiz Capitulino
EQMP
1107 82a56f0d Luiz Capitulino
1108 82a56f0d Luiz Capitulino
SQMP
1109 82a56f0d Luiz Capitulino
query-version
1110 82a56f0d Luiz Capitulino
-------------
1111 82a56f0d Luiz Capitulino
1112 82a56f0d Luiz Capitulino
Show QEMU version.
1113 82a56f0d Luiz Capitulino
1114 82a56f0d Luiz Capitulino
Return a json-object with the following information:
1115 82a56f0d Luiz Capitulino
1116 82a56f0d Luiz Capitulino
- "qemu": A json-object containing three integer values:
1117 82a56f0d Luiz Capitulino
    - "major": QEMU's major version (json-int)
1118 82a56f0d Luiz Capitulino
    - "minor": QEMU's minor version (json-int)
1119 82a56f0d Luiz Capitulino
    - "micro": QEMU's micro version (json-int)
1120 82a56f0d Luiz Capitulino
- "package": package's version (json-string)
1121 82a56f0d Luiz Capitulino
1122 82a56f0d Luiz Capitulino
Example:
1123 82a56f0d Luiz Capitulino
1124 82a56f0d Luiz Capitulino
-> { "execute": "query-version" }
1125 82a56f0d Luiz Capitulino
<- {
1126 82a56f0d Luiz Capitulino
      "return":{
1127 82a56f0d Luiz Capitulino
         "qemu":{
1128 82a56f0d Luiz Capitulino
            "major":0,
1129 82a56f0d Luiz Capitulino
            "minor":11,
1130 82a56f0d Luiz Capitulino
            "micro":5
1131 82a56f0d Luiz Capitulino
         },
1132 82a56f0d Luiz Capitulino
         "package":""
1133 82a56f0d Luiz Capitulino
      }
1134 82a56f0d Luiz Capitulino
   }
1135 82a56f0d Luiz Capitulino
1136 82a56f0d Luiz Capitulino
EQMP
1137 82a56f0d Luiz Capitulino
1138 b9c15f16 Luiz Capitulino
    {
1139 b9c15f16 Luiz Capitulino
        .name       = "query-version",
1140 b9c15f16 Luiz Capitulino
        .args_type  = "",
1141 b9c15f16 Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_query_version,
1142 b9c15f16 Luiz Capitulino
    },
1143 b9c15f16 Luiz Capitulino
1144 82a56f0d Luiz Capitulino
SQMP
1145 82a56f0d Luiz Capitulino
query-commands
1146 82a56f0d Luiz Capitulino
--------------
1147 82a56f0d Luiz Capitulino
1148 82a56f0d Luiz Capitulino
List QMP available commands.
1149 82a56f0d Luiz Capitulino
1150 82a56f0d Luiz Capitulino
Each command is represented by a json-object, the returned value is a json-array
1151 82a56f0d Luiz Capitulino
of all commands.
1152 82a56f0d Luiz Capitulino
1153 82a56f0d Luiz Capitulino
Each json-object contain:
1154 82a56f0d Luiz Capitulino
1155 82a56f0d Luiz Capitulino
- "name": command's name (json-string)
1156 82a56f0d Luiz Capitulino
1157 82a56f0d Luiz Capitulino
Example:
1158 82a56f0d Luiz Capitulino
1159 82a56f0d Luiz Capitulino
-> { "execute": "query-commands" }
1160 82a56f0d Luiz Capitulino
<- {
1161 82a56f0d Luiz Capitulino
      "return":[
1162 82a56f0d Luiz Capitulino
         {
1163 82a56f0d Luiz Capitulino
            "name":"query-balloon"
1164 82a56f0d Luiz Capitulino
         },
1165 82a56f0d Luiz Capitulino
         {
1166 82a56f0d Luiz Capitulino
            "name":"system_powerdown"
1167 82a56f0d Luiz Capitulino
         }
1168 82a56f0d Luiz Capitulino
      ]
1169 82a56f0d Luiz Capitulino
   }
1170 82a56f0d Luiz Capitulino
1171 82a56f0d Luiz Capitulino
Note: This example has been shortened as the real response is too long.
1172 82a56f0d Luiz Capitulino
1173 82a56f0d Luiz Capitulino
EQMP
1174 82a56f0d Luiz Capitulino
1175 aa9b79bc Luiz Capitulino
    {
1176 aa9b79bc Luiz Capitulino
        .name       = "query-commands",
1177 aa9b79bc Luiz Capitulino
        .args_type  = "",
1178 aa9b79bc Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_query_commands,
1179 aa9b79bc Luiz Capitulino
    },
1180 aa9b79bc Luiz Capitulino
1181 82a56f0d Luiz Capitulino
SQMP
1182 82a56f0d Luiz Capitulino
query-chardev
1183 82a56f0d Luiz Capitulino
-------------
1184 82a56f0d Luiz Capitulino
1185 82a56f0d Luiz Capitulino
Each device is represented by a json-object. The returned value is a json-array
1186 82a56f0d Luiz Capitulino
of all devices.
1187 82a56f0d Luiz Capitulino
1188 82a56f0d Luiz Capitulino
Each json-object contain the following:
1189 82a56f0d Luiz Capitulino
1190 82a56f0d Luiz Capitulino
- "label": device's label (json-string)
1191 82a56f0d Luiz Capitulino
- "filename": device's file (json-string)
1192 82a56f0d Luiz Capitulino
1193 82a56f0d Luiz Capitulino
Example:
1194 82a56f0d Luiz Capitulino
1195 82a56f0d Luiz Capitulino
-> { "execute": "query-chardev" }
1196 82a56f0d Luiz Capitulino
<- {
1197 82a56f0d Luiz Capitulino
      "return":[
1198 82a56f0d Luiz Capitulino
         {
1199 82a56f0d Luiz Capitulino
            "label":"monitor",
1200 82a56f0d Luiz Capitulino
            "filename":"stdio"
1201 82a56f0d Luiz Capitulino
         },
1202 82a56f0d Luiz Capitulino
         {
1203 82a56f0d Luiz Capitulino
            "label":"serial0",
1204 82a56f0d Luiz Capitulino
            "filename":"vc"
1205 82a56f0d Luiz Capitulino
         }
1206 82a56f0d Luiz Capitulino
      ]
1207 82a56f0d Luiz Capitulino
   }
1208 82a56f0d Luiz Capitulino
1209 82a56f0d Luiz Capitulino
EQMP
1210 82a56f0d Luiz Capitulino
1211 c5a415a0 Luiz Capitulino
    {
1212 c5a415a0 Luiz Capitulino
        .name       = "query-chardev",
1213 c5a415a0 Luiz Capitulino
        .args_type  = "",
1214 c5a415a0 Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_query_chardev,
1215 c5a415a0 Luiz Capitulino
    },
1216 c5a415a0 Luiz Capitulino
1217 82a56f0d Luiz Capitulino
SQMP
1218 82a56f0d Luiz Capitulino
query-block
1219 82a56f0d Luiz Capitulino
-----------
1220 82a56f0d Luiz Capitulino
1221 82a56f0d Luiz Capitulino
Show the block devices.
1222 82a56f0d Luiz Capitulino
1223 82a56f0d Luiz Capitulino
Each block device information is stored in a json-object and the returned value
1224 82a56f0d Luiz Capitulino
is a json-array of all devices.
1225 82a56f0d Luiz Capitulino
1226 82a56f0d Luiz Capitulino
Each json-object contain the following:
1227 82a56f0d Luiz Capitulino
1228 82a56f0d Luiz Capitulino
- "device": device name (json-string)
1229 82a56f0d Luiz Capitulino
- "type": device type (json-string)
1230 d8aeeb31 Markus Armbruster
         - deprecated, retained for backward compatibility
1231 d8aeeb31 Markus Armbruster
         - Possible values: "unknown"
1232 82a56f0d Luiz Capitulino
- "removable": true if the device is removable, false otherwise (json-bool)
1233 82a56f0d Luiz Capitulino
- "locked": true if the device is locked, false otherwise (json-bool)
1234 e4def80b Markus Armbruster
- "tray-open": only present if removable, true if the device has a tray,
1235 e4def80b Markus Armbruster
               and it is open (json-bool)
1236 82a56f0d Luiz Capitulino
- "inserted": only present if the device is inserted, it is a json-object
1237 82a56f0d Luiz Capitulino
   containing the following:
1238 82a56f0d Luiz Capitulino
         - "file": device file name (json-string)
1239 82a56f0d Luiz Capitulino
         - "ro": true if read-only, false otherwise (json-bool)
1240 82a56f0d Luiz Capitulino
         - "drv": driver format name (json-string)
1241 82a56f0d Luiz Capitulino
             - Possible values: "blkdebug", "bochs", "cloop", "cow", "dmg",
1242 82a56f0d Luiz Capitulino
                                "file", "file", "ftp", "ftps", "host_cdrom",
1243 82a56f0d Luiz Capitulino
                                "host_device", "host_floppy", "http", "https",
1244 82a56f0d Luiz Capitulino
                                "nbd", "parallels", "qcow", "qcow2", "raw",
1245 82a56f0d Luiz Capitulino
                                "tftp", "vdi", "vmdk", "vpc", "vvfat"
1246 82a56f0d Luiz Capitulino
         - "backing_file": backing file name (json-string, optional)
1247 82a56f0d Luiz Capitulino
         - "encrypted": true if encrypted, false otherwise (json-bool)
1248 727f005e Zhi Yong Wu
         - "bps": limit total bytes per second (json-int)
1249 727f005e Zhi Yong Wu
         - "bps_rd": limit read bytes per second (json-int)
1250 727f005e Zhi Yong Wu
         - "bps_wr": limit write bytes per second (json-int)
1251 727f005e Zhi Yong Wu
         - "iops": limit total I/O operations per second (json-int)
1252 727f005e Zhi Yong Wu
         - "iops_rd": limit read operations per second (json-int)
1253 727f005e Zhi Yong Wu
         - "iops_wr": limit write operations per second (json-int)
1254 727f005e Zhi Yong Wu
1255 f04ef601 Luiz Capitulino
- "io-status": I/O operation status, only present if the device supports it
1256 f04ef601 Luiz Capitulino
               and the VM is configured to stop on errors. It's always reset
1257 f04ef601 Luiz Capitulino
               to "ok" when the "cont" command is issued (json_string, optional)
1258 f04ef601 Luiz Capitulino
             - Possible values: "ok", "failed", "nospace"
1259 82a56f0d Luiz Capitulino
1260 82a56f0d Luiz Capitulino
Example:
1261 82a56f0d Luiz Capitulino
1262 82a56f0d Luiz Capitulino
-> { "execute": "query-block" }
1263 82a56f0d Luiz Capitulino
<- {
1264 82a56f0d Luiz Capitulino
      "return":[
1265 82a56f0d Luiz Capitulino
         {
1266 f04ef601 Luiz Capitulino
            "io-status": "ok",
1267 82a56f0d Luiz Capitulino
            "device":"ide0-hd0",
1268 82a56f0d Luiz Capitulino
            "locked":false,
1269 82a56f0d Luiz Capitulino
            "removable":false,
1270 82a56f0d Luiz Capitulino
            "inserted":{
1271 82a56f0d Luiz Capitulino
               "ro":false,
1272 82a56f0d Luiz Capitulino
               "drv":"qcow2",
1273 82a56f0d Luiz Capitulino
               "encrypted":false,
1274 727f005e Zhi Yong Wu
               "file":"disks/test.img",
1275 727f005e Zhi Yong Wu
               "bps":1000000,
1276 727f005e Zhi Yong Wu
               "bps_rd":0,
1277 727f005e Zhi Yong Wu
               "bps_wr":0,
1278 727f005e Zhi Yong Wu
               "iops":1000000,
1279 727f005e Zhi Yong Wu
               "iops_rd":0,
1280 727f005e Zhi Yong Wu
               "iops_wr":0,
1281 82a56f0d Luiz Capitulino
            },
1282 d8aeeb31 Markus Armbruster
            "type":"unknown"
1283 82a56f0d Luiz Capitulino
         },
1284 82a56f0d Luiz Capitulino
         {
1285 f04ef601 Luiz Capitulino
            "io-status": "ok",
1286 82a56f0d Luiz Capitulino
            "device":"ide1-cd0",
1287 82a56f0d Luiz Capitulino
            "locked":false,
1288 82a56f0d Luiz Capitulino
            "removable":true,
1289 d8aeeb31 Markus Armbruster
            "type":"unknown"
1290 82a56f0d Luiz Capitulino
         },
1291 82a56f0d Luiz Capitulino
         {
1292 82a56f0d Luiz Capitulino
            "device":"floppy0",
1293 82a56f0d Luiz Capitulino
            "locked":false,
1294 82a56f0d Luiz Capitulino
            "removable":true,
1295 d8aeeb31 Markus Armbruster
            "type":"unknown"
1296 82a56f0d Luiz Capitulino
         },
1297 82a56f0d Luiz Capitulino
         {
1298 82a56f0d Luiz Capitulino
            "device":"sd0",
1299 82a56f0d Luiz Capitulino
            "locked":false,
1300 82a56f0d Luiz Capitulino
            "removable":true,
1301 d8aeeb31 Markus Armbruster
            "type":"unknown"
1302 82a56f0d Luiz Capitulino
         }
1303 82a56f0d Luiz Capitulino
      ]
1304 82a56f0d Luiz Capitulino
   }
1305 82a56f0d Luiz Capitulino
1306 82a56f0d Luiz Capitulino
EQMP
1307 82a56f0d Luiz Capitulino
1308 b2023818 Luiz Capitulino
    {
1309 b2023818 Luiz Capitulino
        .name       = "query-block",
1310 b2023818 Luiz Capitulino
        .args_type  = "",
1311 b2023818 Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_query_block,
1312 b2023818 Luiz Capitulino
    },
1313 b2023818 Luiz Capitulino
1314 82a56f0d Luiz Capitulino
SQMP
1315 82a56f0d Luiz Capitulino
query-blockstats
1316 82a56f0d Luiz Capitulino
----------------
1317 82a56f0d Luiz Capitulino
1318 82a56f0d Luiz Capitulino
Show block device statistics.
1319 82a56f0d Luiz Capitulino
1320 82a56f0d Luiz Capitulino
Each device statistic information is stored in a json-object and the returned
1321 82a56f0d Luiz Capitulino
value is a json-array of all devices.
1322 82a56f0d Luiz Capitulino
1323 82a56f0d Luiz Capitulino
Each json-object contain the following:
1324 82a56f0d Luiz Capitulino
1325 82a56f0d Luiz Capitulino
- "device": device name (json-string)
1326 82a56f0d Luiz Capitulino
- "stats": A json-object with the statistics information, it contains:
1327 82a56f0d Luiz Capitulino
    - "rd_bytes": bytes read (json-int)
1328 82a56f0d Luiz Capitulino
    - "wr_bytes": bytes written (json-int)
1329 82a56f0d Luiz Capitulino
    - "rd_operations": read operations (json-int)
1330 82a56f0d Luiz Capitulino
    - "wr_operations": write operations (json-int)
1331 e8045d67 Christoph Hellwig
    - "flush_operations": cache flush operations (json-int)
1332 c488c7f6 Christoph Hellwig
    - "wr_total_time_ns": total time spend on writes in nano-seconds (json-int)
1333 c488c7f6 Christoph Hellwig
    - "rd_total_time_ns": total time spend on reads in nano-seconds (json-int)
1334 c488c7f6 Christoph Hellwig
    - "flush_total_time_ns": total time spend on cache flushes in nano-seconds (json-int)
1335 82a56f0d Luiz Capitulino
    - "wr_highest_offset": Highest offset of a sector written since the
1336 82a56f0d Luiz Capitulino
                           BlockDriverState has been opened (json-int)
1337 82a56f0d Luiz Capitulino
- "parent": Contains recursively the statistics of the underlying
1338 82a56f0d Luiz Capitulino
            protocol (e.g. the host file for a qcow2 image). If there is
1339 82a56f0d Luiz Capitulino
            no underlying protocol, this field is omitted
1340 82a56f0d Luiz Capitulino
            (json-object, optional)
1341 82a56f0d Luiz Capitulino
1342 82a56f0d Luiz Capitulino
Example:
1343 82a56f0d Luiz Capitulino
1344 82a56f0d Luiz Capitulino
-> { "execute": "query-blockstats" }
1345 82a56f0d Luiz Capitulino
<- {
1346 82a56f0d Luiz Capitulino
      "return":[
1347 82a56f0d Luiz Capitulino
         {
1348 82a56f0d Luiz Capitulino
            "device":"ide0-hd0",
1349 82a56f0d Luiz Capitulino
            "parent":{
1350 82a56f0d Luiz Capitulino
               "stats":{
1351 82a56f0d Luiz Capitulino
                  "wr_highest_offset":3686448128,
1352 82a56f0d Luiz Capitulino
                  "wr_bytes":9786368,
1353 82a56f0d Luiz Capitulino
                  "wr_operations":751,
1354 82a56f0d Luiz Capitulino
                  "rd_bytes":122567168,
1355 82a56f0d Luiz Capitulino
                  "rd_operations":36772
1356 c488c7f6 Christoph Hellwig
                  "wr_total_times_ns":313253456
1357 c488c7f6 Christoph Hellwig
                  "rd_total_times_ns":3465673657
1358 c488c7f6 Christoph Hellwig
                  "flush_total_times_ns":49653
1359 e8045d67 Christoph Hellwig
                  "flush_operations":61,
1360 82a56f0d Luiz Capitulino
               }
1361 82a56f0d Luiz Capitulino
            },
1362 82a56f0d Luiz Capitulino
            "stats":{
1363 82a56f0d Luiz Capitulino
               "wr_highest_offset":2821110784,
1364 82a56f0d Luiz Capitulino
               "wr_bytes":9786368,
1365 82a56f0d Luiz Capitulino
               "wr_operations":692,
1366 82a56f0d Luiz Capitulino
               "rd_bytes":122739200,
1367 82a56f0d Luiz Capitulino
               "rd_operations":36604
1368 e8045d67 Christoph Hellwig
               "flush_operations":51,
1369 c488c7f6 Christoph Hellwig
               "wr_total_times_ns":313253456
1370 c488c7f6 Christoph Hellwig
               "rd_total_times_ns":3465673657
1371 c488c7f6 Christoph Hellwig
               "flush_total_times_ns":49653
1372 82a56f0d Luiz Capitulino
            }
1373 82a56f0d Luiz Capitulino
         },
1374 82a56f0d Luiz Capitulino
         {
1375 82a56f0d Luiz Capitulino
            "device":"ide1-cd0",
1376 82a56f0d Luiz Capitulino
            "stats":{
1377 82a56f0d Luiz Capitulino
               "wr_highest_offset":0,
1378 82a56f0d Luiz Capitulino
               "wr_bytes":0,
1379 82a56f0d Luiz Capitulino
               "wr_operations":0,
1380 82a56f0d Luiz Capitulino
               "rd_bytes":0,
1381 82a56f0d Luiz Capitulino
               "rd_operations":0
1382 e8045d67 Christoph Hellwig
               "flush_operations":0,
1383 c488c7f6 Christoph Hellwig
               "wr_total_times_ns":0
1384 c488c7f6 Christoph Hellwig
               "rd_total_times_ns":0
1385 c488c7f6 Christoph Hellwig
               "flush_total_times_ns":0
1386 82a56f0d Luiz Capitulino
            }
1387 82a56f0d Luiz Capitulino
         },
1388 82a56f0d Luiz Capitulino
         {
1389 82a56f0d Luiz Capitulino
            "device":"floppy0",
1390 82a56f0d Luiz Capitulino
            "stats":{
1391 82a56f0d Luiz Capitulino
               "wr_highest_offset":0,
1392 82a56f0d Luiz Capitulino
               "wr_bytes":0,
1393 82a56f0d Luiz Capitulino
               "wr_operations":0,
1394 82a56f0d Luiz Capitulino
               "rd_bytes":0,
1395 82a56f0d Luiz Capitulino
               "rd_operations":0
1396 e8045d67 Christoph Hellwig
               "flush_operations":0,
1397 c488c7f6 Christoph Hellwig
               "wr_total_times_ns":0
1398 c488c7f6 Christoph Hellwig
               "rd_total_times_ns":0
1399 c488c7f6 Christoph Hellwig
               "flush_total_times_ns":0
1400 82a56f0d Luiz Capitulino
            }
1401 82a56f0d Luiz Capitulino
         },
1402 82a56f0d Luiz Capitulino
         {
1403 82a56f0d Luiz Capitulino
            "device":"sd0",
1404 82a56f0d Luiz Capitulino
            "stats":{
1405 82a56f0d Luiz Capitulino
               "wr_highest_offset":0,
1406 82a56f0d Luiz Capitulino
               "wr_bytes":0,
1407 82a56f0d Luiz Capitulino
               "wr_operations":0,
1408 82a56f0d Luiz Capitulino
               "rd_bytes":0,
1409 82a56f0d Luiz Capitulino
               "rd_operations":0
1410 e8045d67 Christoph Hellwig
               "flush_operations":0,
1411 c488c7f6 Christoph Hellwig
               "wr_total_times_ns":0
1412 c488c7f6 Christoph Hellwig
               "rd_total_times_ns":0
1413 c488c7f6 Christoph Hellwig
               "flush_total_times_ns":0
1414 82a56f0d Luiz Capitulino
            }
1415 82a56f0d Luiz Capitulino
         }
1416 82a56f0d Luiz Capitulino
      ]
1417 82a56f0d Luiz Capitulino
   }
1418 82a56f0d Luiz Capitulino
1419 82a56f0d Luiz Capitulino
EQMP
1420 82a56f0d Luiz Capitulino
1421 f11f57e4 Luiz Capitulino
    {
1422 f11f57e4 Luiz Capitulino
        .name       = "query-blockstats",
1423 f11f57e4 Luiz Capitulino
        .args_type  = "",
1424 f11f57e4 Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_query_blockstats,
1425 f11f57e4 Luiz Capitulino
    },
1426 f11f57e4 Luiz Capitulino
1427 82a56f0d Luiz Capitulino
SQMP
1428 82a56f0d Luiz Capitulino
query-cpus
1429 82a56f0d Luiz Capitulino
----------
1430 82a56f0d Luiz Capitulino
1431 82a56f0d Luiz Capitulino
Show CPU information.
1432 82a56f0d Luiz Capitulino
1433 82a56f0d Luiz Capitulino
Return a json-array. Each CPU is represented by a json-object, which contains:
1434 82a56f0d Luiz Capitulino
1435 82a56f0d Luiz Capitulino
- "CPU": CPU index (json-int)
1436 82a56f0d Luiz Capitulino
- "current": true if this is the current CPU, false otherwise (json-bool)
1437 82a56f0d Luiz Capitulino
- "halted": true if the cpu is halted, false otherwise (json-bool)
1438 82a56f0d Luiz Capitulino
- Current program counter. The key's name depends on the architecture:
1439 82a56f0d Luiz Capitulino
     "pc": i386/x86_64 (json-int)
1440 82a56f0d Luiz Capitulino
     "nip": PPC (json-int)
1441 82a56f0d Luiz Capitulino
     "pc" and "npc": sparc (json-int)
1442 82a56f0d Luiz Capitulino
     "PC": mips (json-int)
1443 dc7a09cf Jan Kiszka
- "thread_id": ID of the underlying host thread (json-int)
1444 82a56f0d Luiz Capitulino
1445 82a56f0d Luiz Capitulino
Example:
1446 82a56f0d Luiz Capitulino
1447 82a56f0d Luiz Capitulino
-> { "execute": "query-cpus" }
1448 82a56f0d Luiz Capitulino
<- {
1449 82a56f0d Luiz Capitulino
      "return":[
1450 82a56f0d Luiz Capitulino
         {
1451 82a56f0d Luiz Capitulino
            "CPU":0,
1452 82a56f0d Luiz Capitulino
            "current":true,
1453 82a56f0d Luiz Capitulino
            "halted":false,
1454 82a56f0d Luiz Capitulino
            "pc":3227107138
1455 dc7a09cf Jan Kiszka
            "thread_id":3134
1456 82a56f0d Luiz Capitulino
         },
1457 82a56f0d Luiz Capitulino
         {
1458 82a56f0d Luiz Capitulino
            "CPU":1,
1459 82a56f0d Luiz Capitulino
            "current":false,
1460 82a56f0d Luiz Capitulino
            "halted":true,
1461 82a56f0d Luiz Capitulino
            "pc":7108165
1462 dc7a09cf Jan Kiszka
            "thread_id":3135
1463 82a56f0d Luiz Capitulino
         }
1464 82a56f0d Luiz Capitulino
      ]
1465 82a56f0d Luiz Capitulino
   }
1466 82a56f0d Luiz Capitulino
1467 82a56f0d Luiz Capitulino
EQMP
1468 82a56f0d Luiz Capitulino
1469 de0b36b6 Luiz Capitulino
    {
1470 de0b36b6 Luiz Capitulino
        .name       = "query-cpus",
1471 de0b36b6 Luiz Capitulino
        .args_type  = "",
1472 de0b36b6 Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_query_cpus,
1473 de0b36b6 Luiz Capitulino
    },
1474 de0b36b6 Luiz Capitulino
1475 82a56f0d Luiz Capitulino
SQMP
1476 82a56f0d Luiz Capitulino
query-pci
1477 82a56f0d Luiz Capitulino
---------
1478 82a56f0d Luiz Capitulino
1479 82a56f0d Luiz Capitulino
PCI buses and devices information.
1480 82a56f0d Luiz Capitulino
1481 82a56f0d Luiz Capitulino
The returned value is a json-array of all buses. Each bus is represented by
1482 82a56f0d Luiz Capitulino
a json-object, which has a key with a json-array of all PCI devices attached
1483 82a56f0d Luiz Capitulino
to it. Each device is represented by a json-object.
1484 82a56f0d Luiz Capitulino
1485 82a56f0d Luiz Capitulino
The bus json-object contains the following:
1486 82a56f0d Luiz Capitulino
1487 82a56f0d Luiz Capitulino
- "bus": bus number (json-int)
1488 82a56f0d Luiz Capitulino
- "devices": a json-array of json-objects, each json-object represents a
1489 82a56f0d Luiz Capitulino
             PCI device
1490 82a56f0d Luiz Capitulino
1491 82a56f0d Luiz Capitulino
The PCI device json-object contains the following:
1492 82a56f0d Luiz Capitulino
1493 82a56f0d Luiz Capitulino
- "bus": identical to the parent's bus number (json-int)
1494 82a56f0d Luiz Capitulino
- "slot": slot number (json-int)
1495 82a56f0d Luiz Capitulino
- "function": function number (json-int)
1496 82a56f0d Luiz Capitulino
- "class_info": a json-object containing:
1497 82a56f0d Luiz Capitulino
     - "desc": device class description (json-string, optional)
1498 82a56f0d Luiz Capitulino
     - "class": device class number (json-int)
1499 82a56f0d Luiz Capitulino
- "id": a json-object containing:
1500 82a56f0d Luiz Capitulino
     - "device": device ID (json-int)
1501 82a56f0d Luiz Capitulino
     - "vendor": vendor ID (json-int)
1502 82a56f0d Luiz Capitulino
- "irq": device's IRQ if assigned (json-int, optional)
1503 82a56f0d Luiz Capitulino
- "qdev_id": qdev id string (json-string)
1504 82a56f0d Luiz Capitulino
- "pci_bridge": It's a json-object, only present if this device is a
1505 82a56f0d Luiz Capitulino
                PCI bridge, contains:
1506 82a56f0d Luiz Capitulino
     - "bus": bus number (json-int)
1507 82a56f0d Luiz Capitulino
     - "secondary": secondary bus number (json-int)
1508 82a56f0d Luiz Capitulino
     - "subordinate": subordinate bus number (json-int)
1509 82a56f0d Luiz Capitulino
     - "io_range": I/O memory range information, a json-object with the
1510 82a56f0d Luiz Capitulino
                   following members:
1511 82a56f0d Luiz Capitulino
                 - "base": base address, in bytes (json-int)
1512 82a56f0d Luiz Capitulino
                 - "limit": limit address, in bytes (json-int)
1513 82a56f0d Luiz Capitulino
     - "memory_range": memory range information, a json-object with the
1514 82a56f0d Luiz Capitulino
                       following members:
1515 82a56f0d Luiz Capitulino
                 - "base": base address, in bytes (json-int)
1516 82a56f0d Luiz Capitulino
                 - "limit": limit address, in bytes (json-int)
1517 82a56f0d Luiz Capitulino
     - "prefetchable_range": Prefetchable memory range information, a
1518 82a56f0d Luiz Capitulino
                             json-object with the following members:
1519 82a56f0d Luiz Capitulino
                 - "base": base address, in bytes (json-int)
1520 82a56f0d Luiz Capitulino
                 - "limit": limit address, in bytes (json-int)
1521 82a56f0d Luiz Capitulino
     - "devices": a json-array of PCI devices if there's any attached, each
1522 82a56f0d Luiz Capitulino
                  each element is represented by a json-object, which contains
1523 82a56f0d Luiz Capitulino
                  the same members of the 'PCI device json-object' described
1524 82a56f0d Luiz Capitulino
                  above (optional)
1525 82a56f0d Luiz Capitulino
- "regions": a json-array of json-objects, each json-object represents a
1526 82a56f0d Luiz Capitulino
             memory region of this device
1527 82a56f0d Luiz Capitulino
1528 82a56f0d Luiz Capitulino
The memory range json-object contains the following:
1529 82a56f0d Luiz Capitulino
1530 82a56f0d Luiz Capitulino
- "base": base memory address (json-int)
1531 82a56f0d Luiz Capitulino
- "limit": limit value (json-int)
1532 82a56f0d Luiz Capitulino
1533 82a56f0d Luiz Capitulino
The region json-object can be an I/O region or a memory region, an I/O region
1534 82a56f0d Luiz Capitulino
json-object contains the following:
1535 82a56f0d Luiz Capitulino
1536 82a56f0d Luiz Capitulino
- "type": "io" (json-string, fixed)
1537 82a56f0d Luiz Capitulino
- "bar": BAR number (json-int)
1538 82a56f0d Luiz Capitulino
- "address": memory address (json-int)
1539 82a56f0d Luiz Capitulino
- "size": memory size (json-int)
1540 82a56f0d Luiz Capitulino
1541 82a56f0d Luiz Capitulino
A memory region json-object contains the following:
1542 82a56f0d Luiz Capitulino
1543 82a56f0d Luiz Capitulino
- "type": "memory" (json-string, fixed)
1544 82a56f0d Luiz Capitulino
- "bar": BAR number (json-int)
1545 82a56f0d Luiz Capitulino
- "address": memory address (json-int)
1546 82a56f0d Luiz Capitulino
- "size": memory size (json-int)
1547 82a56f0d Luiz Capitulino
- "mem_type_64": true or false (json-bool)
1548 82a56f0d Luiz Capitulino
- "prefetch": true or false (json-bool)
1549 82a56f0d Luiz Capitulino
1550 82a56f0d Luiz Capitulino
Example:
1551 82a56f0d Luiz Capitulino
1552 82a56f0d Luiz Capitulino
-> { "execute": "query-pci" }
1553 82a56f0d Luiz Capitulino
<- {
1554 82a56f0d Luiz Capitulino
      "return":[
1555 82a56f0d Luiz Capitulino
         {
1556 82a56f0d Luiz Capitulino
            "bus":0,
1557 82a56f0d Luiz Capitulino
            "devices":[
1558 82a56f0d Luiz Capitulino
               {
1559 82a56f0d Luiz Capitulino
                  "bus":0,
1560 82a56f0d Luiz Capitulino
                  "qdev_id":"",
1561 82a56f0d Luiz Capitulino
                  "slot":0,
1562 82a56f0d Luiz Capitulino
                  "class_info":{
1563 82a56f0d Luiz Capitulino
                     "class":1536,
1564 82a56f0d Luiz Capitulino
                     "desc":"Host bridge"
1565 82a56f0d Luiz Capitulino
                  },
1566 82a56f0d Luiz Capitulino
                  "id":{
1567 82a56f0d Luiz Capitulino
                     "device":32902,
1568 82a56f0d Luiz Capitulino
                     "vendor":4663
1569 82a56f0d Luiz Capitulino
                  },
1570 82a56f0d Luiz Capitulino
                  "function":0,
1571 82a56f0d Luiz Capitulino
                  "regions":[
1572 82a56f0d Luiz Capitulino
   
1573 82a56f0d Luiz Capitulino
                  ]
1574 82a56f0d Luiz Capitulino
               },
1575 82a56f0d Luiz Capitulino
               {
1576 82a56f0d Luiz Capitulino
                  "bus":0,
1577 82a56f0d Luiz Capitulino
                  "qdev_id":"",
1578 82a56f0d Luiz Capitulino
                  "slot":1,
1579 82a56f0d Luiz Capitulino
                  "class_info":{
1580 82a56f0d Luiz Capitulino
                     "class":1537,
1581 82a56f0d Luiz Capitulino
                     "desc":"ISA bridge"
1582 82a56f0d Luiz Capitulino
                  },
1583 82a56f0d Luiz Capitulino
                  "id":{
1584 82a56f0d Luiz Capitulino
                     "device":32902,
1585 82a56f0d Luiz Capitulino
                     "vendor":28672
1586 82a56f0d Luiz Capitulino
                  },
1587 82a56f0d Luiz Capitulino
                  "function":0,
1588 82a56f0d Luiz Capitulino
                  "regions":[
1589 82a56f0d Luiz Capitulino
   
1590 82a56f0d Luiz Capitulino
                  ]
1591 82a56f0d Luiz Capitulino
               },
1592 82a56f0d Luiz Capitulino
               {
1593 82a56f0d Luiz Capitulino
                  "bus":0,
1594 82a56f0d Luiz Capitulino
                  "qdev_id":"",
1595 82a56f0d Luiz Capitulino
                  "slot":1,
1596 82a56f0d Luiz Capitulino
                  "class_info":{
1597 82a56f0d Luiz Capitulino
                     "class":257,
1598 82a56f0d Luiz Capitulino
                     "desc":"IDE controller"
1599 82a56f0d Luiz Capitulino
                  },
1600 82a56f0d Luiz Capitulino
                  "id":{
1601 82a56f0d Luiz Capitulino
                     "device":32902,
1602 82a56f0d Luiz Capitulino
                     "vendor":28688
1603 82a56f0d Luiz Capitulino
                  },
1604 82a56f0d Luiz Capitulino
                  "function":1,
1605 82a56f0d Luiz Capitulino
                  "regions":[
1606 82a56f0d Luiz Capitulino
                     {
1607 82a56f0d Luiz Capitulino
                        "bar":4,
1608 82a56f0d Luiz Capitulino
                        "size":16,
1609 82a56f0d Luiz Capitulino
                        "address":49152,
1610 82a56f0d Luiz Capitulino
                        "type":"io"
1611 82a56f0d Luiz Capitulino
                     }
1612 82a56f0d Luiz Capitulino
                  ]
1613 82a56f0d Luiz Capitulino
               },
1614 82a56f0d Luiz Capitulino
               {
1615 82a56f0d Luiz Capitulino
                  "bus":0,
1616 82a56f0d Luiz Capitulino
                  "qdev_id":"",
1617 82a56f0d Luiz Capitulino
                  "slot":2,
1618 82a56f0d Luiz Capitulino
                  "class_info":{
1619 82a56f0d Luiz Capitulino
                     "class":768,
1620 82a56f0d Luiz Capitulino
                     "desc":"VGA controller"
1621 82a56f0d Luiz Capitulino
                  },
1622 82a56f0d Luiz Capitulino
                  "id":{
1623 82a56f0d Luiz Capitulino
                     "device":4115,
1624 82a56f0d Luiz Capitulino
                     "vendor":184
1625 82a56f0d Luiz Capitulino
                  },
1626 82a56f0d Luiz Capitulino
                  "function":0,
1627 82a56f0d Luiz Capitulino
                  "regions":[
1628 82a56f0d Luiz Capitulino
                     {
1629 82a56f0d Luiz Capitulino
                        "prefetch":true,
1630 82a56f0d Luiz Capitulino
                        "mem_type_64":false,
1631 82a56f0d Luiz Capitulino
                        "bar":0,
1632 82a56f0d Luiz Capitulino
                        "size":33554432,
1633 82a56f0d Luiz Capitulino
                        "address":4026531840,
1634 82a56f0d Luiz Capitulino
                        "type":"memory"
1635 82a56f0d Luiz Capitulino
                     },
1636 82a56f0d Luiz Capitulino
                     {
1637 82a56f0d Luiz Capitulino
                        "prefetch":false,
1638 82a56f0d Luiz Capitulino
                        "mem_type_64":false,
1639 82a56f0d Luiz Capitulino
                        "bar":1,
1640 82a56f0d Luiz Capitulino
                        "size":4096,
1641 82a56f0d Luiz Capitulino
                        "address":4060086272,
1642 82a56f0d Luiz Capitulino
                        "type":"memory"
1643 82a56f0d Luiz Capitulino
                     },
1644 82a56f0d Luiz Capitulino
                     {
1645 82a56f0d Luiz Capitulino
                        "prefetch":false,
1646 82a56f0d Luiz Capitulino
                        "mem_type_64":false,
1647 82a56f0d Luiz Capitulino
                        "bar":6,
1648 82a56f0d Luiz Capitulino
                        "size":65536,
1649 82a56f0d Luiz Capitulino
                        "address":-1,
1650 82a56f0d Luiz Capitulino
                        "type":"memory"
1651 82a56f0d Luiz Capitulino
                     }
1652 82a56f0d Luiz Capitulino
                  ]
1653 82a56f0d Luiz Capitulino
               },
1654 82a56f0d Luiz Capitulino
               {
1655 82a56f0d Luiz Capitulino
                  "bus":0,
1656 82a56f0d Luiz Capitulino
                  "qdev_id":"",
1657 82a56f0d Luiz Capitulino
                  "irq":11,
1658 82a56f0d Luiz Capitulino
                  "slot":4,
1659 82a56f0d Luiz Capitulino
                  "class_info":{
1660 82a56f0d Luiz Capitulino
                     "class":1280,
1661 82a56f0d Luiz Capitulino
                     "desc":"RAM controller"
1662 82a56f0d Luiz Capitulino
                  },
1663 82a56f0d Luiz Capitulino
                  "id":{
1664 82a56f0d Luiz Capitulino
                     "device":6900,
1665 82a56f0d Luiz Capitulino
                     "vendor":4098
1666 82a56f0d Luiz Capitulino
                  },
1667 82a56f0d Luiz Capitulino
                  "function":0,
1668 82a56f0d Luiz Capitulino
                  "regions":[
1669 82a56f0d Luiz Capitulino
                     {
1670 82a56f0d Luiz Capitulino
                        "bar":0,
1671 82a56f0d Luiz Capitulino
                        "size":32,
1672 82a56f0d Luiz Capitulino
                        "address":49280,
1673 82a56f0d Luiz Capitulino
                        "type":"io"
1674 82a56f0d Luiz Capitulino
                     }
1675 82a56f0d Luiz Capitulino
                  ]
1676 82a56f0d Luiz Capitulino
               }
1677 82a56f0d Luiz Capitulino
            ]
1678 82a56f0d Luiz Capitulino
         }
1679 82a56f0d Luiz Capitulino
      ]
1680 82a56f0d Luiz Capitulino
   }
1681 82a56f0d Luiz Capitulino
1682 82a56f0d Luiz Capitulino
Note: This example has been shortened as the real response is too long.
1683 82a56f0d Luiz Capitulino
1684 82a56f0d Luiz Capitulino
EQMP
1685 82a56f0d Luiz Capitulino
1686 79627472 Luiz Capitulino
    {
1687 79627472 Luiz Capitulino
        .name       = "query-pci",
1688 79627472 Luiz Capitulino
        .args_type  = "",
1689 79627472 Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_query_pci,
1690 79627472 Luiz Capitulino
    },
1691 79627472 Luiz Capitulino
1692 82a56f0d Luiz Capitulino
SQMP
1693 82a56f0d Luiz Capitulino
query-kvm
1694 82a56f0d Luiz Capitulino
---------
1695 82a56f0d Luiz Capitulino
1696 82a56f0d Luiz Capitulino
Show KVM information.
1697 82a56f0d Luiz Capitulino
1698 82a56f0d Luiz Capitulino
Return a json-object with the following information:
1699 82a56f0d Luiz Capitulino
1700 82a56f0d Luiz Capitulino
- "enabled": true if KVM support is enabled, false otherwise (json-bool)
1701 82a56f0d Luiz Capitulino
- "present": true if QEMU has KVM support, false otherwise (json-bool)
1702 82a56f0d Luiz Capitulino
1703 82a56f0d Luiz Capitulino
Example:
1704 82a56f0d Luiz Capitulino
1705 82a56f0d Luiz Capitulino
-> { "execute": "query-kvm" }
1706 82a56f0d Luiz Capitulino
<- { "return": { "enabled": true, "present": true } }
1707 82a56f0d Luiz Capitulino
1708 82a56f0d Luiz Capitulino
EQMP
1709 82a56f0d Luiz Capitulino
1710 292a2602 Luiz Capitulino
    {
1711 292a2602 Luiz Capitulino
        .name       = "query-kvm",
1712 292a2602 Luiz Capitulino
        .args_type  = "",
1713 292a2602 Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_query_kvm,
1714 292a2602 Luiz Capitulino
    },
1715 292a2602 Luiz Capitulino
1716 82a56f0d Luiz Capitulino
SQMP
1717 82a56f0d Luiz Capitulino
query-status
1718 82a56f0d Luiz Capitulino
------------
1719 82a56f0d Luiz Capitulino
1720 82a56f0d Luiz Capitulino
Return a json-object with the following information:
1721 82a56f0d Luiz Capitulino
1722 82a56f0d Luiz Capitulino
- "running": true if the VM is running, or false if it is paused (json-bool)
1723 82a56f0d Luiz Capitulino
- "singlestep": true if the VM is in single step mode,
1724 82a56f0d Luiz Capitulino
                false otherwise (json-bool)
1725 9e37b9dc Luiz Capitulino
- "status": one of the following values (json-string)
1726 9e37b9dc Luiz Capitulino
    "debug" - QEMU is running on a debugger
1727 9e37b9dc Luiz Capitulino
    "inmigrate" - guest is paused waiting for an incoming migration
1728 9e37b9dc Luiz Capitulino
    "internal-error" - An internal error that prevents further guest
1729 9e37b9dc Luiz Capitulino
    execution has occurred
1730 9e37b9dc Luiz Capitulino
    "io-error" - the last IOP has failed and the device is configured
1731 9e37b9dc Luiz Capitulino
    to pause on I/O errors
1732 9e37b9dc Luiz Capitulino
    "paused" - guest has been paused via the 'stop' command
1733 9e37b9dc Luiz Capitulino
    "postmigrate" - guest is paused following a successful 'migrate'
1734 9e37b9dc Luiz Capitulino
    "prelaunch" - QEMU was started with -S and guest has not started
1735 9e37b9dc Luiz Capitulino
    "finish-migrate" - guest is paused to finish the migration process
1736 9e37b9dc Luiz Capitulino
    "restore-vm" - guest is paused to restore VM state
1737 9e37b9dc Luiz Capitulino
    "running" - guest is actively running
1738 9e37b9dc Luiz Capitulino
    "save-vm" - guest is paused to save the VM state
1739 9e37b9dc Luiz Capitulino
    "shutdown" - guest is shut down (and -no-shutdown is in use)
1740 9e37b9dc Luiz Capitulino
    "watchdog" - the watchdog action is configured to pause and
1741 9e37b9dc Luiz Capitulino
     has been triggered
1742 82a56f0d Luiz Capitulino
1743 82a56f0d Luiz Capitulino
Example:
1744 82a56f0d Luiz Capitulino
1745 82a56f0d Luiz Capitulino
-> { "execute": "query-status" }
1746 9e37b9dc Luiz Capitulino
<- { "return": { "running": true, "singlestep": false, "status": "running" } }
1747 82a56f0d Luiz Capitulino
1748 82a56f0d Luiz Capitulino
EQMP
1749 1fa9a5e4 Luiz Capitulino
    
1750 1fa9a5e4 Luiz Capitulino
    {
1751 1fa9a5e4 Luiz Capitulino
        .name       = "query-status",
1752 1fa9a5e4 Luiz Capitulino
        .args_type  = "",
1753 1fa9a5e4 Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_query_status,
1754 1fa9a5e4 Luiz Capitulino
    },
1755 82a56f0d Luiz Capitulino
1756 82a56f0d Luiz Capitulino
SQMP
1757 82a56f0d Luiz Capitulino
query-mice
1758 82a56f0d Luiz Capitulino
----------
1759 82a56f0d Luiz Capitulino
1760 82a56f0d Luiz Capitulino
Show VM mice information.
1761 82a56f0d Luiz Capitulino
1762 82a56f0d Luiz Capitulino
Each mouse is represented by a json-object, the returned value is a json-array
1763 82a56f0d Luiz Capitulino
of all mice.
1764 82a56f0d Luiz Capitulino
1765 82a56f0d Luiz Capitulino
The mouse json-object contains the following:
1766 82a56f0d Luiz Capitulino
1767 82a56f0d Luiz Capitulino
- "name": mouse's name (json-string)
1768 82a56f0d Luiz Capitulino
- "index": mouse's index (json-int)
1769 82a56f0d Luiz Capitulino
- "current": true if this mouse is receiving events, false otherwise (json-bool)
1770 82a56f0d Luiz Capitulino
- "absolute": true if the mouse generates absolute input events (json-bool)
1771 82a56f0d Luiz Capitulino
1772 82a56f0d Luiz Capitulino
Example:
1773 82a56f0d Luiz Capitulino
1774 82a56f0d Luiz Capitulino
-> { "execute": "query-mice" }
1775 82a56f0d Luiz Capitulino
<- {
1776 82a56f0d Luiz Capitulino
      "return":[
1777 82a56f0d Luiz Capitulino
         {
1778 82a56f0d Luiz Capitulino
            "name":"QEMU Microsoft Mouse",
1779 82a56f0d Luiz Capitulino
            "index":0,
1780 82a56f0d Luiz Capitulino
            "current":false,
1781 82a56f0d Luiz Capitulino
            "absolute":false
1782 82a56f0d Luiz Capitulino
         },
1783 82a56f0d Luiz Capitulino
         {
1784 82a56f0d Luiz Capitulino
            "name":"QEMU PS/2 Mouse",
1785 82a56f0d Luiz Capitulino
            "index":1,
1786 82a56f0d Luiz Capitulino
            "current":true,
1787 82a56f0d Luiz Capitulino
            "absolute":true
1788 82a56f0d Luiz Capitulino
         }
1789 82a56f0d Luiz Capitulino
      ]
1790 82a56f0d Luiz Capitulino
   }
1791 82a56f0d Luiz Capitulino
1792 82a56f0d Luiz Capitulino
EQMP
1793 82a56f0d Luiz Capitulino
1794 e235cec3 Luiz Capitulino
    {
1795 e235cec3 Luiz Capitulino
        .name       = "query-mice",
1796 e235cec3 Luiz Capitulino
        .args_type  = "",
1797 e235cec3 Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_query_mice,
1798 e235cec3 Luiz Capitulino
    },
1799 e235cec3 Luiz Capitulino
1800 82a56f0d Luiz Capitulino
SQMP
1801 82a56f0d Luiz Capitulino
query-vnc
1802 82a56f0d Luiz Capitulino
---------
1803 82a56f0d Luiz Capitulino
1804 82a56f0d Luiz Capitulino
Show VNC server information.
1805 82a56f0d Luiz Capitulino
1806 82a56f0d Luiz Capitulino
Return a json-object with server information. Connected clients are returned
1807 82a56f0d Luiz Capitulino
as a json-array of json-objects.
1808 82a56f0d Luiz Capitulino
1809 82a56f0d Luiz Capitulino
The main json-object contains the following:
1810 82a56f0d Luiz Capitulino
1811 82a56f0d Luiz Capitulino
- "enabled": true or false (json-bool)
1812 82a56f0d Luiz Capitulino
- "host": server's IP address (json-string)
1813 82a56f0d Luiz Capitulino
- "family": address family (json-string)
1814 82a56f0d Luiz Capitulino
         - Possible values: "ipv4", "ipv6", "unix", "unknown"
1815 82a56f0d Luiz Capitulino
- "service": server's port number (json-string)
1816 82a56f0d Luiz Capitulino
- "auth": authentication method (json-string)
1817 82a56f0d Luiz Capitulino
         - Possible values: "invalid", "none", "ra2", "ra2ne", "sasl", "tight",
1818 82a56f0d Luiz Capitulino
                            "tls", "ultra", "unknown", "vencrypt", "vencrypt",
1819 82a56f0d Luiz Capitulino
                            "vencrypt+plain", "vencrypt+tls+none",
1820 82a56f0d Luiz Capitulino
                            "vencrypt+tls+plain", "vencrypt+tls+sasl",
1821 82a56f0d Luiz Capitulino
                            "vencrypt+tls+vnc", "vencrypt+x509+none",
1822 82a56f0d Luiz Capitulino
                            "vencrypt+x509+plain", "vencrypt+x509+sasl",
1823 82a56f0d Luiz Capitulino
                            "vencrypt+x509+vnc", "vnc"
1824 82a56f0d Luiz Capitulino
- "clients": a json-array of all connected clients
1825 82a56f0d Luiz Capitulino
1826 82a56f0d Luiz Capitulino
Clients are described by a json-object, each one contain the following:
1827 82a56f0d Luiz Capitulino
1828 82a56f0d Luiz Capitulino
- "host": client's IP address (json-string)
1829 82a56f0d Luiz Capitulino
- "family": address family (json-string)
1830 82a56f0d Luiz Capitulino
         - Possible values: "ipv4", "ipv6", "unix", "unknown"
1831 82a56f0d Luiz Capitulino
- "service": client's port number (json-string)
1832 82a56f0d Luiz Capitulino
- "x509_dname": TLS dname (json-string, optional)
1833 82a56f0d Luiz Capitulino
- "sasl_username": SASL username (json-string, optional)
1834 82a56f0d Luiz Capitulino
1835 82a56f0d Luiz Capitulino
Example:
1836 82a56f0d Luiz Capitulino
1837 82a56f0d Luiz Capitulino
-> { "execute": "query-vnc" }
1838 82a56f0d Luiz Capitulino
<- {
1839 82a56f0d Luiz Capitulino
      "return":{
1840 82a56f0d Luiz Capitulino
         "enabled":true,
1841 82a56f0d Luiz Capitulino
         "host":"0.0.0.0",
1842 82a56f0d Luiz Capitulino
         "service":"50402",
1843 82a56f0d Luiz Capitulino
         "auth":"vnc",
1844 82a56f0d Luiz Capitulino
         "family":"ipv4",
1845 82a56f0d Luiz Capitulino
         "clients":[
1846 82a56f0d Luiz Capitulino
            {
1847 82a56f0d Luiz Capitulino
               "host":"127.0.0.1",
1848 82a56f0d Luiz Capitulino
               "service":"50401",
1849 82a56f0d Luiz Capitulino
               "family":"ipv4"
1850 82a56f0d Luiz Capitulino
            }
1851 82a56f0d Luiz Capitulino
         ]
1852 82a56f0d Luiz Capitulino
      }
1853 82a56f0d Luiz Capitulino
   }
1854 82a56f0d Luiz Capitulino
1855 82a56f0d Luiz Capitulino
EQMP
1856 82a56f0d Luiz Capitulino
1857 2b54aa87 Luiz Capitulino
    {
1858 2b54aa87 Luiz Capitulino
        .name       = "query-vnc",
1859 2b54aa87 Luiz Capitulino
        .args_type  = "",
1860 2b54aa87 Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_query_vnc,
1861 2b54aa87 Luiz Capitulino
    },
1862 2b54aa87 Luiz Capitulino
1863 82a56f0d Luiz Capitulino
SQMP
1864 cb42a870 Gerd Hoffmann
query-spice
1865 cb42a870 Gerd Hoffmann
-----------
1866 cb42a870 Gerd Hoffmann
1867 cb42a870 Gerd Hoffmann
Show SPICE server information.
1868 cb42a870 Gerd Hoffmann
1869 cb42a870 Gerd Hoffmann
Return a json-object with server information. Connected clients are returned
1870 cb42a870 Gerd Hoffmann
as a json-array of json-objects.
1871 cb42a870 Gerd Hoffmann
1872 cb42a870 Gerd Hoffmann
The main json-object contains the following:
1873 cb42a870 Gerd Hoffmann
1874 cb42a870 Gerd Hoffmann
- "enabled": true or false (json-bool)
1875 cb42a870 Gerd Hoffmann
- "host": server's IP address (json-string)
1876 cb42a870 Gerd Hoffmann
- "port": server's port number (json-int, optional)
1877 cb42a870 Gerd Hoffmann
- "tls-port": server's port number (json-int, optional)
1878 cb42a870 Gerd Hoffmann
- "auth": authentication method (json-string)
1879 cb42a870 Gerd Hoffmann
         - Possible values: "none", "spice"
1880 cb42a870 Gerd Hoffmann
- "channels": a json-array of all active channels clients
1881 cb42a870 Gerd Hoffmann
1882 cb42a870 Gerd Hoffmann
Channels are described by a json-object, each one contain the following:
1883 cb42a870 Gerd Hoffmann
1884 cb42a870 Gerd Hoffmann
- "host": client's IP address (json-string)
1885 cb42a870 Gerd Hoffmann
- "family": address family (json-string)
1886 cb42a870 Gerd Hoffmann
         - Possible values: "ipv4", "ipv6", "unix", "unknown"
1887 cb42a870 Gerd Hoffmann
- "port": client's port number (json-string)
1888 cb42a870 Gerd Hoffmann
- "connection-id": spice connection id.  All channels with the same id
1889 cb42a870 Gerd Hoffmann
                   belong to the same spice session (json-int)
1890 cb42a870 Gerd Hoffmann
- "channel-type": channel type.  "1" is the main control channel, filter for
1891 cb42a870 Gerd Hoffmann
                  this one if you want track spice sessions only (json-int)
1892 cb42a870 Gerd Hoffmann
- "channel-id": channel id.  Usually "0", might be different needed when
1893 cb42a870 Gerd Hoffmann
                multiple channels of the same type exist, such as multiple
1894 cb42a870 Gerd Hoffmann
                display channels in a multihead setup (json-int)
1895 cb42a870 Gerd Hoffmann
- "tls": whevener the channel is encrypted (json-bool)
1896 cb42a870 Gerd Hoffmann
1897 cb42a870 Gerd Hoffmann
Example:
1898 cb42a870 Gerd Hoffmann
1899 cb42a870 Gerd Hoffmann
-> { "execute": "query-spice" }
1900 cb42a870 Gerd Hoffmann
<- {
1901 cb42a870 Gerd Hoffmann
      "return": {
1902 cb42a870 Gerd Hoffmann
         "enabled": true,
1903 cb42a870 Gerd Hoffmann
         "auth": "spice",
1904 cb42a870 Gerd Hoffmann
         "port": 5920,
1905 cb42a870 Gerd Hoffmann
         "tls-port": 5921,
1906 cb42a870 Gerd Hoffmann
         "host": "0.0.0.0",
1907 cb42a870 Gerd Hoffmann
         "channels": [
1908 cb42a870 Gerd Hoffmann
            {
1909 cb42a870 Gerd Hoffmann
               "port": "54924",
1910 cb42a870 Gerd Hoffmann
               "family": "ipv4",
1911 cb42a870 Gerd Hoffmann
               "channel-type": 1,
1912 cb42a870 Gerd Hoffmann
               "connection-id": 1804289383,
1913 cb42a870 Gerd Hoffmann
               "host": "127.0.0.1",
1914 cb42a870 Gerd Hoffmann
               "channel-id": 0,
1915 cb42a870 Gerd Hoffmann
               "tls": true
1916 cb42a870 Gerd Hoffmann
            },
1917 cb42a870 Gerd Hoffmann
            {
1918 cb42a870 Gerd Hoffmann
               "port": "36710",
1919 cb42a870 Gerd Hoffmann
               "family": "ipv4",
1920 cb42a870 Gerd Hoffmann
               "channel-type": 4,
1921 cb42a870 Gerd Hoffmann
               "connection-id": 1804289383,
1922 cb42a870 Gerd Hoffmann
               "host": "127.0.0.1",
1923 cb42a870 Gerd Hoffmann
               "channel-id": 0,
1924 cb42a870 Gerd Hoffmann
               "tls": false
1925 cb42a870 Gerd Hoffmann
            },
1926 cb42a870 Gerd Hoffmann
            [ ... more channels follow ... ]
1927 cb42a870 Gerd Hoffmann
         ]
1928 cb42a870 Gerd Hoffmann
      }
1929 cb42a870 Gerd Hoffmann
   }
1930 cb42a870 Gerd Hoffmann
1931 cb42a870 Gerd Hoffmann
EQMP
1932 cb42a870 Gerd Hoffmann
1933 d1f29646 Luiz Capitulino
#if defined(CONFIG_SPICE)
1934 d1f29646 Luiz Capitulino
    {
1935 d1f29646 Luiz Capitulino
        .name       = "query-spice",
1936 d1f29646 Luiz Capitulino
        .args_type  = "",
1937 d1f29646 Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_query_spice,
1938 d1f29646 Luiz Capitulino
    },
1939 d1f29646 Luiz Capitulino
#endif
1940 d1f29646 Luiz Capitulino
1941 cb42a870 Gerd Hoffmann
SQMP
1942 82a56f0d Luiz Capitulino
query-name
1943 82a56f0d Luiz Capitulino
----------
1944 82a56f0d Luiz Capitulino
1945 82a56f0d Luiz Capitulino
Show VM name.
1946 82a56f0d Luiz Capitulino
1947 82a56f0d Luiz Capitulino
Return a json-object with the following information:
1948 82a56f0d Luiz Capitulino
1949 82a56f0d Luiz Capitulino
- "name": VM's name (json-string, optional)
1950 82a56f0d Luiz Capitulino
1951 82a56f0d Luiz Capitulino
Example:
1952 82a56f0d Luiz Capitulino
1953 82a56f0d Luiz Capitulino
-> { "execute": "query-name" }
1954 82a56f0d Luiz Capitulino
<- { "return": { "name": "qemu-name" } }
1955 82a56f0d Luiz Capitulino
1956 82a56f0d Luiz Capitulino
EQMP
1957 82a56f0d Luiz Capitulino
1958 48a32bed Anthony Liguori
    {
1959 48a32bed Anthony Liguori
        .name       = "query-name",
1960 48a32bed Anthony Liguori
        .args_type  = "",
1961 48a32bed Anthony Liguori
        .mhandler.cmd_new = qmp_marshal_input_query_name,
1962 48a32bed Anthony Liguori
    },
1963 48a32bed Anthony Liguori
1964 82a56f0d Luiz Capitulino
SQMP
1965 82a56f0d Luiz Capitulino
query-uuid
1966 82a56f0d Luiz Capitulino
----------
1967 82a56f0d Luiz Capitulino
1968 82a56f0d Luiz Capitulino
Show VM UUID.
1969 82a56f0d Luiz Capitulino
1970 82a56f0d Luiz Capitulino
Return a json-object with the following information:
1971 82a56f0d Luiz Capitulino
1972 82a56f0d Luiz Capitulino
- "UUID": Universally Unique Identifier (json-string)
1973 82a56f0d Luiz Capitulino
1974 82a56f0d Luiz Capitulino
Example:
1975 82a56f0d Luiz Capitulino
1976 82a56f0d Luiz Capitulino
-> { "execute": "query-uuid" }
1977 82a56f0d Luiz Capitulino
<- { "return": { "UUID": "550e8400-e29b-41d4-a716-446655440000" } }
1978 82a56f0d Luiz Capitulino
1979 82a56f0d Luiz Capitulino
EQMP
1980 82a56f0d Luiz Capitulino
1981 efab767e Luiz Capitulino
    {
1982 efab767e Luiz Capitulino
        .name       = "query-uuid",
1983 efab767e Luiz Capitulino
        .args_type  = "",
1984 efab767e Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_query_uuid,
1985 efab767e Luiz Capitulino
    },
1986 efab767e Luiz Capitulino
1987 82a56f0d Luiz Capitulino
SQMP
1988 82a56f0d Luiz Capitulino
query-migrate
1989 82a56f0d Luiz Capitulino
-------------
1990 82a56f0d Luiz Capitulino
1991 82a56f0d Luiz Capitulino
Migration status.
1992 82a56f0d Luiz Capitulino
1993 82a56f0d Luiz Capitulino
Return a json-object. If migration is active there will be another json-object
1994 82a56f0d Luiz Capitulino
with RAM migration status and if block migration is active another one with
1995 82a56f0d Luiz Capitulino
block migration status.
1996 82a56f0d Luiz Capitulino
1997 82a56f0d Luiz Capitulino
The main json-object contains the following:
1998 82a56f0d Luiz Capitulino
1999 82a56f0d Luiz Capitulino
- "status": migration status (json-string)
2000 82a56f0d Luiz Capitulino
     - Possible values: "active", "completed", "failed", "cancelled"
2001 82a56f0d Luiz Capitulino
- "ram": only present if "status" is "active", it is a json-object with the
2002 82a56f0d Luiz Capitulino
  following RAM information (in bytes):
2003 82a56f0d Luiz Capitulino
         - "transferred": amount transferred (json-int)
2004 82a56f0d Luiz Capitulino
         - "remaining": amount remaining (json-int)
2005 82a56f0d Luiz Capitulino
         - "total": total (json-int)
2006 82a56f0d Luiz Capitulino
- "disk": only present if "status" is "active" and it is a block migration,
2007 82a56f0d Luiz Capitulino
  it is a json-object with the following disk information (in bytes):
2008 82a56f0d Luiz Capitulino
         - "transferred": amount transferred (json-int)
2009 82a56f0d Luiz Capitulino
         - "remaining": amount remaining (json-int)
2010 82a56f0d Luiz Capitulino
         - "total": total (json-int)
2011 82a56f0d Luiz Capitulino
2012 82a56f0d Luiz Capitulino
Examples:
2013 82a56f0d Luiz Capitulino
2014 82a56f0d Luiz Capitulino
1. Before the first migration
2015 82a56f0d Luiz Capitulino
2016 82a56f0d Luiz Capitulino
-> { "execute": "query-migrate" }
2017 82a56f0d Luiz Capitulino
<- { "return": {} }
2018 82a56f0d Luiz Capitulino
2019 82a56f0d Luiz Capitulino
2. Migration is done and has succeeded
2020 82a56f0d Luiz Capitulino
2021 82a56f0d Luiz Capitulino
-> { "execute": "query-migrate" }
2022 82a56f0d Luiz Capitulino
<- { "return": { "status": "completed" } }
2023 82a56f0d Luiz Capitulino
2024 82a56f0d Luiz Capitulino
3. Migration is done and has failed
2025 82a56f0d Luiz Capitulino
2026 82a56f0d Luiz Capitulino
-> { "execute": "query-migrate" }
2027 82a56f0d Luiz Capitulino
<- { "return": { "status": "failed" } }
2028 82a56f0d Luiz Capitulino
2029 82a56f0d Luiz Capitulino
4. Migration is being performed and is not a block migration:
2030 82a56f0d Luiz Capitulino
2031 82a56f0d Luiz Capitulino
-> { "execute": "query-migrate" }
2032 82a56f0d Luiz Capitulino
<- {
2033 82a56f0d Luiz Capitulino
      "return":{
2034 82a56f0d Luiz Capitulino
         "status":"active",
2035 82a56f0d Luiz Capitulino
         "ram":{
2036 82a56f0d Luiz Capitulino
            "transferred":123,
2037 82a56f0d Luiz Capitulino
            "remaining":123,
2038 82a56f0d Luiz Capitulino
            "total":246
2039 82a56f0d Luiz Capitulino
         }
2040 82a56f0d Luiz Capitulino
      }
2041 82a56f0d Luiz Capitulino
   }
2042 82a56f0d Luiz Capitulino
2043 82a56f0d Luiz Capitulino
5. Migration is being performed and is a block migration:
2044 82a56f0d Luiz Capitulino
2045 82a56f0d Luiz Capitulino
-> { "execute": "query-migrate" }
2046 82a56f0d Luiz Capitulino
<- {
2047 82a56f0d Luiz Capitulino
      "return":{
2048 82a56f0d Luiz Capitulino
         "status":"active",
2049 82a56f0d Luiz Capitulino
         "ram":{
2050 82a56f0d Luiz Capitulino
            "total":1057024,
2051 82a56f0d Luiz Capitulino
            "remaining":1053304,
2052 82a56f0d Luiz Capitulino
            "transferred":3720
2053 82a56f0d Luiz Capitulino
         },
2054 82a56f0d Luiz Capitulino
         "disk":{
2055 82a56f0d Luiz Capitulino
            "total":20971520,
2056 82a56f0d Luiz Capitulino
            "remaining":20880384,
2057 82a56f0d Luiz Capitulino
            "transferred":91136
2058 82a56f0d Luiz Capitulino
         }
2059 82a56f0d Luiz Capitulino
      }
2060 82a56f0d Luiz Capitulino
   }
2061 82a56f0d Luiz Capitulino
2062 82a56f0d Luiz Capitulino
EQMP
2063 82a56f0d Luiz Capitulino
2064 791e7c82 Luiz Capitulino
    {
2065 791e7c82 Luiz Capitulino
        .name       = "query-migrate",
2066 791e7c82 Luiz Capitulino
        .args_type  = "",
2067 791e7c82 Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_query_migrate,
2068 791e7c82 Luiz Capitulino
    },
2069 791e7c82 Luiz Capitulino
2070 82a56f0d Luiz Capitulino
SQMP
2071 82a56f0d Luiz Capitulino
query-balloon
2072 82a56f0d Luiz Capitulino
-------------
2073 82a56f0d Luiz Capitulino
2074 82a56f0d Luiz Capitulino
Show balloon information.
2075 82a56f0d Luiz Capitulino
2076 82a56f0d Luiz Capitulino
Make an asynchronous request for balloon info. When the request completes a
2077 82a56f0d Luiz Capitulino
json-object will be returned containing the following data:
2078 82a56f0d Luiz Capitulino
2079 82a56f0d Luiz Capitulino
- "actual": current balloon value in bytes (json-int)
2080 82a56f0d Luiz Capitulino
- "mem_swapped_in": Amount of memory swapped in bytes (json-int, optional)
2081 82a56f0d Luiz Capitulino
- "mem_swapped_out": Amount of memory swapped out in bytes (json-int, optional)
2082 82a56f0d Luiz Capitulino
- "major_page_faults": Number of major faults (json-int, optional)
2083 82a56f0d Luiz Capitulino
- "minor_page_faults": Number of minor faults (json-int, optional)
2084 82a56f0d Luiz Capitulino
- "free_mem": Total amount of free and unused memory in
2085 82a56f0d Luiz Capitulino
              bytes (json-int, optional)
2086 82a56f0d Luiz Capitulino
- "total_mem": Total amount of available memory in bytes (json-int, optional)
2087 82a56f0d Luiz Capitulino
2088 82a56f0d Luiz Capitulino
Example:
2089 82a56f0d Luiz Capitulino
2090 82a56f0d Luiz Capitulino
-> { "execute": "query-balloon" }
2091 82a56f0d Luiz Capitulino
<- {
2092 82a56f0d Luiz Capitulino
      "return":{
2093 82a56f0d Luiz Capitulino
         "actual":1073741824,
2094 82a56f0d Luiz Capitulino
         "mem_swapped_in":0,
2095 82a56f0d Luiz Capitulino
         "mem_swapped_out":0,
2096 82a56f0d Luiz Capitulino
         "major_page_faults":142,
2097 82a56f0d Luiz Capitulino
         "minor_page_faults":239245,
2098 82a56f0d Luiz Capitulino
         "free_mem":1014185984,
2099 82a56f0d Luiz Capitulino
         "total_mem":1044668416
2100 82a56f0d Luiz Capitulino
      }
2101 82a56f0d Luiz Capitulino
   }
2102 82a56f0d Luiz Capitulino
2103 82a56f0d Luiz Capitulino
EQMP
2104 82a56f0d Luiz Capitulino
2105 96637bcd Luiz Capitulino
    {
2106 96637bcd Luiz Capitulino
        .name       = "query-balloon",
2107 96637bcd Luiz Capitulino
        .args_type  = "",
2108 96637bcd Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_query_balloon,
2109 96637bcd Luiz Capitulino
    },
2110 b4b12c62 Anthony Liguori
2111 b4b12c62 Anthony Liguori
    {
2112 fb5458cd Stefan Hajnoczi
        .name       = "query-block-jobs",
2113 fb5458cd Stefan Hajnoczi
        .args_type  = "",
2114 fb5458cd Stefan Hajnoczi
        .mhandler.cmd_new = qmp_marshal_input_query_block_jobs,
2115 fb5458cd Stefan Hajnoczi
    },
2116 fb5458cd Stefan Hajnoczi
2117 fb5458cd Stefan Hajnoczi
    {
2118 b4b12c62 Anthony Liguori
        .name       = "qom-list",
2119 b4b12c62 Anthony Liguori
        .args_type  = "path:s",
2120 b4b12c62 Anthony Liguori
        .mhandler.cmd_new = qmp_marshal_input_qom_list,
2121 b4b12c62 Anthony Liguori
    },
2122 eb6e8ea5 Anthony Liguori
2123 eb6e8ea5 Anthony Liguori
    {
2124 eb6e8ea5 Anthony Liguori
        .name       = "qom-set",
2125 b9f8978c Paolo Bonzini
	.args_type  = "path:s,property:s,value:q",
2126 eb6e8ea5 Anthony Liguori
	.mhandler.cmd_new = qmp_qom_set,
2127 eb6e8ea5 Anthony Liguori
    },
2128 eb6e8ea5 Anthony Liguori
2129 eb6e8ea5 Anthony Liguori
    {
2130 eb6e8ea5 Anthony Liguori
        .name       = "qom-get",
2131 eb6e8ea5 Anthony Liguori
	.args_type  = "path:s,property:s",
2132 eb6e8ea5 Anthony Liguori
	.mhandler.cmd_new = qmp_qom_get,
2133 eb6e8ea5 Anthony Liguori
    },
2134 270b243f Luiz Capitulino
2135 270b243f Luiz Capitulino
    {
2136 270b243f Luiz Capitulino
        .name       = "change-vnc-password",
2137 270b243f Luiz Capitulino
        .args_type  = "password:s",
2138 270b243f Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_change_vnc_password,
2139 270b243f Luiz Capitulino
    },
2140 5eeee3fa Anthony Liguori
    {
2141 5eeee3fa Anthony Liguori
        .name       = "qom-list-types",
2142 5eeee3fa Anthony Liguori
        .args_type  = "implements:s?,abstract:b?",
2143 5eeee3fa Anthony Liguori
        .mhandler.cmd_new = qmp_marshal_input_qom_list_types,
2144 5eeee3fa Anthony Liguori
    },