Statistics
| Branch: | Revision:

root / qmp-commands.hx @ e9b4b432

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