blob: 2af3de6c22952616b46671723ea3cee82bf1b14d [file] [log] [blame]
Blue Swirl23130862009-06-06 08:22:04 +00001HXCOMM 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
Jan Kiszkab40292e2010-05-31 14:43:31 -03004HXCOMM Text between SQMP and EQMP is copied to the QMP documention file and
5HXCOMM does not show up in the other formats.
Blue Swirl23130862009-06-06 08:22:04 +00006HXCOMM 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
Jan Kiszkab40292e2010-05-31 14:43:31 -030010SQMP
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
Blue Swirl23130862009-06-06 08:22:04 +000046STEXI
47@table @option
48ETEXI
49
Luiz Capitulinod7f9b682009-10-07 13:41:50 -030050 {
51 .name = "help|?",
52 .args_type = "name:s?",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -030053 .params = "[cmd]",
54 .help = "show the help",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -030055 .mhandler.cmd = do_help_cmd,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -030056 },
57
Blue Swirl23130862009-06-06 08:22:04 +000058STEXI
59@item help or ? [@var{cmd}]
Stefan Weil70fcbbe2010-02-05 23:52:04 +010060@findex help
Blue Swirl23130862009-06-06 08:22:04 +000061Show the help for all commands or just for command @var{cmd}.
62ETEXI
63
Luiz Capitulinod7f9b682009-10-07 13:41:50 -030064 {
65 .name = "commit",
66 .args_type = "device:B",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -030067 .params = "device|all",
68 .help = "commit changes to the disk images (if -snapshot is used) or backing files",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -030069 .mhandler.cmd = do_commit,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -030070 },
71
Blue Swirl23130862009-06-06 08:22:04 +000072STEXI
73@item commit
Stefan Weil70fcbbe2010-02-05 23:52:04 +010074@findex commit
Blue Swirl23130862009-06-06 08:22:04 +000075Commit changes to the disk images (if -snapshot is used) or backing files.
76ETEXI
77
Luiz Capitulinod7f9b682009-10-07 13:41:50 -030078 {
Luiz Capitulinod7f9b682009-10-07 13:41:50 -030079 .name = "q|quit",
80 .args_type = "",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -030081 .params = "",
82 .help = "quit the emulator",
Luiz Capitulinob223f352009-10-07 13:41:56 -030083 .user_print = monitor_user_noop,
Luiz Capitulino261394d2010-02-10 23:50:02 -020084 .mhandler.cmd_new = do_quit,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -030085 },
86
Blue Swirl23130862009-06-06 08:22:04 +000087STEXI
88@item q or quit
Stefan Weil70fcbbe2010-02-05 23:52:04 +010089@findex quit
Blue Swirl23130862009-06-06 08:22:04 +000090Quit the emulator.
91ETEXI
Jan Kiszkab40292e2010-05-31 14:43:31 -030092SQMP
93quit
94----
95
96Quit the emulator.
97
98Arguments: None.
99
100Example:
101
102-> { "execute": "quit" }
103<- { "return": {} }
104
105EQMP
Blue Swirl23130862009-06-06 08:22:04 +0000106
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300107 {
108 .name = "eject",
Luiz Capitulino78d714e2009-12-14 18:53:21 -0200109 .args_type = "force:-f,device:B",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300110 .params = "[-f] device",
111 .help = "eject a removable medium (use -f to force it)",
Luiz Capitulinoe1c923a2009-10-16 12:23:49 -0300112 .user_print = monitor_user_noop,
Luiz Capitulino261394d2010-02-10 23:50:02 -0200113 .mhandler.cmd_new = do_eject,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300114 },
115
Blue Swirl23130862009-06-06 08:22:04 +0000116STEXI
117@item eject [-f] @var{device}
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100118@findex eject
Blue Swirl23130862009-06-06 08:22:04 +0000119Eject a removable medium (use -f to force it).
120ETEXI
Jan Kiszkab40292e2010-05-31 14:43:31 -0300121SQMP
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
Blue Swirl23130862009-06-06 08:22:04 +0000140
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300141 {
142 .name = "change",
143 .args_type = "device:B,target:F,arg:s?",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300144 .params = "device filename [format]",
145 .help = "change a removable medium, optional format",
Markus Armbrusterec3b82a2009-12-07 21:37:09 +0100146 .user_print = monitor_user_noop,
Luiz Capitulino261394d2010-02-10 23:50:02 -0200147 .mhandler.cmd_new = do_change,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300148 },
149
Blue Swirl23130862009-06-06 08:22:04 +0000150STEXI
151@item change @var{device} @var{setting}
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100152@findex change
Blue Swirl23130862009-06-06 08:22:04 +0000153
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
Jan Kiszkab40292e2010-05-31 14:43:31 -0300187SQMP
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
Blue Swirl23130862009-06-06 08:22:04 +0000216
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300217 {
218 .name = "screendump",
219 .args_type = "filename:F",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300220 .params = "filename",
221 .help = "save screen into PPM image 'filename'",
Luiz Capitulinof1dc58e2010-03-31 15:21:49 -0300222 .user_print = monitor_user_noop,
223 .mhandler.cmd_new = do_screen_dump,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300224 },
225
Blue Swirl23130862009-06-06 08:22:04 +0000226STEXI
227@item screendump @var{filename}
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100228@findex screendump
Blue Swirl23130862009-06-06 08:22:04 +0000229Save screen into PPM image @var{filename}.
230ETEXI
Jan Kiszkab40292e2010-05-31 14:43:31 -0300231SQMP
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
Blue Swirl23130862009-06-06 08:22:04 +0000247
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300248 {
249 .name = "logfile",
250 .args_type = "filename:F",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300251 .params = "filename",
252 .help = "output logs to 'filename'",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -0300253 .mhandler.cmd = do_logfile,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300254 },
255
Blue Swirl23130862009-06-06 08:22:04 +0000256STEXI
257@item logfile @var{filename}
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100258@findex logfile
Blue Swirl23130862009-06-06 08:22:04 +0000259Output logs to @var{filename}.
260ETEXI
261
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300262 {
263 .name = "log",
264 .args_type = "items:s",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300265 .params = "item1[,...]",
266 .help = "activate logging of the specified items to '/tmp/qemu.log'",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -0300267 .mhandler.cmd = do_log,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300268 },
269
Blue Swirl23130862009-06-06 08:22:04 +0000270STEXI
271@item log @var{item1}[,...]
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100272@findex log
Blue Swirl23130862009-06-06 08:22:04 +0000273Activate logging of the specified items to @file{/tmp/qemu.log}.
274ETEXI
275
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300276 {
277 .name = "savevm",
278 .args_type = "name:s?",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300279 .params = "[tag|id]",
280 .help = "save a VM snapshot. If no tag or id are provided, a new snapshot is created",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -0300281 .mhandler.cmd = do_savevm,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300282 },
283
Blue Swirl23130862009-06-06 08:22:04 +0000284STEXI
285@item savevm [@var{tag}|@var{id}]
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100286@findex savevm
Blue Swirl23130862009-06-06 08:22:04 +0000287Create 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
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300293 {
294 .name = "loadvm",
295 .args_type = "name:s",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300296 .params = "tag|id",
297 .help = "restore a VM snapshot from its tag or id",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -0300298 .mhandler.cmd = do_loadvm,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300299 },
300
Blue Swirl23130862009-06-06 08:22:04 +0000301STEXI
302@item loadvm @var{tag}|@var{id}
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100303@findex loadvm
Blue Swirl23130862009-06-06 08:22:04 +0000304Set the whole virtual machine to the snapshot identified by the tag
305@var{tag} or the unique snapshot ID @var{id}.
306ETEXI
307
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300308 {
309 .name = "delvm",
310 .args_type = "name:s",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300311 .params = "tag|id",
312 .help = "delete a VM snapshot from its tag or id",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -0300313 .mhandler.cmd = do_delvm,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300314 },
315
Blue Swirl23130862009-06-06 08:22:04 +0000316STEXI
317@item delvm @var{tag}|@var{id}
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100318@findex delvm
Blue Swirl23130862009-06-06 08:22:04 +0000319Delete the snapshot identified by @var{tag} or @var{id}.
320ETEXI
321
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300322 {
323 .name = "singlestep",
324 .args_type = "option:s?",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300325 .params = "[on|off]",
326 .help = "run emulation in singlestep mode or switch to normal mode",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -0300327 .mhandler.cmd = do_singlestep,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300328 },
329
Blue Swirl23130862009-06-06 08:22:04 +0000330STEXI
331@item singlestep [off]
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100332@findex singlestep
Blue Swirl23130862009-06-06 08:22:04 +0000333Run the emulation in single step mode.
334If called with option off, the emulation returns to normal mode.
335ETEXI
336
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300337 {
338 .name = "stop",
339 .args_type = "",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300340 .params = "",
341 .help = "stop emulation",
Luiz Capitulinoe0c97bd2009-10-07 13:41:57 -0300342 .user_print = monitor_user_noop,
Luiz Capitulino261394d2010-02-10 23:50:02 -0200343 .mhandler.cmd_new = do_stop,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300344 },
345
Blue Swirl23130862009-06-06 08:22:04 +0000346STEXI
347@item stop
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100348@findex stop
Blue Swirl23130862009-06-06 08:22:04 +0000349Stop emulation.
350ETEXI
Jan Kiszkab40292e2010-05-31 14:43:31 -0300351SQMP
352stop
353----
354
355Stop the emulator.
356
357Arguments: None.
358
359Example:
360
361-> { "execute": "stop" }
362<- { "return": {} }
363
364EQMP
Blue Swirl23130862009-06-06 08:22:04 +0000365
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300366 {
367 .name = "c|cont",
368 .args_type = "",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300369 .params = "",
370 .help = "resume emulation",
Luiz Capitulinoa1f896a2009-10-07 13:42:00 -0300371 .user_print = monitor_user_noop,
Luiz Capitulino261394d2010-02-10 23:50:02 -0200372 .mhandler.cmd_new = do_cont,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300373 },
374
Blue Swirl23130862009-06-06 08:22:04 +0000375STEXI
376@item c or cont
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100377@findex cont
Blue Swirl23130862009-06-06 08:22:04 +0000378Resume emulation.
379ETEXI
Jan Kiszkab40292e2010-05-31 14:43:31 -0300380SQMP
381cont
382----
383
384Resume emulation.
385
386Arguments: None.
387
388Example:
389
390-> { "execute": "cont" }
391<- { "return": {} }
392
393EQMP
Blue Swirl23130862009-06-06 08:22:04 +0000394
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300395 {
396 .name = "gdbserver",
397 .args_type = "device:s?",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300398 .params = "[device]",
399 .help = "start gdbserver on given device (default 'tcp::1234'), stop with 'none'",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -0300400 .mhandler.cmd = do_gdbserver,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300401 },
402
Blue Swirl23130862009-06-06 08:22:04 +0000403STEXI
404@item gdbserver [@var{port}]
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100405@findex gdbserver
Blue Swirl23130862009-06-06 08:22:04 +0000406Start gdbserver session (default @var{port}=1234)
407ETEXI
408
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300409 {
410 .name = "x",
411 .args_type = "fmt:/,addr:l",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300412 .params = "/fmt addr",
413 .help = "virtual memory dump starting at 'addr'",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -0300414 .mhandler.cmd = do_memory_dump,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300415 },
416
Blue Swirl23130862009-06-06 08:22:04 +0000417STEXI
418@item x/fmt @var{addr}
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100419@findex x
Blue Swirl23130862009-06-06 08:22:04 +0000420Virtual memory dump starting at @var{addr}.
421ETEXI
422
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300423 {
424 .name = "xp",
425 .args_type = "fmt:/,addr:l",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300426 .params = "/fmt addr",
427 .help = "physical memory dump starting at 'addr'",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -0300428 .mhandler.cmd = do_physical_memory_dump,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300429 },
430
Blue Swirl23130862009-06-06 08:22:04 +0000431STEXI
432@item xp /@var{fmt} @var{addr}
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100433@findex xp
Blue Swirl23130862009-06-06 08:22:04 +0000434Physical 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
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300490 {
491 .name = "p|print",
492 .args_type = "fmt:/,val:l",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300493 .params = "/fmt expr",
494 .help = "print expression value (use $reg for CPU register access)",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -0300495 .mhandler.cmd = do_print,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300496 },
497
Blue Swirl23130862009-06-06 08:22:04 +0000498STEXI
499@item p or print/@var{fmt} @var{expr}
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100500@findex print
Blue Swirl23130862009-06-06 08:22:04 +0000501
502Print expression value. Only the @var{format} part of @var{fmt} is
503used.
504ETEXI
505
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300506 {
507 .name = "i",
508 .args_type = "fmt:/,addr:i,index:i.",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300509 .params = "/fmt addr",
510 .help = "I/O port read",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -0300511 .mhandler.cmd = do_ioport_read,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300512 },
513
Blue Swirl23130862009-06-06 08:22:04 +0000514STEXI
515Read I/O port.
516ETEXI
517
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300518 {
519 .name = "o",
520 .args_type = "fmt:/,addr:i,val:i",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300521 .params = "/fmt addr value",
522 .help = "I/O port write",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -0300523 .mhandler.cmd = do_ioport_write,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300524 },
525
Jan Kiszkaf1147842009-07-14 10:20:11 +0200526STEXI
527Write to I/O port.
528ETEXI
Blue Swirl23130862009-06-06 08:22:04 +0000529
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300530 {
531 .name = "sendkey",
532 .args_type = "string:s,hold_time:i?",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300533 .params = "keys [hold_ms]",
534 .help = "send keys to the VM (e.g. 'sendkey ctrl-alt-f1', default hold time=100 ms)",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -0300535 .mhandler.cmd = do_sendkey,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300536 },
537
Blue Swirl23130862009-06-06 08:22:04 +0000538STEXI
539@item sendkey @var{keys}
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100540@findex sendkey
Blue Swirl23130862009-06-06 08:22:04 +0000541
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
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300553 {
554 .name = "system_reset",
555 .args_type = "",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300556 .params = "",
557 .help = "reset the system",
Luiz Capitulinoc80d2592009-10-07 13:41:58 -0300558 .user_print = monitor_user_noop,
Luiz Capitulino261394d2010-02-10 23:50:02 -0200559 .mhandler.cmd_new = do_system_reset,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300560 },
561
Blue Swirl23130862009-06-06 08:22:04 +0000562STEXI
563@item system_reset
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100564@findex system_reset
Blue Swirl23130862009-06-06 08:22:04 +0000565
566Reset the system.
567ETEXI
Jan Kiszkab40292e2010-05-31 14:43:31 -0300568SQMP
569system_reset
570------------
571
572Reset the system.
573
574Arguments: None.
575
576Example:
577
578-> { "execute": "system_reset" }
579<- { "return": {} }
580
581EQMP
Blue Swirl23130862009-06-06 08:22:04 +0000582
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300583 {
584 .name = "system_powerdown",
585 .args_type = "",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300586 .params = "",
587 .help = "send system power down event",
Luiz Capitulino43076662009-10-07 13:41:59 -0300588 .user_print = monitor_user_noop,
Luiz Capitulino261394d2010-02-10 23:50:02 -0200589 .mhandler.cmd_new = do_system_powerdown,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300590 },
591
Blue Swirl23130862009-06-06 08:22:04 +0000592STEXI
593@item system_powerdown
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100594@findex system_powerdown
Blue Swirl23130862009-06-06 08:22:04 +0000595
596Power down the system (if supported).
597ETEXI
Jan Kiszkab40292e2010-05-31 14:43:31 -0300598SQMP
599system_powerdown
600----------------
601
602Send system power down event.
603
604Arguments: None.
605
606Example:
607
608-> { "execute": "system_powerdown" }
609<- { "return": {} }
610
611EQMP
Blue Swirl23130862009-06-06 08:22:04 +0000612
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300613 {
614 .name = "sum",
615 .args_type = "start:i,size:i",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300616 .params = "addr size",
617 .help = "compute the checksum of a memory region",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -0300618 .mhandler.cmd = do_sum,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300619 },
620
Blue Swirl23130862009-06-06 08:22:04 +0000621STEXI
622@item sum @var{addr} @var{size}
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100623@findex sum
Blue Swirl23130862009-06-06 08:22:04 +0000624
625Compute the checksum of a memory region.
626ETEXI
627
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300628 {
629 .name = "usb_add",
630 .args_type = "devname:s",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300631 .params = "device",
632 .help = "add USB device (e.g. 'host:bus.addr' or 'host:vendor_id:product_id')",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -0300633 .mhandler.cmd = do_usb_add,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300634 },
635
Blue Swirl23130862009-06-06 08:22:04 +0000636STEXI
637@item usb_add @var{devname}
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100638@findex usb_add
Blue Swirl23130862009-06-06 08:22:04 +0000639
640Add the USB device @var{devname}. For details of available devices see
641@ref{usb_devices}
642ETEXI
643
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300644 {
645 .name = "usb_del",
646 .args_type = "devname:s",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300647 .params = "device",
648 .help = "remove USB device 'bus.addr'",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -0300649 .mhandler.cmd = do_usb_del,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300650 },
651
Blue Swirl23130862009-06-06 08:22:04 +0000652STEXI
653@item usb_del @var{devname}
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100654@findex usb_del
Blue Swirl23130862009-06-06 08:22:04 +0000655
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
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300661 {
662 .name = "device_add",
Markus Armbrusterc7e4e8c2010-02-10 20:47:28 +0100663 .args_type = "device:O",
664 .params = "driver[,prop=value][,...]",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300665 .help = "add device, like -device on the command line",
Markus Armbruster8bc27242010-02-10 20:52:01 +0100666 .user_print = monitor_user_noop,
667 .mhandler.cmd_new = do_device_add,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300668 },
669
Gerd Hoffmann3418bd22009-09-25 21:42:41 +0200670STEXI
671@item device_add @var{config}
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100672@findex device_add
Gerd Hoffmann3418bd22009-09-25 21:42:41 +0200673
674Add device.
675ETEXI
Jan Kiszkab40292e2010-05-31 14:43:31 -0300676SQMP
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
Gerd Hoffmann3418bd22009-09-25 21:42:41 +0200703
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300704 {
705 .name = "device_del",
706 .args_type = "id:s",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300707 .params = "device",
708 .help = "remove device",
Markus Armbruster17a38ea2010-03-22 11:38:14 +0100709 .user_print = monitor_user_noop,
710 .mhandler.cmd_new = do_device_del,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300711 },
712
Gerd Hoffmann3418bd22009-09-25 21:42:41 +0200713STEXI
714@item device_del @var{id}
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100715@findex device_del
Gerd Hoffmann3418bd22009-09-25 21:42:41 +0200716
717Remove device @var{id}.
718ETEXI
Jan Kiszkab40292e2010-05-31 14:43:31 -0300719SQMP
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
Gerd Hoffmann3418bd22009-09-25 21:42:41 +0200735
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300736 {
737 .name = "cpu",
738 .args_type = "index:i",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300739 .params = "index",
740 .help = "set the default CPU",
Markus Armbruster81a1b452010-01-20 13:07:35 +0100741 .user_print = monitor_user_noop,
Luiz Capitulino261394d2010-02-10 23:50:02 -0200742 .mhandler.cmd_new = do_cpu_set,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300743 },
Gerd Hoffmann3418bd22009-09-25 21:42:41 +0200744
Blue Swirl23130862009-06-06 08:22:04 +0000745STEXI
Markus Armbrusterc427ea92010-05-04 13:20:32 +0200746@item cpu @var{index}
747@findex cpu
Blue Swirl23130862009-06-06 08:22:04 +0000748Set the default CPU.
749ETEXI
Jan Kiszkab40292e2010-05-31 14:43:31 -0300750SQMP
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
Blue Swirl23130862009-06-06 08:22:04 +0000768
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300769 {
770 .name = "mouse_move",
771 .args_type = "dx_str:s,dy_str:s,dz_str:s?",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300772 .params = "dx dy [dz]",
773 .help = "send mouse move events",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -0300774 .mhandler.cmd = do_mouse_move,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300775 },
776
Blue Swirl23130862009-06-06 08:22:04 +0000777STEXI
778@item mouse_move @var{dx} @var{dy} [@var{dz}]
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100779@findex mouse_move
Blue Swirl23130862009-06-06 08:22:04 +0000780Move the active mouse to the specified coordinates @var{dx} @var{dy}
781with optional scroll axis @var{dz}.
782ETEXI
783
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300784 {
785 .name = "mouse_button",
786 .args_type = "button_state:i",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300787 .params = "state",
788 .help = "change mouse button state (1=L, 2=M, 4=R)",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -0300789 .mhandler.cmd = do_mouse_button,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300790 },
791
Blue Swirl23130862009-06-06 08:22:04 +0000792STEXI
793@item mouse_button @var{val}
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100794@findex mouse_button
Blue Swirl23130862009-06-06 08:22:04 +0000795Change the active mouse button state @var{val} (1=L, 2=M, 4=R).
796ETEXI
797
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300798 {
799 .name = "mouse_set",
800 .args_type = "index:i",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300801 .params = "index",
802 .help = "set which mouse device receives events",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -0300803 .mhandler.cmd = do_mouse_set,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300804 },
805
Blue Swirl23130862009-06-06 08:22:04 +0000806STEXI
807@item mouse_set @var{index}
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100808@findex mouse_set
Blue Swirl23130862009-06-06 08:22:04 +0000809Set 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
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300817 {
818 .name = "wavcapture",
819 .args_type = "path:F,freq:i?,bits:i?,nchannels:i?",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300820 .params = "path [frequency [bits [channels]]]",
821 .help = "capture audio to a wave file (default frequency=44100 bits=16 channels=2)",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -0300822 .mhandler.cmd = do_wav_capture,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300823 },
Blue Swirl23130862009-06-06 08:22:04 +0000824#endif
825STEXI
826@item wavcapture @var{filename} [@var{frequency} [@var{bits} [@var{channels}]]]
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100827@findex wavcapture
Blue Swirl23130862009-06-06 08:22:04 +0000828Capture 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
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300840 {
841 .name = "stopcapture",
842 .args_type = "n:i",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300843 .params = "capture index",
844 .help = "stop capture",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -0300845 .mhandler.cmd = do_stop_capture,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300846 },
Blue Swirl23130862009-06-06 08:22:04 +0000847#endif
848STEXI
849@item stopcapture @var{index}
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100850@findex stopcapture
Blue Swirl23130862009-06-06 08:22:04 +0000851Stop capture with a given @var{index}, index can be obtained with
852@example
853info capture
854@end example
855ETEXI
856
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300857 {
858 .name = "memsave",
859 .args_type = "val:l,size:i,filename:s",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300860 .params = "addr size file",
861 .help = "save to disk virtual memory dump starting at 'addr' of size 'size'",
Luiz Capitulino57e09452009-10-16 12:23:43 -0300862 .user_print = monitor_user_noop,
Luiz Capitulino261394d2010-02-10 23:50:02 -0200863 .mhandler.cmd_new = do_memory_save,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300864 },
865
Blue Swirl23130862009-06-06 08:22:04 +0000866STEXI
867@item memsave @var{addr} @var{size} @var{file}
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100868@findex memsave
Blue Swirl23130862009-06-06 08:22:04 +0000869save to disk virtual memory dump starting at @var{addr} of size @var{size}.
870ETEXI
Jan Kiszkab40292e2010-05-31 14:43:31 -0300871SQMP
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
Blue Swirl23130862009-06-06 08:22:04 +0000894
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300895 {
896 .name = "pmemsave",
897 .args_type = "val:l,size:i,filename:s",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300898 .params = "addr size file",
899 .help = "save to disk physical memory dump starting at 'addr' of size 'size'",
Luiz Capitulino18f5a8b2009-10-16 12:23:44 -0300900 .user_print = monitor_user_noop,
Luiz Capitulino261394d2010-02-10 23:50:02 -0200901 .mhandler.cmd_new = do_physical_memory_save,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300902 },
903
Blue Swirl23130862009-06-06 08:22:04 +0000904STEXI
905@item pmemsave @var{addr} @var{size} @var{file}
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100906@findex pmemsave
Blue Swirl23130862009-06-06 08:22:04 +0000907save to disk physical memory dump starting at @var{addr} of size @var{size}.
908ETEXI
Jan Kiszkab40292e2010-05-31 14:43:31 -0300909SQMP
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
Blue Swirl23130862009-06-06 08:22:04 +0000930
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300931 {
932 .name = "boot_set",
933 .args_type = "bootdevice:s",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300934 .params = "bootdevice",
935 .help = "define new values for the boot device list",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -0300936 .mhandler.cmd = do_boot_set,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300937 },
938
Blue Swirl23130862009-06-06 08:22:04 +0000939STEXI
940@item boot_set @var{bootdevicelist}
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100941@findex boot_set
Blue Swirl23130862009-06-06 08:22:04 +0000942
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)
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300951 {
952 .name = "nmi",
953 .args_type = "cpu_index:i",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300954 .params = "cpu",
955 .help = "inject an NMI on the given CPU",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -0300956 .mhandler.cmd = do_inject_nmi,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300957 },
Blue Swirl23130862009-06-06 08:22:04 +0000958#endif
959STEXI
960@item nmi @var{cpu}
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100961@findex nmi
Blue Swirl23130862009-06-06 08:22:04 +0000962Inject an NMI on the given CPU (x86 only).
963ETEXI
964
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300965 {
966 .name = "migrate",
lirans@il.ibm.comfbc3d962009-11-02 15:41:13 +0200967 .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,
Luiz Capitulino261394d2010-02-10 23:50:02 -0200975 .mhandler.cmd_new = do_migrate,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300976 },
977
lirans@il.ibm.comfbc3d962009-11-02 15:41:13 +0200978
Blue Swirl23130862009-06-06 08:22:04 +0000979STEXI
lirans@il.ibm.comfbc3d962009-11-02 15:41:13 +0200980@item migrate [-d] [-b] [-i] @var{uri}
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100981@findex migrate
Blue Swirl23130862009-06-06 08:22:04 +0000982Migrate to @var{uri} (using -d to not wait for completion).
lirans@il.ibm.comfbc3d962009-11-02 15:41:13 +0200983 -b for migration with full copy of disk
984 -i for migration with incremental copy of disk (base image is shared)
Blue Swirl23130862009-06-06 08:22:04 +0000985ETEXI
Jan Kiszkab40292e2010-05-31 14:43:31 -0300986SQMP
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
Blue Swirl23130862009-06-06 08:22:04 +00001012
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001013 {
1014 .name = "migrate_cancel",
1015 .args_type = "",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001016 .params = "",
1017 .help = "cancel the current VM migration",
Luiz Capitulino911d2962009-10-16 12:23:47 -03001018 .user_print = monitor_user_noop,
Luiz Capitulino261394d2010-02-10 23:50:02 -02001019 .mhandler.cmd_new = do_migrate_cancel,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001020 },
1021
Blue Swirl23130862009-06-06 08:22:04 +00001022STEXI
1023@item migrate_cancel
Stefan Weil70fcbbe2010-02-05 23:52:04 +01001024@findex migrate_cancel
Blue Swirl23130862009-06-06 08:22:04 +00001025Cancel the current VM migration.
1026ETEXI
Jan Kiszkab40292e2010-05-31 14:43:31 -03001027SQMP
1028migrate_cancel
1029--------------
1030
1031Cancel the current migration.
1032
1033Arguments: None.
1034
1035Example:
1036
1037-> { "execute": "migrate_cancel" }
1038<- { "return": {} }
1039
1040EQMP
Blue Swirl23130862009-06-06 08:22:04 +00001041
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001042 {
1043 .name = "migrate_set_speed",
Markus Armbrusteree9545d2010-03-26 09:07:08 +01001044 .args_type = "value:f",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001045 .params = "value",
1046 .help = "set maximum speed (in bytes) for migrations",
Markus Armbruster5fd90832010-01-25 14:23:05 +01001047 .user_print = monitor_user_noop,
Luiz Capitulino261394d2010-02-10 23:50:02 -02001048 .mhandler.cmd_new = do_migrate_set_speed,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001049 },
1050
Blue Swirl23130862009-06-06 08:22:04 +00001051STEXI
1052@item migrate_set_speed @var{value}
Stefan Weil70fcbbe2010-02-05 23:52:04 +01001053@findex migrate_set_speed
Blue Swirl23130862009-06-06 08:22:04 +00001054Set maximum speed to @var{value} (in bytes) for migrations.
1055ETEXI
Jan Kiszkab40292e2010-05-31 14:43:31 -03001056SQMP
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
Blue Swirl23130862009-06-06 08:22:04 +00001072
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001073 {
1074 .name = "migrate_set_downtime",
Markus Armbrusterb0fbf7d2010-01-25 14:23:07 +01001075 .args_type = "value:T",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001076 .params = "value",
1077 .help = "set maximum tolerated downtime (in seconds) for migrations",
Markus Armbrusterc6027f52010-01-25 14:23:08 +01001078 .user_print = monitor_user_noop,
Luiz Capitulino261394d2010-02-10 23:50:02 -02001079 .mhandler.cmd_new = do_migrate_set_downtime,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001080 },
Glauber Costa2ea42952009-05-28 15:22:58 -04001081
1082STEXI
1083@item migrate_set_downtime @var{second}
Stefan Weil70fcbbe2010-02-05 23:52:04 +01001084@findex migrate_set_downtime
Glauber Costa2ea42952009-05-28 15:22:58 -04001085Set maximum tolerated downtime (in seconds) for migration.
1086ETEXI
Jan Kiszkab40292e2010-05-31 14:43:31 -03001087SQMP
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
Glauber Costa2ea42952009-05-28 15:22:58 -04001103
Blue Swirl23130862009-06-06 08:22:04 +00001104#if defined(TARGET_I386)
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001105 {
1106 .name = "drive_add",
1107 .args_type = "pci_addr:s,opts:s",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001108 .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",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -03001114 .mhandler.cmd = drive_hot_add,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001115 },
Blue Swirl23130862009-06-06 08:22:04 +00001116#endif
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001117
Blue Swirl23130862009-06-06 08:22:04 +00001118STEXI
1119@item drive_add
Stefan Weil70fcbbe2010-02-05 23:52:04 +01001120@findex drive_add
Blue Swirl23130862009-06-06 08:22:04 +00001121Add drive to PCI storage controller.
1122ETEXI
1123
1124#if defined(TARGET_I386)
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001125 {
1126 .name = "pci_add",
1127 .args_type = "pci_addr:s,type:s,opts:s?",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001128 .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",
Markus Armbruster6c6a58a2010-05-12 10:53:00 +02001130 .mhandler.cmd = pci_device_hot_add,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001131 },
Blue Swirl23130862009-06-06 08:22:04 +00001132#endif
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001133
Blue Swirl23130862009-06-06 08:22:04 +00001134STEXI
1135@item pci_add
Stefan Weil70fcbbe2010-02-05 23:52:04 +01001136@findex pci_add
Blue Swirl23130862009-06-06 08:22:04 +00001137Hot-add PCI device.
1138ETEXI
1139
1140#if defined(TARGET_I386)
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001141 {
1142 .name = "pci_del",
1143 .args_type = "pci_addr:s",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001144 .params = "[[<domain>:]<bus>:]<slot>",
1145 .help = "hot remove PCI device",
Markus Armbrusterb752daf2010-05-12 10:53:01 +02001146 .mhandler.cmd = do_pci_device_hot_remove,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001147 },
Blue Swirl23130862009-06-06 08:22:04 +00001148#endif
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001149
Blue Swirl23130862009-06-06 08:22:04 +00001150STEXI
1151@item pci_del
Stefan Weil70fcbbe2010-02-05 23:52:04 +01001152@findex pci_del
Blue Swirl23130862009-06-06 08:22:04 +00001153Hot remove PCI device.
1154ETEXI
1155
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001156 {
1157 .name = "host_net_add",
1158 .args_type = "device:s,opts:s?",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001159 .params = "tap|user|socket|vde|dump [options]",
1160 .help = "add host VLAN client",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -03001161 .mhandler.cmd = net_host_device_add,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001162 },
1163
Blue Swirl23130862009-06-06 08:22:04 +00001164STEXI
1165@item host_net_add
Stefan Weil70fcbbe2010-02-05 23:52:04 +01001166@findex host_net_add
Blue Swirl23130862009-06-06 08:22:04 +00001167Add host VLAN client.
1168ETEXI
1169
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001170 {
1171 .name = "host_net_remove",
1172 .args_type = "vlan_id:i,device:s",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001173 .params = "vlan_id name",
1174 .help = "remove host VLAN client",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -03001175 .mhandler.cmd = net_host_device_remove,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001176 },
1177
Blue Swirl23130862009-06-06 08:22:04 +00001178STEXI
1179@item host_net_remove
Stefan Weil70fcbbe2010-02-05 23:52:04 +01001180@findex host_net_remove
Blue Swirl23130862009-06-06 08:22:04 +00001181Remove host VLAN client.
1182ETEXI
1183
Markus Armbrusterae82d322010-03-25 17:22:40 +01001184 {
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
Jan Kiszkab40292e2010-05-31 14:43:31 -03001198SQMP
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
Markus Armbrusterae82d322010-03-25 17:22:40 +01001220
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.
1234ETEXI
Jan Kiszkab40292e2010-05-31 14:43:31 -03001235SQMP
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
Markus Armbrusterae82d322010-03-25 17:22:40 +01001251
Blue Swirl23130862009-06-06 08:22:04 +00001252#ifdef CONFIG_SLIRP
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001253 {
1254 .name = "hostfwd_add",
1255 .args_type = "arg1:s,arg2:s?,arg3:s?",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001256 .params = "[vlan_id name] [tcp|udp]:[hostaddr]:hostport-[guestaddr]:guestport",
1257 .help = "redirect TCP or UDP connections from host to guest (requires -net user)",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -03001258 .mhandler.cmd = net_slirp_hostfwd_add,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001259 },
Markus Armbruster21413d62010-05-04 13:20:30 +02001260#endif
1261STEXI
1262@item hostfwd_add
1263@findex hostfwd_add
1264Redirect TCP or UDP connections from host to guest (requires -net user).
1265ETEXI
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001266
Markus Armbruster21413d62010-05-04 13:20:30 +02001267#ifdef CONFIG_SLIRP
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001268 {
1269 .name = "hostfwd_remove",
1270 .args_type = "arg1:s,arg2:s?,arg3:s?",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001271 .params = "[vlan_id name] [tcp|udp]:[hostaddr]:hostport",
1272 .help = "remove host-to-guest TCP or UDP redirection",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -03001273 .mhandler.cmd = net_slirp_hostfwd_remove,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001274 },
1275
Blue Swirl23130862009-06-06 08:22:04 +00001276#endif
1277STEXI
Markus Armbruster21413d62010-05-04 13:20:30 +02001278@item hostfwd_remove
1279@findex hostfwd_remove
1280Remove host-to-guest TCP or UDP redirection.
Blue Swirl23130862009-06-06 08:22:04 +00001281ETEXI
1282
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001283 {
1284 .name = "balloon",
Luiz Capitulino3b0bd6e2009-12-18 13:25:05 -02001285 .args_type = "value:M",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001286 .params = "target",
Riccardo Magliocchetti3c056132010-05-19 18:49:28 +02001287 .help = "request VM to change its memory allocation (in MB)",
Luiz Capitulino83fb1de2009-10-07 13:42:01 -03001288 .user_print = monitor_user_noop,
Adam Litke625a5be2010-01-26 14:17:35 -06001289 .mhandler.cmd_async = do_balloon,
Jan Kiszka8ac470c2010-06-16 00:38:39 +02001290 .flags = MONITOR_CMD_ASYNC,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001291 },
1292
Blue Swirl23130862009-06-06 08:22:04 +00001293STEXI
1294@item balloon @var{value}
Stefan Weil70fcbbe2010-02-05 23:52:04 +01001295@findex balloon
Blue Swirl23130862009-06-06 08:22:04 +00001296Request VM to change its memory allocation to @var{value} (in MB).
1297ETEXI
Jan Kiszkab40292e2010-05-31 14:43:31 -03001298SQMP
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
Blue Swirl23130862009-06-06 08:22:04 +00001314
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001315 {
1316 .name = "set_link",
Markus Armbrusterc9b26a42010-03-26 09:07:10 +01001317 .args_type = "name:s,up:b",
1318 .params = "name on|off",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001319 .help = "change the link status of a network adapter",
Markus Armbruster5369e3c2010-03-26 09:07:11 +01001320 .user_print = monitor_user_noop,
1321 .mhandler.cmd_new = do_set_link,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001322 },
1323
Blue Swirl23130862009-06-06 08:22:04 +00001324STEXI
Markus Armbrusterc9b26a42010-03-26 09:07:10 +01001325@item set_link @var{name} [on|off]
Stefan Weil70fcbbe2010-02-05 23:52:04 +01001326@findex set_link
Markus Armbrusterc9b26a42010-03-26 09:07:10 +01001327Switch link @var{name} on (i.e. up) or off (i.e. down).
Blue Swirl23130862009-06-06 08:22:04 +00001328ETEXI
Jan Kiszkab40292e2010-05-31 14:43:31 -03001329SQMP
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
Blue Swirl23130862009-06-06 08:22:04 +00001346
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001347 {
1348 .name = "watchdog_action",
1349 .args_type = "action:s",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001350 .params = "[reset|shutdown|poweroff|pause|debug|none]",
1351 .help = "change watchdog action",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -03001352 .mhandler.cmd = do_watchdog_action,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001353 },
1354
Blue Swirl23130862009-06-06 08:22:04 +00001355STEXI
1356@item watchdog_action
Stefan Weil70fcbbe2010-02-05 23:52:04 +01001357@findex watchdog_action
Blue Swirl23130862009-06-06 08:22:04 +00001358Change watchdog action.
1359ETEXI
1360
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001361 {
1362 .name = "acl_show",
1363 .args_type = "aclname:s",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001364 .params = "aclname",
1365 .help = "list rules in the access control list",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -03001366 .mhandler.cmd = do_acl_show,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001367 },
1368
Blue Swirl23130862009-06-06 08:22:04 +00001369STEXI
Jan Kiszka15dfcd42009-06-25 08:22:08 +02001370@item acl_show @var{aclname}
Stefan Weil70fcbbe2010-02-05 23:52:04 +01001371@findex acl_show
Jan Kiszka15dfcd42009-06-25 08:22:08 +02001372List 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
Blue Swirl23130862009-06-06 08:22:04 +00001377
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001378 {
1379 .name = "acl_policy",
1380 .args_type = "aclname:s,policy:s",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001381 .params = "aclname allow|deny",
1382 .help = "set default access control list policy",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -03001383 .mhandler.cmd = do_acl_policy,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001384 },
1385
Jan Kiszka15dfcd42009-06-25 08:22:08 +02001386STEXI
Jan Kiszkacbbfacc2009-07-03 08:46:05 +02001387@item acl_policy @var{aclname} @code{allow|deny}
Stefan Weil70fcbbe2010-02-05 23:52:04 +01001388@findex acl_policy
Jan Kiszka15dfcd42009-06-25 08:22:08 +02001389Set the default access control list policy, used in the event that
Blue Swirl23130862009-06-06 08:22:04 +00001390none of the explicit rules match. The default policy at startup is
Jan Kiszka15dfcd42009-06-25 08:22:08 +02001391always @code{deny}.
1392ETEXI
1393
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001394 {
1395 .name = "acl_add",
1396 .args_type = "aclname:s,match:s,policy:s,index:i?",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001397 .params = "aclname match allow|deny [index]",
1398 .help = "add a match rule to the access control list",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -03001399 .mhandler.cmd = do_acl_add,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001400 },
1401
Jan Kiszka15dfcd42009-06-25 08:22:08 +02001402STEXI
Markus Armbruster0e4aec92010-05-04 13:20:31 +02001403@item acl_add @var{aclname} @var{match} @code{allow|deny} [@var{index}]
1404@findex acl_add
Jan Kiszka15dfcd42009-06-25 08:22:08 +02001405Add 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
Blue Swirl23130862009-06-06 08:22:04 +00001409normally be appended to the end of the ACL, but can be inserted
Jan Kiszka15dfcd42009-06-25 08:22:08 +02001410earlier in the list if the optional @var{index} parameter is supplied.
1411ETEXI
1412
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001413 {
1414 .name = "acl_remove",
1415 .args_type = "aclname:s,match:s",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001416 .params = "aclname match",
1417 .help = "remove a match rule from the access control list",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -03001418 .mhandler.cmd = do_acl_remove,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001419 },
1420
Jan Kiszka15dfcd42009-06-25 08:22:08 +02001421STEXI
1422@item acl_remove @var{aclname} @var{match}
Stefan Weil70fcbbe2010-02-05 23:52:04 +01001423@findex acl_remove
Jan Kiszka15dfcd42009-06-25 08:22:08 +02001424Remove the specified match rule from the access control list.
1425ETEXI
1426
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001427 {
1428 .name = "acl_reset",
1429 .args_type = "aclname:s",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001430 .params = "aclname",
1431 .help = "reset the access control list",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -03001432 .mhandler.cmd = do_acl_reset,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001433 },
1434
Jan Kiszka15dfcd42009-06-25 08:22:08 +02001435STEXI
Markus Armbruster0e4aec92010-05-04 13:20:31 +02001436@item acl_reset @var{aclname}
1437@findex acl_reset
Jan Kiszka15dfcd42009-06-25 08:22:08 +02001438Remove all matches from the access control list, and set the default
Blue Swirl23130862009-06-06 08:22:04 +00001439policy back to @code{deny}.
Blue Swirl23130862009-06-06 08:22:04 +00001440ETEXI
1441
Huang Ying79c4f6b2009-06-23 10:05:14 +08001442#if defined(TARGET_I386)
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001443
1444 {
1445 .name = "mce",
1446 .args_type = "cpu_index:i,bank:i,status:l,mcg_status:l,addr:l,misc:l",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001447 .params = "cpu bank status mcgstatus addr misc",
1448 .help = "inject a MCE on the given CPU",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -03001449 .mhandler.cmd = do_inject_mce,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001450 },
1451
Huang Ying79c4f6b2009-06-23 10:05:14 +08001452#endif
1453STEXI
1454@item mce @var{cpu} @var{bank} @var{status} @var{mcgstatus} @var{addr} @var{misc}
Stefan Weil70fcbbe2010-02-05 23:52:04 +01001455@findex mce (x86)
Huang Ying79c4f6b2009-06-23 10:05:14 +08001456Inject an MCE on the given CPU (x86 only).
1457ETEXI
1458
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001459 {
1460 .name = "getfd",
1461 .args_type = "fdname:s",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001462 .params = "getfd name",
1463 .help = "receive a file descriptor via SCM rights and assign it a name",
Luiz Capitulinof0d60002009-10-16 12:23:50 -03001464 .user_print = monitor_user_noop,
Luiz Capitulino261394d2010-02-10 23:50:02 -02001465 .mhandler.cmd_new = do_getfd,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001466 },
1467
Mark McLoughlinf07918f2009-07-22 09:11:40 +01001468STEXI
1469@item getfd @var{fdname}
Stefan Weil70fcbbe2010-02-05 23:52:04 +01001470@findex getfd
Mark McLoughlinf07918f2009-07-22 09:11:40 +01001471If 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
Jan Kiszkab40292e2010-05-31 14:43:31 -03001475SQMP
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
Mark McLoughlinf07918f2009-07-22 09:11:40 +01001491
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001492 {
1493 .name = "closefd",
1494 .args_type = "fdname:s",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001495 .params = "closefd name",
1496 .help = "close a file descriptor previously passed via SCM rights",
Luiz Capitulino18f3a512009-10-16 12:23:51 -03001497 .user_print = monitor_user_noop,
Luiz Capitulino261394d2010-02-10 23:50:02 -02001498 .mhandler.cmd_new = do_closefd,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001499 },
1500
Mark McLoughlinf07918f2009-07-22 09:11:40 +01001501STEXI
1502@item closefd @var{fdname}
Stefan Weil70fcbbe2010-02-05 23:52:04 +01001503@findex closefd
Mark McLoughlinf07918f2009-07-22 09:11:40 +01001504Close 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.
1507ETEXI
Jan Kiszkab40292e2010-05-31 14:43:31 -03001508SQMP
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
Mark McLoughlinf07918f2009-07-22 09:11:40 +01001524
Luiz Capitulinoa3a55a22009-12-04 15:24:09 -02001525 {
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,
Luiz Capitulino261394d2010-02-10 23:50:02 -02001531 .mhandler.cmd_new = do_block_set_passwd,
Luiz Capitulinoa3a55a22009-12-04 15:24:09 -02001532 },
1533
1534STEXI
1535@item block_passwd @var{device} @var{password}
Stefan Weil70fcbbe2010-02-05 23:52:04 +01001536@findex block_passwd
Luiz Capitulinoa3a55a22009-12-04 15:24:09 -02001537Set the encrypted device @var{device} password to @var{password}
1538ETEXI
Jan Kiszkab40292e2010-05-31 14:43:31 -03001539SQMP
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
Luiz Capitulinoa3a55a22009-12-04 15:24:09 -02001557
Luiz Capitulino4a7e1192010-02-04 18:10:05 -02001558 {
1559 .name = "qmp_capabilities",
1560 .args_type = "",
1561 .params = "",
1562 .help = "enable QMP capabilities",
1563 .user_print = monitor_user_noop,
Luiz Capitulino261394d2010-02-10 23:50:02 -02001564 .mhandler.cmd_new = do_qmp_capabilities,
Luiz Capitulino4a7e1192010-02-04 18:10:05 -02001565 },
1566
1567STEXI
1568@item qmp_capabilities
Markus Armbruster54d7cf12010-05-04 13:20:33 +02001569@findex qmp_capabilities
Luiz Capitulino4a7e1192010-02-04 18:10:05 -02001570Enable the specified QMP capabilities
1571ETEXI
Jan Kiszkab40292e2010-05-31 14:43:31 -03001572SQMP
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
Luiz Capitulino4a7e1192010-02-04 18:10:05 -02001588
Jan Kiszka33572ec2010-05-31 14:43:30 -03001589
1590HXCOMM Keep the 'info' command at the end!
1591HXCOMM This is required for the QMP documentation layout.
1592
Jan Kiszkab40292e2010-05-31 14:43:31 -03001593SQMP
1594
15952. Query Commands
1596=================
1597
1598EQMP
1599
Jan Kiszka33572ec2010-05-31 14:43:30 -03001600 {
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
Jan Kiszkab40292e2010-05-31 14:43:31 -03001617ETEXI
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
Jan Kiszka33572ec2010-05-31 14:43:30 -03001637@item info commands
1638list QMP available commands
Jan Kiszkab40292e2010-05-31 14:43:31 -03001639ETEXI
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
Jan Kiszka33572ec2010-05-31 14:43:30 -03001672@item info network
1673show the various VLANs and the associated devices
Jan Kiszkab40292e2010-05-31 14:43:31 -03001674ETEXI
1675
1676STEXI
Jan Kiszka33572ec2010-05-31 14:43:30 -03001677@item info chardev
1678show the character devices
Jan Kiszkab40292e2010-05-31 14:43:31 -03001679ETEXI
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
Jan Kiszka33572ec2010-05-31 14:43:30 -03001711@item info block
1712show the block devices
Jan Kiszkab40292e2010-05-31 14:43:31 -03001713ETEXI
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
Jan Kiszka33572ec2010-05-31 14:43:30 -03001784@item info blockstats
1785show block device statistics
Jan Kiszkab40292e2010-05-31 14:43:31 -03001786ETEXI
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
Jan Kiszka33572ec2010-05-31 14:43:30 -03001871@item info registers
1872show the cpu registers
1873@item info cpus
1874show infos for each CPU
Jan Kiszkab40292e2010-05-31 14:43:31 -03001875ETEXI
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
Jan Kiszka33572ec2010-05-31 14:43:30 -03001916@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
Jan Kiszkab40292e2010-05-31 14:43:31 -03001922ETEXI
1923
1924STEXI
Jan Kiszka33572ec2010-05-31 14:43:30 -03001925@item info pci
1926show emulated PCI device info
Jan Kiszkab40292e2010-05-31 14:43:31 -03001927ETEXI
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
Jan Kiszka33572ec2010-05-31 14:43:30 -03002140@item info tlb
2141show virtual to physical memory mappings (i386 only)
2142@item info mem
2143show the active virtual memory mappings (i386 only)
Jan Kiszkab40292e2010-05-31 14:43:31 -03002144ETEXI
2145
2146STEXI
Jan Kiszka33572ec2010-05-31 14:43:30 -03002147@item info jit
2148show dynamic compiler info
2149@item info kvm
2150show KVM information
2151@item info numa
2152show NUMA information
Jan Kiszkab40292e2010-05-31 14:43:31 -03002153ETEXI
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
Jan Kiszka33572ec2010-05-31 14:43:30 -03002178@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
Jan Kiszkab40292e2010-05-31 14:43:31 -03002188ETEXI
2189
2190STEXI
Jan Kiszka33572ec2010-05-31 14:43:30 -03002191@item info status
2192show the current VM status (running|paused)
Jan Kiszkab40292e2010-05-31 14:43:31 -03002193ETEXI
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
Jan Kiszka33572ec2010-05-31 14:43:30 -03002212@item info pcmcia
2213show guest PCMCIA status
Jan Kiszkab40292e2010-05-31 14:43:31 -03002214ETEXI
2215
2216STEXI
Jan Kiszka33572ec2010-05-31 14:43:30 -03002217@item info mice
2218show which guest mouse is receiving events
Jan Kiszkab40292e2010-05-31 14:43:31 -03002219ETEXI
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
Jan Kiszka33572ec2010-05-31 14:43:30 -03002259@item info vnc
2260show the vnc server status
Jan Kiszkab40292e2010-05-31 14:43:31 -03002261ETEXI
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
Jan Kiszka33572ec2010-05-31 14:43:30 -03002320@item info name
2321show the current VM name
Jan Kiszkab40292e2010-05-31 14:43:31 -03002322ETEXI
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
Jan Kiszka33572ec2010-05-31 14:43:30 -03002341@item info uuid
2342show the current VM UUID
Jan Kiszkab40292e2010-05-31 14:43:31 -03002343ETEXI
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
Jan Kiszka33572ec2010-05-31 14:43:30 -03002362@item info cpustats
2363show CPU statistics
2364@item info usernet
2365show user network stack connection states
Jan Kiszkab40292e2010-05-31 14:43:31 -03002366ETEXI
2367
2368STEXI
Jan Kiszka33572ec2010-05-31 14:43:30 -03002369@item info migrate
2370show migration status
Jan Kiszkab40292e2010-05-31 14:43:31 -03002371ETEXI
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
Jan Kiszka33572ec2010-05-31 14:43:30 -03002450@item info balloon
2451show balloon information
Jan Kiszkab40292e2010-05-31 14:43:31 -03002452ETEXI
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
Jan Kiszka33572ec2010-05-31 14:43:30 -03002489@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
Blue Swirl23130862009-06-06 08:22:04 +00002500STEXI
2501@end table
2502ETEXI