Statistics
| Branch: | Revision:

root / qmp-commands.hx @ 13661089

History | View | Annotate | Download (45.4 kB)

1 82a56f0d Luiz Capitulino
HXCOMM QMP dispatch table and documentation
2 82a56f0d Luiz Capitulino
HXCOMM Text between SQMP and EQMP is copied to the QMP documention file and
3 82a56f0d Luiz Capitulino
HXCOMM does not show up in the other formats.
4 82a56f0d Luiz Capitulino
5 82a56f0d Luiz Capitulino
SQMP
6 82a56f0d Luiz Capitulino
                        QMP Supported Commands
7 82a56f0d Luiz Capitulino
                        ----------------------
8 82a56f0d Luiz Capitulino
9 82a56f0d Luiz Capitulino
This document describes all commands currently supported by QMP.
10 82a56f0d Luiz Capitulino
11 82a56f0d Luiz Capitulino
Most of the time their usage is exactly the same as in the user Monitor, this
12 82a56f0d Luiz Capitulino
means that any other document which also describe commands (the manpage,
13 82a56f0d Luiz Capitulino
QEMU's manual, etc) can and should be consulted.
14 82a56f0d Luiz Capitulino
15 82a56f0d Luiz Capitulino
QMP has two types of commands: regular and query commands. Regular commands
16 82a56f0d Luiz Capitulino
usually change the Virtual Machine's state someway, while query commands just
17 82a56f0d Luiz Capitulino
return information. The sections below are divided accordingly.
18 82a56f0d Luiz Capitulino
19 82a56f0d Luiz Capitulino
It's important to observe that all communication examples are formatted in
20 82a56f0d Luiz Capitulino
a reader-friendly way, so that they're easier to understand. However, in real
21 82a56f0d Luiz Capitulino
protocol usage, they're emitted as a single line.
22 82a56f0d Luiz Capitulino
23 82a56f0d Luiz Capitulino
Also, the following notation is used to denote data flow:
24 82a56f0d Luiz Capitulino
25 82a56f0d Luiz Capitulino
-> data issued by the Client
26 82a56f0d Luiz Capitulino
<- Server data response
27 82a56f0d Luiz Capitulino
28 82a56f0d Luiz Capitulino
Please, refer to the QMP specification (QMP/qmp-spec.txt) for detailed
29 82a56f0d Luiz Capitulino
information on the Server command and response formats.
30 82a56f0d Luiz Capitulino
31 82a56f0d Luiz Capitulino
NOTE: This document is temporary and will be replaced soon.
32 82a56f0d Luiz Capitulino
33 82a56f0d Luiz Capitulino
1. Stability Considerations
34 82a56f0d Luiz Capitulino
===========================
35 82a56f0d Luiz Capitulino
36 82a56f0d Luiz Capitulino
The current QMP command set (described in this file) may be useful for a
37 82a56f0d Luiz Capitulino
number of use cases, however it's limited and several commands have bad
38 82a56f0d Luiz Capitulino
defined semantics, specially with regard to command completion.
39 82a56f0d Luiz Capitulino
40 82a56f0d Luiz Capitulino
These problems are going to be solved incrementally in the next QEMU releases
41 82a56f0d Luiz Capitulino
and we're going to establish a deprecation policy for badly defined commands.
42 82a56f0d Luiz Capitulino
43 82a56f0d Luiz Capitulino
If you're planning to adopt QMP, please observe the following:
44 82a56f0d Luiz Capitulino
45 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 d967b2f1 Jes Sorensen
        .name       = "blockdev-snapshot-sync",
698 d967b2f1 Jes Sorensen
        .args_type  = "device:B,snapshot-file:s?,format:s?",
699 d967b2f1 Jes Sorensen
        .params     = "device [new-image-file] [format]",
700 d967b2f1 Jes Sorensen
        .user_print = monitor_user_noop,
701 d967b2f1 Jes Sorensen
        .mhandler.cmd_new = do_snapshot_blkdev,
702 d967b2f1 Jes Sorensen
    },
703 d967b2f1 Jes Sorensen
704 d967b2f1 Jes Sorensen
SQMP
705 d967b2f1 Jes Sorensen
blockdev-snapshot-sync
706 d967b2f1 Jes Sorensen
----------------------
707 d967b2f1 Jes Sorensen
708 d967b2f1 Jes Sorensen
Synchronous snapshot of a block device. snapshot-file specifies the
709 d967b2f1 Jes Sorensen
target of the new image. If the file exists, or if it is a device, the
710 d967b2f1 Jes Sorensen
snapshot will be created in the existing file/device. If does not
711 d967b2f1 Jes Sorensen
exist, a new file will be created. format specifies the format of the
712 d967b2f1 Jes Sorensen
snapshot image, default is qcow2.
713 d967b2f1 Jes Sorensen
714 d967b2f1 Jes Sorensen
Arguments:
715 d967b2f1 Jes Sorensen
716 d967b2f1 Jes Sorensen
- "device": device name to snapshot (json-string)
717 d967b2f1 Jes Sorensen
- "snapshot-file": name of new image file (json-string)
718 d967b2f1 Jes Sorensen
- "format": format of new image (json-string, optional)
719 d967b2f1 Jes Sorensen
720 d967b2f1 Jes Sorensen
Example:
721 d967b2f1 Jes Sorensen
722 d967b2f1 Jes Sorensen
-> { "execute": "blockdev-snapshot", "arguments": { "device": "ide-hd0",
723 d967b2f1 Jes Sorensen
                                                    "snapshot-file":
724 d967b2f1 Jes Sorensen
                                                    "/some/place/my-image",
725 d967b2f1 Jes Sorensen
                                                    "format": "qcow2" } }
726 d967b2f1 Jes Sorensen
<- { "return": {} }
727 d967b2f1 Jes Sorensen
728 d967b2f1 Jes Sorensen
EQMP
729 d967b2f1 Jes Sorensen
730 d967b2f1 Jes Sorensen
    {
731 82a56f0d Luiz Capitulino
        .name       = "balloon",
732 82a56f0d Luiz Capitulino
        .args_type  = "value:M",
733 82a56f0d Luiz Capitulino
        .params     = "target",
734 82a56f0d Luiz Capitulino
        .help       = "request VM to change its memory allocation (in MB)",
735 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
736 82a56f0d Luiz Capitulino
        .mhandler.cmd_async = do_balloon,
737 82a56f0d Luiz Capitulino
        .flags      = MONITOR_CMD_ASYNC,
738 82a56f0d Luiz Capitulino
    },
739 82a56f0d Luiz Capitulino
740 82a56f0d Luiz Capitulino
SQMP
741 82a56f0d Luiz Capitulino
balloon
742 82a56f0d Luiz Capitulino
-------
743 82a56f0d Luiz Capitulino
744 82a56f0d Luiz Capitulino
Request VM to change its memory allocation (in bytes).
745 82a56f0d Luiz Capitulino
746 82a56f0d Luiz Capitulino
Arguments:
747 82a56f0d Luiz Capitulino
748 82a56f0d Luiz Capitulino
- "value": New memory allocation (json-int)
749 82a56f0d Luiz Capitulino
750 82a56f0d Luiz Capitulino
Example:
751 82a56f0d Luiz Capitulino
752 82a56f0d Luiz Capitulino
-> { "execute": "balloon", "arguments": { "value": 536870912 } }
753 82a56f0d Luiz Capitulino
<- { "return": {} }
754 82a56f0d Luiz Capitulino
755 82a56f0d Luiz Capitulino
EQMP
756 82a56f0d Luiz Capitulino
757 82a56f0d Luiz Capitulino
    {
758 82a56f0d Luiz Capitulino
        .name       = "set_link",
759 82a56f0d Luiz Capitulino
        .args_type  = "name:s,up:b",
760 82a56f0d Luiz Capitulino
        .params     = "name on|off",
761 82a56f0d Luiz Capitulino
        .help       = "change the link status of a network adapter",
762 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
763 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_set_link,
764 82a56f0d Luiz Capitulino
    },
765 82a56f0d Luiz Capitulino
766 82a56f0d Luiz Capitulino
SQMP
767 82a56f0d Luiz Capitulino
set_link
768 82a56f0d Luiz Capitulino
--------
769 82a56f0d Luiz Capitulino
770 82a56f0d Luiz Capitulino
Change the link status of a network adapter.
771 82a56f0d Luiz Capitulino
772 82a56f0d Luiz Capitulino
Arguments:
773 82a56f0d Luiz Capitulino
774 82a56f0d Luiz Capitulino
- "name": network device name (json-string)
775 82a56f0d Luiz Capitulino
- "up": status is up (json-bool)
776 82a56f0d Luiz Capitulino
777 82a56f0d Luiz Capitulino
Example:
778 82a56f0d Luiz Capitulino
779 82a56f0d Luiz Capitulino
-> { "execute": "set_link", "arguments": { "name": "e1000.0", "up": false } }
780 82a56f0d Luiz Capitulino
<- { "return": {} }
781 82a56f0d Luiz Capitulino
782 82a56f0d Luiz Capitulino
EQMP
783 82a56f0d Luiz Capitulino
784 82a56f0d Luiz Capitulino
    {
785 82a56f0d Luiz Capitulino
        .name       = "getfd",
786 82a56f0d Luiz Capitulino
        .args_type  = "fdname:s",
787 82a56f0d Luiz Capitulino
        .params     = "getfd name",
788 82a56f0d Luiz Capitulino
        .help       = "receive a file descriptor via SCM rights and assign it a name",
789 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
790 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_getfd,
791 82a56f0d Luiz Capitulino
    },
792 82a56f0d Luiz Capitulino
793 82a56f0d Luiz Capitulino
SQMP
794 82a56f0d Luiz Capitulino
getfd
795 82a56f0d Luiz Capitulino
-----
796 82a56f0d Luiz Capitulino
797 82a56f0d Luiz Capitulino
Receive a file descriptor via SCM rights and assign it a name.
798 82a56f0d Luiz Capitulino
799 82a56f0d Luiz Capitulino
Arguments:
800 82a56f0d Luiz Capitulino
801 82a56f0d Luiz Capitulino
- "fdname": file descriptor name (json-string)
802 82a56f0d Luiz Capitulino
803 82a56f0d Luiz Capitulino
Example:
804 82a56f0d Luiz Capitulino
805 82a56f0d Luiz Capitulino
-> { "execute": "getfd", "arguments": { "fdname": "fd1" } }
806 82a56f0d Luiz Capitulino
<- { "return": {} }
807 82a56f0d Luiz Capitulino
808 82a56f0d Luiz Capitulino
EQMP
809 82a56f0d Luiz Capitulino
810 82a56f0d Luiz Capitulino
    {
811 82a56f0d Luiz Capitulino
        .name       = "closefd",
812 82a56f0d Luiz Capitulino
        .args_type  = "fdname:s",
813 82a56f0d Luiz Capitulino
        .params     = "closefd name",
814 82a56f0d Luiz Capitulino
        .help       = "close a file descriptor previously passed via SCM rights",
815 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
816 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_closefd,
817 82a56f0d Luiz Capitulino
    },
818 82a56f0d Luiz Capitulino
819 82a56f0d Luiz Capitulino
SQMP
820 82a56f0d Luiz Capitulino
closefd
821 82a56f0d Luiz Capitulino
-------
822 82a56f0d Luiz Capitulino
823 82a56f0d Luiz Capitulino
Close a file descriptor previously passed via SCM rights.
824 82a56f0d Luiz Capitulino
825 82a56f0d Luiz Capitulino
Arguments:
826 82a56f0d Luiz Capitulino
827 82a56f0d Luiz Capitulino
- "fdname": file descriptor name (json-string)
828 82a56f0d Luiz Capitulino
829 82a56f0d Luiz Capitulino
Example:
830 82a56f0d Luiz Capitulino
831 82a56f0d Luiz Capitulino
-> { "execute": "closefd", "arguments": { "fdname": "fd1" } }
832 82a56f0d Luiz Capitulino
<- { "return": {} }
833 82a56f0d Luiz Capitulino
834 82a56f0d Luiz Capitulino
EQMP
835 82a56f0d Luiz Capitulino
836 82a56f0d Luiz Capitulino
    {
837 82a56f0d Luiz Capitulino
        .name       = "block_passwd",
838 82a56f0d Luiz Capitulino
        .args_type  = "device:B,password:s",
839 82a56f0d Luiz Capitulino
        .params     = "block_passwd device password",
840 82a56f0d Luiz Capitulino
        .help       = "set the password of encrypted block devices",
841 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
842 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_block_set_passwd,
843 82a56f0d Luiz Capitulino
    },
844 82a56f0d Luiz Capitulino
845 82a56f0d Luiz Capitulino
SQMP
846 82a56f0d Luiz Capitulino
block_passwd
847 82a56f0d Luiz Capitulino
------------
848 82a56f0d Luiz Capitulino
849 82a56f0d Luiz Capitulino
Set the password of encrypted block devices.
850 82a56f0d Luiz Capitulino
851 82a56f0d Luiz Capitulino
Arguments:
852 82a56f0d Luiz Capitulino
853 82a56f0d Luiz Capitulino
- "device": device name (json-string)
854 82a56f0d Luiz Capitulino
- "password": password (json-string)
855 82a56f0d Luiz Capitulino
856 82a56f0d Luiz Capitulino
Example:
857 82a56f0d Luiz Capitulino
858 82a56f0d Luiz Capitulino
-> { "execute": "block_passwd", "arguments": { "device": "ide0-hd0",
859 82a56f0d Luiz Capitulino
                                               "password": "12345" } }
860 82a56f0d Luiz Capitulino
<- { "return": {} }
861 82a56f0d Luiz Capitulino
862 82a56f0d Luiz Capitulino
EQMP
863 82a56f0d Luiz Capitulino
864 82a56f0d Luiz Capitulino
    {
865 7572150c Gerd Hoffmann
        .name       = "set_password",
866 7572150c Gerd Hoffmann
        .args_type  = "protocol:s,password:s,connected:s?",
867 7572150c Gerd Hoffmann
        .params     = "protocol password action-if-connected",
868 7572150c Gerd Hoffmann
        .help       = "set spice/vnc password",
869 7572150c Gerd Hoffmann
        .user_print = monitor_user_noop,
870 7572150c Gerd Hoffmann
        .mhandler.cmd_new = set_password,
871 7572150c Gerd Hoffmann
    },
872 7572150c Gerd Hoffmann
873 7572150c Gerd Hoffmann
SQMP
874 7572150c Gerd Hoffmann
set_password
875 7572150c Gerd Hoffmann
------------
876 7572150c Gerd Hoffmann
877 7572150c Gerd Hoffmann
Set the password for vnc/spice protocols.
878 7572150c Gerd Hoffmann
879 7572150c Gerd Hoffmann
Arguments:
880 7572150c Gerd Hoffmann
881 7572150c Gerd Hoffmann
- "protocol": protocol name (json-string)
882 7572150c Gerd Hoffmann
- "password": password (json-string)
883 7572150c Gerd Hoffmann
- "connected": [ keep | disconnect | fail ] (josn-string, optional)
884 7572150c Gerd Hoffmann
885 7572150c Gerd Hoffmann
Example:
886 7572150c Gerd Hoffmann
887 7572150c Gerd Hoffmann
-> { "execute": "set_password", "arguments": { "protocol": "vnc",
888 7572150c Gerd Hoffmann
                                               "password": "secret" } }
889 7572150c Gerd Hoffmann
<- { "return": {} }
890 7572150c Gerd Hoffmann
891 7572150c Gerd Hoffmann
EQMP
892 7572150c Gerd Hoffmann
893 7572150c Gerd Hoffmann
    {
894 7572150c Gerd Hoffmann
        .name       = "expire_password",
895 7572150c Gerd Hoffmann
        .args_type  = "protocol:s,time:s",
896 7572150c Gerd Hoffmann
        .params     = "protocol time",
897 7572150c Gerd Hoffmann
        .help       = "set spice/vnc password expire-time",
898 7572150c Gerd Hoffmann
        .user_print = monitor_user_noop,
899 7572150c Gerd Hoffmann
        .mhandler.cmd_new = expire_password,
900 7572150c Gerd Hoffmann
    },
901 7572150c Gerd Hoffmann
902 7572150c Gerd Hoffmann
SQMP
903 7572150c Gerd Hoffmann
expire_password
904 7572150c Gerd Hoffmann
---------------
905 7572150c Gerd Hoffmann
906 7572150c Gerd Hoffmann
Set the password expire time for vnc/spice protocols.
907 7572150c Gerd Hoffmann
908 7572150c Gerd Hoffmann
Arguments:
909 7572150c Gerd Hoffmann
910 7572150c Gerd Hoffmann
- "protocol": protocol name (json-string)
911 7572150c Gerd Hoffmann
- "time": [ now | never | +secs | secs ] (json-string)
912 7572150c Gerd Hoffmann
913 7572150c Gerd Hoffmann
Example:
914 7572150c Gerd Hoffmann
915 7572150c Gerd Hoffmann
-> { "execute": "expire_password", "arguments": { "protocol": "vnc",
916 7572150c Gerd Hoffmann
                                                  "time": "+60" } }
917 7572150c Gerd Hoffmann
<- { "return": {} }
918 7572150c Gerd Hoffmann
919 7572150c Gerd Hoffmann
EQMP
920 7572150c Gerd Hoffmann
921 7572150c Gerd Hoffmann
    {
922 13661089 Daniel P. Berrange
        .name       = "add_client",
923 13661089 Daniel P. Berrange
        .args_type  = "protocol:s,fdname:s,skipauth:b?",
924 13661089 Daniel P. Berrange
        .params     = "protocol fdname skipauth",
925 13661089 Daniel P. Berrange
        .help       = "add a graphics client",
926 13661089 Daniel P. Berrange
        .user_print = monitor_user_noop,
927 13661089 Daniel P. Berrange
        .mhandler.cmd_new = add_graphics_client,
928 13661089 Daniel P. Berrange
    },
929 13661089 Daniel P. Berrange
930 13661089 Daniel P. Berrange
SQMP
931 13661089 Daniel P. Berrange
add_client
932 13661089 Daniel P. Berrange
----------
933 13661089 Daniel P. Berrange
934 13661089 Daniel P. Berrange
Add a graphics client
935 13661089 Daniel P. Berrange
936 13661089 Daniel P. Berrange
Arguments:
937 13661089 Daniel P. Berrange
938 13661089 Daniel P. Berrange
- "protocol": protocol name (json-string)
939 13661089 Daniel P. Berrange
- "fdname": file descriptor name (json-string)
940 13661089 Daniel P. Berrange
941 13661089 Daniel P. Berrange
Example:
942 13661089 Daniel P. Berrange
943 13661089 Daniel P. Berrange
-> { "execute": "add_client", "arguments": { "protocol": "vnc",
944 13661089 Daniel P. Berrange
                                             "fdname": "myclient" } }
945 13661089 Daniel P. Berrange
<- { "return": {} }
946 13661089 Daniel P. Berrange
947 13661089 Daniel P. Berrange
EQMP
948 13661089 Daniel P. Berrange
    {
949 82a56f0d Luiz Capitulino
        .name       = "qmp_capabilities",
950 82a56f0d Luiz Capitulino
        .args_type  = "",
951 82a56f0d Luiz Capitulino
        .params     = "",
952 82a56f0d Luiz Capitulino
        .help       = "enable QMP capabilities",
953 82a56f0d Luiz Capitulino
        .user_print = monitor_user_noop,
954 82a56f0d Luiz Capitulino
        .mhandler.cmd_new = do_qmp_capabilities,
955 82a56f0d Luiz Capitulino
    },
956 82a56f0d Luiz Capitulino
957 82a56f0d Luiz Capitulino
SQMP
958 82a56f0d Luiz Capitulino
qmp_capabilities
959 82a56f0d Luiz Capitulino
----------------
960 82a56f0d Luiz Capitulino
961 82a56f0d Luiz Capitulino
Enable QMP capabilities.
962 82a56f0d Luiz Capitulino
963 82a56f0d Luiz Capitulino
Arguments: None.
964 82a56f0d Luiz Capitulino
965 82a56f0d Luiz Capitulino
Example:
966 82a56f0d Luiz Capitulino
967 82a56f0d Luiz Capitulino
-> { "execute": "qmp_capabilities" }
968 82a56f0d Luiz Capitulino
<- { "return": {} }
969 82a56f0d Luiz Capitulino
970 82a56f0d Luiz Capitulino
Note: This command must be issued before issuing any other command.
971 82a56f0d Luiz Capitulino
972 0268d97c Luiz Capitulino
EQMP
973 0268d97c Luiz Capitulino
974 0268d97c Luiz Capitulino
    {
975 0268d97c Luiz Capitulino
        .name       = "human-monitor-command",
976 0268d97c Luiz Capitulino
        .args_type  = "command-line:s,cpu-index:i?",
977 0268d97c Luiz Capitulino
        .params     = "",
978 0268d97c Luiz Capitulino
        .help       = "",
979 0268d97c Luiz Capitulino
        .user_print = monitor_user_noop,
980 0268d97c Luiz Capitulino
        .mhandler.cmd_new = do_hmp_passthrough,
981 0268d97c Luiz Capitulino
    },
982 0268d97c Luiz Capitulino
983 0268d97c Luiz Capitulino
SQMP
984 0268d97c Luiz Capitulino
human-monitor-command
985 0268d97c Luiz Capitulino
---------------------
986 0268d97c Luiz Capitulino
987 0268d97c Luiz Capitulino
Execute a Human Monitor command.
988 0268d97c Luiz Capitulino
989 0268d97c Luiz Capitulino
Arguments: 
990 0268d97c Luiz Capitulino
991 0268d97c Luiz Capitulino
- command-line: the command name and its arguments, just like the
992 0268d97c Luiz Capitulino
                Human Monitor's shell (json-string)
993 0268d97c Luiz Capitulino
- cpu-index: select the CPU number to be used by commands which access CPU
994 0268d97c Luiz Capitulino
             data, like 'info registers'. The Monitor selects CPU 0 if this
995 0268d97c Luiz Capitulino
             argument is not provided (json-int, optional)
996 0268d97c Luiz Capitulino
997 0268d97c Luiz Capitulino
Example:
998 0268d97c Luiz Capitulino
999 0268d97c Luiz Capitulino
-> { "execute": "human-monitor-command", "arguments": { "command-line": "info kvm" } }
1000 0268d97c Luiz Capitulino
<- { "return": "kvm support: enabled\r\n" }
1001 0268d97c Luiz Capitulino
1002 0268d97c Luiz Capitulino
Notes:
1003 0268d97c Luiz Capitulino
1004 0268d97c Luiz Capitulino
(1) The Human Monitor is NOT an stable interface, this means that command
1005 0268d97c Luiz Capitulino
    names, arguments and responses can change or be removed at ANY time.
1006 0268d97c Luiz Capitulino
    Applications that rely on long term stability guarantees should NOT
1007 0268d97c Luiz Capitulino
    use this command
1008 0268d97c Luiz Capitulino
1009 0268d97c Luiz Capitulino
(2) Limitations:
1010 0268d97c Luiz Capitulino
1011 0268d97c Luiz Capitulino
    o This command is stateless, this means that commands that depend
1012 0268d97c Luiz Capitulino
      on state information (such as getfd) might not work
1013 0268d97c Luiz Capitulino
1014 0268d97c Luiz Capitulino
    o Commands that prompt the user for data (eg. 'cont' when the block
1015 0268d97c Luiz Capitulino
      device is encrypted) don't currently work
1016 0268d97c Luiz Capitulino
1017 82a56f0d Luiz Capitulino
3. Query Commands
1018 82a56f0d Luiz Capitulino
=================
1019 82a56f0d Luiz Capitulino
1020 82a56f0d Luiz Capitulino
HXCOMM Each query command below is inside a SQMP/EQMP section, do NOT change
1021 82a56f0d Luiz Capitulino
HXCOMM this! We will possibly move query commands definitions inside those
1022 82a56f0d Luiz Capitulino
HXCOMM sections, just like regular commands.
1023 82a56f0d Luiz Capitulino
1024 82a56f0d Luiz Capitulino
EQMP
1025 82a56f0d Luiz Capitulino
1026 82a56f0d Luiz Capitulino
SQMP
1027 82a56f0d Luiz Capitulino
query-version
1028 82a56f0d Luiz Capitulino
-------------
1029 82a56f0d Luiz Capitulino
1030 82a56f0d Luiz Capitulino
Show QEMU version.
1031 82a56f0d Luiz Capitulino
1032 82a56f0d Luiz Capitulino
Return a json-object with the following information:
1033 82a56f0d Luiz Capitulino
1034 82a56f0d Luiz Capitulino
- "qemu": A json-object containing three integer values:
1035 82a56f0d Luiz Capitulino
    - "major": QEMU's major version (json-int)
1036 82a56f0d Luiz Capitulino
    - "minor": QEMU's minor version (json-int)
1037 82a56f0d Luiz Capitulino
    - "micro": QEMU's micro version (json-int)
1038 82a56f0d Luiz Capitulino
- "package": package's version (json-string)
1039 82a56f0d Luiz Capitulino
1040 82a56f0d Luiz Capitulino
Example:
1041 82a56f0d Luiz Capitulino
1042 82a56f0d Luiz Capitulino
-> { "execute": "query-version" }
1043 82a56f0d Luiz Capitulino
<- {
1044 82a56f0d Luiz Capitulino
      "return":{
1045 82a56f0d Luiz Capitulino
         "qemu":{
1046 82a56f0d Luiz Capitulino
            "major":0,
1047 82a56f0d Luiz Capitulino
            "minor":11,
1048 82a56f0d Luiz Capitulino
            "micro":5
1049 82a56f0d Luiz Capitulino
         },
1050 82a56f0d Luiz Capitulino
         "package":""
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-commands
1058 82a56f0d Luiz Capitulino
--------------
1059 82a56f0d Luiz Capitulino
1060 82a56f0d Luiz Capitulino
List QMP available commands.
1061 82a56f0d Luiz Capitulino
1062 82a56f0d Luiz Capitulino
Each command is represented by a json-object, the returned value is a json-array
1063 82a56f0d Luiz Capitulino
of all commands.
1064 82a56f0d Luiz Capitulino
1065 82a56f0d Luiz Capitulino
Each json-object contain:
1066 82a56f0d Luiz Capitulino
1067 82a56f0d Luiz Capitulino
- "name": command's name (json-string)
1068 82a56f0d Luiz Capitulino
1069 82a56f0d Luiz Capitulino
Example:
1070 82a56f0d Luiz Capitulino
1071 82a56f0d Luiz Capitulino
-> { "execute": "query-commands" }
1072 82a56f0d Luiz Capitulino
<- {
1073 82a56f0d Luiz Capitulino
      "return":[
1074 82a56f0d Luiz Capitulino
         {
1075 82a56f0d Luiz Capitulino
            "name":"query-balloon"
1076 82a56f0d Luiz Capitulino
         },
1077 82a56f0d Luiz Capitulino
         {
1078 82a56f0d Luiz Capitulino
            "name":"system_powerdown"
1079 82a56f0d Luiz Capitulino
         }
1080 82a56f0d Luiz Capitulino
      ]
1081 82a56f0d Luiz Capitulino
   }
1082 82a56f0d Luiz Capitulino
1083 82a56f0d Luiz Capitulino
Note: This example has been shortened as the real response is too long.
1084 82a56f0d Luiz Capitulino
1085 82a56f0d Luiz Capitulino
EQMP
1086 82a56f0d Luiz Capitulino
1087 82a56f0d Luiz Capitulino
SQMP
1088 82a56f0d Luiz Capitulino
query-chardev
1089 82a56f0d Luiz Capitulino
-------------
1090 82a56f0d Luiz Capitulino
1091 82a56f0d Luiz Capitulino
Each device is represented by a json-object. The returned value is a json-array
1092 82a56f0d Luiz Capitulino
of all devices.
1093 82a56f0d Luiz Capitulino
1094 82a56f0d Luiz Capitulino
Each json-object contain the following:
1095 82a56f0d Luiz Capitulino
1096 82a56f0d Luiz Capitulino
- "label": device's label (json-string)
1097 82a56f0d Luiz Capitulino
- "filename": device's file (json-string)
1098 82a56f0d Luiz Capitulino
1099 82a56f0d Luiz Capitulino
Example:
1100 82a56f0d Luiz Capitulino
1101 82a56f0d Luiz Capitulino
-> { "execute": "query-chardev" }
1102 82a56f0d Luiz Capitulino
<- {
1103 82a56f0d Luiz Capitulino
      "return":[
1104 82a56f0d Luiz Capitulino
         {
1105 82a56f0d Luiz Capitulino
            "label":"monitor",
1106 82a56f0d Luiz Capitulino
            "filename":"stdio"
1107 82a56f0d Luiz Capitulino
         },
1108 82a56f0d Luiz Capitulino
         {
1109 82a56f0d Luiz Capitulino
            "label":"serial0",
1110 82a56f0d Luiz Capitulino
            "filename":"vc"
1111 82a56f0d Luiz Capitulino
         }
1112 82a56f0d Luiz Capitulino
      ]
1113 82a56f0d Luiz Capitulino
   }
1114 82a56f0d Luiz Capitulino
1115 82a56f0d Luiz Capitulino
EQMP
1116 82a56f0d Luiz Capitulino
1117 82a56f0d Luiz Capitulino
SQMP
1118 82a56f0d Luiz Capitulino
query-block
1119 82a56f0d Luiz Capitulino
-----------
1120 82a56f0d Luiz Capitulino
1121 82a56f0d Luiz Capitulino
Show the block devices.
1122 82a56f0d Luiz Capitulino
1123 82a56f0d Luiz Capitulino
Each block device information is stored in a json-object and the returned value
1124 82a56f0d Luiz Capitulino
is a json-array of all devices.
1125 82a56f0d Luiz Capitulino
1126 82a56f0d Luiz Capitulino
Each json-object contain the following:
1127 82a56f0d Luiz Capitulino
1128 82a56f0d Luiz Capitulino
- "device": device name (json-string)
1129 82a56f0d Luiz Capitulino
- "type": device type (json-string)
1130 d8aeeb31 Markus Armbruster
         - deprecated, retained for backward compatibility
1131 d8aeeb31 Markus Armbruster
         - Possible values: "unknown"
1132 82a56f0d Luiz Capitulino
- "removable": true if the device is removable, false otherwise (json-bool)
1133 82a56f0d Luiz Capitulino
- "locked": true if the device is locked, false otherwise (json-bool)
1134 82a56f0d Luiz Capitulino
- "inserted": only present if the device is inserted, it is a json-object
1135 82a56f0d Luiz Capitulino
   containing the following:
1136 82a56f0d Luiz Capitulino
         - "file": device file name (json-string)
1137 82a56f0d Luiz Capitulino
         - "ro": true if read-only, false otherwise (json-bool)
1138 82a56f0d Luiz Capitulino
         - "drv": driver format name (json-string)
1139 82a56f0d Luiz Capitulino
             - Possible values: "blkdebug", "bochs", "cloop", "cow", "dmg",
1140 82a56f0d Luiz Capitulino
                                "file", "file", "ftp", "ftps", "host_cdrom",
1141 82a56f0d Luiz Capitulino
                                "host_device", "host_floppy", "http", "https",
1142 82a56f0d Luiz Capitulino
                                "nbd", "parallels", "qcow", "qcow2", "raw",
1143 82a56f0d Luiz Capitulino
                                "tftp", "vdi", "vmdk", "vpc", "vvfat"
1144 82a56f0d Luiz Capitulino
         - "backing_file": backing file name (json-string, optional)
1145 82a56f0d Luiz Capitulino
         - "encrypted": true if encrypted, false otherwise (json-bool)
1146 82a56f0d Luiz Capitulino
1147 82a56f0d Luiz Capitulino
Example:
1148 82a56f0d Luiz Capitulino
1149 82a56f0d Luiz Capitulino
-> { "execute": "query-block" }
1150 82a56f0d Luiz Capitulino
<- {
1151 82a56f0d Luiz Capitulino
      "return":[
1152 82a56f0d Luiz Capitulino
         {
1153 82a56f0d Luiz Capitulino
            "device":"ide0-hd0",
1154 82a56f0d Luiz Capitulino
            "locked":false,
1155 82a56f0d Luiz Capitulino
            "removable":false,
1156 82a56f0d Luiz Capitulino
            "inserted":{
1157 82a56f0d Luiz Capitulino
               "ro":false,
1158 82a56f0d Luiz Capitulino
               "drv":"qcow2",
1159 82a56f0d Luiz Capitulino
               "encrypted":false,
1160 82a56f0d Luiz Capitulino
               "file":"disks/test.img"
1161 82a56f0d Luiz Capitulino
            },
1162 d8aeeb31 Markus Armbruster
            "type":"unknown"
1163 82a56f0d Luiz Capitulino
         },
1164 82a56f0d Luiz Capitulino
         {
1165 82a56f0d Luiz Capitulino
            "device":"ide1-cd0",
1166 82a56f0d Luiz Capitulino
            "locked":false,
1167 82a56f0d Luiz Capitulino
            "removable":true,
1168 d8aeeb31 Markus Armbruster
            "type":"unknown"
1169 82a56f0d Luiz Capitulino
         },
1170 82a56f0d Luiz Capitulino
         {
1171 82a56f0d Luiz Capitulino
            "device":"floppy0",
1172 82a56f0d Luiz Capitulino
            "locked":false,
1173 82a56f0d Luiz Capitulino
            "removable":true,
1174 d8aeeb31 Markus Armbruster
            "type":"unknown"
1175 82a56f0d Luiz Capitulino
         },
1176 82a56f0d Luiz Capitulino
         {
1177 82a56f0d Luiz Capitulino
            "device":"sd0",
1178 82a56f0d Luiz Capitulino
            "locked":false,
1179 82a56f0d Luiz Capitulino
            "removable":true,
1180 d8aeeb31 Markus Armbruster
            "type":"unknown"
1181 82a56f0d Luiz Capitulino
         }
1182 82a56f0d Luiz Capitulino
      ]
1183 82a56f0d Luiz Capitulino
   }
1184 82a56f0d Luiz Capitulino
1185 82a56f0d Luiz Capitulino
EQMP
1186 82a56f0d Luiz Capitulino
1187 82a56f0d Luiz Capitulino
SQMP
1188 82a56f0d Luiz Capitulino
query-blockstats
1189 82a56f0d Luiz Capitulino
----------------
1190 82a56f0d Luiz Capitulino
1191 82a56f0d Luiz Capitulino
Show block device statistics.
1192 82a56f0d Luiz Capitulino
1193 82a56f0d Luiz Capitulino
Each device statistic information is stored in a json-object and the returned
1194 82a56f0d Luiz Capitulino
value is a json-array of all devices.
1195 82a56f0d Luiz Capitulino
1196 82a56f0d Luiz Capitulino
Each json-object contain the following:
1197 82a56f0d Luiz Capitulino
1198 82a56f0d Luiz Capitulino
- "device": device name (json-string)
1199 82a56f0d Luiz Capitulino
- "stats": A json-object with the statistics information, it contains:
1200 82a56f0d Luiz Capitulino
    - "rd_bytes": bytes read (json-int)
1201 82a56f0d Luiz Capitulino
    - "wr_bytes": bytes written (json-int)
1202 82a56f0d Luiz Capitulino
    - "rd_operations": read operations (json-int)
1203 82a56f0d Luiz Capitulino
    - "wr_operations": write operations (json-int)
1204 82a56f0d Luiz Capitulino
    - "wr_highest_offset": Highest offset of a sector written since the
1205 82a56f0d Luiz Capitulino
                           BlockDriverState has been opened (json-int)
1206 82a56f0d Luiz Capitulino
- "parent": Contains recursively the statistics of the underlying
1207 82a56f0d Luiz Capitulino
            protocol (e.g. the host file for a qcow2 image). If there is
1208 82a56f0d Luiz Capitulino
            no underlying protocol, this field is omitted
1209 82a56f0d Luiz Capitulino
            (json-object, optional)
1210 82a56f0d Luiz Capitulino
1211 82a56f0d Luiz Capitulino
Example:
1212 82a56f0d Luiz Capitulino
1213 82a56f0d Luiz Capitulino
-> { "execute": "query-blockstats" }
1214 82a56f0d Luiz Capitulino
<- {
1215 82a56f0d Luiz Capitulino
      "return":[
1216 82a56f0d Luiz Capitulino
         {
1217 82a56f0d Luiz Capitulino
            "device":"ide0-hd0",
1218 82a56f0d Luiz Capitulino
            "parent":{
1219 82a56f0d Luiz Capitulino
               "stats":{
1220 82a56f0d Luiz Capitulino
                  "wr_highest_offset":3686448128,
1221 82a56f0d Luiz Capitulino
                  "wr_bytes":9786368,
1222 82a56f0d Luiz Capitulino
                  "wr_operations":751,
1223 82a56f0d Luiz Capitulino
                  "rd_bytes":122567168,
1224 82a56f0d Luiz Capitulino
                  "rd_operations":36772
1225 82a56f0d Luiz Capitulino
               }
1226 82a56f0d Luiz Capitulino
            },
1227 82a56f0d Luiz Capitulino
            "stats":{
1228 82a56f0d Luiz Capitulino
               "wr_highest_offset":2821110784,
1229 82a56f0d Luiz Capitulino
               "wr_bytes":9786368,
1230 82a56f0d Luiz Capitulino
               "wr_operations":692,
1231 82a56f0d Luiz Capitulino
               "rd_bytes":122739200,
1232 82a56f0d Luiz Capitulino
               "rd_operations":36604
1233 82a56f0d Luiz Capitulino
            }
1234 82a56f0d Luiz Capitulino
         },
1235 82a56f0d Luiz Capitulino
         {
1236 82a56f0d Luiz Capitulino
            "device":"ide1-cd0",
1237 82a56f0d Luiz Capitulino
            "stats":{
1238 82a56f0d Luiz Capitulino
               "wr_highest_offset":0,
1239 82a56f0d Luiz Capitulino
               "wr_bytes":0,
1240 82a56f0d Luiz Capitulino
               "wr_operations":0,
1241 82a56f0d Luiz Capitulino
               "rd_bytes":0,
1242 82a56f0d Luiz Capitulino
               "rd_operations":0
1243 82a56f0d Luiz Capitulino
            }
1244 82a56f0d Luiz Capitulino
         },
1245 82a56f0d Luiz Capitulino
         {
1246 82a56f0d Luiz Capitulino
            "device":"floppy0",
1247 82a56f0d Luiz Capitulino
            "stats":{
1248 82a56f0d Luiz Capitulino
               "wr_highest_offset":0,
1249 82a56f0d Luiz Capitulino
               "wr_bytes":0,
1250 82a56f0d Luiz Capitulino
               "wr_operations":0,
1251 82a56f0d Luiz Capitulino
               "rd_bytes":0,
1252 82a56f0d Luiz Capitulino
               "rd_operations":0
1253 82a56f0d Luiz Capitulino
            }
1254 82a56f0d Luiz Capitulino
         },
1255 82a56f0d Luiz Capitulino
         {
1256 82a56f0d Luiz Capitulino
            "device":"sd0",
1257 82a56f0d Luiz Capitulino
            "stats":{
1258 82a56f0d Luiz Capitulino
               "wr_highest_offset":0,
1259 82a56f0d Luiz Capitulino
               "wr_bytes":0,
1260 82a56f0d Luiz Capitulino
               "wr_operations":0,
1261 82a56f0d Luiz Capitulino
               "rd_bytes":0,
1262 82a56f0d Luiz Capitulino
               "rd_operations":0
1263 82a56f0d Luiz Capitulino
            }
1264 82a56f0d Luiz Capitulino
         }
1265 82a56f0d Luiz Capitulino
      ]
1266 82a56f0d Luiz Capitulino
   }
1267 82a56f0d Luiz Capitulino
1268 82a56f0d Luiz Capitulino
EQMP
1269 82a56f0d Luiz Capitulino
1270 82a56f0d Luiz Capitulino
SQMP
1271 82a56f0d Luiz Capitulino
query-cpus
1272 82a56f0d Luiz Capitulino
----------
1273 82a56f0d Luiz Capitulino
1274 82a56f0d Luiz Capitulino
Show CPU information.
1275 82a56f0d Luiz Capitulino
1276 82a56f0d Luiz Capitulino
Return a json-array. Each CPU is represented by a json-object, which contains:
1277 82a56f0d Luiz Capitulino
1278 82a56f0d Luiz Capitulino
- "CPU": CPU index (json-int)
1279 82a56f0d Luiz Capitulino
- "current": true if this is the current CPU, false otherwise (json-bool)
1280 82a56f0d Luiz Capitulino
- "halted": true if the cpu is halted, false otherwise (json-bool)
1281 82a56f0d Luiz Capitulino
- Current program counter. The key's name depends on the architecture:
1282 82a56f0d Luiz Capitulino
     "pc": i386/x86_64 (json-int)
1283 82a56f0d Luiz Capitulino
     "nip": PPC (json-int)
1284 82a56f0d Luiz Capitulino
     "pc" and "npc": sparc (json-int)
1285 82a56f0d Luiz Capitulino
     "PC": mips (json-int)
1286 dc7a09cf Jan Kiszka
- "thread_id": ID of the underlying host thread (json-int)
1287 82a56f0d Luiz Capitulino
1288 82a56f0d Luiz Capitulino
Example:
1289 82a56f0d Luiz Capitulino
1290 82a56f0d Luiz Capitulino
-> { "execute": "query-cpus" }
1291 82a56f0d Luiz Capitulino
<- {
1292 82a56f0d Luiz Capitulino
      "return":[
1293 82a56f0d Luiz Capitulino
         {
1294 82a56f0d Luiz Capitulino
            "CPU":0,
1295 82a56f0d Luiz Capitulino
            "current":true,
1296 82a56f0d Luiz Capitulino
            "halted":false,
1297 82a56f0d Luiz Capitulino
            "pc":3227107138
1298 dc7a09cf Jan Kiszka
            "thread_id":3134
1299 82a56f0d Luiz Capitulino
         },
1300 82a56f0d Luiz Capitulino
         {
1301 82a56f0d Luiz Capitulino
            "CPU":1,
1302 82a56f0d Luiz Capitulino
            "current":false,
1303 82a56f0d Luiz Capitulino
            "halted":true,
1304 82a56f0d Luiz Capitulino
            "pc":7108165
1305 dc7a09cf Jan Kiszka
            "thread_id":3135
1306 82a56f0d Luiz Capitulino
         }
1307 82a56f0d Luiz Capitulino
      ]
1308 82a56f0d Luiz Capitulino
   }
1309 82a56f0d Luiz Capitulino
1310 82a56f0d Luiz Capitulino
EQMP
1311 82a56f0d Luiz Capitulino
1312 82a56f0d Luiz Capitulino
SQMP
1313 82a56f0d Luiz Capitulino
query-pci
1314 82a56f0d Luiz Capitulino
---------
1315 82a56f0d Luiz Capitulino
1316 82a56f0d Luiz Capitulino
PCI buses and devices information.
1317 82a56f0d Luiz Capitulino
1318 82a56f0d Luiz Capitulino
The returned value is a json-array of all buses. Each bus is represented by
1319 82a56f0d Luiz Capitulino
a json-object, which has a key with a json-array of all PCI devices attached
1320 82a56f0d Luiz Capitulino
to it. Each device is represented by a json-object.
1321 82a56f0d Luiz Capitulino
1322 82a56f0d Luiz Capitulino
The bus json-object contains the following:
1323 82a56f0d Luiz Capitulino
1324 82a56f0d Luiz Capitulino
- "bus": bus number (json-int)
1325 82a56f0d Luiz Capitulino
- "devices": a json-array of json-objects, each json-object represents a
1326 82a56f0d Luiz Capitulino
             PCI device
1327 82a56f0d Luiz Capitulino
1328 82a56f0d Luiz Capitulino
The PCI device json-object contains the following:
1329 82a56f0d Luiz Capitulino
1330 82a56f0d Luiz Capitulino
- "bus": identical to the parent's bus number (json-int)
1331 82a56f0d Luiz Capitulino
- "slot": slot number (json-int)
1332 82a56f0d Luiz Capitulino
- "function": function number (json-int)
1333 82a56f0d Luiz Capitulino
- "class_info": a json-object containing:
1334 82a56f0d Luiz Capitulino
     - "desc": device class description (json-string, optional)
1335 82a56f0d Luiz Capitulino
     - "class": device class number (json-int)
1336 82a56f0d Luiz Capitulino
- "id": a json-object containing:
1337 82a56f0d Luiz Capitulino
     - "device": device ID (json-int)
1338 82a56f0d Luiz Capitulino
     - "vendor": vendor ID (json-int)
1339 82a56f0d Luiz Capitulino
- "irq": device's IRQ if assigned (json-int, optional)
1340 82a56f0d Luiz Capitulino
- "qdev_id": qdev id string (json-string)
1341 82a56f0d Luiz Capitulino
- "pci_bridge": It's a json-object, only present if this device is a
1342 82a56f0d Luiz Capitulino
                PCI bridge, contains:
1343 82a56f0d Luiz Capitulino
     - "bus": bus number (json-int)
1344 82a56f0d Luiz Capitulino
     - "secondary": secondary bus number (json-int)
1345 82a56f0d Luiz Capitulino
     - "subordinate": subordinate bus number (json-int)
1346 82a56f0d Luiz Capitulino
     - "io_range": I/O memory range information, a json-object with the
1347 82a56f0d Luiz Capitulino
                   following members:
1348 82a56f0d Luiz Capitulino
                 - "base": base address, in bytes (json-int)
1349 82a56f0d Luiz Capitulino
                 - "limit": limit address, in bytes (json-int)
1350 82a56f0d Luiz Capitulino
     - "memory_range": memory range information, a json-object with the
1351 82a56f0d Luiz Capitulino
                       following members:
1352 82a56f0d Luiz Capitulino
                 - "base": base address, in bytes (json-int)
1353 82a56f0d Luiz Capitulino
                 - "limit": limit address, in bytes (json-int)
1354 82a56f0d Luiz Capitulino
     - "prefetchable_range": Prefetchable memory range information, a
1355 82a56f0d Luiz Capitulino
                             json-object with the following members:
1356 82a56f0d Luiz Capitulino
                 - "base": base address, in bytes (json-int)
1357 82a56f0d Luiz Capitulino
                 - "limit": limit address, in bytes (json-int)
1358 82a56f0d Luiz Capitulino
     - "devices": a json-array of PCI devices if there's any attached, each
1359 82a56f0d Luiz Capitulino
                  each element is represented by a json-object, which contains
1360 82a56f0d Luiz Capitulino
                  the same members of the 'PCI device json-object' described
1361 82a56f0d Luiz Capitulino
                  above (optional)
1362 82a56f0d Luiz Capitulino
- "regions": a json-array of json-objects, each json-object represents a
1363 82a56f0d Luiz Capitulino
             memory region of this device
1364 82a56f0d Luiz Capitulino
1365 82a56f0d Luiz Capitulino
The memory range json-object contains the following:
1366 82a56f0d Luiz Capitulino
1367 82a56f0d Luiz Capitulino
- "base": base memory address (json-int)
1368 82a56f0d Luiz Capitulino
- "limit": limit value (json-int)
1369 82a56f0d Luiz Capitulino
1370 82a56f0d Luiz Capitulino
The region json-object can be an I/O region or a memory region, an I/O region
1371 82a56f0d Luiz Capitulino
json-object contains the following:
1372 82a56f0d Luiz Capitulino
1373 82a56f0d Luiz Capitulino
- "type": "io" (json-string, fixed)
1374 82a56f0d Luiz Capitulino
- "bar": BAR number (json-int)
1375 82a56f0d Luiz Capitulino
- "address": memory address (json-int)
1376 82a56f0d Luiz Capitulino
- "size": memory size (json-int)
1377 82a56f0d Luiz Capitulino
1378 82a56f0d Luiz Capitulino
A memory region json-object contains the following:
1379 82a56f0d Luiz Capitulino
1380 82a56f0d Luiz Capitulino
- "type": "memory" (json-string, fixed)
1381 82a56f0d Luiz Capitulino
- "bar": BAR number (json-int)
1382 82a56f0d Luiz Capitulino
- "address": memory address (json-int)
1383 82a56f0d Luiz Capitulino
- "size": memory size (json-int)
1384 82a56f0d Luiz Capitulino
- "mem_type_64": true or false (json-bool)
1385 82a56f0d Luiz Capitulino
- "prefetch": true or false (json-bool)
1386 82a56f0d Luiz Capitulino
1387 82a56f0d Luiz Capitulino
Example:
1388 82a56f0d Luiz Capitulino
1389 82a56f0d Luiz Capitulino
-> { "execute": "query-pci" }
1390 82a56f0d Luiz Capitulino
<- {
1391 82a56f0d Luiz Capitulino
      "return":[
1392 82a56f0d Luiz Capitulino
         {
1393 82a56f0d Luiz Capitulino
            "bus":0,
1394 82a56f0d Luiz Capitulino
            "devices":[
1395 82a56f0d Luiz Capitulino
               {
1396 82a56f0d Luiz Capitulino
                  "bus":0,
1397 82a56f0d Luiz Capitulino
                  "qdev_id":"",
1398 82a56f0d Luiz Capitulino
                  "slot":0,
1399 82a56f0d Luiz Capitulino
                  "class_info":{
1400 82a56f0d Luiz Capitulino
                     "class":1536,
1401 82a56f0d Luiz Capitulino
                     "desc":"Host bridge"
1402 82a56f0d Luiz Capitulino
                  },
1403 82a56f0d Luiz Capitulino
                  "id":{
1404 82a56f0d Luiz Capitulino
                     "device":32902,
1405 82a56f0d Luiz Capitulino
                     "vendor":4663
1406 82a56f0d Luiz Capitulino
                  },
1407 82a56f0d Luiz Capitulino
                  "function":0,
1408 82a56f0d Luiz Capitulino
                  "regions":[
1409 82a56f0d Luiz Capitulino
   
1410 82a56f0d Luiz Capitulino
                  ]
1411 82a56f0d Luiz Capitulino
               },
1412 82a56f0d Luiz Capitulino
               {
1413 82a56f0d Luiz Capitulino
                  "bus":0,
1414 82a56f0d Luiz Capitulino
                  "qdev_id":"",
1415 82a56f0d Luiz Capitulino
                  "slot":1,
1416 82a56f0d Luiz Capitulino
                  "class_info":{
1417 82a56f0d Luiz Capitulino
                     "class":1537,
1418 82a56f0d Luiz Capitulino
                     "desc":"ISA bridge"
1419 82a56f0d Luiz Capitulino
                  },
1420 82a56f0d Luiz Capitulino
                  "id":{
1421 82a56f0d Luiz Capitulino
                     "device":32902,
1422 82a56f0d Luiz Capitulino
                     "vendor":28672
1423 82a56f0d Luiz Capitulino
                  },
1424 82a56f0d Luiz Capitulino
                  "function":0,
1425 82a56f0d Luiz Capitulino
                  "regions":[
1426 82a56f0d Luiz Capitulino
   
1427 82a56f0d Luiz Capitulino
                  ]
1428 82a56f0d Luiz Capitulino
               },
1429 82a56f0d Luiz Capitulino
               {
1430 82a56f0d Luiz Capitulino
                  "bus":0,
1431 82a56f0d Luiz Capitulino
                  "qdev_id":"",
1432 82a56f0d Luiz Capitulino
                  "slot":1,
1433 82a56f0d Luiz Capitulino
                  "class_info":{
1434 82a56f0d Luiz Capitulino
                     "class":257,
1435 82a56f0d Luiz Capitulino
                     "desc":"IDE controller"
1436 82a56f0d Luiz Capitulino
                  },
1437 82a56f0d Luiz Capitulino
                  "id":{
1438 82a56f0d Luiz Capitulino
                     "device":32902,
1439 82a56f0d Luiz Capitulino
                     "vendor":28688
1440 82a56f0d Luiz Capitulino
                  },
1441 82a56f0d Luiz Capitulino
                  "function":1,
1442 82a56f0d Luiz Capitulino
                  "regions":[
1443 82a56f0d Luiz Capitulino
                     {
1444 82a56f0d Luiz Capitulino
                        "bar":4,
1445 82a56f0d Luiz Capitulino
                        "size":16,
1446 82a56f0d Luiz Capitulino
                        "address":49152,
1447 82a56f0d Luiz Capitulino
                        "type":"io"
1448 82a56f0d Luiz Capitulino
                     }
1449 82a56f0d Luiz Capitulino
                  ]
1450 82a56f0d Luiz Capitulino
               },
1451 82a56f0d Luiz Capitulino
               {
1452 82a56f0d Luiz Capitulino
                  "bus":0,
1453 82a56f0d Luiz Capitulino
                  "qdev_id":"",
1454 82a56f0d Luiz Capitulino
                  "slot":2,
1455 82a56f0d Luiz Capitulino
                  "class_info":{
1456 82a56f0d Luiz Capitulino
                     "class":768,
1457 82a56f0d Luiz Capitulino
                     "desc":"VGA controller"
1458 82a56f0d Luiz Capitulino
                  },
1459 82a56f0d Luiz Capitulino
                  "id":{
1460 82a56f0d Luiz Capitulino
                     "device":4115,
1461 82a56f0d Luiz Capitulino
                     "vendor":184
1462 82a56f0d Luiz Capitulino
                  },
1463 82a56f0d Luiz Capitulino
                  "function":0,
1464 82a56f0d Luiz Capitulino
                  "regions":[
1465 82a56f0d Luiz Capitulino
                     {
1466 82a56f0d Luiz Capitulino
                        "prefetch":true,
1467 82a56f0d Luiz Capitulino
                        "mem_type_64":false,
1468 82a56f0d Luiz Capitulino
                        "bar":0,
1469 82a56f0d Luiz Capitulino
                        "size":33554432,
1470 82a56f0d Luiz Capitulino
                        "address":4026531840,
1471 82a56f0d Luiz Capitulino
                        "type":"memory"
1472 82a56f0d Luiz Capitulino
                     },
1473 82a56f0d Luiz Capitulino
                     {
1474 82a56f0d Luiz Capitulino
                        "prefetch":false,
1475 82a56f0d Luiz Capitulino
                        "mem_type_64":false,
1476 82a56f0d Luiz Capitulino
                        "bar":1,
1477 82a56f0d Luiz Capitulino
                        "size":4096,
1478 82a56f0d Luiz Capitulino
                        "address":4060086272,
1479 82a56f0d Luiz Capitulino
                        "type":"memory"
1480 82a56f0d Luiz Capitulino
                     },
1481 82a56f0d Luiz Capitulino
                     {
1482 82a56f0d Luiz Capitulino
                        "prefetch":false,
1483 82a56f0d Luiz Capitulino
                        "mem_type_64":false,
1484 82a56f0d Luiz Capitulino
                        "bar":6,
1485 82a56f0d Luiz Capitulino
                        "size":65536,
1486 82a56f0d Luiz Capitulino
                        "address":-1,
1487 82a56f0d Luiz Capitulino
                        "type":"memory"
1488 82a56f0d Luiz Capitulino
                     }
1489 82a56f0d Luiz Capitulino
                  ]
1490 82a56f0d Luiz Capitulino
               },
1491 82a56f0d Luiz Capitulino
               {
1492 82a56f0d Luiz Capitulino
                  "bus":0,
1493 82a56f0d Luiz Capitulino
                  "qdev_id":"",
1494 82a56f0d Luiz Capitulino
                  "irq":11,
1495 82a56f0d Luiz Capitulino
                  "slot":4,
1496 82a56f0d Luiz Capitulino
                  "class_info":{
1497 82a56f0d Luiz Capitulino
                     "class":1280,
1498 82a56f0d Luiz Capitulino
                     "desc":"RAM controller"
1499 82a56f0d Luiz Capitulino
                  },
1500 82a56f0d Luiz Capitulino
                  "id":{
1501 82a56f0d Luiz Capitulino
                     "device":6900,
1502 82a56f0d Luiz Capitulino
                     "vendor":4098
1503 82a56f0d Luiz Capitulino
                  },
1504 82a56f0d Luiz Capitulino
                  "function":0,
1505 82a56f0d Luiz Capitulino
                  "regions":[
1506 82a56f0d Luiz Capitulino
                     {
1507 82a56f0d Luiz Capitulino
                        "bar":0,
1508 82a56f0d Luiz Capitulino
                        "size":32,
1509 82a56f0d Luiz Capitulino
                        "address":49280,
1510 82a56f0d Luiz Capitulino
                        "type":"io"
1511 82a56f0d Luiz Capitulino
                     }
1512 82a56f0d Luiz Capitulino
                  ]
1513 82a56f0d Luiz Capitulino
               }
1514 82a56f0d Luiz Capitulino
            ]
1515 82a56f0d Luiz Capitulino
         }
1516 82a56f0d Luiz Capitulino
      ]
1517 82a56f0d Luiz Capitulino
   }
1518 82a56f0d Luiz Capitulino
1519 82a56f0d Luiz Capitulino
Note: This example has been shortened as the real response is too long.
1520 82a56f0d Luiz Capitulino
1521 82a56f0d Luiz Capitulino
EQMP
1522 82a56f0d Luiz Capitulino
1523 82a56f0d Luiz Capitulino
SQMP
1524 82a56f0d Luiz Capitulino
query-kvm
1525 82a56f0d Luiz Capitulino
---------
1526 82a56f0d Luiz Capitulino
1527 82a56f0d Luiz Capitulino
Show KVM information.
1528 82a56f0d Luiz Capitulino
1529 82a56f0d Luiz Capitulino
Return a json-object with the following information:
1530 82a56f0d Luiz Capitulino
1531 82a56f0d Luiz Capitulino
- "enabled": true if KVM support is enabled, false otherwise (json-bool)
1532 82a56f0d Luiz Capitulino
- "present": true if QEMU has KVM support, false otherwise (json-bool)
1533 82a56f0d Luiz Capitulino
1534 82a56f0d Luiz Capitulino
Example:
1535 82a56f0d Luiz Capitulino
1536 82a56f0d Luiz Capitulino
-> { "execute": "query-kvm" }
1537 82a56f0d Luiz Capitulino
<- { "return": { "enabled": true, "present": true } }
1538 82a56f0d Luiz Capitulino
1539 82a56f0d Luiz Capitulino
EQMP
1540 82a56f0d Luiz Capitulino
1541 82a56f0d Luiz Capitulino
SQMP
1542 82a56f0d Luiz Capitulino
query-status
1543 82a56f0d Luiz Capitulino
------------
1544 82a56f0d Luiz Capitulino
1545 82a56f0d Luiz Capitulino
Return a json-object with the following information:
1546 82a56f0d Luiz Capitulino
1547 82a56f0d Luiz Capitulino
- "running": true if the VM is running, or false if it is paused (json-bool)
1548 82a56f0d Luiz Capitulino
- "singlestep": true if the VM is in single step mode,
1549 82a56f0d Luiz Capitulino
                false otherwise (json-bool)
1550 82a56f0d Luiz Capitulino
1551 82a56f0d Luiz Capitulino
Example:
1552 82a56f0d Luiz Capitulino
1553 82a56f0d Luiz Capitulino
-> { "execute": "query-status" }
1554 82a56f0d Luiz Capitulino
<- { "return": { "running": true, "singlestep": false } }
1555 82a56f0d Luiz Capitulino
1556 82a56f0d Luiz Capitulino
EQMP
1557 82a56f0d Luiz Capitulino
1558 82a56f0d Luiz Capitulino
SQMP
1559 82a56f0d Luiz Capitulino
query-mice
1560 82a56f0d Luiz Capitulino
----------
1561 82a56f0d Luiz Capitulino
1562 82a56f0d Luiz Capitulino
Show VM mice information.
1563 82a56f0d Luiz Capitulino
1564 82a56f0d Luiz Capitulino
Each mouse is represented by a json-object, the returned value is a json-array
1565 82a56f0d Luiz Capitulino
of all mice.
1566 82a56f0d Luiz Capitulino
1567 82a56f0d Luiz Capitulino
The mouse json-object contains the following:
1568 82a56f0d Luiz Capitulino
1569 82a56f0d Luiz Capitulino
- "name": mouse's name (json-string)
1570 82a56f0d Luiz Capitulino
- "index": mouse's index (json-int)
1571 82a56f0d Luiz Capitulino
- "current": true if this mouse is receiving events, false otherwise (json-bool)
1572 82a56f0d Luiz Capitulino
- "absolute": true if the mouse generates absolute input events (json-bool)
1573 82a56f0d Luiz Capitulino
1574 82a56f0d Luiz Capitulino
Example:
1575 82a56f0d Luiz Capitulino
1576 82a56f0d Luiz Capitulino
-> { "execute": "query-mice" }
1577 82a56f0d Luiz Capitulino
<- {
1578 82a56f0d Luiz Capitulino
      "return":[
1579 82a56f0d Luiz Capitulino
         {
1580 82a56f0d Luiz Capitulino
            "name":"QEMU Microsoft Mouse",
1581 82a56f0d Luiz Capitulino
            "index":0,
1582 82a56f0d Luiz Capitulino
            "current":false,
1583 82a56f0d Luiz Capitulino
            "absolute":false
1584 82a56f0d Luiz Capitulino
         },
1585 82a56f0d Luiz Capitulino
         {
1586 82a56f0d Luiz Capitulino
            "name":"QEMU PS/2 Mouse",
1587 82a56f0d Luiz Capitulino
            "index":1,
1588 82a56f0d Luiz Capitulino
            "current":true,
1589 82a56f0d Luiz Capitulino
            "absolute":true
1590 82a56f0d Luiz Capitulino
         }
1591 82a56f0d Luiz Capitulino
      ]
1592 82a56f0d Luiz Capitulino
   }
1593 82a56f0d Luiz Capitulino
1594 82a56f0d Luiz Capitulino
EQMP
1595 82a56f0d Luiz Capitulino
1596 82a56f0d Luiz Capitulino
SQMP
1597 82a56f0d Luiz Capitulino
query-vnc
1598 82a56f0d Luiz Capitulino
---------
1599 82a56f0d Luiz Capitulino
1600 82a56f0d Luiz Capitulino
Show VNC server information.
1601 82a56f0d Luiz Capitulino
1602 82a56f0d Luiz Capitulino
Return a json-object with server information. Connected clients are returned
1603 82a56f0d Luiz Capitulino
as a json-array of json-objects.
1604 82a56f0d Luiz Capitulino
1605 82a56f0d Luiz Capitulino
The main json-object contains the following:
1606 82a56f0d Luiz Capitulino
1607 82a56f0d Luiz Capitulino
- "enabled": true or false (json-bool)
1608 82a56f0d Luiz Capitulino
- "host": server's IP address (json-string)
1609 82a56f0d Luiz Capitulino
- "family": address family (json-string)
1610 82a56f0d Luiz Capitulino
         - Possible values: "ipv4", "ipv6", "unix", "unknown"
1611 82a56f0d Luiz Capitulino
- "service": server's port number (json-string)
1612 82a56f0d Luiz Capitulino
- "auth": authentication method (json-string)
1613 82a56f0d Luiz Capitulino
         - Possible values: "invalid", "none", "ra2", "ra2ne", "sasl", "tight",
1614 82a56f0d Luiz Capitulino
                            "tls", "ultra", "unknown", "vencrypt", "vencrypt",
1615 82a56f0d Luiz Capitulino
                            "vencrypt+plain", "vencrypt+tls+none",
1616 82a56f0d Luiz Capitulino
                            "vencrypt+tls+plain", "vencrypt+tls+sasl",
1617 82a56f0d Luiz Capitulino
                            "vencrypt+tls+vnc", "vencrypt+x509+none",
1618 82a56f0d Luiz Capitulino
                            "vencrypt+x509+plain", "vencrypt+x509+sasl",
1619 82a56f0d Luiz Capitulino
                            "vencrypt+x509+vnc", "vnc"
1620 82a56f0d Luiz Capitulino
- "clients": a json-array of all connected clients
1621 82a56f0d Luiz Capitulino
1622 82a56f0d Luiz Capitulino
Clients are described by a json-object, each one contain the following:
1623 82a56f0d Luiz Capitulino
1624 82a56f0d Luiz Capitulino
- "host": client's IP address (json-string)
1625 82a56f0d Luiz Capitulino
- "family": address family (json-string)
1626 82a56f0d Luiz Capitulino
         - Possible values: "ipv4", "ipv6", "unix", "unknown"
1627 82a56f0d Luiz Capitulino
- "service": client's port number (json-string)
1628 82a56f0d Luiz Capitulino
- "x509_dname": TLS dname (json-string, optional)
1629 82a56f0d Luiz Capitulino
- "sasl_username": SASL username (json-string, optional)
1630 82a56f0d Luiz Capitulino
1631 82a56f0d Luiz Capitulino
Example:
1632 82a56f0d Luiz Capitulino
1633 82a56f0d Luiz Capitulino
-> { "execute": "query-vnc" }
1634 82a56f0d Luiz Capitulino
<- {
1635 82a56f0d Luiz Capitulino
      "return":{
1636 82a56f0d Luiz Capitulino
         "enabled":true,
1637 82a56f0d Luiz Capitulino
         "host":"0.0.0.0",
1638 82a56f0d Luiz Capitulino
         "service":"50402",
1639 82a56f0d Luiz Capitulino
         "auth":"vnc",
1640 82a56f0d Luiz Capitulino
         "family":"ipv4",
1641 82a56f0d Luiz Capitulino
         "clients":[
1642 82a56f0d Luiz Capitulino
            {
1643 82a56f0d Luiz Capitulino
               "host":"127.0.0.1",
1644 82a56f0d Luiz Capitulino
               "service":"50401",
1645 82a56f0d Luiz Capitulino
               "family":"ipv4"
1646 82a56f0d Luiz Capitulino
            }
1647 82a56f0d Luiz Capitulino
         ]
1648 82a56f0d Luiz Capitulino
      }
1649 82a56f0d Luiz Capitulino
   }
1650 82a56f0d Luiz Capitulino
1651 82a56f0d Luiz Capitulino
EQMP
1652 82a56f0d Luiz Capitulino
1653 82a56f0d Luiz Capitulino
SQMP
1654 cb42a870 Gerd Hoffmann
query-spice
1655 cb42a870 Gerd Hoffmann
-----------
1656 cb42a870 Gerd Hoffmann
1657 cb42a870 Gerd Hoffmann
Show SPICE server information.
1658 cb42a870 Gerd Hoffmann
1659 cb42a870 Gerd Hoffmann
Return a json-object with server information. Connected clients are returned
1660 cb42a870 Gerd Hoffmann
as a json-array of json-objects.
1661 cb42a870 Gerd Hoffmann
1662 cb42a870 Gerd Hoffmann
The main json-object contains the following:
1663 cb42a870 Gerd Hoffmann
1664 cb42a870 Gerd Hoffmann
- "enabled": true or false (json-bool)
1665 cb42a870 Gerd Hoffmann
- "host": server's IP address (json-string)
1666 cb42a870 Gerd Hoffmann
- "port": server's port number (json-int, optional)
1667 cb42a870 Gerd Hoffmann
- "tls-port": server's port number (json-int, optional)
1668 cb42a870 Gerd Hoffmann
- "auth": authentication method (json-string)
1669 cb42a870 Gerd Hoffmann
         - Possible values: "none", "spice"
1670 cb42a870 Gerd Hoffmann
- "channels": a json-array of all active channels clients
1671 cb42a870 Gerd Hoffmann
1672 cb42a870 Gerd Hoffmann
Channels are described by a json-object, each one contain the following:
1673 cb42a870 Gerd Hoffmann
1674 cb42a870 Gerd Hoffmann
- "host": client's IP address (json-string)
1675 cb42a870 Gerd Hoffmann
- "family": address family (json-string)
1676 cb42a870 Gerd Hoffmann
         - Possible values: "ipv4", "ipv6", "unix", "unknown"
1677 cb42a870 Gerd Hoffmann
- "port": client's port number (json-string)
1678 cb42a870 Gerd Hoffmann
- "connection-id": spice connection id.  All channels with the same id
1679 cb42a870 Gerd Hoffmann
                   belong to the same spice session (json-int)
1680 cb42a870 Gerd Hoffmann
- "channel-type": channel type.  "1" is the main control channel, filter for
1681 cb42a870 Gerd Hoffmann
                  this one if you want track spice sessions only (json-int)
1682 cb42a870 Gerd Hoffmann
- "channel-id": channel id.  Usually "0", might be different needed when
1683 cb42a870 Gerd Hoffmann
                multiple channels of the same type exist, such as multiple
1684 cb42a870 Gerd Hoffmann
                display channels in a multihead setup (json-int)
1685 cb42a870 Gerd Hoffmann
- "tls": whevener the channel is encrypted (json-bool)
1686 cb42a870 Gerd Hoffmann
1687 cb42a870 Gerd Hoffmann
Example:
1688 cb42a870 Gerd Hoffmann
1689 cb42a870 Gerd Hoffmann
-> { "execute": "query-spice" }
1690 cb42a870 Gerd Hoffmann
<- {
1691 cb42a870 Gerd Hoffmann
      "return": {
1692 cb42a870 Gerd Hoffmann
         "enabled": true,
1693 cb42a870 Gerd Hoffmann
         "auth": "spice",
1694 cb42a870 Gerd Hoffmann
         "port": 5920,
1695 cb42a870 Gerd Hoffmann
         "tls-port": 5921,
1696 cb42a870 Gerd Hoffmann
         "host": "0.0.0.0",
1697 cb42a870 Gerd Hoffmann
         "channels": [
1698 cb42a870 Gerd Hoffmann
            {
1699 cb42a870 Gerd Hoffmann
               "port": "54924",
1700 cb42a870 Gerd Hoffmann
               "family": "ipv4",
1701 cb42a870 Gerd Hoffmann
               "channel-type": 1,
1702 cb42a870 Gerd Hoffmann
               "connection-id": 1804289383,
1703 cb42a870 Gerd Hoffmann
               "host": "127.0.0.1",
1704 cb42a870 Gerd Hoffmann
               "channel-id": 0,
1705 cb42a870 Gerd Hoffmann
               "tls": true
1706 cb42a870 Gerd Hoffmann
            },
1707 cb42a870 Gerd Hoffmann
            {
1708 cb42a870 Gerd Hoffmann
               "port": "36710",
1709 cb42a870 Gerd Hoffmann
               "family": "ipv4",
1710 cb42a870 Gerd Hoffmann
               "channel-type": 4,
1711 cb42a870 Gerd Hoffmann
               "connection-id": 1804289383,
1712 cb42a870 Gerd Hoffmann
               "host": "127.0.0.1",
1713 cb42a870 Gerd Hoffmann
               "channel-id": 0,
1714 cb42a870 Gerd Hoffmann
               "tls": false
1715 cb42a870 Gerd Hoffmann
            },
1716 cb42a870 Gerd Hoffmann
            [ ... more channels follow ... ]
1717 cb42a870 Gerd Hoffmann
         ]
1718 cb42a870 Gerd Hoffmann
      }
1719 cb42a870 Gerd Hoffmann
   }
1720 cb42a870 Gerd Hoffmann
1721 cb42a870 Gerd Hoffmann
EQMP
1722 cb42a870 Gerd Hoffmann
1723 cb42a870 Gerd Hoffmann
SQMP
1724 82a56f0d Luiz Capitulino
query-name
1725 82a56f0d Luiz Capitulino
----------
1726 82a56f0d Luiz Capitulino
1727 82a56f0d Luiz Capitulino
Show VM name.
1728 82a56f0d Luiz Capitulino
1729 82a56f0d Luiz Capitulino
Return a json-object with the following information:
1730 82a56f0d Luiz Capitulino
1731 82a56f0d Luiz Capitulino
- "name": VM's name (json-string, optional)
1732 82a56f0d Luiz Capitulino
1733 82a56f0d Luiz Capitulino
Example:
1734 82a56f0d Luiz Capitulino
1735 82a56f0d Luiz Capitulino
-> { "execute": "query-name" }
1736 82a56f0d Luiz Capitulino
<- { "return": { "name": "qemu-name" } }
1737 82a56f0d Luiz Capitulino
1738 82a56f0d Luiz Capitulino
EQMP
1739 82a56f0d Luiz Capitulino
1740 82a56f0d Luiz Capitulino
SQMP
1741 82a56f0d Luiz Capitulino
query-uuid
1742 82a56f0d Luiz Capitulino
----------
1743 82a56f0d Luiz Capitulino
1744 82a56f0d Luiz Capitulino
Show VM UUID.
1745 82a56f0d Luiz Capitulino
1746 82a56f0d Luiz Capitulino
Return a json-object with the following information:
1747 82a56f0d Luiz Capitulino
1748 82a56f0d Luiz Capitulino
- "UUID": Universally Unique Identifier (json-string)
1749 82a56f0d Luiz Capitulino
1750 82a56f0d Luiz Capitulino
Example:
1751 82a56f0d Luiz Capitulino
1752 82a56f0d Luiz Capitulino
-> { "execute": "query-uuid" }
1753 82a56f0d Luiz Capitulino
<- { "return": { "UUID": "550e8400-e29b-41d4-a716-446655440000" } }
1754 82a56f0d Luiz Capitulino
1755 82a56f0d Luiz Capitulino
EQMP
1756 82a56f0d Luiz Capitulino
1757 82a56f0d Luiz Capitulino
SQMP
1758 82a56f0d Luiz Capitulino
query-migrate
1759 82a56f0d Luiz Capitulino
-------------
1760 82a56f0d Luiz Capitulino
1761 82a56f0d Luiz Capitulino
Migration status.
1762 82a56f0d Luiz Capitulino
1763 82a56f0d Luiz Capitulino
Return a json-object. If migration is active there will be another json-object
1764 82a56f0d Luiz Capitulino
with RAM migration status and if block migration is active another one with
1765 82a56f0d Luiz Capitulino
block migration status.
1766 82a56f0d Luiz Capitulino
1767 82a56f0d Luiz Capitulino
The main json-object contains the following:
1768 82a56f0d Luiz Capitulino
1769 82a56f0d Luiz Capitulino
- "status": migration status (json-string)
1770 82a56f0d Luiz Capitulino
     - Possible values: "active", "completed", "failed", "cancelled"
1771 82a56f0d Luiz Capitulino
- "ram": only present if "status" is "active", it is a json-object with the
1772 82a56f0d Luiz Capitulino
  following RAM information (in bytes):
1773 82a56f0d Luiz Capitulino
         - "transferred": amount transferred (json-int)
1774 82a56f0d Luiz Capitulino
         - "remaining": amount remaining (json-int)
1775 82a56f0d Luiz Capitulino
         - "total": total (json-int)
1776 82a56f0d Luiz Capitulino
- "disk": only present if "status" is "active" and it is a block migration,
1777 82a56f0d Luiz Capitulino
  it is a json-object with the following disk information (in bytes):
1778 82a56f0d Luiz Capitulino
         - "transferred": amount transferred (json-int)
1779 82a56f0d Luiz Capitulino
         - "remaining": amount remaining (json-int)
1780 82a56f0d Luiz Capitulino
         - "total": total (json-int)
1781 82a56f0d Luiz Capitulino
1782 82a56f0d Luiz Capitulino
Examples:
1783 82a56f0d Luiz Capitulino
1784 82a56f0d Luiz Capitulino
1. Before the first migration
1785 82a56f0d Luiz Capitulino
1786 82a56f0d Luiz Capitulino
-> { "execute": "query-migrate" }
1787 82a56f0d Luiz Capitulino
<- { "return": {} }
1788 82a56f0d Luiz Capitulino
1789 82a56f0d Luiz Capitulino
2. Migration is done and has succeeded
1790 82a56f0d Luiz Capitulino
1791 82a56f0d Luiz Capitulino
-> { "execute": "query-migrate" }
1792 82a56f0d Luiz Capitulino
<- { "return": { "status": "completed" } }
1793 82a56f0d Luiz Capitulino
1794 82a56f0d Luiz Capitulino
3. Migration is done and has failed
1795 82a56f0d Luiz Capitulino
1796 82a56f0d Luiz Capitulino
-> { "execute": "query-migrate" }
1797 82a56f0d Luiz Capitulino
<- { "return": { "status": "failed" } }
1798 82a56f0d Luiz Capitulino
1799 82a56f0d Luiz Capitulino
4. Migration is being performed and is not a block migration:
1800 82a56f0d Luiz Capitulino
1801 82a56f0d Luiz Capitulino
-> { "execute": "query-migrate" }
1802 82a56f0d Luiz Capitulino
<- {
1803 82a56f0d Luiz Capitulino
      "return":{
1804 82a56f0d Luiz Capitulino
         "status":"active",
1805 82a56f0d Luiz Capitulino
         "ram":{
1806 82a56f0d Luiz Capitulino
            "transferred":123,
1807 82a56f0d Luiz Capitulino
            "remaining":123,
1808 82a56f0d Luiz Capitulino
            "total":246
1809 82a56f0d Luiz Capitulino
         }
1810 82a56f0d Luiz Capitulino
      }
1811 82a56f0d Luiz Capitulino
   }
1812 82a56f0d Luiz Capitulino
1813 82a56f0d Luiz Capitulino
5. Migration is being performed and is a block migration:
1814 82a56f0d Luiz Capitulino
1815 82a56f0d Luiz Capitulino
-> { "execute": "query-migrate" }
1816 82a56f0d Luiz Capitulino
<- {
1817 82a56f0d Luiz Capitulino
      "return":{
1818 82a56f0d Luiz Capitulino
         "status":"active",
1819 82a56f0d Luiz Capitulino
         "ram":{
1820 82a56f0d Luiz Capitulino
            "total":1057024,
1821 82a56f0d Luiz Capitulino
            "remaining":1053304,
1822 82a56f0d Luiz Capitulino
            "transferred":3720
1823 82a56f0d Luiz Capitulino
         },
1824 82a56f0d Luiz Capitulino
         "disk":{
1825 82a56f0d Luiz Capitulino
            "total":20971520,
1826 82a56f0d Luiz Capitulino
            "remaining":20880384,
1827 82a56f0d Luiz Capitulino
            "transferred":91136
1828 82a56f0d Luiz Capitulino
         }
1829 82a56f0d Luiz Capitulino
      }
1830 82a56f0d Luiz Capitulino
   }
1831 82a56f0d Luiz Capitulino
1832 82a56f0d Luiz Capitulino
EQMP
1833 82a56f0d Luiz Capitulino
1834 82a56f0d Luiz Capitulino
SQMP
1835 82a56f0d Luiz Capitulino
query-balloon
1836 82a56f0d Luiz Capitulino
-------------
1837 82a56f0d Luiz Capitulino
1838 82a56f0d Luiz Capitulino
Show balloon information.
1839 82a56f0d Luiz Capitulino
1840 82a56f0d Luiz Capitulino
Make an asynchronous request for balloon info. When the request completes a
1841 82a56f0d Luiz Capitulino
json-object will be returned containing the following data:
1842 82a56f0d Luiz Capitulino
1843 82a56f0d Luiz Capitulino
- "actual": current balloon value in bytes (json-int)
1844 82a56f0d Luiz Capitulino
- "mem_swapped_in": Amount of memory swapped in bytes (json-int, optional)
1845 82a56f0d Luiz Capitulino
- "mem_swapped_out": Amount of memory swapped out in bytes (json-int, optional)
1846 82a56f0d Luiz Capitulino
- "major_page_faults": Number of major faults (json-int, optional)
1847 82a56f0d Luiz Capitulino
- "minor_page_faults": Number of minor faults (json-int, optional)
1848 82a56f0d Luiz Capitulino
- "free_mem": Total amount of free and unused memory in
1849 82a56f0d Luiz Capitulino
              bytes (json-int, optional)
1850 82a56f0d Luiz Capitulino
- "total_mem": Total amount of available memory in bytes (json-int, optional)
1851 82a56f0d Luiz Capitulino
1852 82a56f0d Luiz Capitulino
Example:
1853 82a56f0d Luiz Capitulino
1854 82a56f0d Luiz Capitulino
-> { "execute": "query-balloon" }
1855 82a56f0d Luiz Capitulino
<- {
1856 82a56f0d Luiz Capitulino
      "return":{
1857 82a56f0d Luiz Capitulino
         "actual":1073741824,
1858 82a56f0d Luiz Capitulino
         "mem_swapped_in":0,
1859 82a56f0d Luiz Capitulino
         "mem_swapped_out":0,
1860 82a56f0d Luiz Capitulino
         "major_page_faults":142,
1861 82a56f0d Luiz Capitulino
         "minor_page_faults":239245,
1862 82a56f0d Luiz Capitulino
         "free_mem":1014185984,
1863 82a56f0d Luiz Capitulino
         "total_mem":1044668416
1864 82a56f0d Luiz Capitulino
      }
1865 82a56f0d Luiz Capitulino
   }
1866 82a56f0d Luiz Capitulino
1867 82a56f0d Luiz Capitulino
EQMP