Statistics
| Branch: | Revision:

root / qmp-commands.hx @ 6ce2d77a

History | View | Annotate | Download (52.3 kB)

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