Statistics
| Branch: | Revision:

root / qmp-commands.hx @ d8aeeb31

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