Statistics
| Branch: | Revision:

root / qmp-commands.hx @ aa82ba54

History | View | Annotate | Download (48.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 82a56f0d Luiz Capitulino
        .params     = "[-f] device",
88 82a56f0d Luiz Capitulino
        .help       = "eject a removable medium (use -f to force it)",
89 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
90 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_eject,
91 82a56f0d Luiz Capitulino
    },
92 82a56f0d Luiz Capitulino
93 82a56f0d Luiz Capitulino
SQMP
94 82a56f0d Luiz Capitulino
eject
95 82a56f0d Luiz Capitulino
-----
96 82a56f0d Luiz Capitulino
97 82a56f0d Luiz Capitulino
Eject a removable medium.
98 82a56f0d Luiz Capitulino
99 82a56f0d Luiz Capitulino
Arguments: 
100 82a56f0d Luiz Capitulino
101 82a56f0d Luiz Capitulino
- force: force ejection (json-bool, optional)
102 82a56f0d Luiz Capitulino
- device: device name (json-string)
103 82a56f0d Luiz Capitulino
104 82a56f0d Luiz Capitulino
Example:
105 82a56f0d Luiz Capitulino
106 82a56f0d Luiz Capitulino
-> { "execute": "eject", "arguments": { "device": "ide1-cd0" } }
107 82a56f0d Luiz Capitulino
<- { "return": {} }
108 82a56f0d Luiz Capitulino
109 82a56f0d Luiz Capitulino
Note: The "force" argument defaults to false.
110 82a56f0d Luiz Capitulino
111 82a56f0d Luiz Capitulino
EQMP
112 82a56f0d Luiz Capitulino
113 82a56f0d Luiz Capitulino
    {
114 82a56f0d Luiz Capitulino
        .name       = "change",
115 82a56f0d Luiz Capitulino
        .args_type  = "device:B,target:F,arg:s?",
116 82a56f0d Luiz Capitulino
        .params     = "device filename [format]",
117 82a56f0d Luiz Capitulino
        .help       = "change a removable medium, optional format",
118 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
119 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_change,
120 82a56f0d Luiz Capitulino
    },
121 82a56f0d Luiz Capitulino
122 82a56f0d Luiz Capitulino
SQMP
123 82a56f0d Luiz Capitulino
change
124 82a56f0d Luiz Capitulino
------
125 82a56f0d Luiz Capitulino
126 82a56f0d Luiz Capitulino
Change a removable medium or VNC configuration.
127 82a56f0d Luiz Capitulino
128 82a56f0d Luiz Capitulino
Arguments:
129 82a56f0d Luiz Capitulino
130 82a56f0d Luiz Capitulino
- "device": device name (json-string)
131 82a56f0d Luiz Capitulino
- "target": filename or item (json-string)
132 82a56f0d Luiz Capitulino
- "arg": additional argument (json-string, optional)
133 82a56f0d Luiz Capitulino
134 82a56f0d Luiz Capitulino
Examples:
135 82a56f0d Luiz Capitulino
136 82a56f0d Luiz Capitulino
1. Change a removable medium
137 82a56f0d Luiz Capitulino
138 82a56f0d Luiz Capitulino
-> { "execute": "change",
139 82a56f0d Luiz Capitulino
             "arguments": { "device": "ide1-cd0",
140 82a56f0d Luiz Capitulino
                            "target": "/srv/images/Fedora-12-x86_64-DVD.iso" } }
141 82a56f0d Luiz Capitulino
<- { "return": {} }
142 82a56f0d Luiz Capitulino
143 82a56f0d Luiz Capitulino
2. Change VNC password
144 82a56f0d Luiz Capitulino
145 82a56f0d Luiz Capitulino
-> { "execute": "change",
146 82a56f0d Luiz Capitulino
             "arguments": { "device": "vnc", "target": "password",
147 82a56f0d Luiz Capitulino
                            "arg": "foobar1" } }
148 82a56f0d Luiz Capitulino
<- { "return": {} }
149 82a56f0d Luiz Capitulino
150 82a56f0d Luiz Capitulino
EQMP
151 82a56f0d Luiz Capitulino
152 82a56f0d Luiz Capitulino
    {
153 82a56f0d Luiz Capitulino
        .name       = "screendump",
154 82a56f0d Luiz Capitulino
        .args_type  = "filename:F",
155 82a56f0d Luiz Capitulino
        .params     = "filename",
156 82a56f0d Luiz Capitulino
        .help       = "save screen into PPM image 'filename'",
157 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
158 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_screen_dump,
159 82a56f0d Luiz Capitulino
    },
160 82a56f0d Luiz Capitulino
161 82a56f0d Luiz Capitulino
SQMP
162 82a56f0d Luiz Capitulino
screendump
163 82a56f0d Luiz Capitulino
----------
164 82a56f0d Luiz Capitulino
165 82a56f0d Luiz Capitulino
Save screen into PPM image.
166 82a56f0d Luiz Capitulino
167 82a56f0d Luiz Capitulino
Arguments:
168 82a56f0d Luiz Capitulino
169 82a56f0d Luiz Capitulino
- "filename": file path (json-string)
170 82a56f0d Luiz Capitulino
171 82a56f0d Luiz Capitulino
Example:
172 82a56f0d Luiz Capitulino
173 82a56f0d Luiz Capitulino
-> { "execute": "screendump", "arguments": { "filename": "/tmp/image" } }
174 82a56f0d Luiz Capitulino
<- { "return": {} }
175 82a56f0d Luiz Capitulino
176 82a56f0d Luiz Capitulino
EQMP
177 82a56f0d Luiz Capitulino
178 82a56f0d Luiz Capitulino
    {
179 82a56f0d Luiz Capitulino
        .name       = "stop",
180 82a56f0d Luiz Capitulino
        .args_type  = "",
181 5f158f21 Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_stop,
182 82a56f0d Luiz Capitulino
    },
183 82a56f0d Luiz Capitulino
184 82a56f0d Luiz Capitulino
SQMP
185 82a56f0d Luiz Capitulino
stop
186 82a56f0d Luiz Capitulino
----
187 82a56f0d Luiz Capitulino
188 82a56f0d Luiz Capitulino
Stop the emulator.
189 82a56f0d Luiz Capitulino
190 82a56f0d Luiz Capitulino
Arguments: None.
191 82a56f0d Luiz Capitulino
192 82a56f0d Luiz Capitulino
Example:
193 82a56f0d Luiz Capitulino
194 82a56f0d Luiz Capitulino
-> { "execute": "stop" }
195 82a56f0d Luiz Capitulino
<- { "return": {} }
196 82a56f0d Luiz Capitulino
197 82a56f0d Luiz Capitulino
EQMP
198 82a56f0d Luiz Capitulino
199 82a56f0d Luiz Capitulino
    {
200 82a56f0d Luiz Capitulino
        .name       = "cont",
201 82a56f0d Luiz Capitulino
        .args_type  = "",
202 82a56f0d Luiz Capitulino
        .params     = "",
203 82a56f0d Luiz Capitulino
        .help       = "resume emulation",
204 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
205 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_cont,
206 82a56f0d Luiz Capitulino
    },
207 82a56f0d Luiz Capitulino
208 82a56f0d Luiz Capitulino
SQMP
209 82a56f0d Luiz Capitulino
cont
210 82a56f0d Luiz Capitulino
----
211 82a56f0d Luiz Capitulino
212 82a56f0d Luiz Capitulino
Resume emulation.
213 82a56f0d Luiz Capitulino
214 82a56f0d Luiz Capitulino
Arguments: None.
215 82a56f0d Luiz Capitulino
216 82a56f0d Luiz Capitulino
Example:
217 82a56f0d Luiz Capitulino
218 82a56f0d Luiz Capitulino
-> { "execute": "cont" }
219 82a56f0d Luiz Capitulino
<- { "return": {} }
220 82a56f0d Luiz Capitulino
221 82a56f0d Luiz Capitulino
EQMP
222 82a56f0d Luiz Capitulino
223 82a56f0d Luiz Capitulino
    {
224 82a56f0d Luiz Capitulino
        .name       = "system_reset",
225 82a56f0d Luiz Capitulino
        .args_type  = "",
226 38d22653 Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_system_reset,
227 82a56f0d Luiz Capitulino
    },
228 82a56f0d Luiz Capitulino
229 82a56f0d Luiz Capitulino
SQMP
230 82a56f0d Luiz Capitulino
system_reset
231 82a56f0d Luiz Capitulino
------------
232 82a56f0d Luiz Capitulino
233 82a56f0d Luiz Capitulino
Reset the system.
234 82a56f0d Luiz Capitulino
235 82a56f0d Luiz Capitulino
Arguments: None.
236 82a56f0d Luiz Capitulino
237 82a56f0d Luiz Capitulino
Example:
238 82a56f0d Luiz Capitulino
239 82a56f0d Luiz Capitulino
-> { "execute": "system_reset" }
240 82a56f0d Luiz Capitulino
<- { "return": {} }
241 82a56f0d Luiz Capitulino
242 82a56f0d Luiz Capitulino
EQMP
243 82a56f0d Luiz Capitulino
244 82a56f0d Luiz Capitulino
    {
245 82a56f0d Luiz Capitulino
        .name       = "system_powerdown",
246 82a56f0d Luiz Capitulino
        .args_type  = "",
247 82a56f0d Luiz Capitulino
        .params     = "",
248 82a56f0d Luiz Capitulino
        .help       = "send system power down event",
249 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
250 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_system_powerdown,
251 82a56f0d Luiz Capitulino
    },
252 82a56f0d Luiz Capitulino
253 82a56f0d Luiz Capitulino
SQMP
254 82a56f0d Luiz Capitulino
system_powerdown
255 82a56f0d Luiz Capitulino
----------------
256 82a56f0d Luiz Capitulino
257 82a56f0d Luiz Capitulino
Send system power down event.
258 82a56f0d Luiz Capitulino
259 82a56f0d Luiz Capitulino
Arguments: None.
260 82a56f0d Luiz Capitulino
261 82a56f0d Luiz Capitulino
Example:
262 82a56f0d Luiz Capitulino
263 82a56f0d Luiz Capitulino
-> { "execute": "system_powerdown" }
264 82a56f0d Luiz Capitulino
<- { "return": {} }
265 82a56f0d Luiz Capitulino
266 82a56f0d Luiz Capitulino
EQMP
267 82a56f0d Luiz Capitulino
268 82a56f0d Luiz Capitulino
    {
269 82a56f0d Luiz Capitulino
        .name       = "device_add",
270 82a56f0d Luiz Capitulino
        .args_type  = "device:O",
271 82a56f0d Luiz Capitulino
        .params     = "driver[,prop=value][,...]",
272 82a56f0d Luiz Capitulino
        .help       = "add device, like -device on the command line",
273 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
274 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_device_add,
275 82a56f0d Luiz Capitulino
    },
276 82a56f0d Luiz Capitulino
277 82a56f0d Luiz Capitulino
SQMP
278 82a56f0d Luiz Capitulino
device_add
279 82a56f0d Luiz Capitulino
----------
280 82a56f0d Luiz Capitulino
281 82a56f0d Luiz Capitulino
Add a device.
282 82a56f0d Luiz Capitulino
283 82a56f0d Luiz Capitulino
Arguments:
284 82a56f0d Luiz Capitulino
285 82a56f0d Luiz Capitulino
- "driver": the name of the new device's driver (json-string)
286 82a56f0d Luiz Capitulino
- "bus": the device's parent bus (device tree path, json-string, optional)
287 82a56f0d Luiz Capitulino
- "id": the device's ID, must be unique (json-string)
288 82a56f0d Luiz Capitulino
- device properties
289 82a56f0d Luiz Capitulino
290 82a56f0d Luiz Capitulino
Example:
291 82a56f0d Luiz Capitulino
292 82a56f0d Luiz Capitulino
-> { "execute": "device_add", "arguments": { "driver": "e1000", "id": "net1" } }
293 82a56f0d Luiz Capitulino
<- { "return": {} }
294 82a56f0d Luiz Capitulino
295 82a56f0d Luiz Capitulino
Notes:
296 82a56f0d Luiz Capitulino
297 82a56f0d Luiz Capitulino
(1) For detailed information about this command, please refer to the
298 82a56f0d Luiz Capitulino
    'docs/qdev-device-use.txt' file.
299 82a56f0d Luiz Capitulino
300 82a56f0d Luiz Capitulino
(2) It's possible to list device properties by running QEMU with the
301 82a56f0d Luiz Capitulino
    "-device DEVICE,\?" command-line argument, where DEVICE is the device's name
302 82a56f0d Luiz Capitulino
303 82a56f0d Luiz Capitulino
EQMP
304 82a56f0d Luiz Capitulino
305 82a56f0d Luiz Capitulino
    {
306 82a56f0d Luiz Capitulino
        .name       = "device_del",
307 82a56f0d Luiz Capitulino
        .args_type  = "id:s",
308 82a56f0d Luiz Capitulino
        .params     = "device",
309 82a56f0d Luiz Capitulino
        .help       = "remove device",
310 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
311 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_device_del,
312 82a56f0d Luiz Capitulino
    },
313 82a56f0d Luiz Capitulino
314 82a56f0d Luiz Capitulino
SQMP
315 82a56f0d Luiz Capitulino
device_del
316 82a56f0d Luiz Capitulino
----------
317 82a56f0d Luiz Capitulino
318 82a56f0d Luiz Capitulino
Remove a device.
319 82a56f0d Luiz Capitulino
320 82a56f0d Luiz Capitulino
Arguments:
321 82a56f0d Luiz Capitulino
322 82a56f0d Luiz Capitulino
- "id": the device's ID (json-string)
323 82a56f0d Luiz Capitulino
324 82a56f0d Luiz Capitulino
Example:
325 82a56f0d Luiz Capitulino
326 82a56f0d Luiz Capitulino
-> { "execute": "device_del", "arguments": { "id": "net1" } }
327 82a56f0d Luiz Capitulino
<- { "return": {} }
328 82a56f0d Luiz Capitulino
329 82a56f0d Luiz Capitulino
EQMP
330 82a56f0d Luiz Capitulino
331 82a56f0d Luiz Capitulino
    {
332 82a56f0d Luiz Capitulino
        .name       = "cpu",
333 82a56f0d Luiz Capitulino
        .args_type  = "index:i",
334 82a56f0d Luiz Capitulino
        .params     = "index",
335 82a56f0d Luiz Capitulino
        .help       = "set the default CPU",
336 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
337 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_cpu_set,
338 82a56f0d Luiz Capitulino
    },
339 82a56f0d Luiz Capitulino
340 82a56f0d Luiz Capitulino
SQMP
341 82a56f0d Luiz Capitulino
cpu
342 82a56f0d Luiz Capitulino
---
343 82a56f0d Luiz Capitulino
344 82a56f0d Luiz Capitulino
Set the default CPU.
345 82a56f0d Luiz Capitulino
346 82a56f0d Luiz Capitulino
Arguments:
347 82a56f0d Luiz Capitulino
348 82a56f0d Luiz Capitulino
- "index": the CPU's index (json-int)
349 82a56f0d Luiz Capitulino
350 82a56f0d Luiz Capitulino
Example:
351 82a56f0d Luiz Capitulino
352 82a56f0d Luiz Capitulino
-> { "execute": "cpu", "arguments": { "index": 0 } }
353 82a56f0d Luiz Capitulino
<- { "return": {} }
354 82a56f0d Luiz Capitulino
355 82a56f0d Luiz Capitulino
Note: CPUs' indexes are obtained with the 'query-cpus' command.
356 82a56f0d Luiz Capitulino
357 82a56f0d Luiz Capitulino
EQMP
358 82a56f0d Luiz Capitulino
359 82a56f0d Luiz Capitulino
    {
360 82a56f0d Luiz Capitulino
        .name       = "memsave",
361 82a56f0d Luiz Capitulino
        .args_type  = "val:l,size:i,filename:s",
362 82a56f0d Luiz Capitulino
        .params     = "addr size file",
363 82a56f0d Luiz Capitulino
        .help       = "save to disk virtual memory dump starting at 'addr' of size 'size'",
364 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
365 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_memory_save,
366 82a56f0d Luiz Capitulino
    },
367 82a56f0d Luiz Capitulino
368 82a56f0d Luiz Capitulino
SQMP
369 82a56f0d Luiz Capitulino
memsave
370 82a56f0d Luiz Capitulino
-------
371 82a56f0d Luiz Capitulino
372 82a56f0d Luiz Capitulino
Save to disk virtual memory dump starting at 'val' of size 'size'.
373 82a56f0d Luiz Capitulino
374 82a56f0d Luiz Capitulino
Arguments:
375 82a56f0d Luiz Capitulino
376 82a56f0d Luiz Capitulino
- "val": the starting address (json-int)
377 82a56f0d Luiz Capitulino
- "size": the memory size, in bytes (json-int)
378 82a56f0d Luiz Capitulino
- "filename": file path (json-string)
379 82a56f0d Luiz Capitulino
380 82a56f0d Luiz Capitulino
Example:
381 82a56f0d Luiz Capitulino
382 82a56f0d Luiz Capitulino
-> { "execute": "memsave",
383 82a56f0d Luiz Capitulino
             "arguments": { "val": 10,
384 82a56f0d Luiz Capitulino
                            "size": 100,
385 82a56f0d Luiz Capitulino
                            "filename": "/tmp/virtual-mem-dump" } }
386 82a56f0d Luiz Capitulino
<- { "return": {} }
387 82a56f0d Luiz Capitulino
388 82a56f0d Luiz Capitulino
Note: Depends on the current CPU.
389 82a56f0d Luiz Capitulino
390 82a56f0d Luiz Capitulino
EQMP
391 82a56f0d Luiz Capitulino
392 82a56f0d Luiz Capitulino
    {
393 82a56f0d Luiz Capitulino
        .name       = "pmemsave",
394 82a56f0d Luiz Capitulino
        .args_type  = "val:l,size:i,filename:s",
395 82a56f0d Luiz Capitulino
        .params     = "addr size file",
396 82a56f0d Luiz Capitulino
        .help       = "save to disk physical memory dump starting at 'addr' of size 'size'",
397 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
398 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_physical_memory_save,
399 82a56f0d Luiz Capitulino
    },
400 82a56f0d Luiz Capitulino
401 82a56f0d Luiz Capitulino
SQMP
402 82a56f0d Luiz Capitulino
pmemsave
403 82a56f0d Luiz Capitulino
--------
404 82a56f0d Luiz Capitulino
405 82a56f0d Luiz Capitulino
Save to disk physical memory dump starting at 'val' of size 'size'.
406 82a56f0d Luiz Capitulino
407 82a56f0d Luiz Capitulino
Arguments:
408 82a56f0d Luiz Capitulino
409 82a56f0d Luiz Capitulino
- "val": the starting address (json-int)
410 82a56f0d Luiz Capitulino
- "size": the memory size, in bytes (json-int)
411 82a56f0d Luiz Capitulino
- "filename": file path (json-string)
412 82a56f0d Luiz Capitulino
413 82a56f0d Luiz Capitulino
Example:
414 82a56f0d Luiz Capitulino
415 82a56f0d Luiz Capitulino
-> { "execute": "pmemsave",
416 82a56f0d Luiz Capitulino
             "arguments": { "val": 10,
417 82a56f0d Luiz Capitulino
                            "size": 100,
418 82a56f0d Luiz Capitulino
                            "filename": "/tmp/physical-mem-dump" } }
419 82a56f0d Luiz Capitulino
<- { "return": {} }
420 82a56f0d Luiz Capitulino
421 82a56f0d Luiz Capitulino
EQMP
422 82a56f0d Luiz Capitulino
423 82a56f0d Luiz Capitulino
    {
424 a4046664 Lai Jiangshan
        .name       = "inject-nmi",
425 a4046664 Lai Jiangshan
        .args_type  = "",
426 a4046664 Lai Jiangshan
        .params     = "",
427 a4046664 Lai Jiangshan
        .help       = "",
428 a4046664 Lai Jiangshan
        .user_print = monitor_user_noop,
429 e9b4b432 Luiz Capitulino
        .mhandler.cmd_new = do_inject_nmi,
430 a4046664 Lai Jiangshan
    },
431 a4046664 Lai Jiangshan
432 a4046664 Lai Jiangshan
SQMP
433 a4046664 Lai Jiangshan
inject-nmi
434 a4046664 Lai Jiangshan
----------
435 a4046664 Lai Jiangshan
436 a4046664 Lai Jiangshan
Inject an NMI on guest's CPUs.
437 a4046664 Lai Jiangshan
438 a4046664 Lai Jiangshan
Arguments: None.
439 a4046664 Lai Jiangshan
440 a4046664 Lai Jiangshan
Example:
441 a4046664 Lai Jiangshan
442 a4046664 Lai Jiangshan
-> { "execute": "inject-nmi" }
443 a4046664 Lai Jiangshan
<- { "return": {} }
444 a4046664 Lai Jiangshan
445 a4046664 Lai Jiangshan
Note: inject-nmi is only supported for x86 guest currently, it will
446 a4046664 Lai Jiangshan
      returns "Unsupported" error for non-x86 guest.
447 a4046664 Lai Jiangshan
448 a4046664 Lai Jiangshan
EQMP
449 a4046664 Lai Jiangshan
450 a4046664 Lai Jiangshan
    {
451 82a56f0d Luiz Capitulino
        .name       = "migrate",
452 82a56f0d Luiz Capitulino
        .args_type  = "detach:-d,blk:-b,inc:-i,uri:s",
453 82a56f0d Luiz Capitulino
        .params     = "[-d] [-b] [-i] uri",
454 82a56f0d Luiz Capitulino
        .help       = "migrate to URI (using -d to not wait for completion)"
455 82a56f0d Luiz Capitulino
		      "\n\t\t\t -b for migration without shared storage with"
456 82a56f0d Luiz Capitulino
		      " full copy of disk\n\t\t\t -i for migration without "
457 82a56f0d Luiz Capitulino
		      "shared storage with incremental copy of disk "
458 82a56f0d Luiz Capitulino
		      "(base image shared between src and destination)",
459 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,	
460 82a56f0d Luiz Capitulino
	.mhandler.cmd_new = do_migrate,
461 82a56f0d Luiz Capitulino
    },
462 82a56f0d Luiz Capitulino
463 82a56f0d Luiz Capitulino
SQMP
464 82a56f0d Luiz Capitulino
migrate
465 82a56f0d Luiz Capitulino
-------
466 82a56f0d Luiz Capitulino
467 82a56f0d Luiz Capitulino
Migrate to URI.
468 82a56f0d Luiz Capitulino
469 82a56f0d Luiz Capitulino
Arguments:
470 82a56f0d Luiz Capitulino
471 82a56f0d Luiz Capitulino
- "blk": block migration, full disk copy (json-bool, optional)
472 82a56f0d Luiz Capitulino
- "inc": incremental disk copy (json-bool, optional)
473 82a56f0d Luiz Capitulino
- "uri": Destination URI (json-string)
474 82a56f0d Luiz Capitulino
475 82a56f0d Luiz Capitulino
Example:
476 82a56f0d Luiz Capitulino
477 82a56f0d Luiz Capitulino
-> { "execute": "migrate", "arguments": { "uri": "tcp:0:4446" } }
478 82a56f0d Luiz Capitulino
<- { "return": {} }
479 82a56f0d Luiz Capitulino
480 82a56f0d Luiz Capitulino
Notes:
481 82a56f0d Luiz Capitulino
482 82a56f0d Luiz Capitulino
(1) The 'query-migrate' command should be used to check migration's progress
483 82a56f0d Luiz Capitulino
    and final result (this information is provided by the 'status' member)
484 82a56f0d Luiz Capitulino
(2) All boolean arguments default to false
485 82a56f0d Luiz Capitulino
(3) The user Monitor's "detach" argument is invalid in QMP and should not
486 82a56f0d Luiz Capitulino
    be used
487 82a56f0d Luiz Capitulino
488 82a56f0d Luiz Capitulino
EQMP
489 82a56f0d Luiz Capitulino
490 82a56f0d Luiz Capitulino
    {
491 82a56f0d Luiz Capitulino
        .name       = "migrate_cancel",
492 82a56f0d Luiz Capitulino
        .args_type  = "",
493 82a56f0d Luiz Capitulino
        .params     = "",
494 82a56f0d Luiz Capitulino
        .help       = "cancel the current VM migration",
495 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
496 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_migrate_cancel,
497 82a56f0d Luiz Capitulino
    },
498 82a56f0d Luiz Capitulino
499 82a56f0d Luiz Capitulino
SQMP
500 82a56f0d Luiz Capitulino
migrate_cancel
501 82a56f0d Luiz Capitulino
--------------
502 82a56f0d Luiz Capitulino
503 82a56f0d Luiz Capitulino
Cancel the current migration.
504 82a56f0d Luiz Capitulino
505 82a56f0d Luiz Capitulino
Arguments: None.
506 82a56f0d Luiz Capitulino
507 82a56f0d Luiz Capitulino
Example:
508 82a56f0d Luiz Capitulino
509 82a56f0d Luiz Capitulino
-> { "execute": "migrate_cancel" }
510 82a56f0d Luiz Capitulino
<- { "return": {} }
511 82a56f0d Luiz Capitulino
512 82a56f0d Luiz Capitulino
EQMP
513 82a56f0d Luiz Capitulino
514 82a56f0d Luiz Capitulino
    {
515 82a56f0d Luiz Capitulino
        .name       = "migrate_set_speed",
516 3a019b6e Wen Congyang
        .args_type  = "value:o",
517 82a56f0d Luiz Capitulino
        .params     = "value",
518 82a56f0d Luiz Capitulino
        .help       = "set maximum speed (in bytes) for migrations",
519 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
520 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_migrate_set_speed,
521 82a56f0d Luiz Capitulino
    },
522 82a56f0d Luiz Capitulino
523 82a56f0d Luiz Capitulino
SQMP
524 ff73edf5 Jes Sorensen
migrate_set_speed
525 ff73edf5 Jes Sorensen
-----------------
526 e866e239 Gerd Hoffmann
527 ff73edf5 Jes Sorensen
Set maximum speed for migrations.
528 e866e239 Gerd Hoffmann
529 e866e239 Gerd Hoffmann
Arguments:
530 e866e239 Gerd Hoffmann
531 ff73edf5 Jes Sorensen
- "value": maximum speed, in bytes per second (json-int)
532 e866e239 Gerd Hoffmann
533 e866e239 Gerd Hoffmann
Example:
534 e866e239 Gerd Hoffmann
535 ff73edf5 Jes Sorensen
-> { "execute": "migrate_set_speed", "arguments": { "value": 1024 } }
536 e866e239 Gerd Hoffmann
<- { "return": {} }
537 e866e239 Gerd Hoffmann
538 e866e239 Gerd Hoffmann
EQMP
539 e866e239 Gerd Hoffmann
540 e866e239 Gerd Hoffmann
    {
541 ff73edf5 Jes Sorensen
        .name       = "migrate_set_downtime",
542 ff73edf5 Jes Sorensen
        .args_type  = "value:T",
543 ff73edf5 Jes Sorensen
        .params     = "value",
544 ff73edf5 Jes Sorensen
        .help       = "set maximum tolerated downtime (in seconds) for migrations",
545 e866e239 Gerd Hoffmann
        .user_print = monitor_user_noop,
546 ff73edf5 Jes Sorensen
        .mhandler.cmd_new = do_migrate_set_downtime,
547 e866e239 Gerd Hoffmann
    },
548 e866e239 Gerd Hoffmann
549 e866e239 Gerd Hoffmann
SQMP
550 ff73edf5 Jes Sorensen
migrate_set_downtime
551 ff73edf5 Jes Sorensen
--------------------
552 82a56f0d Luiz Capitulino
553 ff73edf5 Jes Sorensen
Set maximum tolerated downtime (in seconds) for migrations.
554 82a56f0d Luiz Capitulino
555 82a56f0d Luiz Capitulino
Arguments:
556 82a56f0d Luiz Capitulino
557 ff73edf5 Jes Sorensen
- "value": maximum downtime (json-number)
558 82a56f0d Luiz Capitulino
559 82a56f0d Luiz Capitulino
Example:
560 82a56f0d Luiz Capitulino
561 ff73edf5 Jes Sorensen
-> { "execute": "migrate_set_downtime", "arguments": { "value": 0.1 } }
562 82a56f0d Luiz Capitulino
<- { "return": {} }
563 82a56f0d Luiz Capitulino
564 82a56f0d Luiz Capitulino
EQMP
565 82a56f0d Luiz Capitulino
566 82a56f0d Luiz Capitulino
    {
567 ff73edf5 Jes Sorensen
        .name       = "client_migrate_info",
568 ff73edf5 Jes Sorensen
        .args_type  = "protocol:s,hostname:s,port:i?,tls-port:i?,cert-subject:s?",
569 ff73edf5 Jes Sorensen
        .params     = "protocol hostname port tls-port cert-subject",
570 ff73edf5 Jes Sorensen
        .help       = "send migration info to spice/vnc client",
571 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
572 ff73edf5 Jes Sorensen
        .mhandler.cmd_new = client_migrate_info,
573 82a56f0d Luiz Capitulino
    },
574 82a56f0d Luiz Capitulino
575 82a56f0d Luiz Capitulino
SQMP
576 ff73edf5 Jes Sorensen
client_migrate_info
577 ff73edf5 Jes Sorensen
------------------
578 82a56f0d Luiz Capitulino
579 ff73edf5 Jes Sorensen
Set the spice/vnc connection info for the migration target.  The spice/vnc
580 ff73edf5 Jes Sorensen
server will ask the spice/vnc client to automatically reconnect using the
581 ff73edf5 Jes Sorensen
new parameters (if specified) once the vm migration finished successfully.
582 82a56f0d Luiz Capitulino
583 82a56f0d Luiz Capitulino
Arguments:
584 82a56f0d Luiz Capitulino
585 ff73edf5 Jes Sorensen
- "protocol":     protocol: "spice" or "vnc" (json-string)
586 ff73edf5 Jes Sorensen
- "hostname":     migration target hostname (json-string)
587 ff73edf5 Jes Sorensen
- "port":         spice/vnc tcp port for plaintext channels (json-int, optional)
588 ff73edf5 Jes Sorensen
- "tls-port":     spice tcp port for tls-secured channels (json-int, optional)
589 ff73edf5 Jes Sorensen
- "cert-subject": server certificate subject (json-string, optional)
590 82a56f0d Luiz Capitulino
591 82a56f0d Luiz Capitulino
Example:
592 82a56f0d Luiz Capitulino
593 ff73edf5 Jes Sorensen
-> { "execute": "client_migrate_info",
594 ff73edf5 Jes Sorensen
     "arguments": { "protocol": "spice",
595 ff73edf5 Jes Sorensen
                    "hostname": "virt42.lab.kraxel.org",
596 ff73edf5 Jes Sorensen
                    "port": 1234 } }
597 82a56f0d Luiz Capitulino
<- { "return": {} }
598 82a56f0d Luiz Capitulino
599 82a56f0d Luiz Capitulino
EQMP
600 82a56f0d Luiz Capitulino
601 82a56f0d Luiz Capitulino
    {
602 82a56f0d Luiz Capitulino
        .name       = "netdev_add",
603 82a56f0d Luiz Capitulino
        .args_type  = "netdev:O",
604 82a56f0d Luiz Capitulino
        .params     = "[user|tap|socket],id=str[,prop=value][,...]",
605 82a56f0d Luiz Capitulino
        .help       = "add host network device",
606 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
607 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_netdev_add,
608 82a56f0d Luiz Capitulino
    },
609 82a56f0d Luiz Capitulino
610 82a56f0d Luiz Capitulino
SQMP
611 82a56f0d Luiz Capitulino
netdev_add
612 82a56f0d Luiz Capitulino
----------
613 82a56f0d Luiz Capitulino
614 82a56f0d Luiz Capitulino
Add host network device.
615 82a56f0d Luiz Capitulino
616 82a56f0d Luiz Capitulino
Arguments:
617 82a56f0d Luiz Capitulino
618 82a56f0d Luiz Capitulino
- "type": the device type, "tap", "user", ... (json-string)
619 82a56f0d Luiz Capitulino
- "id": the device's ID, must be unique (json-string)
620 82a56f0d Luiz Capitulino
- device options
621 82a56f0d Luiz Capitulino
622 82a56f0d Luiz Capitulino
Example:
623 82a56f0d Luiz Capitulino
624 82a56f0d Luiz Capitulino
-> { "execute": "netdev_add", "arguments": { "type": "user", "id": "netdev1" } }
625 82a56f0d Luiz Capitulino
<- { "return": {} }
626 82a56f0d Luiz Capitulino
627 82a56f0d Luiz Capitulino
Note: The supported device options are the same ones supported by the '-net'
628 82a56f0d Luiz Capitulino
      command-line argument, which are listed in the '-help' output or QEMU's
629 82a56f0d Luiz Capitulino
      manual
630 82a56f0d Luiz Capitulino
631 82a56f0d Luiz Capitulino
EQMP
632 82a56f0d Luiz Capitulino
633 82a56f0d Luiz Capitulino
    {
634 82a56f0d Luiz Capitulino
        .name       = "netdev_del",
635 82a56f0d Luiz Capitulino
        .args_type  = "id:s",
636 82a56f0d Luiz Capitulino
        .params     = "id",
637 82a56f0d Luiz Capitulino
        .help       = "remove host network device",
638 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
639 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_netdev_del,
640 82a56f0d Luiz Capitulino
    },
641 82a56f0d Luiz Capitulino
642 82a56f0d Luiz Capitulino
SQMP
643 82a56f0d Luiz Capitulino
netdev_del
644 82a56f0d Luiz Capitulino
----------
645 82a56f0d Luiz Capitulino
646 82a56f0d Luiz Capitulino
Remove host network device.
647 82a56f0d Luiz Capitulino
648 82a56f0d Luiz Capitulino
Arguments:
649 82a56f0d Luiz Capitulino
650 82a56f0d Luiz Capitulino
- "id": the device's ID, must be unique (json-string)
651 82a56f0d Luiz Capitulino
652 82a56f0d Luiz Capitulino
Example:
653 82a56f0d Luiz Capitulino
654 82a56f0d Luiz Capitulino
-> { "execute": "netdev_del", "arguments": { "id": "netdev1" } }
655 82a56f0d Luiz Capitulino
<- { "return": {} }
656 82a56f0d Luiz Capitulino
657 6d4a2b3a Christoph Hellwig
658 6d4a2b3a Christoph Hellwig
EQMP
659 6d4a2b3a Christoph Hellwig
660 6d4a2b3a Christoph Hellwig
    {
661 6d4a2b3a Christoph Hellwig
        .name       = "block_resize",
662 6d4a2b3a Christoph Hellwig
        .args_type  = "device:B,size:o",
663 6d4a2b3a Christoph Hellwig
        .params     = "device size",
664 6d4a2b3a Christoph Hellwig
        .help       = "resize a block image",
665 6d4a2b3a Christoph Hellwig
        .user_print = monitor_user_noop,
666 6d4a2b3a Christoph Hellwig
        .mhandler.cmd_new = do_block_resize,
667 6d4a2b3a Christoph Hellwig
    },
668 6d4a2b3a Christoph Hellwig
669 6d4a2b3a Christoph Hellwig
SQMP
670 6d4a2b3a Christoph Hellwig
block_resize
671 6d4a2b3a Christoph Hellwig
------------
672 6d4a2b3a Christoph Hellwig
673 6d4a2b3a Christoph Hellwig
Resize a block image while a guest is running.
674 6d4a2b3a Christoph Hellwig
675 6d4a2b3a Christoph Hellwig
Arguments:
676 6d4a2b3a Christoph Hellwig
677 6d4a2b3a Christoph Hellwig
- "device": the device's ID, must be unique (json-string)
678 6d4a2b3a Christoph Hellwig
- "size": new size
679 6d4a2b3a Christoph Hellwig
680 6d4a2b3a Christoph Hellwig
Example:
681 6d4a2b3a Christoph Hellwig
682 6d4a2b3a Christoph Hellwig
-> { "execute": "block_resize", "arguments": { "device": "scratch", "size": 1073741824 } }
683 6d4a2b3a Christoph Hellwig
<- { "return": {} }
684 6d4a2b3a Christoph Hellwig
685 82a56f0d Luiz Capitulino
EQMP
686 82a56f0d Luiz Capitulino
687 82a56f0d Luiz Capitulino
    {
688 d967b2f1 Jes Sorensen
        .name       = "blockdev-snapshot-sync",
689 d967b2f1 Jes Sorensen
        .args_type  = "device:B,snapshot-file:s?,format:s?",
690 d967b2f1 Jes Sorensen
        .params     = "device [new-image-file] [format]",
691 d967b2f1 Jes Sorensen
        .user_print = monitor_user_noop,
692 d967b2f1 Jes Sorensen
        .mhandler.cmd_new = do_snapshot_blkdev,
693 d967b2f1 Jes Sorensen
    },
694 d967b2f1 Jes Sorensen
695 d967b2f1 Jes Sorensen
SQMP
696 d967b2f1 Jes Sorensen
blockdev-snapshot-sync
697 d967b2f1 Jes Sorensen
----------------------
698 d967b2f1 Jes Sorensen
699 d967b2f1 Jes Sorensen
Synchronous snapshot of a block device. snapshot-file specifies the
700 d967b2f1 Jes Sorensen
target of the new image. If the file exists, or if it is a device, the
701 d967b2f1 Jes Sorensen
snapshot will be created in the existing file/device. If does not
702 d967b2f1 Jes Sorensen
exist, a new file will be created. format specifies the format of the
703 d967b2f1 Jes Sorensen
snapshot image, default is qcow2.
704 d967b2f1 Jes Sorensen
705 d967b2f1 Jes Sorensen
Arguments:
706 d967b2f1 Jes Sorensen
707 d967b2f1 Jes Sorensen
- "device": device name to snapshot (json-string)
708 d967b2f1 Jes Sorensen
- "snapshot-file": name of new image file (json-string)
709 d967b2f1 Jes Sorensen
- "format": format of new image (json-string, optional)
710 d967b2f1 Jes Sorensen
711 d967b2f1 Jes Sorensen
Example:
712 d967b2f1 Jes Sorensen
713 7f3850c2 Luiz Capitulino
-> { "execute": "blockdev-snapshot-sync", "arguments": { "device": "ide-hd0",
714 7f3850c2 Luiz Capitulino
                                                         "snapshot-file":
715 7f3850c2 Luiz Capitulino
                                                        "/some/place/my-image",
716 7f3850c2 Luiz Capitulino
                                                        "format": "qcow2" } }
717 d967b2f1 Jes Sorensen
<- { "return": {} }
718 d967b2f1 Jes Sorensen
719 d967b2f1 Jes Sorensen
EQMP
720 d967b2f1 Jes Sorensen
721 d967b2f1 Jes Sorensen
    {
722 82a56f0d Luiz Capitulino
        .name       = "balloon",
723 82a56f0d Luiz Capitulino
        .args_type  = "value:M",
724 82a56f0d Luiz Capitulino
        .params     = "target",
725 82a56f0d Luiz Capitulino
        .help       = "request VM to change its memory allocation (in MB)",
726 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
727 82a56f0d Luiz Capitulino
        .mhandler.cmd_async = do_balloon,
728 82a56f0d Luiz Capitulino
        .flags      = MONITOR_CMD_ASYNC,
729 82a56f0d Luiz Capitulino
    },
730 82a56f0d Luiz Capitulino
731 82a56f0d Luiz Capitulino
SQMP
732 82a56f0d Luiz Capitulino
balloon
733 82a56f0d Luiz Capitulino
-------
734 82a56f0d Luiz Capitulino
735 82a56f0d Luiz Capitulino
Request VM to change its memory allocation (in bytes).
736 82a56f0d Luiz Capitulino
737 82a56f0d Luiz Capitulino
Arguments:
738 82a56f0d Luiz Capitulino
739 82a56f0d Luiz Capitulino
- "value": New memory allocation (json-int)
740 82a56f0d Luiz Capitulino
741 82a56f0d Luiz Capitulino
Example:
742 82a56f0d Luiz Capitulino
743 82a56f0d Luiz Capitulino
-> { "execute": "balloon", "arguments": { "value": 536870912 } }
744 82a56f0d Luiz Capitulino
<- { "return": {} }
745 82a56f0d Luiz Capitulino
746 82a56f0d Luiz Capitulino
EQMP
747 82a56f0d Luiz Capitulino
748 82a56f0d Luiz Capitulino
    {
749 82a56f0d Luiz Capitulino
        .name       = "set_link",
750 82a56f0d Luiz Capitulino
        .args_type  = "name:s,up:b",
751 82a56f0d Luiz Capitulino
        .params     = "name on|off",
752 82a56f0d Luiz Capitulino
        .help       = "change the link status of a network adapter",
753 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
754 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_set_link,
755 82a56f0d Luiz Capitulino
    },
756 82a56f0d Luiz Capitulino
757 82a56f0d Luiz Capitulino
SQMP
758 82a56f0d Luiz Capitulino
set_link
759 82a56f0d Luiz Capitulino
--------
760 82a56f0d Luiz Capitulino
761 82a56f0d Luiz Capitulino
Change the link status of a network adapter.
762 82a56f0d Luiz Capitulino
763 82a56f0d Luiz Capitulino
Arguments:
764 82a56f0d Luiz Capitulino
765 82a56f0d Luiz Capitulino
- "name": network device name (json-string)
766 82a56f0d Luiz Capitulino
- "up": status is up (json-bool)
767 82a56f0d Luiz Capitulino
768 82a56f0d Luiz Capitulino
Example:
769 82a56f0d Luiz Capitulino
770 82a56f0d Luiz Capitulino
-> { "execute": "set_link", "arguments": { "name": "e1000.0", "up": false } }
771 82a56f0d Luiz Capitulino
<- { "return": {} }
772 82a56f0d Luiz Capitulino
773 82a56f0d Luiz Capitulino
EQMP
774 82a56f0d Luiz Capitulino
775 82a56f0d Luiz Capitulino
    {
776 82a56f0d Luiz Capitulino
        .name       = "getfd",
777 82a56f0d Luiz Capitulino
        .args_type  = "fdname:s",
778 82a56f0d Luiz Capitulino
        .params     = "getfd name",
779 82a56f0d Luiz Capitulino
        .help       = "receive a file descriptor via SCM rights and assign it a name",
780 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
781 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_getfd,
782 82a56f0d Luiz Capitulino
    },
783 82a56f0d Luiz Capitulino
784 82a56f0d Luiz Capitulino
SQMP
785 82a56f0d Luiz Capitulino
getfd
786 82a56f0d Luiz Capitulino
-----
787 82a56f0d Luiz Capitulino
788 82a56f0d Luiz Capitulino
Receive a file descriptor via SCM rights and assign it a name.
789 82a56f0d Luiz Capitulino
790 82a56f0d Luiz Capitulino
Arguments:
791 82a56f0d Luiz Capitulino
792 82a56f0d Luiz Capitulino
- "fdname": file descriptor name (json-string)
793 82a56f0d Luiz Capitulino
794 82a56f0d Luiz Capitulino
Example:
795 82a56f0d Luiz Capitulino
796 82a56f0d Luiz Capitulino
-> { "execute": "getfd", "arguments": { "fdname": "fd1" } }
797 82a56f0d Luiz Capitulino
<- { "return": {} }
798 82a56f0d Luiz Capitulino
799 82a56f0d Luiz Capitulino
EQMP
800 82a56f0d Luiz Capitulino
801 82a56f0d Luiz Capitulino
    {
802 82a56f0d Luiz Capitulino
        .name       = "closefd",
803 82a56f0d Luiz Capitulino
        .args_type  = "fdname:s",
804 82a56f0d Luiz Capitulino
        .params     = "closefd name",
805 82a56f0d Luiz Capitulino
        .help       = "close a file descriptor previously passed via SCM rights",
806 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
807 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_closefd,
808 82a56f0d Luiz Capitulino
    },
809 82a56f0d Luiz Capitulino
810 82a56f0d Luiz Capitulino
SQMP
811 82a56f0d Luiz Capitulino
closefd
812 82a56f0d Luiz Capitulino
-------
813 82a56f0d Luiz Capitulino
814 82a56f0d Luiz Capitulino
Close a file descriptor previously passed via SCM rights.
815 82a56f0d Luiz Capitulino
816 82a56f0d Luiz Capitulino
Arguments:
817 82a56f0d Luiz Capitulino
818 82a56f0d Luiz Capitulino
- "fdname": file descriptor name (json-string)
819 82a56f0d Luiz Capitulino
820 82a56f0d Luiz Capitulino
Example:
821 82a56f0d Luiz Capitulino
822 82a56f0d Luiz Capitulino
-> { "execute": "closefd", "arguments": { "fdname": "fd1" } }
823 82a56f0d Luiz Capitulino
<- { "return": {} }
824 82a56f0d Luiz Capitulino
825 82a56f0d Luiz Capitulino
EQMP
826 82a56f0d Luiz Capitulino
827 82a56f0d Luiz Capitulino
    {
828 82a56f0d Luiz Capitulino
        .name       = "block_passwd",
829 82a56f0d Luiz Capitulino
        .args_type  = "device:B,password:s",
830 82a56f0d Luiz Capitulino
        .params     = "block_passwd device password",
831 82a56f0d Luiz Capitulino
        .help       = "set the password of encrypted block devices",
832 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
833 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_block_set_passwd,
834 82a56f0d Luiz Capitulino
    },
835 82a56f0d Luiz Capitulino
836 82a56f0d Luiz Capitulino
SQMP
837 82a56f0d Luiz Capitulino
block_passwd
838 82a56f0d Luiz Capitulino
------------
839 82a56f0d Luiz Capitulino
840 82a56f0d Luiz Capitulino
Set the password of encrypted block devices.
841 82a56f0d Luiz Capitulino
842 82a56f0d Luiz Capitulino
Arguments:
843 82a56f0d Luiz Capitulino
844 82a56f0d Luiz Capitulino
- "device": device name (json-string)
845 82a56f0d Luiz Capitulino
- "password": password (json-string)
846 82a56f0d Luiz Capitulino
847 82a56f0d Luiz Capitulino
Example:
848 82a56f0d Luiz Capitulino
849 82a56f0d Luiz Capitulino
-> { "execute": "block_passwd", "arguments": { "device": "ide0-hd0",
850 82a56f0d Luiz Capitulino
                                               "password": "12345" } }
851 82a56f0d Luiz Capitulino
<- { "return": {} }
852 82a56f0d Luiz Capitulino
853 82a56f0d Luiz Capitulino
EQMP
854 82a56f0d Luiz Capitulino
855 82a56f0d Luiz Capitulino
    {
856 7572150c Gerd Hoffmann
        .name       = "set_password",
857 7572150c Gerd Hoffmann
        .args_type  = "protocol:s,password:s,connected:s?",
858 7572150c Gerd Hoffmann
        .params     = "protocol password action-if-connected",
859 7572150c Gerd Hoffmann
        .help       = "set spice/vnc password",
860 7572150c Gerd Hoffmann
        .user_print = monitor_user_noop,
861 7572150c Gerd Hoffmann
        .mhandler.cmd_new = set_password,
862 7572150c Gerd Hoffmann
    },
863 7572150c Gerd Hoffmann
864 7572150c Gerd Hoffmann
SQMP
865 7572150c Gerd Hoffmann
set_password
866 7572150c Gerd Hoffmann
------------
867 7572150c Gerd Hoffmann
868 7572150c Gerd Hoffmann
Set the password for vnc/spice protocols.
869 7572150c Gerd Hoffmann
870 7572150c Gerd Hoffmann
Arguments:
871 7572150c Gerd Hoffmann
872 7572150c Gerd Hoffmann
- "protocol": protocol name (json-string)
873 7572150c Gerd Hoffmann
- "password": password (json-string)
874 7572150c Gerd Hoffmann
- "connected": [ keep | disconnect | fail ] (josn-string, optional)
875 7572150c Gerd Hoffmann
876 7572150c Gerd Hoffmann
Example:
877 7572150c Gerd Hoffmann
878 7572150c Gerd Hoffmann
-> { "execute": "set_password", "arguments": { "protocol": "vnc",
879 7572150c Gerd Hoffmann
                                               "password": "secret" } }
880 7572150c Gerd Hoffmann
<- { "return": {} }
881 7572150c Gerd Hoffmann
882 7572150c Gerd Hoffmann
EQMP
883 7572150c Gerd Hoffmann
884 7572150c Gerd Hoffmann
    {
885 7572150c Gerd Hoffmann
        .name       = "expire_password",
886 7572150c Gerd Hoffmann
        .args_type  = "protocol:s,time:s",
887 7572150c Gerd Hoffmann
        .params     = "protocol time",
888 7572150c Gerd Hoffmann
        .help       = "set spice/vnc password expire-time",
889 7572150c Gerd Hoffmann
        .user_print = monitor_user_noop,
890 7572150c Gerd Hoffmann
        .mhandler.cmd_new = expire_password,
891 7572150c Gerd Hoffmann
    },
892 7572150c Gerd Hoffmann
893 7572150c Gerd Hoffmann
SQMP
894 7572150c Gerd Hoffmann
expire_password
895 7572150c Gerd Hoffmann
---------------
896 7572150c Gerd Hoffmann
897 7572150c Gerd Hoffmann
Set the password expire time for vnc/spice protocols.
898 7572150c Gerd Hoffmann
899 7572150c Gerd Hoffmann
Arguments:
900 7572150c Gerd Hoffmann
901 7572150c Gerd Hoffmann
- "protocol": protocol name (json-string)
902 7572150c Gerd Hoffmann
- "time": [ now | never | +secs | secs ] (json-string)
903 7572150c Gerd Hoffmann
904 7572150c Gerd Hoffmann
Example:
905 7572150c Gerd Hoffmann
906 7572150c Gerd Hoffmann
-> { "execute": "expire_password", "arguments": { "protocol": "vnc",
907 7572150c Gerd Hoffmann
                                                  "time": "+60" } }
908 7572150c Gerd Hoffmann
<- { "return": {} }
909 7572150c Gerd Hoffmann
910 7572150c Gerd Hoffmann
EQMP
911 7572150c Gerd Hoffmann
912 7572150c Gerd Hoffmann
    {
913 13661089 Daniel P. Berrange
        .name       = "add_client",
914 13661089 Daniel P. Berrange
        .args_type  = "protocol:s,fdname:s,skipauth:b?",
915 13661089 Daniel P. Berrange
        .params     = "protocol fdname skipauth",
916 13661089 Daniel P. Berrange
        .help       = "add a graphics client",
917 13661089 Daniel P. Berrange
        .user_print = monitor_user_noop,
918 13661089 Daniel P. Berrange
        .mhandler.cmd_new = add_graphics_client,
919 13661089 Daniel P. Berrange
    },
920 13661089 Daniel P. Berrange
921 13661089 Daniel P. Berrange
SQMP
922 13661089 Daniel P. Berrange
add_client
923 13661089 Daniel P. Berrange
----------
924 13661089 Daniel P. Berrange
925 13661089 Daniel P. Berrange
Add a graphics client
926 13661089 Daniel P. Berrange
927 13661089 Daniel P. Berrange
Arguments:
928 13661089 Daniel P. Berrange
929 13661089 Daniel P. Berrange
- "protocol": protocol name (json-string)
930 13661089 Daniel P. Berrange
- "fdname": file descriptor name (json-string)
931 13661089 Daniel P. Berrange
932 13661089 Daniel P. Berrange
Example:
933 13661089 Daniel P. Berrange
934 13661089 Daniel P. Berrange
-> { "execute": "add_client", "arguments": { "protocol": "vnc",
935 13661089 Daniel P. Berrange
                                             "fdname": "myclient" } }
936 13661089 Daniel P. Berrange
<- { "return": {} }
937 13661089 Daniel P. Berrange
938 13661089 Daniel P. Berrange
EQMP
939 13661089 Daniel P. Berrange
    {
940 82a56f0d Luiz Capitulino
        .name       = "qmp_capabilities",
941 82a56f0d Luiz Capitulino
        .args_type  = "",
942 82a56f0d Luiz Capitulino
        .params     = "",
943 82a56f0d Luiz Capitulino
        .help       = "enable QMP capabilities",
944 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
945 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_qmp_capabilities,
946 82a56f0d Luiz Capitulino
    },
947 82a56f0d Luiz Capitulino
948 82a56f0d Luiz Capitulino
SQMP
949 82a56f0d Luiz Capitulino
qmp_capabilities
950 82a56f0d Luiz Capitulino
----------------
951 82a56f0d Luiz Capitulino
952 82a56f0d Luiz Capitulino
Enable QMP capabilities.
953 82a56f0d Luiz Capitulino
954 82a56f0d Luiz Capitulino
Arguments: None.
955 82a56f0d Luiz Capitulino
956 82a56f0d Luiz Capitulino
Example:
957 82a56f0d Luiz Capitulino
958 82a56f0d Luiz Capitulino
-> { "execute": "qmp_capabilities" }
959 82a56f0d Luiz Capitulino
<- { "return": {} }
960 82a56f0d Luiz Capitulino
961 82a56f0d Luiz Capitulino
Note: This command must be issued before issuing any other command.
962 82a56f0d Luiz Capitulino
963 0268d97c Luiz Capitulino
EQMP
964 0268d97c Luiz Capitulino
965 0268d97c Luiz Capitulino
    {
966 0268d97c Luiz Capitulino
        .name       = "human-monitor-command",
967 0268d97c Luiz Capitulino
        .args_type  = "command-line:s,cpu-index:i?",
968 0268d97c Luiz Capitulino
        .params     = "",
969 0268d97c Luiz Capitulino
        .help       = "",
970 0268d97c Luiz Capitulino
        .user_print = monitor_user_noop,
971 0268d97c Luiz Capitulino
        .mhandler.cmd_new = do_hmp_passthrough,
972 0268d97c Luiz Capitulino
    },
973 0268d97c Luiz Capitulino
974 0268d97c Luiz Capitulino
SQMP
975 0268d97c Luiz Capitulino
human-monitor-command
976 0268d97c Luiz Capitulino
---------------------
977 0268d97c Luiz Capitulino
978 0268d97c Luiz Capitulino
Execute a Human Monitor command.
979 0268d97c Luiz Capitulino
980 0268d97c Luiz Capitulino
Arguments: 
981 0268d97c Luiz Capitulino
982 0268d97c Luiz Capitulino
- command-line: the command name and its arguments, just like the
983 0268d97c Luiz Capitulino
                Human Monitor's shell (json-string)
984 0268d97c Luiz Capitulino
- cpu-index: select the CPU number to be used by commands which access CPU
985 0268d97c Luiz Capitulino
             data, like 'info registers'. The Monitor selects CPU 0 if this
986 0268d97c Luiz Capitulino
             argument is not provided (json-int, optional)
987 0268d97c Luiz Capitulino
988 0268d97c Luiz Capitulino
Example:
989 0268d97c Luiz Capitulino
990 0268d97c Luiz Capitulino
-> { "execute": "human-monitor-command", "arguments": { "command-line": "info kvm" } }
991 0268d97c Luiz Capitulino
<- { "return": "kvm support: enabled\r\n" }
992 0268d97c Luiz Capitulino
993 0268d97c Luiz Capitulino
Notes:
994 0268d97c Luiz Capitulino
995 0268d97c Luiz Capitulino
(1) The Human Monitor is NOT an stable interface, this means that command
996 0268d97c Luiz Capitulino
    names, arguments and responses can change or be removed at ANY time.
997 0268d97c Luiz Capitulino
    Applications that rely on long term stability guarantees should NOT
998 0268d97c Luiz Capitulino
    use this command
999 0268d97c Luiz Capitulino
1000 0268d97c Luiz Capitulino
(2) Limitations:
1001 0268d97c Luiz Capitulino
1002 0268d97c Luiz Capitulino
    o This command is stateless, this means that commands that depend
1003 0268d97c Luiz Capitulino
      on state information (such as getfd) might not work
1004 0268d97c Luiz Capitulino
1005 0268d97c Luiz Capitulino
    o Commands that prompt the user for data (eg. 'cont' when the block
1006 0268d97c Luiz Capitulino
      device is encrypted) don't currently work
1007 0268d97c Luiz Capitulino
1008 82a56f0d Luiz Capitulino
3. Query Commands
1009 82a56f0d Luiz Capitulino
=================
1010 82a56f0d Luiz Capitulino
1011 82a56f0d Luiz Capitulino
HXCOMM Each query command below is inside a SQMP/EQMP section, do NOT change
1012 82a56f0d Luiz Capitulino
HXCOMM this! We will possibly move query commands definitions inside those
1013 82a56f0d Luiz Capitulino
HXCOMM sections, just like regular commands.
1014 82a56f0d Luiz Capitulino
1015 82a56f0d Luiz Capitulino
EQMP
1016 82a56f0d Luiz Capitulino
1017 82a56f0d Luiz Capitulino
SQMP
1018 82a56f0d Luiz Capitulino
query-version
1019 82a56f0d Luiz Capitulino
-------------
1020 82a56f0d Luiz Capitulino
1021 82a56f0d Luiz Capitulino
Show QEMU version.
1022 82a56f0d Luiz Capitulino
1023 82a56f0d Luiz Capitulino
Return a json-object with the following information:
1024 82a56f0d Luiz Capitulino
1025 82a56f0d Luiz Capitulino
- "qemu": A json-object containing three integer values:
1026 82a56f0d Luiz Capitulino
    - "major": QEMU's major version (json-int)
1027 82a56f0d Luiz Capitulino
    - "minor": QEMU's minor version (json-int)
1028 82a56f0d Luiz Capitulino
    - "micro": QEMU's micro version (json-int)
1029 82a56f0d Luiz Capitulino
- "package": package's version (json-string)
1030 82a56f0d Luiz Capitulino
1031 82a56f0d Luiz Capitulino
Example:
1032 82a56f0d Luiz Capitulino
1033 82a56f0d Luiz Capitulino
-> { "execute": "query-version" }
1034 82a56f0d Luiz Capitulino
<- {
1035 82a56f0d Luiz Capitulino
      "return":{
1036 82a56f0d Luiz Capitulino
         "qemu":{
1037 82a56f0d Luiz Capitulino
            "major":0,
1038 82a56f0d Luiz Capitulino
            "minor":11,
1039 82a56f0d Luiz Capitulino
            "micro":5
1040 82a56f0d Luiz Capitulino
         },
1041 82a56f0d Luiz Capitulino
         "package":""
1042 82a56f0d Luiz Capitulino
      }
1043 82a56f0d Luiz Capitulino
   }
1044 82a56f0d Luiz Capitulino
1045 82a56f0d Luiz Capitulino
EQMP
1046 82a56f0d Luiz Capitulino
1047 b9c15f16 Luiz Capitulino
    {
1048 b9c15f16 Luiz Capitulino
        .name       = "query-version",
1049 b9c15f16 Luiz Capitulino
        .args_type  = "",
1050 b9c15f16 Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_query_version,
1051 b9c15f16 Luiz Capitulino
    },
1052 b9c15f16 Luiz Capitulino
1053 82a56f0d Luiz Capitulino
SQMP
1054 82a56f0d Luiz Capitulino
query-commands
1055 82a56f0d Luiz Capitulino
--------------
1056 82a56f0d Luiz Capitulino
1057 82a56f0d Luiz Capitulino
List QMP available commands.
1058 82a56f0d Luiz Capitulino
1059 82a56f0d Luiz Capitulino
Each command is represented by a json-object, the returned value is a json-array
1060 82a56f0d Luiz Capitulino
of all commands.
1061 82a56f0d Luiz Capitulino
1062 82a56f0d Luiz Capitulino
Each json-object contain:
1063 82a56f0d Luiz Capitulino
1064 82a56f0d Luiz Capitulino
- "name": command's name (json-string)
1065 82a56f0d Luiz Capitulino
1066 82a56f0d Luiz Capitulino
Example:
1067 82a56f0d Luiz Capitulino
1068 82a56f0d Luiz Capitulino
-> { "execute": "query-commands" }
1069 82a56f0d Luiz Capitulino
<- {
1070 82a56f0d Luiz Capitulino
      "return":[
1071 82a56f0d Luiz Capitulino
         {
1072 82a56f0d Luiz Capitulino
            "name":"query-balloon"
1073 82a56f0d Luiz Capitulino
         },
1074 82a56f0d Luiz Capitulino
         {
1075 82a56f0d Luiz Capitulino
            "name":"system_powerdown"
1076 82a56f0d Luiz Capitulino
         }
1077 82a56f0d Luiz Capitulino
      ]
1078 82a56f0d Luiz Capitulino
   }
1079 82a56f0d Luiz Capitulino
1080 82a56f0d Luiz Capitulino
Note: This example has been shortened as the real response is too long.
1081 82a56f0d Luiz Capitulino
1082 82a56f0d Luiz Capitulino
EQMP
1083 82a56f0d Luiz Capitulino
1084 aa9b79bc Luiz Capitulino
    {
1085 aa9b79bc Luiz Capitulino
        .name       = "query-commands",
1086 aa9b79bc Luiz Capitulino
        .args_type  = "",
1087 aa9b79bc Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_query_commands,
1088 aa9b79bc Luiz Capitulino
    },
1089 aa9b79bc Luiz Capitulino
1090 82a56f0d Luiz Capitulino
SQMP
1091 82a56f0d Luiz Capitulino
query-chardev
1092 82a56f0d Luiz Capitulino
-------------
1093 82a56f0d Luiz Capitulino
1094 82a56f0d Luiz Capitulino
Each device is represented by a json-object. The returned value is a json-array
1095 82a56f0d Luiz Capitulino
of all devices.
1096 82a56f0d Luiz Capitulino
1097 82a56f0d Luiz Capitulino
Each json-object contain the following:
1098 82a56f0d Luiz Capitulino
1099 82a56f0d Luiz Capitulino
- "label": device's label (json-string)
1100 82a56f0d Luiz Capitulino
- "filename": device's file (json-string)
1101 82a56f0d Luiz Capitulino
1102 82a56f0d Luiz Capitulino
Example:
1103 82a56f0d Luiz Capitulino
1104 82a56f0d Luiz Capitulino
-> { "execute": "query-chardev" }
1105 82a56f0d Luiz Capitulino
<- {
1106 82a56f0d Luiz Capitulino
      "return":[
1107 82a56f0d Luiz Capitulino
         {
1108 82a56f0d Luiz Capitulino
            "label":"monitor",
1109 82a56f0d Luiz Capitulino
            "filename":"stdio"
1110 82a56f0d Luiz Capitulino
         },
1111 82a56f0d Luiz Capitulino
         {
1112 82a56f0d Luiz Capitulino
            "label":"serial0",
1113 82a56f0d Luiz Capitulino
            "filename":"vc"
1114 82a56f0d Luiz Capitulino
         }
1115 82a56f0d Luiz Capitulino
      ]
1116 82a56f0d Luiz Capitulino
   }
1117 82a56f0d Luiz Capitulino
1118 82a56f0d Luiz Capitulino
EQMP
1119 82a56f0d Luiz Capitulino
1120 c5a415a0 Luiz Capitulino
    {
1121 c5a415a0 Luiz Capitulino
        .name       = "query-chardev",
1122 c5a415a0 Luiz Capitulino
        .args_type  = "",
1123 c5a415a0 Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_query_chardev,
1124 c5a415a0 Luiz Capitulino
    },
1125 c5a415a0 Luiz Capitulino
1126 82a56f0d Luiz Capitulino
SQMP
1127 82a56f0d Luiz Capitulino
query-block
1128 82a56f0d Luiz Capitulino
-----------
1129 82a56f0d Luiz Capitulino
1130 82a56f0d Luiz Capitulino
Show the block devices.
1131 82a56f0d Luiz Capitulino
1132 82a56f0d Luiz Capitulino
Each block device information is stored in a json-object and the returned value
1133 82a56f0d Luiz Capitulino
is a json-array of all devices.
1134 82a56f0d Luiz Capitulino
1135 82a56f0d Luiz Capitulino
Each json-object contain the following:
1136 82a56f0d Luiz Capitulino
1137 82a56f0d Luiz Capitulino
- "device": device name (json-string)
1138 82a56f0d Luiz Capitulino
- "type": device type (json-string)
1139 d8aeeb31 Markus Armbruster
         - deprecated, retained for backward compatibility
1140 d8aeeb31 Markus Armbruster
         - Possible values: "unknown"
1141 82a56f0d Luiz Capitulino
- "removable": true if the device is removable, false otherwise (json-bool)
1142 82a56f0d Luiz Capitulino
- "locked": true if the device is locked, false otherwise (json-bool)
1143 e4def80b Markus Armbruster
- "tray-open": only present if removable, true if the device has a tray,
1144 e4def80b Markus Armbruster
               and it is open (json-bool)
1145 82a56f0d Luiz Capitulino
- "inserted": only present if the device is inserted, it is a json-object
1146 82a56f0d Luiz Capitulino
   containing the following:
1147 82a56f0d Luiz Capitulino
         - "file": device file name (json-string)
1148 82a56f0d Luiz Capitulino
         - "ro": true if read-only, false otherwise (json-bool)
1149 82a56f0d Luiz Capitulino
         - "drv": driver format name (json-string)
1150 82a56f0d Luiz Capitulino
             - Possible values: "blkdebug", "bochs", "cloop", "cow", "dmg",
1151 82a56f0d Luiz Capitulino
                                "file", "file", "ftp", "ftps", "host_cdrom",
1152 82a56f0d Luiz Capitulino
                                "host_device", "host_floppy", "http", "https",
1153 82a56f0d Luiz Capitulino
                                "nbd", "parallels", "qcow", "qcow2", "raw",
1154 82a56f0d Luiz Capitulino
                                "tftp", "vdi", "vmdk", "vpc", "vvfat"
1155 82a56f0d Luiz Capitulino
         - "backing_file": backing file name (json-string, optional)
1156 82a56f0d Luiz Capitulino
         - "encrypted": true if encrypted, false otherwise (json-bool)
1157 f04ef601 Luiz Capitulino
- "io-status": I/O operation status, only present if the device supports it
1158 f04ef601 Luiz Capitulino
               and the VM is configured to stop on errors. It's always reset
1159 f04ef601 Luiz Capitulino
               to "ok" when the "cont" command is issued (json_string, optional)
1160 f04ef601 Luiz Capitulino
             - Possible values: "ok", "failed", "nospace"
1161 82a56f0d Luiz Capitulino
1162 82a56f0d Luiz Capitulino
Example:
1163 82a56f0d Luiz Capitulino
1164 82a56f0d Luiz Capitulino
-> { "execute": "query-block" }
1165 82a56f0d Luiz Capitulino
<- {
1166 82a56f0d Luiz Capitulino
      "return":[
1167 82a56f0d Luiz Capitulino
         {
1168 f04ef601 Luiz Capitulino
            "io-status": "ok",
1169 82a56f0d Luiz Capitulino
            "device":"ide0-hd0",
1170 82a56f0d Luiz Capitulino
            "locked":false,
1171 82a56f0d Luiz Capitulino
            "removable":false,
1172 82a56f0d Luiz Capitulino
            "inserted":{
1173 82a56f0d Luiz Capitulino
               "ro":false,
1174 82a56f0d Luiz Capitulino
               "drv":"qcow2",
1175 82a56f0d Luiz Capitulino
               "encrypted":false,
1176 82a56f0d Luiz Capitulino
               "file":"disks/test.img"
1177 82a56f0d Luiz Capitulino
            },
1178 d8aeeb31 Markus Armbruster
            "type":"unknown"
1179 82a56f0d Luiz Capitulino
         },
1180 82a56f0d Luiz Capitulino
         {
1181 f04ef601 Luiz Capitulino
            "io-status": "ok",
1182 82a56f0d Luiz Capitulino
            "device":"ide1-cd0",
1183 82a56f0d Luiz Capitulino
            "locked":false,
1184 82a56f0d Luiz Capitulino
            "removable":true,
1185 d8aeeb31 Markus Armbruster
            "type":"unknown"
1186 82a56f0d Luiz Capitulino
         },
1187 82a56f0d Luiz Capitulino
         {
1188 82a56f0d Luiz Capitulino
            "device":"floppy0",
1189 82a56f0d Luiz Capitulino
            "locked":false,
1190 82a56f0d Luiz Capitulino
            "removable":true,
1191 d8aeeb31 Markus Armbruster
            "type":"unknown"
1192 82a56f0d Luiz Capitulino
         },
1193 82a56f0d Luiz Capitulino
         {
1194 82a56f0d Luiz Capitulino
            "device":"sd0",
1195 82a56f0d Luiz Capitulino
            "locked":false,
1196 82a56f0d Luiz Capitulino
            "removable":true,
1197 d8aeeb31 Markus Armbruster
            "type":"unknown"
1198 82a56f0d Luiz Capitulino
         }
1199 82a56f0d Luiz Capitulino
      ]
1200 82a56f0d Luiz Capitulino
   }
1201 82a56f0d Luiz Capitulino
1202 82a56f0d Luiz Capitulino
EQMP
1203 82a56f0d Luiz Capitulino
1204 82a56f0d Luiz Capitulino
SQMP
1205 82a56f0d Luiz Capitulino
query-blockstats
1206 82a56f0d Luiz Capitulino
----------------
1207 82a56f0d Luiz Capitulino
1208 82a56f0d Luiz Capitulino
Show block device statistics.
1209 82a56f0d Luiz Capitulino
1210 82a56f0d Luiz Capitulino
Each device statistic information is stored in a json-object and the returned
1211 82a56f0d Luiz Capitulino
value is a json-array of all devices.
1212 82a56f0d Luiz Capitulino
1213 82a56f0d Luiz Capitulino
Each json-object contain the following:
1214 82a56f0d Luiz Capitulino
1215 82a56f0d Luiz Capitulino
- "device": device name (json-string)
1216 82a56f0d Luiz Capitulino
- "stats": A json-object with the statistics information, it contains:
1217 82a56f0d Luiz Capitulino
    - "rd_bytes": bytes read (json-int)
1218 82a56f0d Luiz Capitulino
    - "wr_bytes": bytes written (json-int)
1219 82a56f0d Luiz Capitulino
    - "rd_operations": read operations (json-int)
1220 82a56f0d Luiz Capitulino
    - "wr_operations": write operations (json-int)
1221 e8045d67 Christoph Hellwig
    - "flush_operations": cache flush operations (json-int)
1222 c488c7f6 Christoph Hellwig
    - "wr_total_time_ns": total time spend on writes in nano-seconds (json-int)
1223 c488c7f6 Christoph Hellwig
    - "rd_total_time_ns": total time spend on reads in nano-seconds (json-int)
1224 c488c7f6 Christoph Hellwig
    - "flush_total_time_ns": total time spend on cache flushes in nano-seconds (json-int)
1225 82a56f0d Luiz Capitulino
    - "wr_highest_offset": Highest offset of a sector written since the
1226 82a56f0d Luiz Capitulino
                           BlockDriverState has been opened (json-int)
1227 82a56f0d Luiz Capitulino
- "parent": Contains recursively the statistics of the underlying
1228 82a56f0d Luiz Capitulino
            protocol (e.g. the host file for a qcow2 image). If there is
1229 82a56f0d Luiz Capitulino
            no underlying protocol, this field is omitted
1230 82a56f0d Luiz Capitulino
            (json-object, optional)
1231 82a56f0d Luiz Capitulino
1232 82a56f0d Luiz Capitulino
Example:
1233 82a56f0d Luiz Capitulino
1234 82a56f0d Luiz Capitulino
-> { "execute": "query-blockstats" }
1235 82a56f0d Luiz Capitulino
<- {
1236 82a56f0d Luiz Capitulino
      "return":[
1237 82a56f0d Luiz Capitulino
         {
1238 82a56f0d Luiz Capitulino
            "device":"ide0-hd0",
1239 82a56f0d Luiz Capitulino
            "parent":{
1240 82a56f0d Luiz Capitulino
               "stats":{
1241 82a56f0d Luiz Capitulino
                  "wr_highest_offset":3686448128,
1242 82a56f0d Luiz Capitulino
                  "wr_bytes":9786368,
1243 82a56f0d Luiz Capitulino
                  "wr_operations":751,
1244 82a56f0d Luiz Capitulino
                  "rd_bytes":122567168,
1245 82a56f0d Luiz Capitulino
                  "rd_operations":36772
1246 c488c7f6 Christoph Hellwig
                  "wr_total_times_ns":313253456
1247 c488c7f6 Christoph Hellwig
                  "rd_total_times_ns":3465673657
1248 c488c7f6 Christoph Hellwig
                  "flush_total_times_ns":49653
1249 e8045d67 Christoph Hellwig
                  "flush_operations":61,
1250 82a56f0d Luiz Capitulino
               }
1251 82a56f0d Luiz Capitulino
            },
1252 82a56f0d Luiz Capitulino
            "stats":{
1253 82a56f0d Luiz Capitulino
               "wr_highest_offset":2821110784,
1254 82a56f0d Luiz Capitulino
               "wr_bytes":9786368,
1255 82a56f0d Luiz Capitulino
               "wr_operations":692,
1256 82a56f0d Luiz Capitulino
               "rd_bytes":122739200,
1257 82a56f0d Luiz Capitulino
               "rd_operations":36604
1258 e8045d67 Christoph Hellwig
               "flush_operations":51,
1259 c488c7f6 Christoph Hellwig
               "wr_total_times_ns":313253456
1260 c488c7f6 Christoph Hellwig
               "rd_total_times_ns":3465673657
1261 c488c7f6 Christoph Hellwig
               "flush_total_times_ns":49653
1262 82a56f0d Luiz Capitulino
            }
1263 82a56f0d Luiz Capitulino
         },
1264 82a56f0d Luiz Capitulino
         {
1265 82a56f0d Luiz Capitulino
            "device":"ide1-cd0",
1266 82a56f0d Luiz Capitulino
            "stats":{
1267 82a56f0d Luiz Capitulino
               "wr_highest_offset":0,
1268 82a56f0d Luiz Capitulino
               "wr_bytes":0,
1269 82a56f0d Luiz Capitulino
               "wr_operations":0,
1270 82a56f0d Luiz Capitulino
               "rd_bytes":0,
1271 82a56f0d Luiz Capitulino
               "rd_operations":0
1272 e8045d67 Christoph Hellwig
               "flush_operations":0,
1273 c488c7f6 Christoph Hellwig
               "wr_total_times_ns":0
1274 c488c7f6 Christoph Hellwig
               "rd_total_times_ns":0
1275 c488c7f6 Christoph Hellwig
               "flush_total_times_ns":0
1276 82a56f0d Luiz Capitulino
            }
1277 82a56f0d Luiz Capitulino
         },
1278 82a56f0d Luiz Capitulino
         {
1279 82a56f0d Luiz Capitulino
            "device":"floppy0",
1280 82a56f0d Luiz Capitulino
            "stats":{
1281 82a56f0d Luiz Capitulino
               "wr_highest_offset":0,
1282 82a56f0d Luiz Capitulino
               "wr_bytes":0,
1283 82a56f0d Luiz Capitulino
               "wr_operations":0,
1284 82a56f0d Luiz Capitulino
               "rd_bytes":0,
1285 82a56f0d Luiz Capitulino
               "rd_operations":0
1286 e8045d67 Christoph Hellwig
               "flush_operations":0,
1287 c488c7f6 Christoph Hellwig
               "wr_total_times_ns":0
1288 c488c7f6 Christoph Hellwig
               "rd_total_times_ns":0
1289 c488c7f6 Christoph Hellwig
               "flush_total_times_ns":0
1290 82a56f0d Luiz Capitulino
            }
1291 82a56f0d Luiz Capitulino
         },
1292 82a56f0d Luiz Capitulino
         {
1293 82a56f0d Luiz Capitulino
            "device":"sd0",
1294 82a56f0d Luiz Capitulino
            "stats":{
1295 82a56f0d Luiz Capitulino
               "wr_highest_offset":0,
1296 82a56f0d Luiz Capitulino
               "wr_bytes":0,
1297 82a56f0d Luiz Capitulino
               "wr_operations":0,
1298 82a56f0d Luiz Capitulino
               "rd_bytes":0,
1299 82a56f0d Luiz Capitulino
               "rd_operations":0
1300 e8045d67 Christoph Hellwig
               "flush_operations":0,
1301 c488c7f6 Christoph Hellwig
               "wr_total_times_ns":0
1302 c488c7f6 Christoph Hellwig
               "rd_total_times_ns":0
1303 c488c7f6 Christoph Hellwig
               "flush_total_times_ns":0
1304 82a56f0d Luiz Capitulino
            }
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 82a56f0d Luiz Capitulino
SQMP
1312 82a56f0d Luiz Capitulino
query-cpus
1313 82a56f0d Luiz Capitulino
----------
1314 82a56f0d Luiz Capitulino
1315 82a56f0d Luiz Capitulino
Show CPU information.
1316 82a56f0d Luiz Capitulino
1317 82a56f0d Luiz Capitulino
Return a json-array. Each CPU is represented by a json-object, which contains:
1318 82a56f0d Luiz Capitulino
1319 82a56f0d Luiz Capitulino
- "CPU": CPU index (json-int)
1320 82a56f0d Luiz Capitulino
- "current": true if this is the current CPU, false otherwise (json-bool)
1321 82a56f0d Luiz Capitulino
- "halted": true if the cpu is halted, false otherwise (json-bool)
1322 82a56f0d Luiz Capitulino
- Current program counter. The key's name depends on the architecture:
1323 82a56f0d Luiz Capitulino
     "pc": i386/x86_64 (json-int)
1324 82a56f0d Luiz Capitulino
     "nip": PPC (json-int)
1325 82a56f0d Luiz Capitulino
     "pc" and "npc": sparc (json-int)
1326 82a56f0d Luiz Capitulino
     "PC": mips (json-int)
1327 dc7a09cf Jan Kiszka
- "thread_id": ID of the underlying host thread (json-int)
1328 82a56f0d Luiz Capitulino
1329 82a56f0d Luiz Capitulino
Example:
1330 82a56f0d Luiz Capitulino
1331 82a56f0d Luiz Capitulino
-> { "execute": "query-cpus" }
1332 82a56f0d Luiz Capitulino
<- {
1333 82a56f0d Luiz Capitulino
      "return":[
1334 82a56f0d Luiz Capitulino
         {
1335 82a56f0d Luiz Capitulino
            "CPU":0,
1336 82a56f0d Luiz Capitulino
            "current":true,
1337 82a56f0d Luiz Capitulino
            "halted":false,
1338 82a56f0d Luiz Capitulino
            "pc":3227107138
1339 dc7a09cf Jan Kiszka
            "thread_id":3134
1340 82a56f0d Luiz Capitulino
         },
1341 82a56f0d Luiz Capitulino
         {
1342 82a56f0d Luiz Capitulino
            "CPU":1,
1343 82a56f0d Luiz Capitulino
            "current":false,
1344 82a56f0d Luiz Capitulino
            "halted":true,
1345 82a56f0d Luiz Capitulino
            "pc":7108165
1346 dc7a09cf Jan Kiszka
            "thread_id":3135
1347 82a56f0d Luiz Capitulino
         }
1348 82a56f0d Luiz Capitulino
      ]
1349 82a56f0d Luiz Capitulino
   }
1350 82a56f0d Luiz Capitulino
1351 82a56f0d Luiz Capitulino
EQMP
1352 82a56f0d Luiz Capitulino
1353 82a56f0d Luiz Capitulino
SQMP
1354 82a56f0d Luiz Capitulino
query-pci
1355 82a56f0d Luiz Capitulino
---------
1356 82a56f0d Luiz Capitulino
1357 82a56f0d Luiz Capitulino
PCI buses and devices information.
1358 82a56f0d Luiz Capitulino
1359 82a56f0d Luiz Capitulino
The returned value is a json-array of all buses. Each bus is represented by
1360 82a56f0d Luiz Capitulino
a json-object, which has a key with a json-array of all PCI devices attached
1361 82a56f0d Luiz Capitulino
to it. Each device is represented by a json-object.
1362 82a56f0d Luiz Capitulino
1363 82a56f0d Luiz Capitulino
The bus json-object contains the following:
1364 82a56f0d Luiz Capitulino
1365 82a56f0d Luiz Capitulino
- "bus": bus number (json-int)
1366 82a56f0d Luiz Capitulino
- "devices": a json-array of json-objects, each json-object represents a
1367 82a56f0d Luiz Capitulino
             PCI device
1368 82a56f0d Luiz Capitulino
1369 82a56f0d Luiz Capitulino
The PCI device json-object contains the following:
1370 82a56f0d Luiz Capitulino
1371 82a56f0d Luiz Capitulino
- "bus": identical to the parent's bus number (json-int)
1372 82a56f0d Luiz Capitulino
- "slot": slot number (json-int)
1373 82a56f0d Luiz Capitulino
- "function": function number (json-int)
1374 82a56f0d Luiz Capitulino
- "class_info": a json-object containing:
1375 82a56f0d Luiz Capitulino
     - "desc": device class description (json-string, optional)
1376 82a56f0d Luiz Capitulino
     - "class": device class number (json-int)
1377 82a56f0d Luiz Capitulino
- "id": a json-object containing:
1378 82a56f0d Luiz Capitulino
     - "device": device ID (json-int)
1379 82a56f0d Luiz Capitulino
     - "vendor": vendor ID (json-int)
1380 82a56f0d Luiz Capitulino
- "irq": device's IRQ if assigned (json-int, optional)
1381 82a56f0d Luiz Capitulino
- "qdev_id": qdev id string (json-string)
1382 82a56f0d Luiz Capitulino
- "pci_bridge": It's a json-object, only present if this device is a
1383 82a56f0d Luiz Capitulino
                PCI bridge, contains:
1384 82a56f0d Luiz Capitulino
     - "bus": bus number (json-int)
1385 82a56f0d Luiz Capitulino
     - "secondary": secondary bus number (json-int)
1386 82a56f0d Luiz Capitulino
     - "subordinate": subordinate bus number (json-int)
1387 82a56f0d Luiz Capitulino
     - "io_range": I/O memory range information, a json-object with the
1388 82a56f0d Luiz Capitulino
                   following members:
1389 82a56f0d Luiz Capitulino
                 - "base": base address, in bytes (json-int)
1390 82a56f0d Luiz Capitulino
                 - "limit": limit address, in bytes (json-int)
1391 82a56f0d Luiz Capitulino
     - "memory_range": memory range information, a json-object with the
1392 82a56f0d Luiz Capitulino
                       following members:
1393 82a56f0d Luiz Capitulino
                 - "base": base address, in bytes (json-int)
1394 82a56f0d Luiz Capitulino
                 - "limit": limit address, in bytes (json-int)
1395 82a56f0d Luiz Capitulino
     - "prefetchable_range": Prefetchable memory range information, a
1396 82a56f0d Luiz Capitulino
                             json-object with the following members:
1397 82a56f0d Luiz Capitulino
                 - "base": base address, in bytes (json-int)
1398 82a56f0d Luiz Capitulino
                 - "limit": limit address, in bytes (json-int)
1399 82a56f0d Luiz Capitulino
     - "devices": a json-array of PCI devices if there's any attached, each
1400 82a56f0d Luiz Capitulino
                  each element is represented by a json-object, which contains
1401 82a56f0d Luiz Capitulino
                  the same members of the 'PCI device json-object' described
1402 82a56f0d Luiz Capitulino
                  above (optional)
1403 82a56f0d Luiz Capitulino
- "regions": a json-array of json-objects, each json-object represents a
1404 82a56f0d Luiz Capitulino
             memory region of this device
1405 82a56f0d Luiz Capitulino
1406 82a56f0d Luiz Capitulino
The memory range json-object contains the following:
1407 82a56f0d Luiz Capitulino
1408 82a56f0d Luiz Capitulino
- "base": base memory address (json-int)
1409 82a56f0d Luiz Capitulino
- "limit": limit value (json-int)
1410 82a56f0d Luiz Capitulino
1411 82a56f0d Luiz Capitulino
The region json-object can be an I/O region or a memory region, an I/O region
1412 82a56f0d Luiz Capitulino
json-object contains the following:
1413 82a56f0d Luiz Capitulino
1414 82a56f0d Luiz Capitulino
- "type": "io" (json-string, fixed)
1415 82a56f0d Luiz Capitulino
- "bar": BAR number (json-int)
1416 82a56f0d Luiz Capitulino
- "address": memory address (json-int)
1417 82a56f0d Luiz Capitulino
- "size": memory size (json-int)
1418 82a56f0d Luiz Capitulino
1419 82a56f0d Luiz Capitulino
A memory region json-object contains the following:
1420 82a56f0d Luiz Capitulino
1421 82a56f0d Luiz Capitulino
- "type": "memory" (json-string, fixed)
1422 82a56f0d Luiz Capitulino
- "bar": BAR number (json-int)
1423 82a56f0d Luiz Capitulino
- "address": memory address (json-int)
1424 82a56f0d Luiz Capitulino
- "size": memory size (json-int)
1425 82a56f0d Luiz Capitulino
- "mem_type_64": true or false (json-bool)
1426 82a56f0d Luiz Capitulino
- "prefetch": true or false (json-bool)
1427 82a56f0d Luiz Capitulino
1428 82a56f0d Luiz Capitulino
Example:
1429 82a56f0d Luiz Capitulino
1430 82a56f0d Luiz Capitulino
-> { "execute": "query-pci" }
1431 82a56f0d Luiz Capitulino
<- {
1432 82a56f0d Luiz Capitulino
      "return":[
1433 82a56f0d Luiz Capitulino
         {
1434 82a56f0d Luiz Capitulino
            "bus":0,
1435 82a56f0d Luiz Capitulino
            "devices":[
1436 82a56f0d Luiz Capitulino
               {
1437 82a56f0d Luiz Capitulino
                  "bus":0,
1438 82a56f0d Luiz Capitulino
                  "qdev_id":"",
1439 82a56f0d Luiz Capitulino
                  "slot":0,
1440 82a56f0d Luiz Capitulino
                  "class_info":{
1441 82a56f0d Luiz Capitulino
                     "class":1536,
1442 82a56f0d Luiz Capitulino
                     "desc":"Host bridge"
1443 82a56f0d Luiz Capitulino
                  },
1444 82a56f0d Luiz Capitulino
                  "id":{
1445 82a56f0d Luiz Capitulino
                     "device":32902,
1446 82a56f0d Luiz Capitulino
                     "vendor":4663
1447 82a56f0d Luiz Capitulino
                  },
1448 82a56f0d Luiz Capitulino
                  "function":0,
1449 82a56f0d Luiz Capitulino
                  "regions":[
1450 82a56f0d Luiz Capitulino
   
1451 82a56f0d Luiz Capitulino
                  ]
1452 82a56f0d Luiz Capitulino
               },
1453 82a56f0d Luiz Capitulino
               {
1454 82a56f0d Luiz Capitulino
                  "bus":0,
1455 82a56f0d Luiz Capitulino
                  "qdev_id":"",
1456 82a56f0d Luiz Capitulino
                  "slot":1,
1457 82a56f0d Luiz Capitulino
                  "class_info":{
1458 82a56f0d Luiz Capitulino
                     "class":1537,
1459 82a56f0d Luiz Capitulino
                     "desc":"ISA bridge"
1460 82a56f0d Luiz Capitulino
                  },
1461 82a56f0d Luiz Capitulino
                  "id":{
1462 82a56f0d Luiz Capitulino
                     "device":32902,
1463 82a56f0d Luiz Capitulino
                     "vendor":28672
1464 82a56f0d Luiz Capitulino
                  },
1465 82a56f0d Luiz Capitulino
                  "function":0,
1466 82a56f0d Luiz Capitulino
                  "regions":[
1467 82a56f0d Luiz Capitulino
   
1468 82a56f0d Luiz Capitulino
                  ]
1469 82a56f0d Luiz Capitulino
               },
1470 82a56f0d Luiz Capitulino
               {
1471 82a56f0d Luiz Capitulino
                  "bus":0,
1472 82a56f0d Luiz Capitulino
                  "qdev_id":"",
1473 82a56f0d Luiz Capitulino
                  "slot":1,
1474 82a56f0d Luiz Capitulino
                  "class_info":{
1475 82a56f0d Luiz Capitulino
                     "class":257,
1476 82a56f0d Luiz Capitulino
                     "desc":"IDE controller"
1477 82a56f0d Luiz Capitulino
                  },
1478 82a56f0d Luiz Capitulino
                  "id":{
1479 82a56f0d Luiz Capitulino
                     "device":32902,
1480 82a56f0d Luiz Capitulino
                     "vendor":28688
1481 82a56f0d Luiz Capitulino
                  },
1482 82a56f0d Luiz Capitulino
                  "function":1,
1483 82a56f0d Luiz Capitulino
                  "regions":[
1484 82a56f0d Luiz Capitulino
                     {
1485 82a56f0d Luiz Capitulino
                        "bar":4,
1486 82a56f0d Luiz Capitulino
                        "size":16,
1487 82a56f0d Luiz Capitulino
                        "address":49152,
1488 82a56f0d Luiz Capitulino
                        "type":"io"
1489 82a56f0d Luiz Capitulino
                     }
1490 82a56f0d Luiz Capitulino
                  ]
1491 82a56f0d Luiz Capitulino
               },
1492 82a56f0d Luiz Capitulino
               {
1493 82a56f0d Luiz Capitulino
                  "bus":0,
1494 82a56f0d Luiz Capitulino
                  "qdev_id":"",
1495 82a56f0d Luiz Capitulino
                  "slot":2,
1496 82a56f0d Luiz Capitulino
                  "class_info":{
1497 82a56f0d Luiz Capitulino
                     "class":768,
1498 82a56f0d Luiz Capitulino
                     "desc":"VGA controller"
1499 82a56f0d Luiz Capitulino
                  },
1500 82a56f0d Luiz Capitulino
                  "id":{
1501 82a56f0d Luiz Capitulino
                     "device":4115,
1502 82a56f0d Luiz Capitulino
                     "vendor":184
1503 82a56f0d Luiz Capitulino
                  },
1504 82a56f0d Luiz Capitulino
                  "function":0,
1505 82a56f0d Luiz Capitulino
                  "regions":[
1506 82a56f0d Luiz Capitulino
                     {
1507 82a56f0d Luiz Capitulino
                        "prefetch":true,
1508 82a56f0d Luiz Capitulino
                        "mem_type_64":false,
1509 82a56f0d Luiz Capitulino
                        "bar":0,
1510 82a56f0d Luiz Capitulino
                        "size":33554432,
1511 82a56f0d Luiz Capitulino
                        "address":4026531840,
1512 82a56f0d Luiz Capitulino
                        "type":"memory"
1513 82a56f0d Luiz Capitulino
                     },
1514 82a56f0d Luiz Capitulino
                     {
1515 82a56f0d Luiz Capitulino
                        "prefetch":false,
1516 82a56f0d Luiz Capitulino
                        "mem_type_64":false,
1517 82a56f0d Luiz Capitulino
                        "bar":1,
1518 82a56f0d Luiz Capitulino
                        "size":4096,
1519 82a56f0d Luiz Capitulino
                        "address":4060086272,
1520 82a56f0d Luiz Capitulino
                        "type":"memory"
1521 82a56f0d Luiz Capitulino
                     },
1522 82a56f0d Luiz Capitulino
                     {
1523 82a56f0d Luiz Capitulino
                        "prefetch":false,
1524 82a56f0d Luiz Capitulino
                        "mem_type_64":false,
1525 82a56f0d Luiz Capitulino
                        "bar":6,
1526 82a56f0d Luiz Capitulino
                        "size":65536,
1527 82a56f0d Luiz Capitulino
                        "address":-1,
1528 82a56f0d Luiz Capitulino
                        "type":"memory"
1529 82a56f0d Luiz Capitulino
                     }
1530 82a56f0d Luiz Capitulino
                  ]
1531 82a56f0d Luiz Capitulino
               },
1532 82a56f0d Luiz Capitulino
               {
1533 82a56f0d Luiz Capitulino
                  "bus":0,
1534 82a56f0d Luiz Capitulino
                  "qdev_id":"",
1535 82a56f0d Luiz Capitulino
                  "irq":11,
1536 82a56f0d Luiz Capitulino
                  "slot":4,
1537 82a56f0d Luiz Capitulino
                  "class_info":{
1538 82a56f0d Luiz Capitulino
                     "class":1280,
1539 82a56f0d Luiz Capitulino
                     "desc":"RAM controller"
1540 82a56f0d Luiz Capitulino
                  },
1541 82a56f0d Luiz Capitulino
                  "id":{
1542 82a56f0d Luiz Capitulino
                     "device":6900,
1543 82a56f0d Luiz Capitulino
                     "vendor":4098
1544 82a56f0d Luiz Capitulino
                  },
1545 82a56f0d Luiz Capitulino
                  "function":0,
1546 82a56f0d Luiz Capitulino
                  "regions":[
1547 82a56f0d Luiz Capitulino
                     {
1548 82a56f0d Luiz Capitulino
                        "bar":0,
1549 82a56f0d Luiz Capitulino
                        "size":32,
1550 82a56f0d Luiz Capitulino
                        "address":49280,
1551 82a56f0d Luiz Capitulino
                        "type":"io"
1552 82a56f0d Luiz Capitulino
                     }
1553 82a56f0d Luiz Capitulino
                  ]
1554 82a56f0d Luiz Capitulino
               }
1555 82a56f0d Luiz Capitulino
            ]
1556 82a56f0d Luiz Capitulino
         }
1557 82a56f0d Luiz Capitulino
      ]
1558 82a56f0d Luiz Capitulino
   }
1559 82a56f0d Luiz Capitulino
1560 82a56f0d Luiz Capitulino
Note: This example has been shortened as the real response is too long.
1561 82a56f0d Luiz Capitulino
1562 82a56f0d Luiz Capitulino
EQMP
1563 82a56f0d Luiz Capitulino
1564 82a56f0d Luiz Capitulino
SQMP
1565 82a56f0d Luiz Capitulino
query-kvm
1566 82a56f0d Luiz Capitulino
---------
1567 82a56f0d Luiz Capitulino
1568 82a56f0d Luiz Capitulino
Show KVM information.
1569 82a56f0d Luiz Capitulino
1570 82a56f0d Luiz Capitulino
Return a json-object with the following information:
1571 82a56f0d Luiz Capitulino
1572 82a56f0d Luiz Capitulino
- "enabled": true if KVM support is enabled, false otherwise (json-bool)
1573 82a56f0d Luiz Capitulino
- "present": true if QEMU has KVM support, false otherwise (json-bool)
1574 82a56f0d Luiz Capitulino
1575 82a56f0d Luiz Capitulino
Example:
1576 82a56f0d Luiz Capitulino
1577 82a56f0d Luiz Capitulino
-> { "execute": "query-kvm" }
1578 82a56f0d Luiz Capitulino
<- { "return": { "enabled": true, "present": true } }
1579 82a56f0d Luiz Capitulino
1580 82a56f0d Luiz Capitulino
EQMP
1581 82a56f0d Luiz Capitulino
1582 292a2602 Luiz Capitulino
    {
1583 292a2602 Luiz Capitulino
        .name       = "query-kvm",
1584 292a2602 Luiz Capitulino
        .args_type  = "",
1585 292a2602 Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_query_kvm,
1586 292a2602 Luiz Capitulino
    },
1587 292a2602 Luiz Capitulino
1588 82a56f0d Luiz Capitulino
SQMP
1589 82a56f0d Luiz Capitulino
query-status
1590 82a56f0d Luiz Capitulino
------------
1591 82a56f0d Luiz Capitulino
1592 82a56f0d Luiz Capitulino
Return a json-object with the following information:
1593 82a56f0d Luiz Capitulino
1594 82a56f0d Luiz Capitulino
- "running": true if the VM is running, or false if it is paused (json-bool)
1595 82a56f0d Luiz Capitulino
- "singlestep": true if the VM is in single step mode,
1596 82a56f0d Luiz Capitulino
                false otherwise (json-bool)
1597 9e37b9dc Luiz Capitulino
- "status": one of the following values (json-string)
1598 9e37b9dc Luiz Capitulino
    "debug" - QEMU is running on a debugger
1599 9e37b9dc Luiz Capitulino
    "inmigrate" - guest is paused waiting for an incoming migration
1600 9e37b9dc Luiz Capitulino
    "internal-error" - An internal error that prevents further guest
1601 9e37b9dc Luiz Capitulino
    execution has occurred
1602 9e37b9dc Luiz Capitulino
    "io-error" - the last IOP has failed and the device is configured
1603 9e37b9dc Luiz Capitulino
    to pause on I/O errors
1604 9e37b9dc Luiz Capitulino
    "paused" - guest has been paused via the 'stop' command
1605 9e37b9dc Luiz Capitulino
    "postmigrate" - guest is paused following a successful 'migrate'
1606 9e37b9dc Luiz Capitulino
    "prelaunch" - QEMU was started with -S and guest has not started
1607 9e37b9dc Luiz Capitulino
    "finish-migrate" - guest is paused to finish the migration process
1608 9e37b9dc Luiz Capitulino
    "restore-vm" - guest is paused to restore VM state
1609 9e37b9dc Luiz Capitulino
    "running" - guest is actively running
1610 9e37b9dc Luiz Capitulino
    "save-vm" - guest is paused to save the VM state
1611 9e37b9dc Luiz Capitulino
    "shutdown" - guest is shut down (and -no-shutdown is in use)
1612 9e37b9dc Luiz Capitulino
    "watchdog" - the watchdog action is configured to pause and
1613 9e37b9dc Luiz Capitulino
     has been triggered
1614 82a56f0d Luiz Capitulino
1615 82a56f0d Luiz Capitulino
Example:
1616 82a56f0d Luiz Capitulino
1617 82a56f0d Luiz Capitulino
-> { "execute": "query-status" }
1618 9e37b9dc Luiz Capitulino
<- { "return": { "running": true, "singlestep": false, "status": "running" } }
1619 82a56f0d Luiz Capitulino
1620 82a56f0d Luiz Capitulino
EQMP
1621 1fa9a5e4 Luiz Capitulino
    
1622 1fa9a5e4 Luiz Capitulino
    {
1623 1fa9a5e4 Luiz Capitulino
        .name       = "query-status",
1624 1fa9a5e4 Luiz Capitulino
        .args_type  = "",
1625 1fa9a5e4 Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_query_status,
1626 1fa9a5e4 Luiz Capitulino
    },
1627 82a56f0d Luiz Capitulino
1628 82a56f0d Luiz Capitulino
SQMP
1629 82a56f0d Luiz Capitulino
query-mice
1630 82a56f0d Luiz Capitulino
----------
1631 82a56f0d Luiz Capitulino
1632 82a56f0d Luiz Capitulino
Show VM mice information.
1633 82a56f0d Luiz Capitulino
1634 82a56f0d Luiz Capitulino
Each mouse is represented by a json-object, the returned value is a json-array
1635 82a56f0d Luiz Capitulino
of all mice.
1636 82a56f0d Luiz Capitulino
1637 82a56f0d Luiz Capitulino
The mouse json-object contains the following:
1638 82a56f0d Luiz Capitulino
1639 82a56f0d Luiz Capitulino
- "name": mouse's name (json-string)
1640 82a56f0d Luiz Capitulino
- "index": mouse's index (json-int)
1641 82a56f0d Luiz Capitulino
- "current": true if this mouse is receiving events, false otherwise (json-bool)
1642 82a56f0d Luiz Capitulino
- "absolute": true if the mouse generates absolute input events (json-bool)
1643 82a56f0d Luiz Capitulino
1644 82a56f0d Luiz Capitulino
Example:
1645 82a56f0d Luiz Capitulino
1646 82a56f0d Luiz Capitulino
-> { "execute": "query-mice" }
1647 82a56f0d Luiz Capitulino
<- {
1648 82a56f0d Luiz Capitulino
      "return":[
1649 82a56f0d Luiz Capitulino
         {
1650 82a56f0d Luiz Capitulino
            "name":"QEMU Microsoft Mouse",
1651 82a56f0d Luiz Capitulino
            "index":0,
1652 82a56f0d Luiz Capitulino
            "current":false,
1653 82a56f0d Luiz Capitulino
            "absolute":false
1654 82a56f0d Luiz Capitulino
         },
1655 82a56f0d Luiz Capitulino
         {
1656 82a56f0d Luiz Capitulino
            "name":"QEMU PS/2 Mouse",
1657 82a56f0d Luiz Capitulino
            "index":1,
1658 82a56f0d Luiz Capitulino
            "current":true,
1659 82a56f0d Luiz Capitulino
            "absolute":true
1660 82a56f0d Luiz Capitulino
         }
1661 82a56f0d Luiz Capitulino
      ]
1662 82a56f0d Luiz Capitulino
   }
1663 82a56f0d Luiz Capitulino
1664 82a56f0d Luiz Capitulino
EQMP
1665 82a56f0d Luiz Capitulino
1666 82a56f0d Luiz Capitulino
SQMP
1667 82a56f0d Luiz Capitulino
query-vnc
1668 82a56f0d Luiz Capitulino
---------
1669 82a56f0d Luiz Capitulino
1670 82a56f0d Luiz Capitulino
Show VNC server information.
1671 82a56f0d Luiz Capitulino
1672 82a56f0d Luiz Capitulino
Return a json-object with server information. Connected clients are returned
1673 82a56f0d Luiz Capitulino
as a json-array of json-objects.
1674 82a56f0d Luiz Capitulino
1675 82a56f0d Luiz Capitulino
The main json-object contains the following:
1676 82a56f0d Luiz Capitulino
1677 82a56f0d Luiz Capitulino
- "enabled": true or false (json-bool)
1678 82a56f0d Luiz Capitulino
- "host": server's IP address (json-string)
1679 82a56f0d Luiz Capitulino
- "family": address family (json-string)
1680 82a56f0d Luiz Capitulino
         - Possible values: "ipv4", "ipv6", "unix", "unknown"
1681 82a56f0d Luiz Capitulino
- "service": server's port number (json-string)
1682 82a56f0d Luiz Capitulino
- "auth": authentication method (json-string)
1683 82a56f0d Luiz Capitulino
         - Possible values: "invalid", "none", "ra2", "ra2ne", "sasl", "tight",
1684 82a56f0d Luiz Capitulino
                            "tls", "ultra", "unknown", "vencrypt", "vencrypt",
1685 82a56f0d Luiz Capitulino
                            "vencrypt+plain", "vencrypt+tls+none",
1686 82a56f0d Luiz Capitulino
                            "vencrypt+tls+plain", "vencrypt+tls+sasl",
1687 82a56f0d Luiz Capitulino
                            "vencrypt+tls+vnc", "vencrypt+x509+none",
1688 82a56f0d Luiz Capitulino
                            "vencrypt+x509+plain", "vencrypt+x509+sasl",
1689 82a56f0d Luiz Capitulino
                            "vencrypt+x509+vnc", "vnc"
1690 82a56f0d Luiz Capitulino
- "clients": a json-array of all connected clients
1691 82a56f0d Luiz Capitulino
1692 82a56f0d Luiz Capitulino
Clients are described by a json-object, each one contain the following:
1693 82a56f0d Luiz Capitulino
1694 82a56f0d Luiz Capitulino
- "host": client's IP address (json-string)
1695 82a56f0d Luiz Capitulino
- "family": address family (json-string)
1696 82a56f0d Luiz Capitulino
         - Possible values: "ipv4", "ipv6", "unix", "unknown"
1697 82a56f0d Luiz Capitulino
- "service": client's port number (json-string)
1698 82a56f0d Luiz Capitulino
- "x509_dname": TLS dname (json-string, optional)
1699 82a56f0d Luiz Capitulino
- "sasl_username": SASL username (json-string, optional)
1700 82a56f0d Luiz Capitulino
1701 82a56f0d Luiz Capitulino
Example:
1702 82a56f0d Luiz Capitulino
1703 82a56f0d Luiz Capitulino
-> { "execute": "query-vnc" }
1704 82a56f0d Luiz Capitulino
<- {
1705 82a56f0d Luiz Capitulino
      "return":{
1706 82a56f0d Luiz Capitulino
         "enabled":true,
1707 82a56f0d Luiz Capitulino
         "host":"0.0.0.0",
1708 82a56f0d Luiz Capitulino
         "service":"50402",
1709 82a56f0d Luiz Capitulino
         "auth":"vnc",
1710 82a56f0d Luiz Capitulino
         "family":"ipv4",
1711 82a56f0d Luiz Capitulino
         "clients":[
1712 82a56f0d Luiz Capitulino
            {
1713 82a56f0d Luiz Capitulino
               "host":"127.0.0.1",
1714 82a56f0d Luiz Capitulino
               "service":"50401",
1715 82a56f0d Luiz Capitulino
               "family":"ipv4"
1716 82a56f0d Luiz Capitulino
            }
1717 82a56f0d Luiz Capitulino
         ]
1718 82a56f0d Luiz Capitulino
      }
1719 82a56f0d Luiz Capitulino
   }
1720 82a56f0d Luiz Capitulino
1721 82a56f0d Luiz Capitulino
EQMP
1722 82a56f0d Luiz Capitulino
1723 82a56f0d Luiz Capitulino
SQMP
1724 cb42a870 Gerd Hoffmann
query-spice
1725 cb42a870 Gerd Hoffmann
-----------
1726 cb42a870 Gerd Hoffmann
1727 cb42a870 Gerd Hoffmann
Show SPICE server information.
1728 cb42a870 Gerd Hoffmann
1729 cb42a870 Gerd Hoffmann
Return a json-object with server information. Connected clients are returned
1730 cb42a870 Gerd Hoffmann
as a json-array of json-objects.
1731 cb42a870 Gerd Hoffmann
1732 cb42a870 Gerd Hoffmann
The main json-object contains the following:
1733 cb42a870 Gerd Hoffmann
1734 cb42a870 Gerd Hoffmann
- "enabled": true or false (json-bool)
1735 cb42a870 Gerd Hoffmann
- "host": server's IP address (json-string)
1736 cb42a870 Gerd Hoffmann
- "port": server's port number (json-int, optional)
1737 cb42a870 Gerd Hoffmann
- "tls-port": server's port number (json-int, optional)
1738 cb42a870 Gerd Hoffmann
- "auth": authentication method (json-string)
1739 cb42a870 Gerd Hoffmann
         - Possible values: "none", "spice"
1740 cb42a870 Gerd Hoffmann
- "channels": a json-array of all active channels clients
1741 cb42a870 Gerd Hoffmann
1742 cb42a870 Gerd Hoffmann
Channels are described by a json-object, each one contain the following:
1743 cb42a870 Gerd Hoffmann
1744 cb42a870 Gerd Hoffmann
- "host": client's IP address (json-string)
1745 cb42a870 Gerd Hoffmann
- "family": address family (json-string)
1746 cb42a870 Gerd Hoffmann
         - Possible values: "ipv4", "ipv6", "unix", "unknown"
1747 cb42a870 Gerd Hoffmann
- "port": client's port number (json-string)
1748 cb42a870 Gerd Hoffmann
- "connection-id": spice connection id.  All channels with the same id
1749 cb42a870 Gerd Hoffmann
                   belong to the same spice session (json-int)
1750 cb42a870 Gerd Hoffmann
- "channel-type": channel type.  "1" is the main control channel, filter for
1751 cb42a870 Gerd Hoffmann
                  this one if you want track spice sessions only (json-int)
1752 cb42a870 Gerd Hoffmann
- "channel-id": channel id.  Usually "0", might be different needed when
1753 cb42a870 Gerd Hoffmann
                multiple channels of the same type exist, such as multiple
1754 cb42a870 Gerd Hoffmann
                display channels in a multihead setup (json-int)
1755 cb42a870 Gerd Hoffmann
- "tls": whevener the channel is encrypted (json-bool)
1756 cb42a870 Gerd Hoffmann
1757 cb42a870 Gerd Hoffmann
Example:
1758 cb42a870 Gerd Hoffmann
1759 cb42a870 Gerd Hoffmann
-> { "execute": "query-spice" }
1760 cb42a870 Gerd Hoffmann
<- {
1761 cb42a870 Gerd Hoffmann
      "return": {
1762 cb42a870 Gerd Hoffmann
         "enabled": true,
1763 cb42a870 Gerd Hoffmann
         "auth": "spice",
1764 cb42a870 Gerd Hoffmann
         "port": 5920,
1765 cb42a870 Gerd Hoffmann
         "tls-port": 5921,
1766 cb42a870 Gerd Hoffmann
         "host": "0.0.0.0",
1767 cb42a870 Gerd Hoffmann
         "channels": [
1768 cb42a870 Gerd Hoffmann
            {
1769 cb42a870 Gerd Hoffmann
               "port": "54924",
1770 cb42a870 Gerd Hoffmann
               "family": "ipv4",
1771 cb42a870 Gerd Hoffmann
               "channel-type": 1,
1772 cb42a870 Gerd Hoffmann
               "connection-id": 1804289383,
1773 cb42a870 Gerd Hoffmann
               "host": "127.0.0.1",
1774 cb42a870 Gerd Hoffmann
               "channel-id": 0,
1775 cb42a870 Gerd Hoffmann
               "tls": true
1776 cb42a870 Gerd Hoffmann
            },
1777 cb42a870 Gerd Hoffmann
            {
1778 cb42a870 Gerd Hoffmann
               "port": "36710",
1779 cb42a870 Gerd Hoffmann
               "family": "ipv4",
1780 cb42a870 Gerd Hoffmann
               "channel-type": 4,
1781 cb42a870 Gerd Hoffmann
               "connection-id": 1804289383,
1782 cb42a870 Gerd Hoffmann
               "host": "127.0.0.1",
1783 cb42a870 Gerd Hoffmann
               "channel-id": 0,
1784 cb42a870 Gerd Hoffmann
               "tls": false
1785 cb42a870 Gerd Hoffmann
            },
1786 cb42a870 Gerd Hoffmann
            [ ... more channels follow ... ]
1787 cb42a870 Gerd Hoffmann
         ]
1788 cb42a870 Gerd Hoffmann
      }
1789 cb42a870 Gerd Hoffmann
   }
1790 cb42a870 Gerd Hoffmann
1791 cb42a870 Gerd Hoffmann
EQMP
1792 cb42a870 Gerd Hoffmann
1793 cb42a870 Gerd Hoffmann
SQMP
1794 82a56f0d Luiz Capitulino
query-name
1795 82a56f0d Luiz Capitulino
----------
1796 82a56f0d Luiz Capitulino
1797 82a56f0d Luiz Capitulino
Show VM name.
1798 82a56f0d Luiz Capitulino
1799 82a56f0d Luiz Capitulino
Return a json-object with the following information:
1800 82a56f0d Luiz Capitulino
1801 82a56f0d Luiz Capitulino
- "name": VM's name (json-string, optional)
1802 82a56f0d Luiz Capitulino
1803 82a56f0d Luiz Capitulino
Example:
1804 82a56f0d Luiz Capitulino
1805 82a56f0d Luiz Capitulino
-> { "execute": "query-name" }
1806 82a56f0d Luiz Capitulino
<- { "return": { "name": "qemu-name" } }
1807 82a56f0d Luiz Capitulino
1808 82a56f0d Luiz Capitulino
EQMP
1809 82a56f0d Luiz Capitulino
1810 48a32bed Anthony Liguori
    {
1811 48a32bed Anthony Liguori
        .name       = "query-name",
1812 48a32bed Anthony Liguori
        .args_type  = "",
1813 48a32bed Anthony Liguori
        .mhandler.cmd_new = qmp_marshal_input_query_name,
1814 48a32bed Anthony Liguori
    },
1815 48a32bed Anthony Liguori
1816 82a56f0d Luiz Capitulino
SQMP
1817 82a56f0d Luiz Capitulino
query-uuid
1818 82a56f0d Luiz Capitulino
----------
1819 82a56f0d Luiz Capitulino
1820 82a56f0d Luiz Capitulino
Show VM UUID.
1821 82a56f0d Luiz Capitulino
1822 82a56f0d Luiz Capitulino
Return a json-object with the following information:
1823 82a56f0d Luiz Capitulino
1824 82a56f0d Luiz Capitulino
- "UUID": Universally Unique Identifier (json-string)
1825 82a56f0d Luiz Capitulino
1826 82a56f0d Luiz Capitulino
Example:
1827 82a56f0d Luiz Capitulino
1828 82a56f0d Luiz Capitulino
-> { "execute": "query-uuid" }
1829 82a56f0d Luiz Capitulino
<- { "return": { "UUID": "550e8400-e29b-41d4-a716-446655440000" } }
1830 82a56f0d Luiz Capitulino
1831 82a56f0d Luiz Capitulino
EQMP
1832 82a56f0d Luiz Capitulino
1833 efab767e Luiz Capitulino
    {
1834 efab767e Luiz Capitulino
        .name       = "query-uuid",
1835 efab767e Luiz Capitulino
        .args_type  = "",
1836 efab767e Luiz Capitulino
        .mhandler.cmd_new = qmp_marshal_input_query_uuid,
1837 efab767e Luiz Capitulino
    },
1838 efab767e Luiz Capitulino
1839 82a56f0d Luiz Capitulino
SQMP
1840 82a56f0d Luiz Capitulino
query-migrate
1841 82a56f0d Luiz Capitulino
-------------
1842 82a56f0d Luiz Capitulino
1843 82a56f0d Luiz Capitulino
Migration status.
1844 82a56f0d Luiz Capitulino
1845 82a56f0d Luiz Capitulino
Return a json-object. If migration is active there will be another json-object
1846 82a56f0d Luiz Capitulino
with RAM migration status and if block migration is active another one with
1847 82a56f0d Luiz Capitulino
block migration status.
1848 82a56f0d Luiz Capitulino
1849 82a56f0d Luiz Capitulino
The main json-object contains the following:
1850 82a56f0d Luiz Capitulino
1851 82a56f0d Luiz Capitulino
- "status": migration status (json-string)
1852 82a56f0d Luiz Capitulino
     - Possible values: "active", "completed", "failed", "cancelled"
1853 82a56f0d Luiz Capitulino
- "ram": only present if "status" is "active", it is a json-object with the
1854 82a56f0d Luiz Capitulino
  following RAM information (in bytes):
1855 82a56f0d Luiz Capitulino
         - "transferred": amount transferred (json-int)
1856 82a56f0d Luiz Capitulino
         - "remaining": amount remaining (json-int)
1857 82a56f0d Luiz Capitulino
         - "total": total (json-int)
1858 82a56f0d Luiz Capitulino
- "disk": only present if "status" is "active" and it is a block migration,
1859 82a56f0d Luiz Capitulino
  it is a json-object with the following disk information (in bytes):
1860 82a56f0d Luiz Capitulino
         - "transferred": amount transferred (json-int)
1861 82a56f0d Luiz Capitulino
         - "remaining": amount remaining (json-int)
1862 82a56f0d Luiz Capitulino
         - "total": total (json-int)
1863 82a56f0d Luiz Capitulino
1864 82a56f0d Luiz Capitulino
Examples:
1865 82a56f0d Luiz Capitulino
1866 82a56f0d Luiz Capitulino
1. Before the first migration
1867 82a56f0d Luiz Capitulino
1868 82a56f0d Luiz Capitulino
-> { "execute": "query-migrate" }
1869 82a56f0d Luiz Capitulino
<- { "return": {} }
1870 82a56f0d Luiz Capitulino
1871 82a56f0d Luiz Capitulino
2. Migration is done and has succeeded
1872 82a56f0d Luiz Capitulino
1873 82a56f0d Luiz Capitulino
-> { "execute": "query-migrate" }
1874 82a56f0d Luiz Capitulino
<- { "return": { "status": "completed" } }
1875 82a56f0d Luiz Capitulino
1876 82a56f0d Luiz Capitulino
3. Migration is done and has failed
1877 82a56f0d Luiz Capitulino
1878 82a56f0d Luiz Capitulino
-> { "execute": "query-migrate" }
1879 82a56f0d Luiz Capitulino
<- { "return": { "status": "failed" } }
1880 82a56f0d Luiz Capitulino
1881 82a56f0d Luiz Capitulino
4. Migration is being performed and is not a block migration:
1882 82a56f0d Luiz Capitulino
1883 82a56f0d Luiz Capitulino
-> { "execute": "query-migrate" }
1884 82a56f0d Luiz Capitulino
<- {
1885 82a56f0d Luiz Capitulino
      "return":{
1886 82a56f0d Luiz Capitulino
         "status":"active",
1887 82a56f0d Luiz Capitulino
         "ram":{
1888 82a56f0d Luiz Capitulino
            "transferred":123,
1889 82a56f0d Luiz Capitulino
            "remaining":123,
1890 82a56f0d Luiz Capitulino
            "total":246
1891 82a56f0d Luiz Capitulino
         }
1892 82a56f0d Luiz Capitulino
      }
1893 82a56f0d Luiz Capitulino
   }
1894 82a56f0d Luiz Capitulino
1895 82a56f0d Luiz Capitulino
5. Migration is being performed and is a block migration:
1896 82a56f0d Luiz Capitulino
1897 82a56f0d Luiz Capitulino
-> { "execute": "query-migrate" }
1898 82a56f0d Luiz Capitulino
<- {
1899 82a56f0d Luiz Capitulino
      "return":{
1900 82a56f0d Luiz Capitulino
         "status":"active",
1901 82a56f0d Luiz Capitulino
         "ram":{
1902 82a56f0d Luiz Capitulino
            "total":1057024,
1903 82a56f0d Luiz Capitulino
            "remaining":1053304,
1904 82a56f0d Luiz Capitulino
            "transferred":3720
1905 82a56f0d Luiz Capitulino
         },
1906 82a56f0d Luiz Capitulino
         "disk":{
1907 82a56f0d Luiz Capitulino
            "total":20971520,
1908 82a56f0d Luiz Capitulino
            "remaining":20880384,
1909 82a56f0d Luiz Capitulino
            "transferred":91136
1910 82a56f0d Luiz Capitulino
         }
1911 82a56f0d Luiz Capitulino
      }
1912 82a56f0d Luiz Capitulino
   }
1913 82a56f0d Luiz Capitulino
1914 82a56f0d Luiz Capitulino
EQMP
1915 82a56f0d Luiz Capitulino
1916 82a56f0d Luiz Capitulino
SQMP
1917 82a56f0d Luiz Capitulino
query-balloon
1918 82a56f0d Luiz Capitulino
-------------
1919 82a56f0d Luiz Capitulino
1920 82a56f0d Luiz Capitulino
Show balloon information.
1921 82a56f0d Luiz Capitulino
1922 82a56f0d Luiz Capitulino
Make an asynchronous request for balloon info. When the request completes a
1923 82a56f0d Luiz Capitulino
json-object will be returned containing the following data:
1924 82a56f0d Luiz Capitulino
1925 82a56f0d Luiz Capitulino
- "actual": current balloon value in bytes (json-int)
1926 82a56f0d Luiz Capitulino
- "mem_swapped_in": Amount of memory swapped in bytes (json-int, optional)
1927 82a56f0d Luiz Capitulino
- "mem_swapped_out": Amount of memory swapped out in bytes (json-int, optional)
1928 82a56f0d Luiz Capitulino
- "major_page_faults": Number of major faults (json-int, optional)
1929 82a56f0d Luiz Capitulino
- "minor_page_faults": Number of minor faults (json-int, optional)
1930 82a56f0d Luiz Capitulino
- "free_mem": Total amount of free and unused memory in
1931 82a56f0d Luiz Capitulino
              bytes (json-int, optional)
1932 82a56f0d Luiz Capitulino
- "total_mem": Total amount of available memory in bytes (json-int, optional)
1933 82a56f0d Luiz Capitulino
1934 82a56f0d Luiz Capitulino
Example:
1935 82a56f0d Luiz Capitulino
1936 82a56f0d Luiz Capitulino
-> { "execute": "query-balloon" }
1937 82a56f0d Luiz Capitulino
<- {
1938 82a56f0d Luiz Capitulino
      "return":{
1939 82a56f0d Luiz Capitulino
         "actual":1073741824,
1940 82a56f0d Luiz Capitulino
         "mem_swapped_in":0,
1941 82a56f0d Luiz Capitulino
         "mem_swapped_out":0,
1942 82a56f0d Luiz Capitulino
         "major_page_faults":142,
1943 82a56f0d Luiz Capitulino
         "minor_page_faults":239245,
1944 82a56f0d Luiz Capitulino
         "free_mem":1014185984,
1945 82a56f0d Luiz Capitulino
         "total_mem":1044668416
1946 82a56f0d Luiz Capitulino
      }
1947 82a56f0d Luiz Capitulino
   }
1948 82a56f0d Luiz Capitulino
1949 82a56f0d Luiz Capitulino
EQMP