Statistics
| Branch: | Revision:

root / qmp-commands.hx @ 85e8dab1

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