]> git.proxmox.com Git - qemu.git/blame - qemu-monitor.hx
vnc: rename vnc-encoding-* vnc-enc-*
[qemu.git] / qemu-monitor.hx
CommitLineData
2313086a
BS
1HXCOMM Use DEFHEADING() to define headings in both help text and texi
2HXCOMM Text between STEXI and ETEXI are copied to texi version and
3HXCOMM discarded from C version
b40292e7
JK
4HXCOMM Text between SQMP and EQMP is copied to the QMP documention file and
5HXCOMM does not show up in the other formats.
2313086a
BS
6HXCOMM DEF(command, args, callback, arg_string, help) is used to construct
7HXCOMM monitor commands
8HXCOMM HXCOMM can be used for comments, discarded from both texi and C
9
b40292e7
JK
10SQMP
11 QMP Supported Commands
12 ----------------------
13
14This document describes all commands currently supported by QMP.
15
16Most of the time their usage is exactly the same as in the user Monitor, this
17means that any other document which also describe commands (the manpage,
18QEMU's manual, etc) can and should be consulted.
19
20QMP has two types of commands: regular and query commands. Regular commands
21usually change the Virtual Machine's state someway, while query commands just
22return information. The sections below are divided accordingly.
23
24It's important to observe that all communication examples are formatted in
25a reader-friendly way, so that they're easier to understand. However, in real
26protocol usage, they're emitted as a single line.
27
28Also, the following notation is used to denote data flow:
29
30-> data issued by the Client
31<- Server data response
32
33Please, refer to the QMP specification (QMP/qmp-spec.txt) for detailed
34information on the Server command and response formats.
35
36NOTE: This document is temporary and will be replaced soon.
37
381. Regular Commands
39===================
40
41Server's responses in the examples below are always a success response, please
42refer to the QMP specification for more details on error responses.
43
44EQMP
45
2313086a
BS
46STEXI
47@table @option
48ETEXI
49
d7f9b689
LC
50 {
51 .name = "help|?",
52 .args_type = "name:s?",
d7f9b689
LC
53 .params = "[cmd]",
54 .help = "show the help",
af4ce882 55 .mhandler.cmd = do_help_cmd,
d7f9b689
LC
56 },
57
2313086a
BS
58STEXI
59@item help or ? [@var{cmd}]
70fcbbe7 60@findex help
2313086a
BS
61Show the help for all commands or just for command @var{cmd}.
62ETEXI
63
d7f9b689
LC
64 {
65 .name = "commit",
66 .args_type = "device:B",
d7f9b689
LC
67 .params = "device|all",
68 .help = "commit changes to the disk images (if -snapshot is used) or backing files",
af4ce882 69 .mhandler.cmd = do_commit,
d7f9b689
LC
70 },
71
2313086a
BS
72STEXI
73@item commit
70fcbbe7 74@findex commit
2313086a 75Commit changes to the disk images (if -snapshot is used) or backing files.
2313086a
BS
76ETEXI
77
d7f9b689
LC
78 {
79 .name = "q|quit",
80 .args_type = "",
d7f9b689
LC
81 .params = "",
82 .help = "quit the emulator",
b223f35f 83 .user_print = monitor_user_noop,
261394db 84 .mhandler.cmd_new = do_quit,
d7f9b689
LC
85 },
86
2313086a
BS
87STEXI
88@item q or quit
70fcbbe7 89@findex quit
2313086a
BS
90Quit the emulator.
91ETEXI
b40292e7
JK
92SQMP
93quit
94----
95
96Quit the emulator.
97
98Arguments: None.
99
100Example:
101
102-> { "execute": "quit" }
103<- { "return": {} }
104
105EQMP
2313086a 106
d7f9b689
LC
107 {
108 .name = "eject",
78d714e0 109 .args_type = "force:-f,device:B",
d7f9b689
LC
110 .params = "[-f] device",
111 .help = "eject a removable medium (use -f to force it)",
e1c923a6 112 .user_print = monitor_user_noop,
261394db 113 .mhandler.cmd_new = do_eject,
d7f9b689
LC
114 },
115
2313086a
BS
116STEXI
117@item eject [-f] @var{device}
70fcbbe7 118@findex eject
2313086a
BS
119Eject a removable medium (use -f to force it).
120ETEXI
b40292e7
JK
121SQMP
122eject
123-----
124
125Eject a removable medium.
126
127Arguments:
128
129- force: force ejection (json-bool, optional)
130- device: device name (json-string)
131
132Example:
133
134-> { "execute": "eject", "arguments": { "device": "ide1-cd0" } }
135<- { "return": {} }
136
137Note: The "force" argument defaults to false.
138
139EQMP
2313086a 140
d7f9b689
LC
141 {
142 .name = "change",
143 .args_type = "device:B,target:F,arg:s?",
d7f9b689
LC
144 .params = "device filename [format]",
145 .help = "change a removable medium, optional format",
ec3b82af 146 .user_print = monitor_user_noop,
261394db 147 .mhandler.cmd_new = do_change,
d7f9b689
LC
148 },
149
2313086a
BS
150STEXI
151@item change @var{device} @var{setting}
70fcbbe7 152@findex change
2313086a
BS
153
154Change the configuration of a device.
155
156@table @option
157@item change @var{diskdevice} @var{filename} [@var{format}]
158Change the medium for a removable disk device to point to @var{filename}. eg
159
160@example
161(qemu) change ide1-cd0 /path/to/some.iso
162@end example
163
164@var{format} is optional.
165
166@item change vnc @var{display},@var{options}
167Change the configuration of the VNC server. The valid syntax for @var{display}
168and @var{options} are described at @ref{sec_invocation}. eg
169
170@example
171(qemu) change vnc localhost:1
172@end example
173
174@item change vnc password [@var{password}]
175
176Change the password associated with the VNC server. If the new password is not
177supplied, the monitor will prompt for it to be entered. VNC passwords are only
178significant up to 8 letters. eg
179
180@example
181(qemu) change vnc password
182Password: ********
183@end example
184
185@end table
186ETEXI
b40292e7
JK
187SQMP
188change
189------
190
191Change a removable medium or VNC configuration.
192
193Arguments:
194
195- "device": device name (json-string)
196- "target": filename or item (json-string)
197- "arg": additional argument (json-string, optional)
198
199Examples:
200
2011. Change a removable medium
202
203-> { "execute": "change",
204 "arguments": { "device": "ide1-cd0",
205 "target": "/srv/images/Fedora-12-x86_64-DVD.iso" } }
206<- { "return": {} }
207
2082. Change VNC password
209
210-> { "execute": "change",
211 "arguments": { "device": "vnc", "target": "password",
212 "arg": "foobar1" } }
213<- { "return": {} }
214
215EQMP
2313086a 216
d7f9b689
LC
217 {
218 .name = "screendump",
219 .args_type = "filename:F",
d7f9b689
LC
220 .params = "filename",
221 .help = "save screen into PPM image 'filename'",
f1dc58e0
LC
222 .user_print = monitor_user_noop,
223 .mhandler.cmd_new = do_screen_dump,
d7f9b689
LC
224 },
225
2313086a
BS
226STEXI
227@item screendump @var{filename}
70fcbbe7 228@findex screendump
2313086a
BS
229Save screen into PPM image @var{filename}.
230ETEXI
b40292e7
JK
231SQMP
232screendump
233----------
234
235Save screen into PPM image.
236
237Arguments:
238
239- "filename": file path (json-string)
240
241Example:
242
243-> { "execute": "screendump", "arguments": { "filename": "/tmp/image" } }
244<- { "return": {} }
245
246EQMP
2313086a 247
d7f9b689
LC
248 {
249 .name = "logfile",
250 .args_type = "filename:F",
d7f9b689
LC
251 .params = "filename",
252 .help = "output logs to 'filename'",
af4ce882 253 .mhandler.cmd = do_logfile,
d7f9b689
LC
254 },
255
2313086a
BS
256STEXI
257@item logfile @var{filename}
70fcbbe7 258@findex logfile
2313086a
BS
259Output logs to @var{filename}.
260ETEXI
261
d7f9b689
LC
262 {
263 .name = "log",
264 .args_type = "items:s",
d7f9b689
LC
265 .params = "item1[,...]",
266 .help = "activate logging of the specified items to '/tmp/qemu.log'",
af4ce882 267 .mhandler.cmd = do_log,
d7f9b689
LC
268 },
269
2313086a
BS
270STEXI
271@item log @var{item1}[,...]
70fcbbe7 272@findex log
2313086a
BS
273Activate logging of the specified items to @file{/tmp/qemu.log}.
274ETEXI
275
d7f9b689
LC
276 {
277 .name = "savevm",
278 .args_type = "name:s?",
d7f9b689
LC
279 .params = "[tag|id]",
280 .help = "save a VM snapshot. If no tag or id are provided, a new snapshot is created",
af4ce882 281 .mhandler.cmd = do_savevm,
d7f9b689
LC
282 },
283
2313086a
BS
284STEXI
285@item savevm [@var{tag}|@var{id}]
70fcbbe7 286@findex savevm
2313086a
BS
287Create a snapshot of the whole virtual machine. If @var{tag} is
288provided, it is used as human readable identifier. If there is already
289a snapshot with the same tag or ID, it is replaced. More info at
290@ref{vm_snapshots}.
291ETEXI
292
d7f9b689
LC
293 {
294 .name = "loadvm",
295 .args_type = "name:s",
d7f9b689
LC
296 .params = "tag|id",
297 .help = "restore a VM snapshot from its tag or id",
af4ce882 298 .mhandler.cmd = do_loadvm,
d7f9b689
LC
299 },
300
2313086a
BS
301STEXI
302@item loadvm @var{tag}|@var{id}
70fcbbe7 303@findex loadvm
2313086a
BS
304Set the whole virtual machine to the snapshot identified by the tag
305@var{tag} or the unique snapshot ID @var{id}.
306ETEXI
307
d7f9b689
LC
308 {
309 .name = "delvm",
310 .args_type = "name:s",
d7f9b689
LC
311 .params = "tag|id",
312 .help = "delete a VM snapshot from its tag or id",
af4ce882 313 .mhandler.cmd = do_delvm,
d7f9b689
LC
314 },
315
2313086a
BS
316STEXI
317@item delvm @var{tag}|@var{id}
70fcbbe7 318@findex delvm
2313086a
BS
319Delete the snapshot identified by @var{tag} or @var{id}.
320ETEXI
321
d7f9b689
LC
322 {
323 .name = "singlestep",
324 .args_type = "option:s?",
d7f9b689
LC
325 .params = "[on|off]",
326 .help = "run emulation in singlestep mode or switch to normal mode",
af4ce882 327 .mhandler.cmd = do_singlestep,
d7f9b689
LC
328 },
329
2313086a
BS
330STEXI
331@item singlestep [off]
70fcbbe7 332@findex singlestep
2313086a
BS
333Run the emulation in single step mode.
334If called with option off, the emulation returns to normal mode.
335ETEXI
336
d7f9b689
LC
337 {
338 .name = "stop",
339 .args_type = "",
d7f9b689
LC
340 .params = "",
341 .help = "stop emulation",
e0c97bde 342 .user_print = monitor_user_noop,
261394db 343 .mhandler.cmd_new = do_stop,
d7f9b689
LC
344 },
345
2313086a
BS
346STEXI
347@item stop
70fcbbe7 348@findex stop
2313086a
BS
349Stop emulation.
350ETEXI
b40292e7
JK
351SQMP
352stop
353----
354
355Stop the emulator.
356
357Arguments: None.
358
359Example:
360
361-> { "execute": "stop" }
362<- { "return": {} }
363
364EQMP
2313086a 365
d7f9b689
LC
366 {
367 .name = "c|cont",
368 .args_type = "",
d7f9b689
LC
369 .params = "",
370 .help = "resume emulation",
a1f896a0 371 .user_print = monitor_user_noop,
261394db 372 .mhandler.cmd_new = do_cont,
d7f9b689
LC
373 },
374
2313086a
BS
375STEXI
376@item c or cont
70fcbbe7 377@findex cont
2313086a
BS
378Resume emulation.
379ETEXI
b40292e7
JK
380SQMP
381cont
382----
383
384Resume emulation.
385
386Arguments: None.
387
388Example:
389
390-> { "execute": "cont" }
391<- { "return": {} }
392
393EQMP
2313086a 394
d7f9b689
LC
395 {
396 .name = "gdbserver",
397 .args_type = "device:s?",
d7f9b689
LC
398 .params = "[device]",
399 .help = "start gdbserver on given device (default 'tcp::1234'), stop with 'none'",
af4ce882 400 .mhandler.cmd = do_gdbserver,
d7f9b689
LC
401 },
402
2313086a
BS
403STEXI
404@item gdbserver [@var{port}]
70fcbbe7 405@findex gdbserver
2313086a
BS
406Start gdbserver session (default @var{port}=1234)
407ETEXI
408
d7f9b689
LC
409 {
410 .name = "x",
411 .args_type = "fmt:/,addr:l",
d7f9b689
LC
412 .params = "/fmt addr",
413 .help = "virtual memory dump starting at 'addr'",
af4ce882 414 .mhandler.cmd = do_memory_dump,
d7f9b689
LC
415 },
416
2313086a
BS
417STEXI
418@item x/fmt @var{addr}
70fcbbe7 419@findex x
2313086a
BS
420Virtual memory dump starting at @var{addr}.
421ETEXI
422
d7f9b689
LC
423 {
424 .name = "xp",
425 .args_type = "fmt:/,addr:l",
d7f9b689
LC
426 .params = "/fmt addr",
427 .help = "physical memory dump starting at 'addr'",
af4ce882 428 .mhandler.cmd = do_physical_memory_dump,
d7f9b689
LC
429 },
430
2313086a
BS
431STEXI
432@item xp /@var{fmt} @var{addr}
70fcbbe7 433@findex xp
2313086a
BS
434Physical memory dump starting at @var{addr}.
435
436@var{fmt} is a format which tells the command how to format the
437data. Its syntax is: @option{/@{count@}@{format@}@{size@}}
438
439@table @var
440@item count
441is the number of items to be dumped.
442
443@item format
444can be x (hex), d (signed decimal), u (unsigned decimal), o (octal),
445c (char) or i (asm instruction).
446
447@item size
448can be b (8 bits), h (16 bits), w (32 bits) or g (64 bits). On x86,
449@code{h} or @code{w} can be specified with the @code{i} format to
450respectively select 16 or 32 bit code instruction size.
451
452@end table
453
454Examples:
455@itemize
456@item
457Dump 10 instructions at the current instruction pointer:
458@example
459(qemu) x/10i $eip
4600x90107063: ret
4610x90107064: sti
4620x90107065: lea 0x0(%esi,1),%esi
4630x90107069: lea 0x0(%edi,1),%edi
4640x90107070: ret
4650x90107071: jmp 0x90107080
4660x90107073: nop
4670x90107074: nop
4680x90107075: nop
4690x90107076: nop
470@end example
471
472@item
473Dump 80 16 bit values at the start of the video memory.
474@smallexample
475(qemu) xp/80hx 0xb8000
4760x000b8000: 0x0b50 0x0b6c 0x0b65 0x0b78 0x0b38 0x0b36 0x0b2f 0x0b42
4770x000b8010: 0x0b6f 0x0b63 0x0b68 0x0b73 0x0b20 0x0b56 0x0b47 0x0b41
4780x000b8020: 0x0b42 0x0b69 0x0b6f 0x0b73 0x0b20 0x0b63 0x0b75 0x0b72
4790x000b8030: 0x0b72 0x0b65 0x0b6e 0x0b74 0x0b2d 0x0b63 0x0b76 0x0b73
4800x000b8040: 0x0b20 0x0b30 0x0b35 0x0b20 0x0b4e 0x0b6f 0x0b76 0x0b20
4810x000b8050: 0x0b32 0x0b30 0x0b30 0x0b33 0x0720 0x0720 0x0720 0x0720
4820x000b8060: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
4830x000b8070: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
4840x000b8080: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
4850x000b8090: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
486@end smallexample
487@end itemize
488ETEXI
489
d7f9b689
LC
490 {
491 .name = "p|print",
492 .args_type = "fmt:/,val:l",
d7f9b689
LC
493 .params = "/fmt expr",
494 .help = "print expression value (use $reg for CPU register access)",
af4ce882 495 .mhandler.cmd = do_print,
d7f9b689
LC
496 },
497
2313086a
BS
498STEXI
499@item p or print/@var{fmt} @var{expr}
70fcbbe7 500@findex print
2313086a
BS
501
502Print expression value. Only the @var{format} part of @var{fmt} is
503used.
504ETEXI
505
d7f9b689
LC
506 {
507 .name = "i",
508 .args_type = "fmt:/,addr:i,index:i.",
d7f9b689
LC
509 .params = "/fmt addr",
510 .help = "I/O port read",
af4ce882 511 .mhandler.cmd = do_ioport_read,
d7f9b689
LC
512 },
513
2313086a
BS
514STEXI
515Read I/O port.
516ETEXI
517
d7f9b689
LC
518 {
519 .name = "o",
520 .args_type = "fmt:/,addr:i,val:i",
d7f9b689
LC
521 .params = "/fmt addr value",
522 .help = "I/O port write",
af4ce882 523 .mhandler.cmd = do_ioport_write,
d7f9b689
LC
524 },
525
f114784f
JK
526STEXI
527Write to I/O port.
528ETEXI
2313086a 529
d7f9b689
LC
530 {
531 .name = "sendkey",
532 .args_type = "string:s,hold_time:i?",
d7f9b689
LC
533 .params = "keys [hold_ms]",
534 .help = "send keys to the VM (e.g. 'sendkey ctrl-alt-f1', default hold time=100 ms)",
af4ce882 535 .mhandler.cmd = do_sendkey,
d7f9b689
LC
536 },
537
2313086a
BS
538STEXI
539@item sendkey @var{keys}
70fcbbe7 540@findex sendkey
2313086a
BS
541
542Send @var{keys} to the emulator. @var{keys} could be the name of the
543key or @code{#} followed by the raw value in either decimal or hexadecimal
544format. Use @code{-} to press several keys simultaneously. Example:
545@example
546sendkey ctrl-alt-f1
547@end example
548
549This command is useful to send keys that your graphical user interface
550intercepts at low level, such as @code{ctrl-alt-f1} in X Window.
551ETEXI
552
d7f9b689
LC
553 {
554 .name = "system_reset",
555 .args_type = "",
d7f9b689
LC
556 .params = "",
557 .help = "reset the system",
c80d259e 558 .user_print = monitor_user_noop,
261394db 559 .mhandler.cmd_new = do_system_reset,
d7f9b689
LC
560 },
561
2313086a
BS
562STEXI
563@item system_reset
70fcbbe7 564@findex system_reset
2313086a
BS
565
566Reset the system.
567ETEXI
b40292e7
JK
568SQMP
569system_reset
570------------
571
572Reset the system.
573
574Arguments: None.
575
576Example:
577
578-> { "execute": "system_reset" }
579<- { "return": {} }
580
581EQMP
2313086a 582
d7f9b689
LC
583 {
584 .name = "system_powerdown",
585 .args_type = "",
d7f9b689
LC
586 .params = "",
587 .help = "send system power down event",
43076664 588 .user_print = monitor_user_noop,
261394db 589 .mhandler.cmd_new = do_system_powerdown,
d7f9b689
LC
590 },
591
2313086a
BS
592STEXI
593@item system_powerdown
70fcbbe7 594@findex system_powerdown
2313086a
BS
595
596Power down the system (if supported).
597ETEXI
b40292e7
JK
598SQMP
599system_powerdown
600----------------
601
602Send system power down event.
603
604Arguments: None.
605
606Example:
607
608-> { "execute": "system_powerdown" }
609<- { "return": {} }
610
611EQMP
2313086a 612
d7f9b689
LC
613 {
614 .name = "sum",
615 .args_type = "start:i,size:i",
d7f9b689
LC
616 .params = "addr size",
617 .help = "compute the checksum of a memory region",
af4ce882 618 .mhandler.cmd = do_sum,
d7f9b689
LC
619 },
620
2313086a
BS
621STEXI
622@item sum @var{addr} @var{size}
70fcbbe7 623@findex sum
2313086a
BS
624
625Compute the checksum of a memory region.
626ETEXI
627
d7f9b689
LC
628 {
629 .name = "usb_add",
630 .args_type = "devname:s",
d7f9b689
LC
631 .params = "device",
632 .help = "add USB device (e.g. 'host:bus.addr' or 'host:vendor_id:product_id')",
af4ce882 633 .mhandler.cmd = do_usb_add,
d7f9b689
LC
634 },
635
2313086a
BS
636STEXI
637@item usb_add @var{devname}
70fcbbe7 638@findex usb_add
2313086a
BS
639
640Add the USB device @var{devname}. For details of available devices see
641@ref{usb_devices}
642ETEXI
643
d7f9b689
LC
644 {
645 .name = "usb_del",
646 .args_type = "devname:s",
d7f9b689
LC
647 .params = "device",
648 .help = "remove USB device 'bus.addr'",
af4ce882 649 .mhandler.cmd = do_usb_del,
d7f9b689
LC
650 },
651
2313086a
BS
652STEXI
653@item usb_del @var{devname}
70fcbbe7 654@findex usb_del
2313086a
BS
655
656Remove the USB device @var{devname} from the QEMU virtual USB
657hub. @var{devname} has the syntax @code{bus.addr}. Use the monitor
658command @code{info usb} to see the devices you can remove.
659ETEXI
660
d7f9b689
LC
661 {
662 .name = "device_add",
c7e4e8ce
MA
663 .args_type = "device:O",
664 .params = "driver[,prop=value][,...]",
d7f9b689 665 .help = "add device, like -device on the command line",
8bc27249
MA
666 .user_print = monitor_user_noop,
667 .mhandler.cmd_new = do_device_add,
d7f9b689
LC
668 },
669
3418bd25
GH
670STEXI
671@item device_add @var{config}
70fcbbe7 672@findex device_add
3418bd25
GH
673
674Add device.
675ETEXI
b40292e7
JK
676SQMP
677device_add
678----------
679
680Add a device.
681
682Arguments:
683
684- "driver": the name of the new device's driver (json-string)
685- "bus": the device's parent bus (device tree path, json-string, optional)
686- "id": the device's ID, must be unique (json-string)
687- device properties
688
689Example:
690
691-> { "execute": "device_add", "arguments": { "driver": "e1000", "id": "net1" } }
692<- { "return": {} }
693
694Notes:
695
696(1) For detailed information about this command, please refer to the
697 'docs/qdev-device-use.txt' file.
698
699(2) It's possible to list device properties by running QEMU with the
700 "-device DEVICE,\?" command-line argument, where DEVICE is the device's name
701
702EQMP
3418bd25 703
d7f9b689
LC
704 {
705 .name = "device_del",
706 .args_type = "id:s",
d7f9b689
LC
707 .params = "device",
708 .help = "remove device",
17a38eaa
MA
709 .user_print = monitor_user_noop,
710 .mhandler.cmd_new = do_device_del,
d7f9b689
LC
711 },
712
3418bd25
GH
713STEXI
714@item device_del @var{id}
70fcbbe7 715@findex device_del
3418bd25
GH
716
717Remove device @var{id}.
718ETEXI
b40292e7
JK
719SQMP
720device_del
721----------
722
723Remove a device.
724
725Arguments:
726
727- "id": the device's ID (json-string)
728
729Example:
730
731-> { "execute": "device_del", "arguments": { "id": "net1" } }
732<- { "return": {} }
733
734EQMP
3418bd25 735
d7f9b689
LC
736 {
737 .name = "cpu",
738 .args_type = "index:i",
d7f9b689
LC
739 .params = "index",
740 .help = "set the default CPU",
81a1b45a 741 .user_print = monitor_user_noop,
261394db 742 .mhandler.cmd_new = do_cpu_set,
d7f9b689 743 },
3418bd25 744
2313086a 745STEXI
c427ea9c
MA
746@item cpu @var{index}
747@findex cpu
2313086a
BS
748Set the default CPU.
749ETEXI
b40292e7
JK
750SQMP
751cpu
752---
753
754Set the default CPU.
755
756Arguments:
757
758- "index": the CPU's index (json-int)
759
760Example:
761
762-> { "execute": "cpu", "arguments": { "index": 0 } }
763<- { "return": {} }
764
765Note: CPUs' indexes are obtained with the 'query-cpus' command.
766
767EQMP
2313086a 768
d7f9b689
LC
769 {
770 .name = "mouse_move",
771 .args_type = "dx_str:s,dy_str:s,dz_str:s?",
d7f9b689
LC
772 .params = "dx dy [dz]",
773 .help = "send mouse move events",
af4ce882 774 .mhandler.cmd = do_mouse_move,
d7f9b689
LC
775 },
776
2313086a
BS
777STEXI
778@item mouse_move @var{dx} @var{dy} [@var{dz}]
70fcbbe7 779@findex mouse_move
2313086a
BS
780Move the active mouse to the specified coordinates @var{dx} @var{dy}
781with optional scroll axis @var{dz}.
782ETEXI
783
d7f9b689
LC
784 {
785 .name = "mouse_button",
786 .args_type = "button_state:i",
d7f9b689
LC
787 .params = "state",
788 .help = "change mouse button state (1=L, 2=M, 4=R)",
af4ce882 789 .mhandler.cmd = do_mouse_button,
d7f9b689
LC
790 },
791
2313086a
BS
792STEXI
793@item mouse_button @var{val}
70fcbbe7 794@findex mouse_button
2313086a
BS
795Change the active mouse button state @var{val} (1=L, 2=M, 4=R).
796ETEXI
797
d7f9b689
LC
798 {
799 .name = "mouse_set",
800 .args_type = "index:i",
d7f9b689
LC
801 .params = "index",
802 .help = "set which mouse device receives events",
af4ce882 803 .mhandler.cmd = do_mouse_set,
d7f9b689
LC
804 },
805
2313086a
BS
806STEXI
807@item mouse_set @var{index}
70fcbbe7 808@findex mouse_set
2313086a
BS
809Set which mouse device receives events at given @var{index}, index
810can be obtained with
811@example
812info mice
813@end example
814ETEXI
815
816#ifdef HAS_AUDIO
d7f9b689
LC
817 {
818 .name = "wavcapture",
819 .args_type = "path:F,freq:i?,bits:i?,nchannels:i?",
d7f9b689
LC
820 .params = "path [frequency [bits [channels]]]",
821 .help = "capture audio to a wave file (default frequency=44100 bits=16 channels=2)",
af4ce882 822 .mhandler.cmd = do_wav_capture,
d7f9b689 823 },
2313086a
BS
824#endif
825STEXI
826@item wavcapture @var{filename} [@var{frequency} [@var{bits} [@var{channels}]]]
70fcbbe7 827@findex wavcapture
2313086a
BS
828Capture audio into @var{filename}. Using sample rate @var{frequency}
829bits per sample @var{bits} and number of channels @var{channels}.
830
831Defaults:
832@itemize @minus
833@item Sample rate = 44100 Hz - CD quality
834@item Bits = 16
835@item Number of channels = 2 - Stereo
836@end itemize
837ETEXI
838
839#ifdef HAS_AUDIO
d7f9b689
LC
840 {
841 .name = "stopcapture",
842 .args_type = "n:i",
d7f9b689
LC
843 .params = "capture index",
844 .help = "stop capture",
af4ce882 845 .mhandler.cmd = do_stop_capture,
d7f9b689 846 },
2313086a
BS
847#endif
848STEXI
849@item stopcapture @var{index}
70fcbbe7 850@findex stopcapture
2313086a
BS
851Stop capture with a given @var{index}, index can be obtained with
852@example
853info capture
854@end example
855ETEXI
856
d7f9b689
LC
857 {
858 .name = "memsave",
859 .args_type = "val:l,size:i,filename:s",
d7f9b689
LC
860 .params = "addr size file",
861 .help = "save to disk virtual memory dump starting at 'addr' of size 'size'",
57e09454 862 .user_print = monitor_user_noop,
261394db 863 .mhandler.cmd_new = do_memory_save,
d7f9b689
LC
864 },
865
2313086a
BS
866STEXI
867@item memsave @var{addr} @var{size} @var{file}
70fcbbe7 868@findex memsave
2313086a
BS
869save to disk virtual memory dump starting at @var{addr} of size @var{size}.
870ETEXI
b40292e7
JK
871SQMP
872memsave
873-------
874
875Save to disk virtual memory dump starting at 'val' of size 'size'.
876
877Arguments:
878
879- "val": the starting address (json-int)
880- "size": the memory size, in bytes (json-int)
881- "filename": file path (json-string)
882
883Example:
884
885-> { "execute": "memsave",
886 "arguments": { "val": 10,
887 "size": 100,
888 "filename": "/tmp/virtual-mem-dump" } }
889<- { "return": {} }
890
891Note: Depends on the current CPU.
892
893EQMP
2313086a 894
d7f9b689
LC
895 {
896 .name = "pmemsave",
897 .args_type = "val:l,size:i,filename:s",
d7f9b689
LC
898 .params = "addr size file",
899 .help = "save to disk physical memory dump starting at 'addr' of size 'size'",
18f5a8bf 900 .user_print = monitor_user_noop,
261394db 901 .mhandler.cmd_new = do_physical_memory_save,
d7f9b689
LC
902 },
903
2313086a
BS
904STEXI
905@item pmemsave @var{addr} @var{size} @var{file}
70fcbbe7 906@findex pmemsave
2313086a
BS
907save to disk physical memory dump starting at @var{addr} of size @var{size}.
908ETEXI
b40292e7
JK
909SQMP
910pmemsave
911--------
912
913Save to disk physical memory dump starting at 'val' of size 'size'.
914
915Arguments:
916
917- "val": the starting address (json-int)
918- "size": the memory size, in bytes (json-int)
919- "filename": file path (json-string)
920
921Example:
922
923-> { "execute": "pmemsave",
924 "arguments": { "val": 10,
925 "size": 100,
926 "filename": "/tmp/physical-mem-dump" } }
927<- { "return": {} }
928
929EQMP
2313086a 930
d7f9b689
LC
931 {
932 .name = "boot_set",
933 .args_type = "bootdevice:s",
d7f9b689
LC
934 .params = "bootdevice",
935 .help = "define new values for the boot device list",
af4ce882 936 .mhandler.cmd = do_boot_set,
d7f9b689
LC
937 },
938
2313086a
BS
939STEXI
940@item boot_set @var{bootdevicelist}
70fcbbe7 941@findex boot_set
2313086a
BS
942
943Define new values for the boot device list. Those values will override
944the values specified on the command line through the @code{-boot} option.
945
946The values that can be specified here depend on the machine type, but are
947the same that can be specified in the @code{-boot} command line option.
948ETEXI
949
950#if defined(TARGET_I386)
d7f9b689
LC
951 {
952 .name = "nmi",
953 .args_type = "cpu_index:i",
d7f9b689
LC
954 .params = "cpu",
955 .help = "inject an NMI on the given CPU",
af4ce882 956 .mhandler.cmd = do_inject_nmi,
d7f9b689 957 },
2313086a
BS
958#endif
959STEXI
960@item nmi @var{cpu}
70fcbbe7 961@findex nmi
2313086a
BS
962Inject an NMI on the given CPU (x86 only).
963ETEXI
964
d7f9b689
LC
965 {
966 .name = "migrate",
fbc3d96c 967 .args_type = "detach:-d,blk:-b,inc:-i,uri:s",
968 .params = "[-d] [-b] [-i] uri",
969 .help = "migrate to URI (using -d to not wait for completion)"
970 "\n\t\t\t -b for migration without shared storage with"
971 " full copy of disk\n\t\t\t -i for migration without "
972 "shared storage with incremental copy of disk "
973 "(base image shared between src and destination)",
974 .user_print = monitor_user_noop,
261394db 975 .mhandler.cmd_new = do_migrate,
d7f9b689
LC
976 },
977
fbc3d96c 978
2313086a 979STEXI
fbc3d96c 980@item migrate [-d] [-b] [-i] @var{uri}
70fcbbe7 981@findex migrate
2313086a 982Migrate to @var{uri} (using -d to not wait for completion).
fbc3d96c 983 -b for migration with full copy of disk
984 -i for migration with incremental copy of disk (base image is shared)
2313086a 985ETEXI
b40292e7
JK
986SQMP
987migrate
988-------
989
990Migrate to URI.
991
992Arguments:
993
994- "blk": block migration, full disk copy (json-bool, optional)
995- "inc": incremental disk copy (json-bool, optional)
996- "uri": Destination URI (json-string)
997
998Example:
999
1000-> { "execute": "migrate", "arguments": { "uri": "tcp:0:4446" } }
1001<- { "return": {} }
1002
1003Notes:
1004
1005(1) The 'query-migrate' command should be used to check migration's progress
1006 and final result (this information is provided by the 'status' member)
1007(2) All boolean arguments default to false
1008(3) The user Monitor's "detach" argument is invalid in QMP and should not
1009 be used
1010
1011EQMP
2313086a 1012
d7f9b689
LC
1013 {
1014 .name = "migrate_cancel",
1015 .args_type = "",
d7f9b689
LC
1016 .params = "",
1017 .help = "cancel the current VM migration",
911d2963 1018 .user_print = monitor_user_noop,
261394db 1019 .mhandler.cmd_new = do_migrate_cancel,
d7f9b689
LC
1020 },
1021
2313086a
BS
1022STEXI
1023@item migrate_cancel
70fcbbe7 1024@findex migrate_cancel
2313086a
BS
1025Cancel the current VM migration.
1026ETEXI
b40292e7
JK
1027SQMP
1028migrate_cancel
1029--------------
1030
1031Cancel the current migration.
1032
1033Arguments: None.
1034
1035Example:
1036
1037-> { "execute": "migrate_cancel" }
1038<- { "return": {} }
1039
1040EQMP
2313086a 1041
d7f9b689
LC
1042 {
1043 .name = "migrate_set_speed",
ee9545da 1044 .args_type = "value:f",
d7f9b689
LC
1045 .params = "value",
1046 .help = "set maximum speed (in bytes) for migrations",
5fd9083c 1047 .user_print = monitor_user_noop,
261394db 1048 .mhandler.cmd_new = do_migrate_set_speed,
d7f9b689
LC
1049 },
1050
2313086a
BS
1051STEXI
1052@item migrate_set_speed @var{value}
70fcbbe7 1053@findex migrate_set_speed
2313086a 1054Set maximum speed to @var{value} (in bytes) for migrations.
2ea42952 1055ETEXI
b40292e7
JK
1056SQMP
1057migrate_set_speed
1058-----------------
1059
1060Set maximum speed for migrations.
1061
1062Arguments:
1063
1064- "value": maximum speed, in bytes per second (json-number)
1065
1066Example:
1067
1068-> { "execute": "migrate_set_speed", "arguments": { "value": 1024 } }
1069<- { "return": {} }
1070
1071EQMP
2ea42952 1072
d7f9b689
LC
1073 {
1074 .name = "migrate_set_downtime",
b0fbf7d3 1075 .args_type = "value:T",
d7f9b689
LC
1076 .params = "value",
1077 .help = "set maximum tolerated downtime (in seconds) for migrations",
c6027f56 1078 .user_print = monitor_user_noop,
261394db 1079 .mhandler.cmd_new = do_migrate_set_downtime,
d7f9b689 1080 },
2ea42952
GC
1081
1082STEXI
1083@item migrate_set_downtime @var{second}
70fcbbe7 1084@findex migrate_set_downtime
2ea42952 1085Set maximum tolerated downtime (in seconds) for migration.
2313086a 1086ETEXI
b40292e7
JK
1087SQMP
1088migrate_set_downtime
1089--------------------
1090
1091Set maximum tolerated downtime (in seconds) for migrations.
1092
1093Arguments:
1094
1095- "value": maximum downtime (json-number)
1096
1097Example:
1098
1099-> { "execute": "migrate_set_downtime", "arguments": { "value": 0.1 } }
1100<- { "return": {} }
1101
1102EQMP
2313086a
BS
1103
1104#if defined(TARGET_I386)
d7f9b689
LC
1105 {
1106 .name = "drive_add",
1107 .args_type = "pci_addr:s,opts:s",
d7f9b689
LC
1108 .params = "[[<domain>:]<bus>:]<slot>\n"
1109 "[file=file][,if=type][,bus=n]\n"
1110 "[,unit=m][,media=d][index=i]\n"
1111 "[,cyls=c,heads=h,secs=s[,trans=t]]\n"
1112 "[snapshot=on|off][,cache=on|off]",
1113 .help = "add drive to PCI storage controller",
af4ce882 1114 .mhandler.cmd = drive_hot_add,
d7f9b689 1115 },
2313086a 1116#endif
d7f9b689 1117
2313086a
BS
1118STEXI
1119@item drive_add
70fcbbe7 1120@findex drive_add
2313086a
BS
1121Add drive to PCI storage controller.
1122ETEXI
1123
1124#if defined(TARGET_I386)
d7f9b689
LC
1125 {
1126 .name = "pci_add",
1127 .args_type = "pci_addr:s,type:s,opts:s?",
d7f9b689
LC
1128 .params = "auto|[[<domain>:]<bus>:]<slot> nic|storage [[vlan=n][,macaddr=addr][,model=type]] [file=file][,if=type][,bus=nr]...",
1129 .help = "hot-add PCI device",
6c6a58ae 1130 .mhandler.cmd = pci_device_hot_add,
d7f9b689 1131 },
2313086a 1132#endif
d7f9b689 1133
2313086a
BS
1134STEXI
1135@item pci_add
70fcbbe7 1136@findex pci_add
2313086a
BS
1137Hot-add PCI device.
1138ETEXI
1139
1140#if defined(TARGET_I386)
d7f9b689
LC
1141 {
1142 .name = "pci_del",
1143 .args_type = "pci_addr:s",
d7f9b689
LC
1144 .params = "[[<domain>:]<bus>:]<slot>",
1145 .help = "hot remove PCI device",
b752daf0 1146 .mhandler.cmd = do_pci_device_hot_remove,
d7f9b689 1147 },
2313086a 1148#endif
d7f9b689 1149
2313086a
BS
1150STEXI
1151@item pci_del
70fcbbe7 1152@findex pci_del
2313086a
BS
1153Hot remove PCI device.
1154ETEXI
1155
d7f9b689
LC
1156 {
1157 .name = "host_net_add",
1158 .args_type = "device:s,opts:s?",
d7f9b689
LC
1159 .params = "tap|user|socket|vde|dump [options]",
1160 .help = "add host VLAN client",
af4ce882 1161 .mhandler.cmd = net_host_device_add,
d7f9b689
LC
1162 },
1163
2313086a
BS
1164STEXI
1165@item host_net_add
70fcbbe7 1166@findex host_net_add
2313086a
BS
1167Add host VLAN client.
1168ETEXI
1169
d7f9b689
LC
1170 {
1171 .name = "host_net_remove",
1172 .args_type = "vlan_id:i,device:s",
d7f9b689
LC
1173 .params = "vlan_id name",
1174 .help = "remove host VLAN client",
af4ce882 1175 .mhandler.cmd = net_host_device_remove,
d7f9b689
LC
1176 },
1177
2313086a
BS
1178STEXI
1179@item host_net_remove
70fcbbe7 1180@findex host_net_remove
2313086a 1181Remove host VLAN client.
ae82d324
MA
1182ETEXI
1183
1184 {
1185 .name = "netdev_add",
1186 .args_type = "netdev:O",
1187 .params = "[user|tap|socket],id=str[,prop=value][,...]",
1188 .help = "add host network device",
1189 .user_print = monitor_user_noop,
1190 .mhandler.cmd_new = do_netdev_add,
1191 },
1192
1193STEXI
1194@item netdev_add
1195@findex netdev_add
1196Add host network device.
1197ETEXI
b40292e7
JK
1198SQMP
1199netdev_add
1200----------
1201
1202Add host network device.
1203
1204Arguments:
1205
1206- "type": the device type, "tap", "user", ... (json-string)
1207- "id": the device's ID, must be unique (json-string)
1208- device options
1209
1210Example:
1211
1212-> { "execute": "netdev_add", "arguments": { "type": "user", "id": "netdev1" } }
1213<- { "return": {} }
1214
1215Note: The supported device options are the same ones supported by the '-net'
1216 command-line argument, which are listed in the '-help' output or QEMU's
1217 manual
1218
1219EQMP
ae82d324
MA
1220
1221 {
1222 .name = "netdev_del",
1223 .args_type = "id:s",
1224 .params = "id",
1225 .help = "remove host network device",
1226 .user_print = monitor_user_noop,
1227 .mhandler.cmd_new = do_netdev_del,
1228 },
1229
1230STEXI
1231@item netdev_del
1232@findex netdev_del
1233Remove host network device.
2313086a 1234ETEXI
b40292e7
JK
1235SQMP
1236netdev_del
1237----------
1238
1239Remove host network device.
1240
1241Arguments:
1242
1243- "id": the device's ID, must be unique (json-string)
1244
1245Example:
1246
1247-> { "execute": "netdev_del", "arguments": { "id": "netdev1" } }
1248<- { "return": {} }
1249
1250EQMP
2313086a
BS
1251
1252#ifdef CONFIG_SLIRP
d7f9b689
LC
1253 {
1254 .name = "hostfwd_add",
1255 .args_type = "arg1:s,arg2:s?,arg3:s?",
d7f9b689
LC
1256 .params = "[vlan_id name] [tcp|udp]:[hostaddr]:hostport-[guestaddr]:guestport",
1257 .help = "redirect TCP or UDP connections from host to guest (requires -net user)",
af4ce882 1258 .mhandler.cmd = net_slirp_hostfwd_add,
d7f9b689 1259 },
21413d68
MA
1260#endif
1261STEXI
1262@item hostfwd_add
1263@findex hostfwd_add
1264Redirect TCP or UDP connections from host to guest (requires -net user).
1265ETEXI
d7f9b689 1266
21413d68 1267#ifdef CONFIG_SLIRP
d7f9b689
LC
1268 {
1269 .name = "hostfwd_remove",
1270 .args_type = "arg1:s,arg2:s?,arg3:s?",
d7f9b689
LC
1271 .params = "[vlan_id name] [tcp|udp]:[hostaddr]:hostport",
1272 .help = "remove host-to-guest TCP or UDP redirection",
af4ce882 1273 .mhandler.cmd = net_slirp_hostfwd_remove,
d7f9b689
LC
1274 },
1275
2313086a
BS
1276#endif
1277STEXI
21413d68
MA
1278@item hostfwd_remove
1279@findex hostfwd_remove
1280Remove host-to-guest TCP or UDP redirection.
2313086a
BS
1281ETEXI
1282
d7f9b689
LC
1283 {
1284 .name = "balloon",
3b0bd6ec 1285 .args_type = "value:M",
d7f9b689 1286 .params = "target",
3c05613a 1287 .help = "request VM to change its memory allocation (in MB)",
83fb1de2 1288 .user_print = monitor_user_noop,
625a5bef 1289 .mhandler.cmd_async = do_balloon,
8ac470c1 1290 .flags = MONITOR_CMD_ASYNC,
d7f9b689
LC
1291 },
1292
2313086a
BS
1293STEXI
1294@item balloon @var{value}
70fcbbe7 1295@findex balloon
2313086a
BS
1296Request VM to change its memory allocation to @var{value} (in MB).
1297ETEXI
b40292e7
JK
1298SQMP
1299balloon
1300-------
1301
1302Request VM to change its memory allocation (in bytes).
1303
1304Arguments:
1305
1306- "value": New memory allocation (json-int)
1307
1308Example:
1309
1310-> { "execute": "balloon", "arguments": { "value": 536870912 } }
1311<- { "return": {} }
1312
1313EQMP
2313086a 1314
d7f9b689
LC
1315 {
1316 .name = "set_link",
c9b26a4c
MA
1317 .args_type = "name:s,up:b",
1318 .params = "name on|off",
d7f9b689 1319 .help = "change the link status of a network adapter",
5369e3c0
MA
1320 .user_print = monitor_user_noop,
1321 .mhandler.cmd_new = do_set_link,
d7f9b689
LC
1322 },
1323
2313086a 1324STEXI
c9b26a4c 1325@item set_link @var{name} [on|off]
70fcbbe7 1326@findex set_link
c9b26a4c 1327Switch link @var{name} on (i.e. up) or off (i.e. down).
2313086a 1328ETEXI
b40292e7
JK
1329SQMP
1330set_link
1331--------
1332
1333Change the link status of a network adapter.
1334
1335Arguments:
1336
1337- "name": network device name (json-string)
1338- "up": status is up (json-bool)
1339
1340Example:
1341
1342-> { "execute": "set_link", "arguments": { "name": "e1000.0", "up": false } }
1343<- { "return": {} }
1344
1345EQMP
2313086a 1346
d7f9b689
LC
1347 {
1348 .name = "watchdog_action",
1349 .args_type = "action:s",
d7f9b689
LC
1350 .params = "[reset|shutdown|poweroff|pause|debug|none]",
1351 .help = "change watchdog action",
af4ce882 1352 .mhandler.cmd = do_watchdog_action,
d7f9b689
LC
1353 },
1354
2313086a
BS
1355STEXI
1356@item watchdog_action
70fcbbe7 1357@findex watchdog_action
2313086a
BS
1358Change watchdog action.
1359ETEXI
1360
d7f9b689
LC
1361 {
1362 .name = "acl_show",
1363 .args_type = "aclname:s",
d7f9b689
LC
1364 .params = "aclname",
1365 .help = "list rules in the access control list",
af4ce882 1366 .mhandler.cmd = do_acl_show,
d7f9b689
LC
1367 },
1368
2313086a 1369STEXI
15dfcd45 1370@item acl_show @var{aclname}
70fcbbe7 1371@findex acl_show
15dfcd45
JK
1372List all the matching rules in the access control list, and the default
1373policy. There are currently two named access control lists,
1374@var{vnc.x509dname} and @var{vnc.username} matching on the x509 client
1375certificate distinguished name, and SASL username respectively.
1376ETEXI
2313086a 1377
d7f9b689
LC
1378 {
1379 .name = "acl_policy",
1380 .args_type = "aclname:s,policy:s",
d7f9b689
LC
1381 .params = "aclname allow|deny",
1382 .help = "set default access control list policy",
af4ce882 1383 .mhandler.cmd = do_acl_policy,
d7f9b689
LC
1384 },
1385
15dfcd45 1386STEXI
cbbfacc6 1387@item acl_policy @var{aclname} @code{allow|deny}
70fcbbe7 1388@findex acl_policy
15dfcd45 1389Set the default access control list policy, used in the event that
2313086a 1390none of the explicit rules match. The default policy at startup is
15dfcd45
JK
1391always @code{deny}.
1392ETEXI
1393
d7f9b689
LC
1394 {
1395 .name = "acl_add",
1396 .args_type = "aclname:s,match:s,policy:s,index:i?",
d7f9b689
LC
1397 .params = "aclname match allow|deny [index]",
1398 .help = "add a match rule to the access control list",
af4ce882 1399 .mhandler.cmd = do_acl_add,
d7f9b689
LC
1400 },
1401
15dfcd45 1402STEXI
0e4aec98
MA
1403@item acl_add @var{aclname} @var{match} @code{allow|deny} [@var{index}]
1404@findex acl_add
15dfcd45
JK
1405Add a match rule to the access control list, allowing or denying access.
1406The match will normally be an exact username or x509 distinguished name,
1407but can optionally include wildcard globs. eg @code{*@@EXAMPLE.COM} to
1408allow all users in the @code{EXAMPLE.COM} kerberos realm. The match will
2313086a 1409normally be appended to the end of the ACL, but can be inserted
15dfcd45
JK
1410earlier in the list if the optional @var{index} parameter is supplied.
1411ETEXI
1412
d7f9b689
LC
1413 {
1414 .name = "acl_remove",
1415 .args_type = "aclname:s,match:s",
d7f9b689
LC
1416 .params = "aclname match",
1417 .help = "remove a match rule from the access control list",
af4ce882 1418 .mhandler.cmd = do_acl_remove,
d7f9b689
LC
1419 },
1420
15dfcd45
JK
1421STEXI
1422@item acl_remove @var{aclname} @var{match}
70fcbbe7 1423@findex acl_remove
15dfcd45
JK
1424Remove the specified match rule from the access control list.
1425ETEXI
1426
d7f9b689
LC
1427 {
1428 .name = "acl_reset",
1429 .args_type = "aclname:s",
d7f9b689
LC
1430 .params = "aclname",
1431 .help = "reset the access control list",
af4ce882 1432 .mhandler.cmd = do_acl_reset,
d7f9b689
LC
1433 },
1434
15dfcd45 1435STEXI
0e4aec98
MA
1436@item acl_reset @var{aclname}
1437@findex acl_reset
15dfcd45 1438Remove all matches from the access control list, and set the default
2313086a 1439policy back to @code{deny}.
2313086a
BS
1440ETEXI
1441
79c4f6b0 1442#if defined(TARGET_I386)
d7f9b689
LC
1443
1444 {
1445 .name = "mce",
1446 .args_type = "cpu_index:i,bank:i,status:l,mcg_status:l,addr:l,misc:l",
d7f9b689
LC
1447 .params = "cpu bank status mcgstatus addr misc",
1448 .help = "inject a MCE on the given CPU",
af4ce882 1449 .mhandler.cmd = do_inject_mce,
d7f9b689
LC
1450 },
1451
79c4f6b0
HY
1452#endif
1453STEXI
1454@item mce @var{cpu} @var{bank} @var{status} @var{mcgstatus} @var{addr} @var{misc}
70fcbbe7 1455@findex mce (x86)
79c4f6b0 1456Inject an MCE on the given CPU (x86 only).
f07918fd
MM
1457ETEXI
1458
d7f9b689
LC
1459 {
1460 .name = "getfd",
1461 .args_type = "fdname:s",
d7f9b689
LC
1462 .params = "getfd name",
1463 .help = "receive a file descriptor via SCM rights and assign it a name",
f0d6000a 1464 .user_print = monitor_user_noop,
261394db 1465 .mhandler.cmd_new = do_getfd,
d7f9b689
LC
1466 },
1467
f07918fd
MM
1468STEXI
1469@item getfd @var{fdname}
70fcbbe7 1470@findex getfd
f07918fd
MM
1471If a file descriptor is passed alongside this command using the SCM_RIGHTS
1472mechanism on unix sockets, it is stored using the name @var{fdname} for
1473later use by other monitor commands.
1474ETEXI
b40292e7
JK
1475SQMP
1476getfd
1477-----
1478
1479Receive a file descriptor via SCM rights and assign it a name.
1480
1481Arguments:
1482
1483- "fdname": file descriptor name (json-string)
1484
1485Example:
1486
1487-> { "execute": "getfd", "arguments": { "fdname": "fd1" } }
1488<- { "return": {} }
1489
1490EQMP
f07918fd 1491
d7f9b689
LC
1492 {
1493 .name = "closefd",
1494 .args_type = "fdname:s",
d7f9b689
LC
1495 .params = "closefd name",
1496 .help = "close a file descriptor previously passed via SCM rights",
18f3a515 1497 .user_print = monitor_user_noop,
261394db 1498 .mhandler.cmd_new = do_closefd,
d7f9b689
LC
1499 },
1500
f07918fd
MM
1501STEXI
1502@item closefd @var{fdname}
70fcbbe7 1503@findex closefd
f07918fd
MM
1504Close the file descriptor previously assigned to @var{fdname} using the
1505@code{getfd} command. This is only needed if the file descriptor was never
1506used by another monitor command.
a3a55a2e 1507ETEXI
b40292e7
JK
1508SQMP
1509closefd
1510-------
1511
1512Close a file descriptor previously passed via SCM rights.
1513
1514Arguments:
1515
1516- "fdname": file descriptor name (json-string)
1517
1518Example:
1519
1520-> { "execute": "closefd", "arguments": { "fdname": "fd1" } }
1521<- { "return": {} }
1522
1523EQMP
a3a55a2e
LC
1524
1525 {
1526 .name = "block_passwd",
1527 .args_type = "device:B,password:s",
1528 .params = "block_passwd device password",
1529 .help = "set the password of encrypted block devices",
1530 .user_print = monitor_user_noop,
261394db 1531 .mhandler.cmd_new = do_block_set_passwd,
a3a55a2e
LC
1532 },
1533
1534STEXI
1535@item block_passwd @var{device} @var{password}
70fcbbe7 1536@findex block_passwd
a3a55a2e 1537Set the encrypted device @var{device} password to @var{password}
4a7e1190 1538ETEXI
b40292e7
JK
1539SQMP
1540block_passwd
1541------------
1542
1543Set the password of encrypted block devices.
1544
1545Arguments:
1546
1547- "device": device name (json-string)
1548- "password": password (json-string)
1549
1550Example:
1551
1552-> { "execute": "block_passwd", "arguments": { "device": "ide0-hd0",
1553 "password": "12345" } }
1554<- { "return": {} }
1555
1556EQMP
4a7e1190
LC
1557
1558 {
1559 .name = "qmp_capabilities",
1560 .args_type = "",
1561 .params = "",
1562 .help = "enable QMP capabilities",
1563 .user_print = monitor_user_noop,
261394db 1564 .mhandler.cmd_new = do_qmp_capabilities,
4a7e1190
LC
1565 },
1566
1567STEXI
1568@item qmp_capabilities
54d7cf13 1569@findex qmp_capabilities
4a7e1190 1570Enable the specified QMP capabilities
79c4f6b0 1571ETEXI
b40292e7
JK
1572SQMP
1573qmp_capabilities
1574----------------
1575
1576Enable QMP capabilities.
1577
1578Arguments: None.
1579
1580Example:
1581
1582-> { "execute": "qmp_capabilities" }
1583<- { "return": {} }
1584
1585Note: This command must be issued before issuing any other command.
1586
1587EQMP
79c4f6b0 1588
33572ece
JK
1589
1590HXCOMM Keep the 'info' command at the end!
1591HXCOMM This is required for the QMP documentation layout.
1592
b40292e7
JK
1593SQMP
1594
15952. Query Commands
1596=================
1597
1598EQMP
1599
33572ece
JK
1600 {
1601 .name = "info",
1602 .args_type = "item:s?",
1603 .params = "[subcommand]",
1604 .help = "show various information about the system state",
1605 .user_print = monitor_user_noop,
1606 .mhandler.cmd_new = do_info,
1607 },
1608
1609STEXI
1610@item info @var{subcommand}
1611@findex info
1612Show various information about the system state.
1613
1614@table @option
1615@item info version
1616show the version of QEMU
b40292e7
JK
1617ETEXI
1618SQMP
1619query-version
1620-------------
1621
1622Show QEMU version.
1623
1624Return a json-object with the following information:
1625
1626- "qemu": QEMU's version (json-string)
1627- "package": package's version (json-string)
1628
1629Example:
1630
1631-> { "execute": "query-version" }
1632<- { "return": { "qemu": "0.11.50", "package": "" } }
1633
1634EQMP
1635
1636STEXI
33572ece
JK
1637@item info commands
1638list QMP available commands
b40292e7
JK
1639ETEXI
1640SQMP
1641query-commands
1642--------------
1643
1644List QMP available commands.
1645
1646Each command is represented by a json-object, the returned value is a json-array
1647of all commands.
1648
1649Each json-object contain:
1650
1651- "name": command's name (json-string)
1652
1653Example:
1654
1655-> { "execute": "query-commands" }
1656<- {
1657 "return":[
1658 {
1659 "name":"query-balloon"
1660 },
1661 {
1662 "name":"system_powerdown"
1663 }
1664 ]
1665 }
1666
1667Note: This example has been shortened as the real response is too long.
1668
1669EQMP
1670
1671STEXI
33572ece
JK
1672@item info network
1673show the various VLANs and the associated devices
b40292e7
JK
1674ETEXI
1675
1676STEXI
33572ece
JK
1677@item info chardev
1678show the character devices
b40292e7
JK
1679ETEXI
1680SQMP
1681query-chardev
1682-------------
1683
1684Each device is represented by a json-object. The returned value is a json-array
1685of all devices.
1686
1687Each json-object contain the following:
1688
1689- "label": device's label (json-string)
1690- "filename": device's file (json-string)
1691
1692Example:
1693
1694-> { "execute": "query-chardev" }
1695<- {
1696 "return":[
1697 {
1698 "label":"monitor",
1699 "filename":"stdio"
1700 },
1701 {
1702 "label":"serial0",
1703 "filename":"vc"
1704 }
1705 ]
1706 }
1707
1708EQMP
1709
1710STEXI
33572ece
JK
1711@item info block
1712show the block devices
b40292e7
JK
1713ETEXI
1714SQMP
1715query-block
1716-----------
1717
1718Show the block devices.
1719
1720Each block device information is stored in a json-object and the returned value
1721is a json-array of all devices.
1722
1723Each json-object contain the following:
1724
1725- "device": device name (json-string)
1726- "type": device type (json-string)
1727 - Possible values: "hd", "cdrom", "floppy", "unknown"
1728- "removable": true if the device is removable, false otherwise (json-bool)
1729- "locked": true if the device is locked, false otherwise (json-bool)
1730- "inserted": only present if the device is inserted, it is a json-object
1731 containing the following:
1732 - "file": device file name (json-string)
1733 - "ro": true if read-only, false otherwise (json-bool)
1734 - "drv": driver format name (json-string)
1735 - Possible values: "blkdebug", "bochs", "cloop", "cow", "dmg",
1736 "file", "file", "ftp", "ftps", "host_cdrom",
1737 "host_device", "host_floppy", "http", "https",
1738 "nbd", "parallels", "qcow", "qcow2", "raw",
1739 "tftp", "vdi", "vmdk", "vpc", "vvfat"
1740 - "backing_file": backing file name (json-string, optional)
1741 - "encrypted": true if encrypted, false otherwise (json-bool)
1742
1743Example:
1744
1745-> { "execute": "query-block" }
1746<- {
1747 "return":[
1748 {
1749 "device":"ide0-hd0",
1750 "locked":false,
1751 "removable":false,
1752 "inserted":{
1753 "ro":false,
1754 "drv":"qcow2",
1755 "encrypted":false,
1756 "file":"disks/test.img"
1757 },
1758 "type":"hd"
1759 },
1760 {
1761 "device":"ide1-cd0",
1762 "locked":false,
1763 "removable":true,
1764 "type":"cdrom"
1765 },
1766 {
1767 "device":"floppy0",
1768 "locked":false,
1769 "removable":true,
1770 "type": "floppy"
1771 },
1772 {
1773 "device":"sd0",
1774 "locked":false,
1775 "removable":true,
1776 "type":"floppy"
1777 }
1778 ]
1779 }
1780
1781EQMP
1782
1783STEXI
33572ece
JK
1784@item info blockstats
1785show block device statistics
b40292e7
JK
1786ETEXI
1787SQMP
1788query-blockstats
1789----------------
1790
1791Show block device statistics.
1792
1793Each device statistic information is stored in a json-object and the returned
1794value is a json-array of all devices.
1795
1796Each json-object contain the following:
1797
1798- "device": device name (json-string)
1799- "stats": A json-object with the statistics information, it contains:
1800 - "rd_bytes": bytes read (json-int)
1801 - "wr_bytes": bytes written (json-int)
1802 - "rd_operations": read operations (json-int)
1803 - "wr_operations": write operations (json-int)
1804 - "wr_highest_offset": Highest offset of a sector written since the
1805 BlockDriverState has been opened (json-int)
1806- "parent": Contains recursively the statistics of the underlying
1807 protocol (e.g. the host file for a qcow2 image). If there is
1808 no underlying protocol, this field is omitted
1809 (json-object, optional)
1810
1811Example:
1812
1813-> { "execute": "query-blockstats" }
1814<- {
1815 "return":[
1816 {
1817 "device":"ide0-hd0",
1818 "parent":{
1819 "stats":{
1820 "wr_highest_offset":3686448128,
1821 "wr_bytes":9786368,
1822 "wr_operations":751,
1823 "rd_bytes":122567168,
1824 "rd_operations":36772
1825 }
1826 },
1827 "stats":{
1828 "wr_highest_offset":2821110784,
1829 "wr_bytes":9786368,
1830 "wr_operations":692,
1831 "rd_bytes":122739200,
1832 "rd_operations":36604
1833 }
1834 },
1835 {
1836 "device":"ide1-cd0",
1837 "stats":{
1838 "wr_highest_offset":0,
1839 "wr_bytes":0,
1840 "wr_operations":0,
1841 "rd_bytes":0,
1842 "rd_operations":0
1843 }
1844 },
1845 {
1846 "device":"floppy0",
1847 "stats":{
1848 "wr_highest_offset":0,
1849 "wr_bytes":0,
1850 "wr_operations":0,
1851 "rd_bytes":0,
1852 "rd_operations":0
1853 }
1854 },
1855 {
1856 "device":"sd0",
1857 "stats":{
1858 "wr_highest_offset":0,
1859 "wr_bytes":0,
1860 "wr_operations":0,
1861 "rd_bytes":0,
1862 "rd_operations":0
1863 }
1864 }
1865 ]
1866 }
1867
1868EQMP
1869
1870STEXI
33572ece
JK
1871@item info registers
1872show the cpu registers
1873@item info cpus
1874show infos for each CPU
b40292e7
JK
1875ETEXI
1876SQMP
1877query-cpus
1878----------
1879
1880Show CPU information.
1881
1882Return a json-array. Each CPU is represented by a json-object, which contains:
1883
1884- "CPU": CPU index (json-int)
1885- "current": true if this is the current CPU, false otherwise (json-bool)
1886- "halted": true if the cpu is halted, false otherwise (json-bool)
1887- Current program counter. The key's name depends on the architecture:
1888 "pc": i386/x86_64 (json-int)
1889 "nip": PPC (json-int)
1890 "pc" and "npc": sparc (json-int)
1891 "PC": mips (json-int)
1892
1893Example:
1894
1895-> { "execute": "query-cpus" }
1896<- {
1897 "return":[
1898 {
1899 "CPU":0,
1900 "current":true,
1901 "halted":false,
1902 "pc":3227107138
1903 },
1904 {
1905 "CPU":1,
1906 "current":false,
1907 "halted":true,
1908 "pc":7108165
1909 }
1910 ]
1911 }
1912
1913EQMP
1914
1915STEXI
33572ece
JK
1916@item info history
1917show the command line history
1918@item info irq
1919show the interrupts statistics (if available)
1920@item info pic
1921show i8259 (PIC) state
b40292e7
JK
1922ETEXI
1923
1924STEXI
33572ece
JK
1925@item info pci
1926show emulated PCI device info
b40292e7
JK
1927ETEXI
1928SQMP
1929query-pci
1930---------
1931
1932PCI buses and devices information.
1933
1934The returned value is a json-array of all buses. Each bus is represented by
1935a json-object, which has a key with a json-array of all PCI devices attached
1936to it. Each device is represented by a json-object.
1937
1938The bus json-object contains the following:
1939
1940- "bus": bus number (json-int)
1941- "devices": a json-array of json-objects, each json-object represents a
1942 PCI device
1943
1944The PCI device json-object contains the following:
1945
1946- "bus": identical to the parent's bus number (json-int)
1947- "slot": slot number (json-int)
1948- "function": function number (json-int)
1949- "class_info": a json-object containing:
1950 - "desc": device class description (json-string, optional)
1951 - "class": device class number (json-int)
1952- "id": a json-object containing:
1953 - "device": device ID (json-int)
1954 - "vendor": vendor ID (json-int)
1955- "irq": device's IRQ if assigned (json-int, optional)
1956- "qdev_id": qdev id string (json-string)
1957- "pci_bridge": It's a json-object, only present if this device is a
1958 PCI bridge, contains:
1959 - "bus": bus number (json-int)
1960 - "secondary": secondary bus number (json-int)
1961 - "subordinate": subordinate bus number (json-int)
1962 - "io_range": I/O memory range information, a json-object with the
1963 following members:
1964 - "base": base address, in bytes (json-int)
1965 - "limit": limit address, in bytes (json-int)
1966 - "memory_range": memory range information, a json-object with the
1967 following members:
1968 - "base": base address, in bytes (json-int)
1969 - "limit": limit address, in bytes (json-int)
1970 - "prefetchable_range": Prefetchable memory range information, a
1971 json-object with the following members:
1972 - "base": base address, in bytes (json-int)
1973 - "limit": limit address, in bytes (json-int)
1974 - "devices": a json-array of PCI devices if there's any attached, each
1975 each element is represented by a json-object, which contains
1976 the same members of the 'PCI device json-object' described
1977 above (optional)
1978- "regions": a json-array of json-objects, each json-object represents a
1979 memory region of this device
1980
1981The memory range json-object contains the following:
1982
1983- "base": base memory address (json-int)
1984- "limit": limit value (json-int)
1985
1986The region json-object can be an I/O region or a memory region, an I/O region
1987json-object contains the following:
1988
1989- "type": "io" (json-string, fixed)
1990- "bar": BAR number (json-int)
1991- "address": memory address (json-int)
1992- "size": memory size (json-int)
1993
1994A memory region json-object contains the following:
1995
1996- "type": "memory" (json-string, fixed)
1997- "bar": BAR number (json-int)
1998- "address": memory address (json-int)
1999- "size": memory size (json-int)
2000- "mem_type_64": true or false (json-bool)
2001- "prefetch": true or false (json-bool)
2002
2003Example:
2004
2005-> { "execute": "query-pci" }
2006<- {
2007 "return":[
2008 {
2009 "bus":0,
2010 "devices":[
2011 {
2012 "bus":0,
2013 "qdev_id":"",
2014 "slot":0,
2015 "class_info":{
2016 "class":1536,
2017 "desc":"Host bridge"
2018 },
2019 "id":{
2020 "device":32902,
2021 "vendor":4663
2022 },
2023 "function":0,
2024 "regions":[
2025
2026 ]
2027 },
2028 {
2029 "bus":0,
2030 "qdev_id":"",
2031 "slot":1,
2032 "class_info":{
2033 "class":1537,
2034 "desc":"ISA bridge"
2035 },
2036 "id":{
2037 "device":32902,
2038 "vendor":28672
2039 },
2040 "function":0,
2041 "regions":[
2042
2043 ]
2044 },
2045 {
2046 "bus":0,
2047 "qdev_id":"",
2048 "slot":1,
2049 "class_info":{
2050 "class":257,
2051 "desc":"IDE controller"
2052 },
2053 "id":{
2054 "device":32902,
2055 "vendor":28688
2056 },
2057 "function":1,
2058 "regions":[
2059 {
2060 "bar":4,
2061 "size":16,
2062 "address":49152,
2063 "type":"io"
2064 }
2065 ]
2066 },
2067 {
2068 "bus":0,
2069 "qdev_id":"",
2070 "slot":2,
2071 "class_info":{
2072 "class":768,
2073 "desc":"VGA controller"
2074 },
2075 "id":{
2076 "device":4115,
2077 "vendor":184
2078 },
2079 "function":0,
2080 "regions":[
2081 {
2082 "prefetch":true,
2083 "mem_type_64":false,
2084 "bar":0,
2085 "size":33554432,
2086 "address":4026531840,
2087 "type":"memory"
2088 },
2089 {
2090 "prefetch":false,
2091 "mem_type_64":false,
2092 "bar":1,
2093 "size":4096,
2094 "address":4060086272,
2095 "type":"memory"
2096 },
2097 {
2098 "prefetch":false,
2099 "mem_type_64":false,
2100 "bar":6,
2101 "size":65536,
2102 "address":-1,
2103 "type":"memory"
2104 }
2105 ]
2106 },
2107 {
2108 "bus":0,
2109 "qdev_id":"",
2110 "irq":11,
2111 "slot":4,
2112 "class_info":{
2113 "class":1280,
2114 "desc":"RAM controller"
2115 },
2116 "id":{
2117 "device":6900,
2118 "vendor":4098
2119 },
2120 "function":0,
2121 "regions":[
2122 {
2123 "bar":0,
2124 "size":32,
2125 "address":49280,
2126 "type":"io"
2127 }
2128 ]
2129 }
2130 ]
2131 }
2132 ]
2133 }
2134
2135Note: This example has been shortened as the real response is too long.
2136
2137EQMP
2138
2139STEXI
33572ece
JK
2140@item info tlb
2141show virtual to physical memory mappings (i386 only)
2142@item info mem
2143show the active virtual memory mappings (i386 only)
b40292e7
JK
2144ETEXI
2145
b40292e7 2146STEXI
33572ece
JK
2147@item info jit
2148show dynamic compiler info
2149@item info kvm
2150show KVM information
2151@item info numa
2152show NUMA information
b40292e7
JK
2153ETEXI
2154
2155STEXI
2156@item info kvm
2157show KVM information
2158ETEXI
2159SQMP
2160query-kvm
2161---------
2162
2163Show KVM information.
2164
2165Return a json-object with the following information:
2166
2167- "enabled": true if KVM support is enabled, false otherwise (json-bool)
2168- "present": true if QEMU has KVM support, false otherwise (json-bool)
2169
2170Example:
2171
2172-> { "execute": "query-kvm" }
2173<- { "return": { "enabled": true, "present": true } }
2174
2175EQMP
2176
2177STEXI
33572ece
JK
2178@item info usb
2179show USB devices plugged on the virtual USB hub
2180@item info usbhost
2181show all USB host devices
2182@item info profile
2183show profiling information
2184@item info capture
2185show information about active capturing
2186@item info snapshots
2187show list of VM snapshots
b40292e7
JK
2188ETEXI
2189
2190STEXI
33572ece
JK
2191@item info status
2192show the current VM status (running|paused)
b40292e7
JK
2193ETEXI
2194SQMP
2195query-status
2196------------
2197
2198Return a json-object with the following information:
2199
2200- "running": true if the VM is running, or false if it is paused (json-bool)
2201- "singlestep": true if the VM is in single step mode,
2202 false otherwise (json-bool)
2203
2204Example:
2205
2206-> { "execute": "query-status" }
2207<- { "return": { "running": true, "singlestep": false } }
2208
2209EQMP
2210
2211STEXI
33572ece
JK
2212@item info pcmcia
2213show guest PCMCIA status
b40292e7
JK
2214ETEXI
2215
2216STEXI
33572ece
JK
2217@item info mice
2218show which guest mouse is receiving events
b40292e7
JK
2219ETEXI
2220SQMP
2221query-mice
2222----------
2223
2224Show VM mice information.
2225
2226Each mouse is represented by a json-object, the returned value is a json-array
2227of all mice.
2228
2229The mouse json-object contains the following:
2230
2231- "name": mouse's name (json-string)
2232- "index": mouse's index (json-int)
2233- "current": true if this mouse is receiving events, false otherwise (json-bool)
2234- "absolute": true if the mouse generates absolute input events (json-bool)
2235
2236Example:
2237
2238-> { "execute": "query-mice" }
2239<- {
2240 "return":[
2241 {
2242 "name":"QEMU Microsoft Mouse",
2243 "index":0,
2244 "current":false,
2245 "absolute":false
2246 },
2247 {
2248 "name":"QEMU PS/2 Mouse",
2249 "index":1,
2250 "current":true,
2251 "absolute":true
2252 }
2253 ]
2254 }
2255
2256EQMP
2257
2258STEXI
33572ece
JK
2259@item info vnc
2260show the vnc server status
b40292e7
JK
2261ETEXI
2262SQMP
2263query-vnc
2264---------
2265
2266Show VNC server information.
2267
2268Return a json-object with server information. Connected clients are returned
2269as a json-array of json-objects.
2270
2271The main json-object contains the following:
2272
2273- "enabled": true or false (json-bool)
2274- "host": server's IP address (json-string)
2275- "family": address family (json-string)
2276 - Possible values: "ipv4", "ipv6", "unix", "unknown"
2277- "service": server's port number (json-string)
2278- "auth": authentication method (json-string)
2279 - Possible values: "invalid", "none", "ra2", "ra2ne", "sasl", "tight",
2280 "tls", "ultra", "unknown", "vencrypt", "vencrypt",
2281 "vencrypt+plain", "vencrypt+tls+none",
2282 "vencrypt+tls+plain", "vencrypt+tls+sasl",
2283 "vencrypt+tls+vnc", "vencrypt+x509+none",
2284 "vencrypt+x509+plain", "vencrypt+x509+sasl",
2285 "vencrypt+x509+vnc", "vnc"
2286- "clients": a json-array of all connected clients
2287
2288Clients are described by a json-object, each one contain the following:
2289
2290- "host": client's IP address (json-string)
2291- "family": address family (json-string)
2292 - Possible values: "ipv4", "ipv6", "unix", "unknown"
2293- "service": client's port number (json-string)
2294- "x509_dname": TLS dname (json-string, optional)
2295- "sasl_username": SASL username (json-string, optional)
2296
2297Example:
2298
2299-> { "execute": "query-vnc" }
2300<- {
2301 "return":{
2302 "enabled":true,
2303 "host":"0.0.0.0",
2304 "service":"50402",
2305 "auth":"vnc",
2306 "family":"ipv4",
2307 "clients":[
2308 {
2309 "host":"127.0.0.1",
2310 "service":"50401",
2311 "family":"ipv4"
2312 }
2313 ]
2314 }
2315 }
2316
2317EQMP
2318
2319STEXI
33572ece
JK
2320@item info name
2321show the current VM name
b40292e7
JK
2322ETEXI
2323SQMP
2324query-name
2325----------
2326
2327Show VM name.
2328
2329Return a json-object with the following information:
2330
2331- "name": VM's name (json-string, optional)
2332
2333Example:
2334
2335-> { "execute": "query-name" }
2336<- { "return": { "name": "qemu-name" } }
2337
2338EQMP
2339
2340STEXI
33572ece
JK
2341@item info uuid
2342show the current VM UUID
b40292e7
JK
2343ETEXI
2344SQMP
2345query-uuid
2346----------
2347
2348Show VM UUID.
2349
2350Return a json-object with the following information:
2351
2352- "UUID": Universally Unique Identifier (json-string)
2353
2354Example:
2355
2356-> { "execute": "query-uuid" }
2357<- { "return": { "UUID": "550e8400-e29b-41d4-a716-446655440000" } }
2358
2359EQMP
2360
2361STEXI
33572ece
JK
2362@item info cpustats
2363show CPU statistics
2364@item info usernet
2365show user network stack connection states
b40292e7
JK
2366ETEXI
2367
2368STEXI
33572ece
JK
2369@item info migrate
2370show migration status
b40292e7
JK
2371ETEXI
2372SQMP
2373query-migrate
2374-------------
2375
2376Migration status.
2377
2378Return a json-object. If migration is active there will be another json-object
2379with RAM migration status and if block migration is active another one with
2380block migration status.
2381
2382The main json-object contains the following:
2383
2384- "status": migration status (json-string)
2385 - Possible values: "active", "completed", "failed", "cancelled"
2386- "ram": only present if "status" is "active", it is a json-object with the
2387 following RAM information (in bytes):
2388 - "transferred": amount transferred (json-int)
2389 - "remaining": amount remaining (json-int)
2390 - "total": total (json-int)
2391- "disk": only present if "status" is "active" and it is a block migration,
2392 it is a json-object with the following disk information (in bytes):
2393 - "transferred": amount transferred (json-int)
2394 - "remaining": amount remaining (json-int)
2395 - "total": total (json-int)
2396
2397Examples:
2398
23991. Before the first migration
2400
2401-> { "execute": "query-migrate" }
2402<- { "return": {} }
2403
24042. Migration is done and has succeeded
2405
2406-> { "execute": "query-migrate" }
2407<- { "return": { "status": "completed" } }
2408
24093. Migration is done and has failed
2410
2411-> { "execute": "query-migrate" }
2412<- { "return": { "status": "failed" } }
2413
24144. Migration is being performed and is not a block migration:
2415
2416-> { "execute": "query-migrate" }
2417<- {
2418 "return":{
2419 "status":"active",
2420 "ram":{
2421 "transferred":123,
2422 "remaining":123,
2423 "total":246
2424 }
2425 }
2426 }
2427
24285. Migration is being performed and is a block migration:
2429
2430-> { "execute": "query-migrate" }
2431<- {
2432 "return":{
2433 "status":"active",
2434 "ram":{
2435 "total":1057024,
2436 "remaining":1053304,
2437 "transferred":3720
2438 },
2439 "disk":{
2440 "total":20971520,
2441 "remaining":20880384,
2442 "transferred":91136
2443 }
2444 }
2445 }
2446
2447EQMP
2448
2449STEXI
33572ece
JK
2450@item info balloon
2451show balloon information
b40292e7
JK
2452ETEXI
2453SQMP
2454query-balloon
2455-------------
2456
2457Show balloon information.
2458
2459Make an asynchronous request for balloon info. When the request completes a
2460json-object will be returned containing the following data:
2461
2462- "actual": current balloon value in bytes (json-int)
2463- "mem_swapped_in": Amount of memory swapped in bytes (json-int, optional)
2464- "mem_swapped_out": Amount of memory swapped out in bytes (json-int, optional)
2465- "major_page_faults": Number of major faults (json-int, optional)
2466- "minor_page_faults": Number of minor faults (json-int, optional)
2467- "free_mem": Total amount of free and unused memory in
2468 bytes (json-int, optional)
2469- "total_mem": Total amount of available memory in bytes (json-int, optional)
2470
2471Example:
2472
2473-> { "execute": "query-balloon" }
2474<- {
2475 "return":{
2476 "actual":1073741824,
2477 "mem_swapped_in":0,
2478 "mem_swapped_out":0,
2479 "major_page_faults":142,
2480 "minor_page_faults":239245,
2481 "free_mem":1014185984,
2482 "total_mem":1044668416
2483 }
2484 }
2485
2486EQMP
2487
2488STEXI
33572ece
JK
2489@item info qtree
2490show device tree
2491@item info qdm
2492show qdev device model list
2493@item info roms
2494show roms
2495@end table
2496ETEXI
2497
2498HXCOMM DO NOT add new commands after 'info', move your addition before it!
2499
2313086a
BS
2500STEXI
2501@end table
2502ETEXI