blob: c264c7d539d2ecf70b19920cfa1ba42c305389c1 [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
Luiz Capitulino05705ce2010-08-20 16:42:31 -0300381. Stability Considerations
39===========================
40
41The current QMP command set (described in this file) may be useful for a
42number of use cases, however it's limited and several commands have bad
43defined semantics, specially with regard to command completion.
44
45These problems are going to be solved incrementally in the next QEMU releases
46and we're going to establish a deprecation policy for badly defined commands.
47
48If you're planning to adopt QMP, please observe the following:
49
50 1. The deprecation policy will take efect and be documented soon, please
51 check the documentation of each used command as soon as a new release of
52 QEMU is available
53
54 2. DO NOT rely on anything which is not explicit documented
55
56 3. Errors, in special, are not documented. Applications should NOT check
57 for specific errors classes or data (it's strongly recommended to only
58 check for the "error" key)
59
602. Regular Commands
Jan Kiszkab40292e2010-05-31 14:43:31 -030061===================
62
63Server's responses in the examples below are always a success response, please
64refer to the QMP specification for more details on error responses.
65
66EQMP
67
Blue Swirl23130862009-06-06 08:22:04 +000068STEXI
69@table @option
70ETEXI
71
Luiz Capitulinod7f9b682009-10-07 13:41:50 -030072 {
73 .name = "help|?",
74 .args_type = "name:s?",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -030075 .params = "[cmd]",
76 .help = "show the help",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -030077 .mhandler.cmd = do_help_cmd,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -030078 },
79
Blue Swirl23130862009-06-06 08:22:04 +000080STEXI
81@item help or ? [@var{cmd}]
Stefan Weil70fcbbe2010-02-05 23:52:04 +010082@findex help
Blue Swirl23130862009-06-06 08:22:04 +000083Show the help for all commands or just for command @var{cmd}.
84ETEXI
85
Luiz Capitulinod7f9b682009-10-07 13:41:50 -030086 {
87 .name = "commit",
88 .args_type = "device:B",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -030089 .params = "device|all",
90 .help = "commit changes to the disk images (if -snapshot is used) or backing files",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -030091 .mhandler.cmd = do_commit,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -030092 },
93
Blue Swirl23130862009-06-06 08:22:04 +000094STEXI
95@item commit
Stefan Weil70fcbbe2010-02-05 23:52:04 +010096@findex commit
Blue Swirl23130862009-06-06 08:22:04 +000097Commit changes to the disk images (if -snapshot is used) or backing files.
98ETEXI
99
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300100 {
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300101 .name = "q|quit",
102 .args_type = "",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300103 .params = "",
104 .help = "quit the emulator",
Luiz Capitulinob223f352009-10-07 13:41:56 -0300105 .user_print = monitor_user_noop,
Luiz Capitulino261394d2010-02-10 23:50:02 -0200106 .mhandler.cmd_new = do_quit,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300107 },
108
Blue Swirl23130862009-06-06 08:22:04 +0000109STEXI
110@item q or quit
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100111@findex quit
Blue Swirl23130862009-06-06 08:22:04 +0000112Quit the emulator.
113ETEXI
Jan Kiszkab40292e2010-05-31 14:43:31 -0300114SQMP
115quit
116----
117
118Quit the emulator.
119
120Arguments: None.
121
122Example:
123
124-> { "execute": "quit" }
125<- { "return": {} }
126
127EQMP
Blue Swirl23130862009-06-06 08:22:04 +0000128
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300129 {
130 .name = "eject",
Luiz Capitulino78d714e2009-12-14 18:53:21 -0200131 .args_type = "force:-f,device:B",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300132 .params = "[-f] device",
133 .help = "eject a removable medium (use -f to force it)",
Luiz Capitulinoe1c923a2009-10-16 12:23:49 -0300134 .user_print = monitor_user_noop,
Luiz Capitulino261394d2010-02-10 23:50:02 -0200135 .mhandler.cmd_new = do_eject,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300136 },
137
Blue Swirl23130862009-06-06 08:22:04 +0000138STEXI
139@item eject [-f] @var{device}
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100140@findex eject
Blue Swirl23130862009-06-06 08:22:04 +0000141Eject a removable medium (use -f to force it).
142ETEXI
Jan Kiszkab40292e2010-05-31 14:43:31 -0300143SQMP
144eject
145-----
146
147Eject a removable medium.
148
149Arguments:
150
151- force: force ejection (json-bool, optional)
152- device: device name (json-string)
153
154Example:
155
156-> { "execute": "eject", "arguments": { "device": "ide1-cd0" } }
157<- { "return": {} }
158
159Note: The "force" argument defaults to false.
160
161EQMP
Blue Swirl23130862009-06-06 08:22:04 +0000162
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300163 {
164 .name = "change",
165 .args_type = "device:B,target:F,arg:s?",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300166 .params = "device filename [format]",
167 .help = "change a removable medium, optional format",
Markus Armbrusterec3b82a2009-12-07 21:37:09 +0100168 .user_print = monitor_user_noop,
Luiz Capitulino261394d2010-02-10 23:50:02 -0200169 .mhandler.cmd_new = do_change,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300170 },
171
Blue Swirl23130862009-06-06 08:22:04 +0000172STEXI
173@item change @var{device} @var{setting}
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100174@findex change
Blue Swirl23130862009-06-06 08:22:04 +0000175
176Change the configuration of a device.
177
178@table @option
179@item change @var{diskdevice} @var{filename} [@var{format}]
180Change the medium for a removable disk device to point to @var{filename}. eg
181
182@example
183(qemu) change ide1-cd0 /path/to/some.iso
184@end example
185
186@var{format} is optional.
187
188@item change vnc @var{display},@var{options}
189Change the configuration of the VNC server. The valid syntax for @var{display}
190and @var{options} are described at @ref{sec_invocation}. eg
191
192@example
193(qemu) change vnc localhost:1
194@end example
195
196@item change vnc password [@var{password}]
197
198Change the password associated with the VNC server. If the new password is not
199supplied, the monitor will prompt for it to be entered. VNC passwords are only
200significant up to 8 letters. eg
201
202@example
203(qemu) change vnc password
204Password: ********
205@end example
206
207@end table
208ETEXI
Jan Kiszkab40292e2010-05-31 14:43:31 -0300209SQMP
210change
211------
212
213Change a removable medium or VNC configuration.
214
215Arguments:
216
217- "device": device name (json-string)
218- "target": filename or item (json-string)
219- "arg": additional argument (json-string, optional)
220
221Examples:
222
2231. Change a removable medium
224
225-> { "execute": "change",
226 "arguments": { "device": "ide1-cd0",
227 "target": "/srv/images/Fedora-12-x86_64-DVD.iso" } }
228<- { "return": {} }
229
2302. Change VNC password
231
232-> { "execute": "change",
233 "arguments": { "device": "vnc", "target": "password",
234 "arg": "foobar1" } }
235<- { "return": {} }
236
237EQMP
Blue Swirl23130862009-06-06 08:22:04 +0000238
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300239 {
240 .name = "screendump",
241 .args_type = "filename:F",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300242 .params = "filename",
243 .help = "save screen into PPM image 'filename'",
Luiz Capitulinof1dc58e2010-03-31 15:21:49 -0300244 .user_print = monitor_user_noop,
245 .mhandler.cmd_new = do_screen_dump,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300246 },
247
Blue Swirl23130862009-06-06 08:22:04 +0000248STEXI
249@item screendump @var{filename}
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100250@findex screendump
Blue Swirl23130862009-06-06 08:22:04 +0000251Save screen into PPM image @var{filename}.
252ETEXI
Jan Kiszkab40292e2010-05-31 14:43:31 -0300253SQMP
254screendump
255----------
256
257Save screen into PPM image.
258
259Arguments:
260
261- "filename": file path (json-string)
262
263Example:
264
265-> { "execute": "screendump", "arguments": { "filename": "/tmp/image" } }
266<- { "return": {} }
267
268EQMP
Blue Swirl23130862009-06-06 08:22:04 +0000269
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300270 {
271 .name = "logfile",
272 .args_type = "filename:F",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300273 .params = "filename",
274 .help = "output logs to 'filename'",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -0300275 .mhandler.cmd = do_logfile,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300276 },
277
Blue Swirl23130862009-06-06 08:22:04 +0000278STEXI
279@item logfile @var{filename}
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100280@findex logfile
Blue Swirl23130862009-06-06 08:22:04 +0000281Output logs to @var{filename}.
282ETEXI
283
Prerna Saxena22890ab2010-06-24 17:04:53 +0530284#ifdef CONFIG_SIMPLE_TRACE
285 {
286 .name = "trace-event",
287 .args_type = "name:s,option:b",
288 .params = "name on|off",
289 .help = "changes status of a specific trace event",
290 .mhandler.cmd = do_change_trace_event_state,
291 },
292
293STEXI
294@item trace-event
295@findex trace-event
296changes status of a trace event
297ETEXI
298#endif
299
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300300 {
301 .name = "log",
302 .args_type = "items:s",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300303 .params = "item1[,...]",
304 .help = "activate logging of the specified items to '/tmp/qemu.log'",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -0300305 .mhandler.cmd = do_log,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300306 },
307
Blue Swirl23130862009-06-06 08:22:04 +0000308STEXI
309@item log @var{item1}[,...]
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100310@findex log
Blue Swirl23130862009-06-06 08:22:04 +0000311Activate logging of the specified items to @file{/tmp/qemu.log}.
312ETEXI
313
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300314 {
315 .name = "savevm",
316 .args_type = "name:s?",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300317 .params = "[tag|id]",
318 .help = "save a VM snapshot. If no tag or id are provided, a new snapshot is created",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -0300319 .mhandler.cmd = do_savevm,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300320 },
321
Blue Swirl23130862009-06-06 08:22:04 +0000322STEXI
323@item savevm [@var{tag}|@var{id}]
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100324@findex savevm
Blue Swirl23130862009-06-06 08:22:04 +0000325Create a snapshot of the whole virtual machine. If @var{tag} is
326provided, it is used as human readable identifier. If there is already
327a snapshot with the same tag or ID, it is replaced. More info at
328@ref{vm_snapshots}.
329ETEXI
330
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300331 {
332 .name = "loadvm",
333 .args_type = "name:s",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300334 .params = "tag|id",
335 .help = "restore a VM snapshot from its tag or id",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -0300336 .mhandler.cmd = do_loadvm,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300337 },
338
Blue Swirl23130862009-06-06 08:22:04 +0000339STEXI
340@item loadvm @var{tag}|@var{id}
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100341@findex loadvm
Blue Swirl23130862009-06-06 08:22:04 +0000342Set the whole virtual machine to the snapshot identified by the tag
343@var{tag} or the unique snapshot ID @var{id}.
344ETEXI
345
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300346 {
347 .name = "delvm",
348 .args_type = "name:s",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300349 .params = "tag|id",
350 .help = "delete a VM snapshot from its tag or id",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -0300351 .mhandler.cmd = do_delvm,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300352 },
353
Blue Swirl23130862009-06-06 08:22:04 +0000354STEXI
355@item delvm @var{tag}|@var{id}
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100356@findex delvm
Blue Swirl23130862009-06-06 08:22:04 +0000357Delete the snapshot identified by @var{tag} or @var{id}.
358ETEXI
359
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300360 {
361 .name = "singlestep",
362 .args_type = "option:s?",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300363 .params = "[on|off]",
364 .help = "run emulation in singlestep mode or switch to normal mode",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -0300365 .mhandler.cmd = do_singlestep,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300366 },
367
Blue Swirl23130862009-06-06 08:22:04 +0000368STEXI
369@item singlestep [off]
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100370@findex singlestep
Blue Swirl23130862009-06-06 08:22:04 +0000371Run the emulation in single step mode.
372If called with option off, the emulation returns to normal mode.
373ETEXI
374
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300375 {
376 .name = "stop",
377 .args_type = "",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300378 .params = "",
379 .help = "stop emulation",
Luiz Capitulinoe0c97bd2009-10-07 13:41:57 -0300380 .user_print = monitor_user_noop,
Luiz Capitulino261394d2010-02-10 23:50:02 -0200381 .mhandler.cmd_new = do_stop,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300382 },
383
Blue Swirl23130862009-06-06 08:22:04 +0000384STEXI
385@item stop
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100386@findex stop
Blue Swirl23130862009-06-06 08:22:04 +0000387Stop emulation.
388ETEXI
Jan Kiszkab40292e2010-05-31 14:43:31 -0300389SQMP
390stop
391----
392
393Stop the emulator.
394
395Arguments: None.
396
397Example:
398
399-> { "execute": "stop" }
400<- { "return": {} }
401
402EQMP
Blue Swirl23130862009-06-06 08:22:04 +0000403
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300404 {
405 .name = "c|cont",
406 .args_type = "",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300407 .params = "",
408 .help = "resume emulation",
Luiz Capitulinoa1f896a2009-10-07 13:42:00 -0300409 .user_print = monitor_user_noop,
Luiz Capitulino261394d2010-02-10 23:50:02 -0200410 .mhandler.cmd_new = do_cont,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300411 },
412
Blue Swirl23130862009-06-06 08:22:04 +0000413STEXI
414@item c or cont
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100415@findex cont
Blue Swirl23130862009-06-06 08:22:04 +0000416Resume emulation.
417ETEXI
Jan Kiszkab40292e2010-05-31 14:43:31 -0300418SQMP
419cont
420----
421
422Resume emulation.
423
424Arguments: None.
425
426Example:
427
428-> { "execute": "cont" }
429<- { "return": {} }
430
431EQMP
Blue Swirl23130862009-06-06 08:22:04 +0000432
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300433 {
434 .name = "gdbserver",
435 .args_type = "device:s?",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300436 .params = "[device]",
437 .help = "start gdbserver on given device (default 'tcp::1234'), stop with 'none'",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -0300438 .mhandler.cmd = do_gdbserver,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300439 },
440
Blue Swirl23130862009-06-06 08:22:04 +0000441STEXI
442@item gdbserver [@var{port}]
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100443@findex gdbserver
Blue Swirl23130862009-06-06 08:22:04 +0000444Start gdbserver session (default @var{port}=1234)
445ETEXI
446
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300447 {
448 .name = "x",
449 .args_type = "fmt:/,addr:l",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300450 .params = "/fmt addr",
451 .help = "virtual memory dump starting at 'addr'",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -0300452 .mhandler.cmd = do_memory_dump,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300453 },
454
Blue Swirl23130862009-06-06 08:22:04 +0000455STEXI
456@item x/fmt @var{addr}
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100457@findex x
Blue Swirl23130862009-06-06 08:22:04 +0000458Virtual memory dump starting at @var{addr}.
459ETEXI
460
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300461 {
462 .name = "xp",
463 .args_type = "fmt:/,addr:l",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300464 .params = "/fmt addr",
465 .help = "physical memory dump starting at 'addr'",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -0300466 .mhandler.cmd = do_physical_memory_dump,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300467 },
468
Blue Swirl23130862009-06-06 08:22:04 +0000469STEXI
470@item xp /@var{fmt} @var{addr}
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100471@findex xp
Blue Swirl23130862009-06-06 08:22:04 +0000472Physical memory dump starting at @var{addr}.
473
474@var{fmt} is a format which tells the command how to format the
475data. Its syntax is: @option{/@{count@}@{format@}@{size@}}
476
477@table @var
478@item count
479is the number of items to be dumped.
480
481@item format
482can be x (hex), d (signed decimal), u (unsigned decimal), o (octal),
483c (char) or i (asm instruction).
484
485@item size
486can be b (8 bits), h (16 bits), w (32 bits) or g (64 bits). On x86,
487@code{h} or @code{w} can be specified with the @code{i} format to
488respectively select 16 or 32 bit code instruction size.
489
490@end table
491
492Examples:
493@itemize
494@item
495Dump 10 instructions at the current instruction pointer:
496@example
497(qemu) x/10i $eip
4980x90107063: ret
4990x90107064: sti
5000x90107065: lea 0x0(%esi,1),%esi
5010x90107069: lea 0x0(%edi,1),%edi
5020x90107070: ret
5030x90107071: jmp 0x90107080
5040x90107073: nop
5050x90107074: nop
5060x90107075: nop
5070x90107076: nop
508@end example
509
510@item
511Dump 80 16 bit values at the start of the video memory.
512@smallexample
513(qemu) xp/80hx 0xb8000
5140x000b8000: 0x0b50 0x0b6c 0x0b65 0x0b78 0x0b38 0x0b36 0x0b2f 0x0b42
5150x000b8010: 0x0b6f 0x0b63 0x0b68 0x0b73 0x0b20 0x0b56 0x0b47 0x0b41
5160x000b8020: 0x0b42 0x0b69 0x0b6f 0x0b73 0x0b20 0x0b63 0x0b75 0x0b72
5170x000b8030: 0x0b72 0x0b65 0x0b6e 0x0b74 0x0b2d 0x0b63 0x0b76 0x0b73
5180x000b8040: 0x0b20 0x0b30 0x0b35 0x0b20 0x0b4e 0x0b6f 0x0b76 0x0b20
5190x000b8050: 0x0b32 0x0b30 0x0b30 0x0b33 0x0720 0x0720 0x0720 0x0720
5200x000b8060: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
5210x000b8070: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
5220x000b8080: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
5230x000b8090: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
524@end smallexample
525@end itemize
526ETEXI
527
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300528 {
529 .name = "p|print",
530 .args_type = "fmt:/,val:l",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300531 .params = "/fmt expr",
532 .help = "print expression value (use $reg for CPU register access)",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -0300533 .mhandler.cmd = do_print,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300534 },
535
Blue Swirl23130862009-06-06 08:22:04 +0000536STEXI
537@item p or print/@var{fmt} @var{expr}
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100538@findex print
Blue Swirl23130862009-06-06 08:22:04 +0000539
540Print expression value. Only the @var{format} part of @var{fmt} is
541used.
542ETEXI
543
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300544 {
545 .name = "i",
546 .args_type = "fmt:/,addr:i,index:i.",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300547 .params = "/fmt addr",
548 .help = "I/O port read",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -0300549 .mhandler.cmd = do_ioport_read,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300550 },
551
Blue Swirl23130862009-06-06 08:22:04 +0000552STEXI
553Read I/O port.
554ETEXI
555
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300556 {
557 .name = "o",
558 .args_type = "fmt:/,addr:i,val:i",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300559 .params = "/fmt addr value",
560 .help = "I/O port write",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -0300561 .mhandler.cmd = do_ioport_write,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300562 },
563
Jan Kiszkaf1147842009-07-14 10:20:11 +0200564STEXI
565Write to I/O port.
566ETEXI
Blue Swirl23130862009-06-06 08:22:04 +0000567
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300568 {
569 .name = "sendkey",
570 .args_type = "string:s,hold_time:i?",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300571 .params = "keys [hold_ms]",
572 .help = "send keys to the VM (e.g. 'sendkey ctrl-alt-f1', default hold time=100 ms)",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -0300573 .mhandler.cmd = do_sendkey,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300574 },
575
Blue Swirl23130862009-06-06 08:22:04 +0000576STEXI
577@item sendkey @var{keys}
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100578@findex sendkey
Blue Swirl23130862009-06-06 08:22:04 +0000579
580Send @var{keys} to the emulator. @var{keys} could be the name of the
581key or @code{#} followed by the raw value in either decimal or hexadecimal
582format. Use @code{-} to press several keys simultaneously. Example:
583@example
584sendkey ctrl-alt-f1
585@end example
586
587This command is useful to send keys that your graphical user interface
588intercepts at low level, such as @code{ctrl-alt-f1} in X Window.
589ETEXI
590
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300591 {
592 .name = "system_reset",
593 .args_type = "",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300594 .params = "",
595 .help = "reset the system",
Luiz Capitulinoc80d2592009-10-07 13:41:58 -0300596 .user_print = monitor_user_noop,
Luiz Capitulino261394d2010-02-10 23:50:02 -0200597 .mhandler.cmd_new = do_system_reset,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300598 },
599
Blue Swirl23130862009-06-06 08:22:04 +0000600STEXI
601@item system_reset
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100602@findex system_reset
Blue Swirl23130862009-06-06 08:22:04 +0000603
604Reset the system.
605ETEXI
Jan Kiszkab40292e2010-05-31 14:43:31 -0300606SQMP
607system_reset
608------------
609
610Reset the system.
611
612Arguments: None.
613
614Example:
615
616-> { "execute": "system_reset" }
617<- { "return": {} }
618
619EQMP
Blue Swirl23130862009-06-06 08:22:04 +0000620
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300621 {
622 .name = "system_powerdown",
623 .args_type = "",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300624 .params = "",
625 .help = "send system power down event",
Luiz Capitulino43076662009-10-07 13:41:59 -0300626 .user_print = monitor_user_noop,
Luiz Capitulino261394d2010-02-10 23:50:02 -0200627 .mhandler.cmd_new = do_system_powerdown,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300628 },
629
Blue Swirl23130862009-06-06 08:22:04 +0000630STEXI
631@item system_powerdown
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100632@findex system_powerdown
Blue Swirl23130862009-06-06 08:22:04 +0000633
634Power down the system (if supported).
635ETEXI
Jan Kiszkab40292e2010-05-31 14:43:31 -0300636SQMP
637system_powerdown
638----------------
639
640Send system power down event.
641
642Arguments: None.
643
644Example:
645
646-> { "execute": "system_powerdown" }
647<- { "return": {} }
648
649EQMP
Blue Swirl23130862009-06-06 08:22:04 +0000650
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300651 {
652 .name = "sum",
653 .args_type = "start:i,size:i",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300654 .params = "addr size",
655 .help = "compute the checksum of a memory region",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -0300656 .mhandler.cmd = do_sum,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300657 },
658
Blue Swirl23130862009-06-06 08:22:04 +0000659STEXI
660@item sum @var{addr} @var{size}
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100661@findex sum
Blue Swirl23130862009-06-06 08:22:04 +0000662
663Compute the checksum of a memory region.
664ETEXI
665
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300666 {
667 .name = "usb_add",
668 .args_type = "devname:s",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300669 .params = "device",
670 .help = "add USB device (e.g. 'host:bus.addr' or 'host:vendor_id:product_id')",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -0300671 .mhandler.cmd = do_usb_add,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300672 },
673
Blue Swirl23130862009-06-06 08:22:04 +0000674STEXI
675@item usb_add @var{devname}
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100676@findex usb_add
Blue Swirl23130862009-06-06 08:22:04 +0000677
678Add the USB device @var{devname}. For details of available devices see
679@ref{usb_devices}
680ETEXI
681
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300682 {
683 .name = "usb_del",
684 .args_type = "devname:s",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300685 .params = "device",
686 .help = "remove USB device 'bus.addr'",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -0300687 .mhandler.cmd = do_usb_del,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300688 },
689
Blue Swirl23130862009-06-06 08:22:04 +0000690STEXI
691@item usb_del @var{devname}
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100692@findex usb_del
Blue Swirl23130862009-06-06 08:22:04 +0000693
694Remove the USB device @var{devname} from the QEMU virtual USB
695hub. @var{devname} has the syntax @code{bus.addr}. Use the monitor
696command @code{info usb} to see the devices you can remove.
697ETEXI
698
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300699 {
700 .name = "device_add",
Markus Armbrusterc7e4e8c2010-02-10 20:47:28 +0100701 .args_type = "device:O",
702 .params = "driver[,prop=value][,...]",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300703 .help = "add device, like -device on the command line",
Markus Armbruster8bc27242010-02-10 20:52:01 +0100704 .user_print = monitor_user_noop,
705 .mhandler.cmd_new = do_device_add,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300706 },
707
Gerd Hoffmann3418bd22009-09-25 21:42:41 +0200708STEXI
709@item device_add @var{config}
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100710@findex device_add
Gerd Hoffmann3418bd22009-09-25 21:42:41 +0200711
712Add device.
713ETEXI
Jan Kiszkab40292e2010-05-31 14:43:31 -0300714SQMP
715device_add
716----------
717
718Add a device.
719
720Arguments:
721
722- "driver": the name of the new device's driver (json-string)
723- "bus": the device's parent bus (device tree path, json-string, optional)
724- "id": the device's ID, must be unique (json-string)
725- device properties
726
727Example:
728
729-> { "execute": "device_add", "arguments": { "driver": "e1000", "id": "net1" } }
730<- { "return": {} }
731
732Notes:
733
734(1) For detailed information about this command, please refer to the
735 'docs/qdev-device-use.txt' file.
736
737(2) It's possible to list device properties by running QEMU with the
738 "-device DEVICE,\?" command-line argument, where DEVICE is the device's name
739
740EQMP
Gerd Hoffmann3418bd22009-09-25 21:42:41 +0200741
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300742 {
743 .name = "device_del",
744 .args_type = "id:s",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300745 .params = "device",
746 .help = "remove device",
Markus Armbruster17a38ea2010-03-22 11:38:14 +0100747 .user_print = monitor_user_noop,
748 .mhandler.cmd_new = do_device_del,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300749 },
750
Gerd Hoffmann3418bd22009-09-25 21:42:41 +0200751STEXI
752@item device_del @var{id}
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100753@findex device_del
Gerd Hoffmann3418bd22009-09-25 21:42:41 +0200754
755Remove device @var{id}.
756ETEXI
Jan Kiszkab40292e2010-05-31 14:43:31 -0300757SQMP
758device_del
759----------
760
761Remove a device.
762
763Arguments:
764
765- "id": the device's ID (json-string)
766
767Example:
768
769-> { "execute": "device_del", "arguments": { "id": "net1" } }
770<- { "return": {} }
771
772EQMP
Gerd Hoffmann3418bd22009-09-25 21:42:41 +0200773
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300774 {
775 .name = "cpu",
776 .args_type = "index:i",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300777 .params = "index",
778 .help = "set the default CPU",
Markus Armbruster81a1b452010-01-20 13:07:35 +0100779 .user_print = monitor_user_noop,
Luiz Capitulino261394d2010-02-10 23:50:02 -0200780 .mhandler.cmd_new = do_cpu_set,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300781 },
Gerd Hoffmann3418bd22009-09-25 21:42:41 +0200782
Blue Swirl23130862009-06-06 08:22:04 +0000783STEXI
Markus Armbrusterc427ea92010-05-04 13:20:32 +0200784@item cpu @var{index}
785@findex cpu
Blue Swirl23130862009-06-06 08:22:04 +0000786Set the default CPU.
787ETEXI
Jan Kiszkab40292e2010-05-31 14:43:31 -0300788SQMP
789cpu
790---
791
792Set the default CPU.
793
794Arguments:
795
796- "index": the CPU's index (json-int)
797
798Example:
799
800-> { "execute": "cpu", "arguments": { "index": 0 } }
801<- { "return": {} }
802
803Note: CPUs' indexes are obtained with the 'query-cpus' command.
804
805EQMP
Blue Swirl23130862009-06-06 08:22:04 +0000806
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300807 {
808 .name = "mouse_move",
809 .args_type = "dx_str:s,dy_str:s,dz_str:s?",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300810 .params = "dx dy [dz]",
811 .help = "send mouse move events",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -0300812 .mhandler.cmd = do_mouse_move,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300813 },
814
Blue Swirl23130862009-06-06 08:22:04 +0000815STEXI
816@item mouse_move @var{dx} @var{dy} [@var{dz}]
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100817@findex mouse_move
Blue Swirl23130862009-06-06 08:22:04 +0000818Move the active mouse to the specified coordinates @var{dx} @var{dy}
819with optional scroll axis @var{dz}.
820ETEXI
821
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300822 {
823 .name = "mouse_button",
824 .args_type = "button_state:i",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300825 .params = "state",
826 .help = "change mouse button state (1=L, 2=M, 4=R)",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -0300827 .mhandler.cmd = do_mouse_button,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300828 },
829
Blue Swirl23130862009-06-06 08:22:04 +0000830STEXI
831@item mouse_button @var{val}
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100832@findex mouse_button
Blue Swirl23130862009-06-06 08:22:04 +0000833Change the active mouse button state @var{val} (1=L, 2=M, 4=R).
834ETEXI
835
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300836 {
837 .name = "mouse_set",
838 .args_type = "index:i",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300839 .params = "index",
840 .help = "set which mouse device receives events",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -0300841 .mhandler.cmd = do_mouse_set,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300842 },
843
Blue Swirl23130862009-06-06 08:22:04 +0000844STEXI
845@item mouse_set @var{index}
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100846@findex mouse_set
Blue Swirl23130862009-06-06 08:22:04 +0000847Set which mouse device receives events at given @var{index}, index
848can be obtained with
849@example
850info mice
851@end example
852ETEXI
853
854#ifdef HAS_AUDIO
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300855 {
856 .name = "wavcapture",
857 .args_type = "path:F,freq:i?,bits:i?,nchannels:i?",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300858 .params = "path [frequency [bits [channels]]]",
859 .help = "capture audio to a wave file (default frequency=44100 bits=16 channels=2)",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -0300860 .mhandler.cmd = do_wav_capture,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300861 },
Blue Swirl23130862009-06-06 08:22:04 +0000862#endif
863STEXI
864@item wavcapture @var{filename} [@var{frequency} [@var{bits} [@var{channels}]]]
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100865@findex wavcapture
Blue Swirl23130862009-06-06 08:22:04 +0000866Capture audio into @var{filename}. Using sample rate @var{frequency}
867bits per sample @var{bits} and number of channels @var{channels}.
868
869Defaults:
870@itemize @minus
871@item Sample rate = 44100 Hz - CD quality
872@item Bits = 16
873@item Number of channels = 2 - Stereo
874@end itemize
875ETEXI
876
877#ifdef HAS_AUDIO
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300878 {
879 .name = "stopcapture",
880 .args_type = "n:i",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300881 .params = "capture index",
882 .help = "stop capture",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -0300883 .mhandler.cmd = do_stop_capture,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300884 },
Blue Swirl23130862009-06-06 08:22:04 +0000885#endif
886STEXI
887@item stopcapture @var{index}
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100888@findex stopcapture
Blue Swirl23130862009-06-06 08:22:04 +0000889Stop capture with a given @var{index}, index can be obtained with
890@example
891info capture
892@end example
893ETEXI
894
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300895 {
896 .name = "memsave",
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 virtual memory dump starting at 'addr' of size 'size'",
Luiz Capitulino57e09452009-10-16 12:23:43 -0300900 .user_print = monitor_user_noop,
Luiz Capitulino261394d2010-02-10 23:50:02 -0200901 .mhandler.cmd_new = do_memory_save,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300902 },
903
Blue Swirl23130862009-06-06 08:22:04 +0000904STEXI
905@item memsave @var{addr} @var{size} @var{file}
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100906@findex memsave
Blue Swirl23130862009-06-06 08:22:04 +0000907save to disk virtual memory dump starting at @var{addr} of size @var{size}.
908ETEXI
Jan Kiszkab40292e2010-05-31 14:43:31 -0300909SQMP
910memsave
911-------
912
913Save to disk virtual 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": "memsave",
924 "arguments": { "val": 10,
925 "size": 100,
926 "filename": "/tmp/virtual-mem-dump" } }
927<- { "return": {} }
928
929Note: Depends on the current CPU.
930
931EQMP
Blue Swirl23130862009-06-06 08:22:04 +0000932
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300933 {
934 .name = "pmemsave",
935 .args_type = "val:l,size:i,filename:s",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300936 .params = "addr size file",
937 .help = "save to disk physical memory dump starting at 'addr' of size 'size'",
Luiz Capitulino18f5a8b2009-10-16 12:23:44 -0300938 .user_print = monitor_user_noop,
Luiz Capitulino261394d2010-02-10 23:50:02 -0200939 .mhandler.cmd_new = do_physical_memory_save,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300940 },
941
Blue Swirl23130862009-06-06 08:22:04 +0000942STEXI
943@item pmemsave @var{addr} @var{size} @var{file}
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100944@findex pmemsave
Blue Swirl23130862009-06-06 08:22:04 +0000945save to disk physical memory dump starting at @var{addr} of size @var{size}.
946ETEXI
Jan Kiszkab40292e2010-05-31 14:43:31 -0300947SQMP
948pmemsave
949--------
950
951Save to disk physical memory dump starting at 'val' of size 'size'.
952
953Arguments:
954
955- "val": the starting address (json-int)
956- "size": the memory size, in bytes (json-int)
957- "filename": file path (json-string)
958
959Example:
960
961-> { "execute": "pmemsave",
962 "arguments": { "val": 10,
963 "size": 100,
964 "filename": "/tmp/physical-mem-dump" } }
965<- { "return": {} }
966
967EQMP
Blue Swirl23130862009-06-06 08:22:04 +0000968
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300969 {
970 .name = "boot_set",
971 .args_type = "bootdevice:s",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300972 .params = "bootdevice",
973 .help = "define new values for the boot device list",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -0300974 .mhandler.cmd = do_boot_set,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300975 },
976
Blue Swirl23130862009-06-06 08:22:04 +0000977STEXI
978@item boot_set @var{bootdevicelist}
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100979@findex boot_set
Blue Swirl23130862009-06-06 08:22:04 +0000980
981Define new values for the boot device list. Those values will override
982the values specified on the command line through the @code{-boot} option.
983
984The values that can be specified here depend on the machine type, but are
985the same that can be specified in the @code{-boot} command line option.
986ETEXI
987
988#if defined(TARGET_I386)
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300989 {
990 .name = "nmi",
991 .args_type = "cpu_index:i",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300992 .params = "cpu",
993 .help = "inject an NMI on the given CPU",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -0300994 .mhandler.cmd = do_inject_nmi,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300995 },
Blue Swirl23130862009-06-06 08:22:04 +0000996#endif
997STEXI
998@item nmi @var{cpu}
Stefan Weil70fcbbe2010-02-05 23:52:04 +0100999@findex nmi
Blue Swirl23130862009-06-06 08:22:04 +00001000Inject an NMI on the given CPU (x86 only).
1001ETEXI
1002
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001003 {
1004 .name = "migrate",
lirans@il.ibm.comfbc3d962009-11-02 15:41:13 +02001005 .args_type = "detach:-d,blk:-b,inc:-i,uri:s",
1006 .params = "[-d] [-b] [-i] uri",
1007 .help = "migrate to URI (using -d to not wait for completion)"
1008 "\n\t\t\t -b for migration without shared storage with"
1009 " full copy of disk\n\t\t\t -i for migration without "
1010 "shared storage with incremental copy of disk "
1011 "(base image shared between src and destination)",
1012 .user_print = monitor_user_noop,
Luiz Capitulino261394d2010-02-10 23:50:02 -02001013 .mhandler.cmd_new = do_migrate,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001014 },
1015
lirans@il.ibm.comfbc3d962009-11-02 15:41:13 +02001016
Blue Swirl23130862009-06-06 08:22:04 +00001017STEXI
lirans@il.ibm.comfbc3d962009-11-02 15:41:13 +02001018@item migrate [-d] [-b] [-i] @var{uri}
Stefan Weil70fcbbe2010-02-05 23:52:04 +01001019@findex migrate
Blue Swirl23130862009-06-06 08:22:04 +00001020Migrate to @var{uri} (using -d to not wait for completion).
lirans@il.ibm.comfbc3d962009-11-02 15:41:13 +02001021 -b for migration with full copy of disk
1022 -i for migration with incremental copy of disk (base image is shared)
Blue Swirl23130862009-06-06 08:22:04 +00001023ETEXI
Jan Kiszkab40292e2010-05-31 14:43:31 -03001024SQMP
1025migrate
1026-------
1027
1028Migrate to URI.
1029
1030Arguments:
1031
1032- "blk": block migration, full disk copy (json-bool, optional)
1033- "inc": incremental disk copy (json-bool, optional)
1034- "uri": Destination URI (json-string)
1035
1036Example:
1037
1038-> { "execute": "migrate", "arguments": { "uri": "tcp:0:4446" } }
1039<- { "return": {} }
1040
1041Notes:
1042
1043(1) The 'query-migrate' command should be used to check migration's progress
1044 and final result (this information is provided by the 'status' member)
1045(2) All boolean arguments default to false
1046(3) The user Monitor's "detach" argument is invalid in QMP and should not
1047 be used
1048
1049EQMP
Blue Swirl23130862009-06-06 08:22:04 +00001050
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001051 {
1052 .name = "migrate_cancel",
1053 .args_type = "",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001054 .params = "",
1055 .help = "cancel the current VM migration",
Luiz Capitulino911d2962009-10-16 12:23:47 -03001056 .user_print = monitor_user_noop,
Luiz Capitulino261394d2010-02-10 23:50:02 -02001057 .mhandler.cmd_new = do_migrate_cancel,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001058 },
1059
Blue Swirl23130862009-06-06 08:22:04 +00001060STEXI
1061@item migrate_cancel
Stefan Weil70fcbbe2010-02-05 23:52:04 +01001062@findex migrate_cancel
Blue Swirl23130862009-06-06 08:22:04 +00001063Cancel the current VM migration.
1064ETEXI
Jan Kiszkab40292e2010-05-31 14:43:31 -03001065SQMP
1066migrate_cancel
1067--------------
1068
1069Cancel the current migration.
1070
1071Arguments: None.
1072
1073Example:
1074
1075-> { "execute": "migrate_cancel" }
1076<- { "return": {} }
1077
1078EQMP
Blue Swirl23130862009-06-06 08:22:04 +00001079
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001080 {
1081 .name = "migrate_set_speed",
Markus Armbrusteree9545d2010-03-26 09:07:08 +01001082 .args_type = "value:f",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001083 .params = "value",
1084 .help = "set maximum speed (in bytes) for migrations",
Markus Armbruster5fd90832010-01-25 14:23:05 +01001085 .user_print = monitor_user_noop,
Luiz Capitulino261394d2010-02-10 23:50:02 -02001086 .mhandler.cmd_new = do_migrate_set_speed,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001087 },
1088
Blue Swirl23130862009-06-06 08:22:04 +00001089STEXI
1090@item migrate_set_speed @var{value}
Stefan Weil70fcbbe2010-02-05 23:52:04 +01001091@findex migrate_set_speed
Blue Swirl23130862009-06-06 08:22:04 +00001092Set maximum speed to @var{value} (in bytes) for migrations.
1093ETEXI
Jan Kiszkab40292e2010-05-31 14:43:31 -03001094SQMP
1095migrate_set_speed
1096-----------------
1097
1098Set maximum speed for migrations.
1099
1100Arguments:
1101
1102- "value": maximum speed, in bytes per second (json-number)
1103
1104Example:
1105
1106-> { "execute": "migrate_set_speed", "arguments": { "value": 1024 } }
1107<- { "return": {} }
1108
1109EQMP
Blue Swirl23130862009-06-06 08:22:04 +00001110
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001111 {
1112 .name = "migrate_set_downtime",
Markus Armbrusterb0fbf7d2010-01-25 14:23:07 +01001113 .args_type = "value:T",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001114 .params = "value",
1115 .help = "set maximum tolerated downtime (in seconds) for migrations",
Markus Armbrusterc6027f52010-01-25 14:23:08 +01001116 .user_print = monitor_user_noop,
Luiz Capitulino261394d2010-02-10 23:50:02 -02001117 .mhandler.cmd_new = do_migrate_set_downtime,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001118 },
Glauber Costa2ea42952009-05-28 15:22:58 -04001119
1120STEXI
1121@item migrate_set_downtime @var{second}
Stefan Weil70fcbbe2010-02-05 23:52:04 +01001122@findex migrate_set_downtime
Glauber Costa2ea42952009-05-28 15:22:58 -04001123Set maximum tolerated downtime (in seconds) for migration.
1124ETEXI
Jan Kiszkab40292e2010-05-31 14:43:31 -03001125SQMP
1126migrate_set_downtime
1127--------------------
1128
1129Set maximum tolerated downtime (in seconds) for migrations.
1130
1131Arguments:
1132
1133- "value": maximum downtime (json-number)
1134
1135Example:
1136
1137-> { "execute": "migrate_set_downtime", "arguments": { "value": 0.1 } }
1138<- { "return": {} }
1139
1140EQMP
Glauber Costa2ea42952009-05-28 15:22:58 -04001141
Blue Swirl23130862009-06-06 08:22:04 +00001142#if defined(TARGET_I386)
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001143 {
1144 .name = "drive_add",
1145 .args_type = "pci_addr:s,opts:s",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001146 .params = "[[<domain>:]<bus>:]<slot>\n"
1147 "[file=file][,if=type][,bus=n]\n"
1148 "[,unit=m][,media=d][index=i]\n"
1149 "[,cyls=c,heads=h,secs=s[,trans=t]]\n"
1150 "[snapshot=on|off][,cache=on|off]",
1151 .help = "add drive to PCI storage controller",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -03001152 .mhandler.cmd = drive_hot_add,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001153 },
Blue Swirl23130862009-06-06 08:22:04 +00001154#endif
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001155
Blue Swirl23130862009-06-06 08:22:04 +00001156STEXI
1157@item drive_add
Stefan Weil70fcbbe2010-02-05 23:52:04 +01001158@findex drive_add
Blue Swirl23130862009-06-06 08:22:04 +00001159Add drive to PCI storage controller.
1160ETEXI
1161
1162#if defined(TARGET_I386)
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001163 {
1164 .name = "pci_add",
1165 .args_type = "pci_addr:s,type:s,opts:s?",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001166 .params = "auto|[[<domain>:]<bus>:]<slot> nic|storage [[vlan=n][,macaddr=addr][,model=type]] [file=file][,if=type][,bus=nr]...",
1167 .help = "hot-add PCI device",
Markus Armbruster6c6a58a2010-05-12 10:53:00 +02001168 .mhandler.cmd = pci_device_hot_add,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001169 },
Blue Swirl23130862009-06-06 08:22:04 +00001170#endif
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001171
Blue Swirl23130862009-06-06 08:22:04 +00001172STEXI
1173@item pci_add
Stefan Weil70fcbbe2010-02-05 23:52:04 +01001174@findex pci_add
Blue Swirl23130862009-06-06 08:22:04 +00001175Hot-add PCI device.
1176ETEXI
1177
1178#if defined(TARGET_I386)
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001179 {
1180 .name = "pci_del",
1181 .args_type = "pci_addr:s",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001182 .params = "[[<domain>:]<bus>:]<slot>",
1183 .help = "hot remove PCI device",
Markus Armbrusterb752daf2010-05-12 10:53:01 +02001184 .mhandler.cmd = do_pci_device_hot_remove,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001185 },
Blue Swirl23130862009-06-06 08:22:04 +00001186#endif
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001187
Blue Swirl23130862009-06-06 08:22:04 +00001188STEXI
1189@item pci_del
Stefan Weil70fcbbe2010-02-05 23:52:04 +01001190@findex pci_del
Blue Swirl23130862009-06-06 08:22:04 +00001191Hot remove PCI device.
1192ETEXI
1193
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001194 {
1195 .name = "host_net_add",
1196 .args_type = "device:s,opts:s?",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001197 .params = "tap|user|socket|vde|dump [options]",
1198 .help = "add host VLAN client",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -03001199 .mhandler.cmd = net_host_device_add,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001200 },
1201
Blue Swirl23130862009-06-06 08:22:04 +00001202STEXI
1203@item host_net_add
Stefan Weil70fcbbe2010-02-05 23:52:04 +01001204@findex host_net_add
Blue Swirl23130862009-06-06 08:22:04 +00001205Add host VLAN client.
1206ETEXI
1207
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001208 {
1209 .name = "host_net_remove",
1210 .args_type = "vlan_id:i,device:s",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001211 .params = "vlan_id name",
1212 .help = "remove host VLAN client",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -03001213 .mhandler.cmd = net_host_device_remove,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001214 },
1215
Blue Swirl23130862009-06-06 08:22:04 +00001216STEXI
1217@item host_net_remove
Stefan Weil70fcbbe2010-02-05 23:52:04 +01001218@findex host_net_remove
Blue Swirl23130862009-06-06 08:22:04 +00001219Remove host VLAN client.
1220ETEXI
1221
Markus Armbrusterae82d322010-03-25 17:22:40 +01001222 {
1223 .name = "netdev_add",
1224 .args_type = "netdev:O",
1225 .params = "[user|tap|socket],id=str[,prop=value][,...]",
1226 .help = "add host network device",
1227 .user_print = monitor_user_noop,
1228 .mhandler.cmd_new = do_netdev_add,
1229 },
1230
1231STEXI
1232@item netdev_add
1233@findex netdev_add
1234Add host network device.
1235ETEXI
Jan Kiszkab40292e2010-05-31 14:43:31 -03001236SQMP
1237netdev_add
1238----------
1239
1240Add host network device.
1241
1242Arguments:
1243
1244- "type": the device type, "tap", "user", ... (json-string)
1245- "id": the device's ID, must be unique (json-string)
1246- device options
1247
1248Example:
1249
1250-> { "execute": "netdev_add", "arguments": { "type": "user", "id": "netdev1" } }
1251<- { "return": {} }
1252
1253Note: The supported device options are the same ones supported by the '-net'
1254 command-line argument, which are listed in the '-help' output or QEMU's
1255 manual
1256
1257EQMP
Markus Armbrusterae82d322010-03-25 17:22:40 +01001258
1259 {
1260 .name = "netdev_del",
1261 .args_type = "id:s",
1262 .params = "id",
1263 .help = "remove host network device",
1264 .user_print = monitor_user_noop,
1265 .mhandler.cmd_new = do_netdev_del,
1266 },
1267
1268STEXI
1269@item netdev_del
1270@findex netdev_del
1271Remove host network device.
1272ETEXI
Jan Kiszkab40292e2010-05-31 14:43:31 -03001273SQMP
1274netdev_del
1275----------
1276
1277Remove host network device.
1278
1279Arguments:
1280
1281- "id": the device's ID, must be unique (json-string)
1282
1283Example:
1284
1285-> { "execute": "netdev_del", "arguments": { "id": "netdev1" } }
1286<- { "return": {} }
1287
1288EQMP
Markus Armbrusterae82d322010-03-25 17:22:40 +01001289
Blue Swirl23130862009-06-06 08:22:04 +00001290#ifdef CONFIG_SLIRP
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001291 {
1292 .name = "hostfwd_add",
1293 .args_type = "arg1:s,arg2:s?,arg3:s?",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001294 .params = "[vlan_id name] [tcp|udp]:[hostaddr]:hostport-[guestaddr]:guestport",
1295 .help = "redirect TCP or UDP connections from host to guest (requires -net user)",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -03001296 .mhandler.cmd = net_slirp_hostfwd_add,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001297 },
Markus Armbruster21413d62010-05-04 13:20:30 +02001298#endif
1299STEXI
1300@item hostfwd_add
1301@findex hostfwd_add
1302Redirect TCP or UDP connections from host to guest (requires -net user).
1303ETEXI
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001304
Markus Armbruster21413d62010-05-04 13:20:30 +02001305#ifdef CONFIG_SLIRP
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001306 {
1307 .name = "hostfwd_remove",
1308 .args_type = "arg1:s,arg2:s?,arg3:s?",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001309 .params = "[vlan_id name] [tcp|udp]:[hostaddr]:hostport",
1310 .help = "remove host-to-guest TCP or UDP redirection",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -03001311 .mhandler.cmd = net_slirp_hostfwd_remove,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001312 },
1313
Blue Swirl23130862009-06-06 08:22:04 +00001314#endif
1315STEXI
Markus Armbruster21413d62010-05-04 13:20:30 +02001316@item hostfwd_remove
1317@findex hostfwd_remove
1318Remove host-to-guest TCP or UDP redirection.
Blue Swirl23130862009-06-06 08:22:04 +00001319ETEXI
1320
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001321 {
1322 .name = "balloon",
Luiz Capitulino3b0bd6e2009-12-18 13:25:05 -02001323 .args_type = "value:M",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001324 .params = "target",
Riccardo Magliocchetti3c056132010-05-19 18:49:28 +02001325 .help = "request VM to change its memory allocation (in MB)",
Luiz Capitulino83fb1de2009-10-07 13:42:01 -03001326 .user_print = monitor_user_noop,
Adam Litke625a5be2010-01-26 14:17:35 -06001327 .mhandler.cmd_async = do_balloon,
Jan Kiszka8ac470c2010-06-16 00:38:39 +02001328 .flags = MONITOR_CMD_ASYNC,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001329 },
1330
Blue Swirl23130862009-06-06 08:22:04 +00001331STEXI
1332@item balloon @var{value}
Stefan Weil70fcbbe2010-02-05 23:52:04 +01001333@findex balloon
Blue Swirl23130862009-06-06 08:22:04 +00001334Request VM to change its memory allocation to @var{value} (in MB).
1335ETEXI
Jan Kiszkab40292e2010-05-31 14:43:31 -03001336SQMP
1337balloon
1338-------
1339
1340Request VM to change its memory allocation (in bytes).
1341
1342Arguments:
1343
1344- "value": New memory allocation (json-int)
1345
1346Example:
1347
1348-> { "execute": "balloon", "arguments": { "value": 536870912 } }
1349<- { "return": {} }
1350
1351EQMP
Blue Swirl23130862009-06-06 08:22:04 +00001352
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001353 {
1354 .name = "set_link",
Markus Armbrusterc9b26a42010-03-26 09:07:10 +01001355 .args_type = "name:s,up:b",
1356 .params = "name on|off",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001357 .help = "change the link status of a network adapter",
Markus Armbruster5369e3c2010-03-26 09:07:11 +01001358 .user_print = monitor_user_noop,
1359 .mhandler.cmd_new = do_set_link,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001360 },
1361
Blue Swirl23130862009-06-06 08:22:04 +00001362STEXI
Markus Armbrusterc9b26a42010-03-26 09:07:10 +01001363@item set_link @var{name} [on|off]
Stefan Weil70fcbbe2010-02-05 23:52:04 +01001364@findex set_link
Markus Armbrusterc9b26a42010-03-26 09:07:10 +01001365Switch link @var{name} on (i.e. up) or off (i.e. down).
Blue Swirl23130862009-06-06 08:22:04 +00001366ETEXI
Jan Kiszkab40292e2010-05-31 14:43:31 -03001367SQMP
1368set_link
1369--------
1370
1371Change the link status of a network adapter.
1372
1373Arguments:
1374
1375- "name": network device name (json-string)
1376- "up": status is up (json-bool)
1377
1378Example:
1379
1380-> { "execute": "set_link", "arguments": { "name": "e1000.0", "up": false } }
1381<- { "return": {} }
1382
1383EQMP
Blue Swirl23130862009-06-06 08:22:04 +00001384
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001385 {
1386 .name = "watchdog_action",
1387 .args_type = "action:s",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001388 .params = "[reset|shutdown|poweroff|pause|debug|none]",
1389 .help = "change watchdog action",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -03001390 .mhandler.cmd = do_watchdog_action,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001391 },
1392
Blue Swirl23130862009-06-06 08:22:04 +00001393STEXI
1394@item watchdog_action
Stefan Weil70fcbbe2010-02-05 23:52:04 +01001395@findex watchdog_action
Blue Swirl23130862009-06-06 08:22:04 +00001396Change watchdog action.
1397ETEXI
1398
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001399 {
1400 .name = "acl_show",
1401 .args_type = "aclname:s",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001402 .params = "aclname",
1403 .help = "list rules in the access control list",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -03001404 .mhandler.cmd = do_acl_show,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001405 },
1406
Blue Swirl23130862009-06-06 08:22:04 +00001407STEXI
Jan Kiszka15dfcd42009-06-25 08:22:08 +02001408@item acl_show @var{aclname}
Stefan Weil70fcbbe2010-02-05 23:52:04 +01001409@findex acl_show
Jan Kiszka15dfcd42009-06-25 08:22:08 +02001410List all the matching rules in the access control list, and the default
1411policy. There are currently two named access control lists,
1412@var{vnc.x509dname} and @var{vnc.username} matching on the x509 client
1413certificate distinguished name, and SASL username respectively.
1414ETEXI
Blue Swirl23130862009-06-06 08:22:04 +00001415
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001416 {
1417 .name = "acl_policy",
1418 .args_type = "aclname:s,policy:s",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001419 .params = "aclname allow|deny",
1420 .help = "set default access control list policy",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -03001421 .mhandler.cmd = do_acl_policy,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001422 },
1423
Jan Kiszka15dfcd42009-06-25 08:22:08 +02001424STEXI
Jan Kiszkacbbfacc2009-07-03 08:46:05 +02001425@item acl_policy @var{aclname} @code{allow|deny}
Stefan Weil70fcbbe2010-02-05 23:52:04 +01001426@findex acl_policy
Jan Kiszka15dfcd42009-06-25 08:22:08 +02001427Set the default access control list policy, used in the event that
Blue Swirl23130862009-06-06 08:22:04 +00001428none of the explicit rules match. The default policy at startup is
Jan Kiszka15dfcd42009-06-25 08:22:08 +02001429always @code{deny}.
1430ETEXI
1431
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001432 {
1433 .name = "acl_add",
1434 .args_type = "aclname:s,match:s,policy:s,index:i?",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001435 .params = "aclname match allow|deny [index]",
1436 .help = "add a match rule to the access control list",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -03001437 .mhandler.cmd = do_acl_add,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001438 },
1439
Jan Kiszka15dfcd42009-06-25 08:22:08 +02001440STEXI
Markus Armbruster0e4aec92010-05-04 13:20:31 +02001441@item acl_add @var{aclname} @var{match} @code{allow|deny} [@var{index}]
1442@findex acl_add
Jan Kiszka15dfcd42009-06-25 08:22:08 +02001443Add a match rule to the access control list, allowing or denying access.
1444The match will normally be an exact username or x509 distinguished name,
1445but can optionally include wildcard globs. eg @code{*@@EXAMPLE.COM} to
1446allow all users in the @code{EXAMPLE.COM} kerberos realm. The match will
Blue Swirl23130862009-06-06 08:22:04 +00001447normally be appended to the end of the ACL, but can be inserted
Jan Kiszka15dfcd42009-06-25 08:22:08 +02001448earlier in the list if the optional @var{index} parameter is supplied.
1449ETEXI
1450
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001451 {
1452 .name = "acl_remove",
1453 .args_type = "aclname:s,match:s",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001454 .params = "aclname match",
1455 .help = "remove a match rule from the access control list",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -03001456 .mhandler.cmd = do_acl_remove,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001457 },
1458
Jan Kiszka15dfcd42009-06-25 08:22:08 +02001459STEXI
1460@item acl_remove @var{aclname} @var{match}
Stefan Weil70fcbbe2010-02-05 23:52:04 +01001461@findex acl_remove
Jan Kiszka15dfcd42009-06-25 08:22:08 +02001462Remove the specified match rule from the access control list.
1463ETEXI
1464
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001465 {
1466 .name = "acl_reset",
1467 .args_type = "aclname:s",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001468 .params = "aclname",
1469 .help = "reset the access control list",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -03001470 .mhandler.cmd = do_acl_reset,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001471 },
1472
Jan Kiszka15dfcd42009-06-25 08:22:08 +02001473STEXI
Markus Armbruster0e4aec92010-05-04 13:20:31 +02001474@item acl_reset @var{aclname}
1475@findex acl_reset
Jan Kiszka15dfcd42009-06-25 08:22:08 +02001476Remove all matches from the access control list, and set the default
Blue Swirl23130862009-06-06 08:22:04 +00001477policy back to @code{deny}.
Blue Swirl23130862009-06-06 08:22:04 +00001478ETEXI
1479
Huang Ying79c4f6b2009-06-23 10:05:14 +08001480#if defined(TARGET_I386)
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001481
1482 {
1483 .name = "mce",
1484 .args_type = "cpu_index:i,bank:i,status:l,mcg_status:l,addr:l,misc:l",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001485 .params = "cpu bank status mcgstatus addr misc",
1486 .help = "inject a MCE on the given CPU",
Luiz Capitulinoaf4ce882009-10-07 13:41:52 -03001487 .mhandler.cmd = do_inject_mce,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001488 },
1489
Huang Ying79c4f6b2009-06-23 10:05:14 +08001490#endif
1491STEXI
1492@item mce @var{cpu} @var{bank} @var{status} @var{mcgstatus} @var{addr} @var{misc}
Stefan Weil70fcbbe2010-02-05 23:52:04 +01001493@findex mce (x86)
Huang Ying79c4f6b2009-06-23 10:05:14 +08001494Inject an MCE on the given CPU (x86 only).
1495ETEXI
1496
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001497 {
1498 .name = "getfd",
1499 .args_type = "fdname:s",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001500 .params = "getfd name",
1501 .help = "receive a file descriptor via SCM rights and assign it a name",
Luiz Capitulinof0d60002009-10-16 12:23:50 -03001502 .user_print = monitor_user_noop,
Luiz Capitulino261394d2010-02-10 23:50:02 -02001503 .mhandler.cmd_new = do_getfd,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001504 },
1505
Mark McLoughlinf07918f2009-07-22 09:11:40 +01001506STEXI
1507@item getfd @var{fdname}
Stefan Weil70fcbbe2010-02-05 23:52:04 +01001508@findex getfd
Mark McLoughlinf07918f2009-07-22 09:11:40 +01001509If a file descriptor is passed alongside this command using the SCM_RIGHTS
1510mechanism on unix sockets, it is stored using the name @var{fdname} for
1511later use by other monitor commands.
1512ETEXI
Jan Kiszkab40292e2010-05-31 14:43:31 -03001513SQMP
1514getfd
1515-----
1516
1517Receive a file descriptor via SCM rights and assign it a name.
1518
1519Arguments:
1520
1521- "fdname": file descriptor name (json-string)
1522
1523Example:
1524
1525-> { "execute": "getfd", "arguments": { "fdname": "fd1" } }
1526<- { "return": {} }
1527
1528EQMP
Mark McLoughlinf07918f2009-07-22 09:11:40 +01001529
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001530 {
1531 .name = "closefd",
1532 .args_type = "fdname:s",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001533 .params = "closefd name",
1534 .help = "close a file descriptor previously passed via SCM rights",
Luiz Capitulino18f3a512009-10-16 12:23:51 -03001535 .user_print = monitor_user_noop,
Luiz Capitulino261394d2010-02-10 23:50:02 -02001536 .mhandler.cmd_new = do_closefd,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001537 },
1538
Mark McLoughlinf07918f2009-07-22 09:11:40 +01001539STEXI
1540@item closefd @var{fdname}
Stefan Weil70fcbbe2010-02-05 23:52:04 +01001541@findex closefd
Mark McLoughlinf07918f2009-07-22 09:11:40 +01001542Close the file descriptor previously assigned to @var{fdname} using the
1543@code{getfd} command. This is only needed if the file descriptor was never
1544used by another monitor command.
1545ETEXI
Jan Kiszkab40292e2010-05-31 14:43:31 -03001546SQMP
1547closefd
1548-------
1549
1550Close a file descriptor previously passed via SCM rights.
1551
1552Arguments:
1553
1554- "fdname": file descriptor name (json-string)
1555
1556Example:
1557
1558-> { "execute": "closefd", "arguments": { "fdname": "fd1" } }
1559<- { "return": {} }
1560
1561EQMP
Mark McLoughlinf07918f2009-07-22 09:11:40 +01001562
Luiz Capitulinoa3a55a22009-12-04 15:24:09 -02001563 {
1564 .name = "block_passwd",
1565 .args_type = "device:B,password:s",
1566 .params = "block_passwd device password",
1567 .help = "set the password of encrypted block devices",
1568 .user_print = monitor_user_noop,
Luiz Capitulino261394d2010-02-10 23:50:02 -02001569 .mhandler.cmd_new = do_block_set_passwd,
Luiz Capitulinoa3a55a22009-12-04 15:24:09 -02001570 },
1571
1572STEXI
1573@item block_passwd @var{device} @var{password}
Stefan Weil70fcbbe2010-02-05 23:52:04 +01001574@findex block_passwd
Luiz Capitulinoa3a55a22009-12-04 15:24:09 -02001575Set the encrypted device @var{device} password to @var{password}
1576ETEXI
Jan Kiszkab40292e2010-05-31 14:43:31 -03001577SQMP
1578block_passwd
1579------------
1580
1581Set the password of encrypted block devices.
1582
1583Arguments:
1584
1585- "device": device name (json-string)
1586- "password": password (json-string)
1587
1588Example:
1589
1590-> { "execute": "block_passwd", "arguments": { "device": "ide0-hd0",
1591 "password": "12345" } }
1592<- { "return": {} }
1593
1594EQMP
Luiz Capitulinoa3a55a22009-12-04 15:24:09 -02001595
Luiz Capitulino4a7e1192010-02-04 18:10:05 -02001596 {
1597 .name = "qmp_capabilities",
1598 .args_type = "",
1599 .params = "",
1600 .help = "enable QMP capabilities",
1601 .user_print = monitor_user_noop,
Luiz Capitulino261394d2010-02-10 23:50:02 -02001602 .mhandler.cmd_new = do_qmp_capabilities,
Luiz Capitulino4a7e1192010-02-04 18:10:05 -02001603 },
1604
1605STEXI
1606@item qmp_capabilities
Markus Armbruster54d7cf12010-05-04 13:20:33 +02001607@findex qmp_capabilities
Luiz Capitulino4a7e1192010-02-04 18:10:05 -02001608Enable the specified QMP capabilities
1609ETEXI
Jan Kiszkab40292e2010-05-31 14:43:31 -03001610SQMP
1611qmp_capabilities
1612----------------
1613
1614Enable QMP capabilities.
1615
1616Arguments: None.
1617
1618Example:
1619
1620-> { "execute": "qmp_capabilities" }
1621<- { "return": {} }
1622
1623Note: This command must be issued before issuing any other command.
1624
1625EQMP
Luiz Capitulino4a7e1192010-02-04 18:10:05 -02001626
Jan Kiszka33572ec2010-05-31 14:43:30 -03001627
1628HXCOMM Keep the 'info' command at the end!
1629HXCOMM This is required for the QMP documentation layout.
1630
Jan Kiszkab40292e2010-05-31 14:43:31 -03001631SQMP
1632
Luiz Capitulino05705ce2010-08-20 16:42:31 -030016333. Query Commands
Jan Kiszkab40292e2010-05-31 14:43:31 -03001634=================
1635
1636EQMP
1637
Jan Kiszka33572ec2010-05-31 14:43:30 -03001638 {
1639 .name = "info",
1640 .args_type = "item:s?",
1641 .params = "[subcommand]",
1642 .help = "show various information about the system state",
1643 .user_print = monitor_user_noop,
1644 .mhandler.cmd_new = do_info,
1645 },
1646
1647STEXI
1648@item info @var{subcommand}
1649@findex info
1650Show various information about the system state.
1651
1652@table @option
1653@item info version
1654show the version of QEMU
Jan Kiszkab40292e2010-05-31 14:43:31 -03001655ETEXI
1656SQMP
1657query-version
1658-------------
1659
1660Show QEMU version.
1661
1662Return a json-object with the following information:
1663
Miguel Di Ciurcio Filho6597e1a2010-08-20 16:42:29 -03001664- "qemu": A json-object containing three integer values:
1665 - "major": QEMU's major version (json-int)
1666 - "minor": QEMU's minor version (json-int)
1667 - "micro": QEMU's micro version (json-int)
Jan Kiszkab40292e2010-05-31 14:43:31 -03001668- "package": package's version (json-string)
1669
1670Example:
1671
1672-> { "execute": "query-version" }
Miguel Di Ciurcio Filho6597e1a2010-08-20 16:42:29 -03001673<- {
1674 "return":{
1675 "qemu":{
1676 "major":0,
1677 "minor":11,
1678 "micro":5
1679 },
1680 "package":""
1681 }
1682 }
Jan Kiszkab40292e2010-05-31 14:43:31 -03001683
1684EQMP
1685
1686STEXI
Jan Kiszka33572ec2010-05-31 14:43:30 -03001687@item info commands
1688list QMP available commands
Jan Kiszkab40292e2010-05-31 14:43:31 -03001689ETEXI
1690SQMP
1691query-commands
1692--------------
1693
1694List QMP available commands.
1695
1696Each command is represented by a json-object, the returned value is a json-array
1697of all commands.
1698
1699Each json-object contain:
1700
1701- "name": command's name (json-string)
1702
1703Example:
1704
1705-> { "execute": "query-commands" }
1706<- {
1707 "return":[
1708 {
1709 "name":"query-balloon"
1710 },
1711 {
1712 "name":"system_powerdown"
1713 }
1714 ]
1715 }
1716
1717Note: This example has been shortened as the real response is too long.
1718
1719EQMP
1720
1721STEXI
Jan Kiszka33572ec2010-05-31 14:43:30 -03001722@item info network
1723show the various VLANs and the associated devices
Jan Kiszkab40292e2010-05-31 14:43:31 -03001724ETEXI
1725
1726STEXI
Jan Kiszka33572ec2010-05-31 14:43:30 -03001727@item info chardev
1728show the character devices
Jan Kiszkab40292e2010-05-31 14:43:31 -03001729ETEXI
1730SQMP
1731query-chardev
1732-------------
1733
1734Each device is represented by a json-object. The returned value is a json-array
1735of all devices.
1736
1737Each json-object contain the following:
1738
1739- "label": device's label (json-string)
1740- "filename": device's file (json-string)
1741
1742Example:
1743
1744-> { "execute": "query-chardev" }
1745<- {
1746 "return":[
1747 {
1748 "label":"monitor",
1749 "filename":"stdio"
1750 },
1751 {
1752 "label":"serial0",
1753 "filename":"vc"
1754 }
1755 ]
1756 }
1757
1758EQMP
1759
1760STEXI
Jan Kiszka33572ec2010-05-31 14:43:30 -03001761@item info block
1762show the block devices
Jan Kiszkab40292e2010-05-31 14:43:31 -03001763ETEXI
1764SQMP
1765query-block
1766-----------
1767
1768Show the block devices.
1769
1770Each block device information is stored in a json-object and the returned value
1771is a json-array of all devices.
1772
1773Each json-object contain the following:
1774
1775- "device": device name (json-string)
1776- "type": device type (json-string)
1777 - Possible values: "hd", "cdrom", "floppy", "unknown"
1778- "removable": true if the device is removable, false otherwise (json-bool)
1779- "locked": true if the device is locked, false otherwise (json-bool)
1780- "inserted": only present if the device is inserted, it is a json-object
1781 containing the following:
1782 - "file": device file name (json-string)
1783 - "ro": true if read-only, false otherwise (json-bool)
1784 - "drv": driver format name (json-string)
1785 - Possible values: "blkdebug", "bochs", "cloop", "cow", "dmg",
1786 "file", "file", "ftp", "ftps", "host_cdrom",
1787 "host_device", "host_floppy", "http", "https",
1788 "nbd", "parallels", "qcow", "qcow2", "raw",
1789 "tftp", "vdi", "vmdk", "vpc", "vvfat"
1790 - "backing_file": backing file name (json-string, optional)
1791 - "encrypted": true if encrypted, false otherwise (json-bool)
1792
1793Example:
1794
1795-> { "execute": "query-block" }
1796<- {
1797 "return":[
1798 {
1799 "device":"ide0-hd0",
1800 "locked":false,
1801 "removable":false,
1802 "inserted":{
1803 "ro":false,
1804 "drv":"qcow2",
1805 "encrypted":false,
1806 "file":"disks/test.img"
1807 },
1808 "type":"hd"
1809 },
1810 {
1811 "device":"ide1-cd0",
1812 "locked":false,
1813 "removable":true,
1814 "type":"cdrom"
1815 },
1816 {
1817 "device":"floppy0",
1818 "locked":false,
1819 "removable":true,
1820 "type": "floppy"
1821 },
1822 {
1823 "device":"sd0",
1824 "locked":false,
1825 "removable":true,
1826 "type":"floppy"
1827 }
1828 ]
1829 }
1830
1831EQMP
1832
1833STEXI
Jan Kiszka33572ec2010-05-31 14:43:30 -03001834@item info blockstats
1835show block device statistics
Jan Kiszkab40292e2010-05-31 14:43:31 -03001836ETEXI
1837SQMP
1838query-blockstats
1839----------------
1840
1841Show block device statistics.
1842
1843Each device statistic information is stored in a json-object and the returned
1844value is a json-array of all devices.
1845
1846Each json-object contain the following:
1847
1848- "device": device name (json-string)
1849- "stats": A json-object with the statistics information, it contains:
1850 - "rd_bytes": bytes read (json-int)
1851 - "wr_bytes": bytes written (json-int)
1852 - "rd_operations": read operations (json-int)
1853 - "wr_operations": write operations (json-int)
1854 - "wr_highest_offset": Highest offset of a sector written since the
1855 BlockDriverState has been opened (json-int)
1856- "parent": Contains recursively the statistics of the underlying
1857 protocol (e.g. the host file for a qcow2 image). If there is
1858 no underlying protocol, this field is omitted
1859 (json-object, optional)
1860
1861Example:
1862
1863-> { "execute": "query-blockstats" }
1864<- {
1865 "return":[
1866 {
1867 "device":"ide0-hd0",
1868 "parent":{
1869 "stats":{
1870 "wr_highest_offset":3686448128,
1871 "wr_bytes":9786368,
1872 "wr_operations":751,
1873 "rd_bytes":122567168,
1874 "rd_operations":36772
1875 }
1876 },
1877 "stats":{
1878 "wr_highest_offset":2821110784,
1879 "wr_bytes":9786368,
1880 "wr_operations":692,
1881 "rd_bytes":122739200,
1882 "rd_operations":36604
1883 }
1884 },
1885 {
1886 "device":"ide1-cd0",
1887 "stats":{
1888 "wr_highest_offset":0,
1889 "wr_bytes":0,
1890 "wr_operations":0,
1891 "rd_bytes":0,
1892 "rd_operations":0
1893 }
1894 },
1895 {
1896 "device":"floppy0",
1897 "stats":{
1898 "wr_highest_offset":0,
1899 "wr_bytes":0,
1900 "wr_operations":0,
1901 "rd_bytes":0,
1902 "rd_operations":0
1903 }
1904 },
1905 {
1906 "device":"sd0",
1907 "stats":{
1908 "wr_highest_offset":0,
1909 "wr_bytes":0,
1910 "wr_operations":0,
1911 "rd_bytes":0,
1912 "rd_operations":0
1913 }
1914 }
1915 ]
1916 }
1917
1918EQMP
1919
1920STEXI
Jan Kiszka33572ec2010-05-31 14:43:30 -03001921@item info registers
1922show the cpu registers
1923@item info cpus
1924show infos for each CPU
Jan Kiszkab40292e2010-05-31 14:43:31 -03001925ETEXI
1926SQMP
1927query-cpus
1928----------
1929
1930Show CPU information.
1931
1932Return a json-array. Each CPU is represented by a json-object, which contains:
1933
1934- "CPU": CPU index (json-int)
1935- "current": true if this is the current CPU, false otherwise (json-bool)
1936- "halted": true if the cpu is halted, false otherwise (json-bool)
1937- Current program counter. The key's name depends on the architecture:
1938 "pc": i386/x86_64 (json-int)
1939 "nip": PPC (json-int)
1940 "pc" and "npc": sparc (json-int)
1941 "PC": mips (json-int)
1942
1943Example:
1944
1945-> { "execute": "query-cpus" }
1946<- {
1947 "return":[
1948 {
1949 "CPU":0,
1950 "current":true,
1951 "halted":false,
1952 "pc":3227107138
1953 },
1954 {
1955 "CPU":1,
1956 "current":false,
1957 "halted":true,
1958 "pc":7108165
1959 }
1960 ]
1961 }
1962
1963EQMP
1964
1965STEXI
Jan Kiszka33572ec2010-05-31 14:43:30 -03001966@item info history
1967show the command line history
1968@item info irq
1969show the interrupts statistics (if available)
1970@item info pic
1971show i8259 (PIC) state
Jan Kiszkab40292e2010-05-31 14:43:31 -03001972ETEXI
1973
1974STEXI
Jan Kiszka33572ec2010-05-31 14:43:30 -03001975@item info pci
1976show emulated PCI device info
Jan Kiszkab40292e2010-05-31 14:43:31 -03001977ETEXI
1978SQMP
1979query-pci
1980---------
1981
1982PCI buses and devices information.
1983
1984The returned value is a json-array of all buses. Each bus is represented by
1985a json-object, which has a key with a json-array of all PCI devices attached
1986to it. Each device is represented by a json-object.
1987
1988The bus json-object contains the following:
1989
1990- "bus": bus number (json-int)
1991- "devices": a json-array of json-objects, each json-object represents a
1992 PCI device
1993
1994The PCI device json-object contains the following:
1995
1996- "bus": identical to the parent's bus number (json-int)
1997- "slot": slot number (json-int)
1998- "function": function number (json-int)
1999- "class_info": a json-object containing:
2000 - "desc": device class description (json-string, optional)
2001 - "class": device class number (json-int)
2002- "id": a json-object containing:
2003 - "device": device ID (json-int)
2004 - "vendor": vendor ID (json-int)
2005- "irq": device's IRQ if assigned (json-int, optional)
2006- "qdev_id": qdev id string (json-string)
2007- "pci_bridge": It's a json-object, only present if this device is a
2008 PCI bridge, contains:
2009 - "bus": bus number (json-int)
2010 - "secondary": secondary bus number (json-int)
2011 - "subordinate": subordinate bus number (json-int)
2012 - "io_range": I/O memory range information, a json-object with the
2013 following members:
2014 - "base": base address, in bytes (json-int)
2015 - "limit": limit address, in bytes (json-int)
2016 - "memory_range": memory range information, a json-object with the
2017 following members:
2018 - "base": base address, in bytes (json-int)
2019 - "limit": limit address, in bytes (json-int)
2020 - "prefetchable_range": Prefetchable memory range information, a
2021 json-object with the following members:
2022 - "base": base address, in bytes (json-int)
2023 - "limit": limit address, in bytes (json-int)
2024 - "devices": a json-array of PCI devices if there's any attached, each
2025 each element is represented by a json-object, which contains
2026 the same members of the 'PCI device json-object' described
2027 above (optional)
2028- "regions": a json-array of json-objects, each json-object represents a
2029 memory region of this device
2030
2031The memory range json-object contains the following:
2032
2033- "base": base memory address (json-int)
2034- "limit": limit value (json-int)
2035
2036The region json-object can be an I/O region or a memory region, an I/O region
2037json-object contains the following:
2038
2039- "type": "io" (json-string, fixed)
2040- "bar": BAR number (json-int)
2041- "address": memory address (json-int)
2042- "size": memory size (json-int)
2043
2044A memory region json-object contains the following:
2045
2046- "type": "memory" (json-string, fixed)
2047- "bar": BAR number (json-int)
2048- "address": memory address (json-int)
2049- "size": memory size (json-int)
2050- "mem_type_64": true or false (json-bool)
2051- "prefetch": true or false (json-bool)
2052
2053Example:
2054
2055-> { "execute": "query-pci" }
2056<- {
2057 "return":[
2058 {
2059 "bus":0,
2060 "devices":[
2061 {
2062 "bus":0,
2063 "qdev_id":"",
2064 "slot":0,
2065 "class_info":{
2066 "class":1536,
2067 "desc":"Host bridge"
2068 },
2069 "id":{
2070 "device":32902,
2071 "vendor":4663
2072 },
2073 "function":0,
2074 "regions":[
2075
2076 ]
2077 },
2078 {
2079 "bus":0,
2080 "qdev_id":"",
2081 "slot":1,
2082 "class_info":{
2083 "class":1537,
2084 "desc":"ISA bridge"
2085 },
2086 "id":{
2087 "device":32902,
2088 "vendor":28672
2089 },
2090 "function":0,
2091 "regions":[
2092
2093 ]
2094 },
2095 {
2096 "bus":0,
2097 "qdev_id":"",
2098 "slot":1,
2099 "class_info":{
2100 "class":257,
2101 "desc":"IDE controller"
2102 },
2103 "id":{
2104 "device":32902,
2105 "vendor":28688
2106 },
2107 "function":1,
2108 "regions":[
2109 {
2110 "bar":4,
2111 "size":16,
2112 "address":49152,
2113 "type":"io"
2114 }
2115 ]
2116 },
2117 {
2118 "bus":0,
2119 "qdev_id":"",
2120 "slot":2,
2121 "class_info":{
2122 "class":768,
2123 "desc":"VGA controller"
2124 },
2125 "id":{
2126 "device":4115,
2127 "vendor":184
2128 },
2129 "function":0,
2130 "regions":[
2131 {
2132 "prefetch":true,
2133 "mem_type_64":false,
2134 "bar":0,
2135 "size":33554432,
2136 "address":4026531840,
2137 "type":"memory"
2138 },
2139 {
2140 "prefetch":false,
2141 "mem_type_64":false,
2142 "bar":1,
2143 "size":4096,
2144 "address":4060086272,
2145 "type":"memory"
2146 },
2147 {
2148 "prefetch":false,
2149 "mem_type_64":false,
2150 "bar":6,
2151 "size":65536,
2152 "address":-1,
2153 "type":"memory"
2154 }
2155 ]
2156 },
2157 {
2158 "bus":0,
2159 "qdev_id":"",
2160 "irq":11,
2161 "slot":4,
2162 "class_info":{
2163 "class":1280,
2164 "desc":"RAM controller"
2165 },
2166 "id":{
2167 "device":6900,
2168 "vendor":4098
2169 },
2170 "function":0,
2171 "regions":[
2172 {
2173 "bar":0,
2174 "size":32,
2175 "address":49280,
2176 "type":"io"
2177 }
2178 ]
2179 }
2180 ]
2181 }
2182 ]
2183 }
2184
2185Note: This example has been shortened as the real response is too long.
2186
2187EQMP
2188
2189STEXI
Jan Kiszka33572ec2010-05-31 14:43:30 -03002190@item info tlb
2191show virtual to physical memory mappings (i386 only)
2192@item info mem
2193show the active virtual memory mappings (i386 only)
Jan Kiszkab40292e2010-05-31 14:43:31 -03002194ETEXI
2195
2196STEXI
Jan Kiszka33572ec2010-05-31 14:43:30 -03002197@item info jit
2198show dynamic compiler info
2199@item info kvm
2200show KVM information
2201@item info numa
2202show NUMA information
Jan Kiszkab40292e2010-05-31 14:43:31 -03002203ETEXI
2204
2205STEXI
2206@item info kvm
2207show KVM information
2208ETEXI
2209SQMP
2210query-kvm
2211---------
2212
2213Show KVM information.
2214
2215Return a json-object with the following information:
2216
2217- "enabled": true if KVM support is enabled, false otherwise (json-bool)
2218- "present": true if QEMU has KVM support, false otherwise (json-bool)
2219
2220Example:
2221
2222-> { "execute": "query-kvm" }
2223<- { "return": { "enabled": true, "present": true } }
2224
2225EQMP
2226
2227STEXI
Jan Kiszka33572ec2010-05-31 14:43:30 -03002228@item info usb
2229show USB devices plugged on the virtual USB hub
2230@item info usbhost
2231show all USB host devices
2232@item info profile
2233show profiling information
2234@item info capture
2235show information about active capturing
2236@item info snapshots
2237show list of VM snapshots
Jan Kiszkab40292e2010-05-31 14:43:31 -03002238ETEXI
2239
2240STEXI
Jan Kiszka33572ec2010-05-31 14:43:30 -03002241@item info status
2242show the current VM status (running|paused)
Jan Kiszkab40292e2010-05-31 14:43:31 -03002243ETEXI
2244SQMP
2245query-status
2246------------
2247
2248Return a json-object with the following information:
2249
2250- "running": true if the VM is running, or false if it is paused (json-bool)
2251- "singlestep": true if the VM is in single step mode,
2252 false otherwise (json-bool)
2253
2254Example:
2255
2256-> { "execute": "query-status" }
2257<- { "return": { "running": true, "singlestep": false } }
2258
2259EQMP
2260
2261STEXI
Jan Kiszka33572ec2010-05-31 14:43:30 -03002262@item info pcmcia
2263show guest PCMCIA status
Jan Kiszkab40292e2010-05-31 14:43:31 -03002264ETEXI
2265
2266STEXI
Jan Kiszka33572ec2010-05-31 14:43:30 -03002267@item info mice
2268show which guest mouse is receiving events
Jan Kiszkab40292e2010-05-31 14:43:31 -03002269ETEXI
2270SQMP
2271query-mice
2272----------
2273
2274Show VM mice information.
2275
2276Each mouse is represented by a json-object, the returned value is a json-array
2277of all mice.
2278
2279The mouse json-object contains the following:
2280
2281- "name": mouse's name (json-string)
2282- "index": mouse's index (json-int)
2283- "current": true if this mouse is receiving events, false otherwise (json-bool)
2284- "absolute": true if the mouse generates absolute input events (json-bool)
2285
2286Example:
2287
2288-> { "execute": "query-mice" }
2289<- {
2290 "return":[
2291 {
2292 "name":"QEMU Microsoft Mouse",
2293 "index":0,
2294 "current":false,
2295 "absolute":false
2296 },
2297 {
2298 "name":"QEMU PS/2 Mouse",
2299 "index":1,
2300 "current":true,
2301 "absolute":true
2302 }
2303 ]
2304 }
2305
2306EQMP
2307
2308STEXI
Jan Kiszka33572ec2010-05-31 14:43:30 -03002309@item info vnc
2310show the vnc server status
Jan Kiszkab40292e2010-05-31 14:43:31 -03002311ETEXI
2312SQMP
2313query-vnc
2314---------
2315
2316Show VNC server information.
2317
2318Return a json-object with server information. Connected clients are returned
2319as a json-array of json-objects.
2320
2321The main json-object contains the following:
2322
2323- "enabled": true or false (json-bool)
2324- "host": server's IP address (json-string)
2325- "family": address family (json-string)
2326 - Possible values: "ipv4", "ipv6", "unix", "unknown"
2327- "service": server's port number (json-string)
2328- "auth": authentication method (json-string)
2329 - Possible values: "invalid", "none", "ra2", "ra2ne", "sasl", "tight",
2330 "tls", "ultra", "unknown", "vencrypt", "vencrypt",
2331 "vencrypt+plain", "vencrypt+tls+none",
2332 "vencrypt+tls+plain", "vencrypt+tls+sasl",
2333 "vencrypt+tls+vnc", "vencrypt+x509+none",
2334 "vencrypt+x509+plain", "vencrypt+x509+sasl",
2335 "vencrypt+x509+vnc", "vnc"
2336- "clients": a json-array of all connected clients
2337
2338Clients are described by a json-object, each one contain the following:
2339
2340- "host": client's IP address (json-string)
2341- "family": address family (json-string)
2342 - Possible values: "ipv4", "ipv6", "unix", "unknown"
2343- "service": client's port number (json-string)
2344- "x509_dname": TLS dname (json-string, optional)
2345- "sasl_username": SASL username (json-string, optional)
2346
2347Example:
2348
2349-> { "execute": "query-vnc" }
2350<- {
2351 "return":{
2352 "enabled":true,
2353 "host":"0.0.0.0",
2354 "service":"50402",
2355 "auth":"vnc",
2356 "family":"ipv4",
2357 "clients":[
2358 {
2359 "host":"127.0.0.1",
2360 "service":"50401",
2361 "family":"ipv4"
2362 }
2363 ]
2364 }
2365 }
2366
2367EQMP
2368
2369STEXI
Jan Kiszka33572ec2010-05-31 14:43:30 -03002370@item info name
2371show the current VM name
Jan Kiszkab40292e2010-05-31 14:43:31 -03002372ETEXI
2373SQMP
2374query-name
2375----------
2376
2377Show VM name.
2378
2379Return a json-object with the following information:
2380
2381- "name": VM's name (json-string, optional)
2382
2383Example:
2384
2385-> { "execute": "query-name" }
2386<- { "return": { "name": "qemu-name" } }
2387
2388EQMP
2389
2390STEXI
Jan Kiszka33572ec2010-05-31 14:43:30 -03002391@item info uuid
2392show the current VM UUID
Jan Kiszkab40292e2010-05-31 14:43:31 -03002393ETEXI
2394SQMP
2395query-uuid
2396----------
2397
2398Show VM UUID.
2399
2400Return a json-object with the following information:
2401
2402- "UUID": Universally Unique Identifier (json-string)
2403
2404Example:
2405
2406-> { "execute": "query-uuid" }
2407<- { "return": { "UUID": "550e8400-e29b-41d4-a716-446655440000" } }
2408
2409EQMP
2410
2411STEXI
Jan Kiszka33572ec2010-05-31 14:43:30 -03002412@item info cpustats
2413show CPU statistics
2414@item info usernet
2415show user network stack connection states
Jan Kiszkab40292e2010-05-31 14:43:31 -03002416ETEXI
2417
2418STEXI
Jan Kiszka33572ec2010-05-31 14:43:30 -03002419@item info migrate
2420show migration status
Jan Kiszkab40292e2010-05-31 14:43:31 -03002421ETEXI
2422SQMP
2423query-migrate
2424-------------
2425
2426Migration status.
2427
2428Return a json-object. If migration is active there will be another json-object
2429with RAM migration status and if block migration is active another one with
2430block migration status.
2431
2432The main json-object contains the following:
2433
2434- "status": migration status (json-string)
2435 - Possible values: "active", "completed", "failed", "cancelled"
2436- "ram": only present if "status" is "active", it is a json-object with the
2437 following RAM information (in bytes):
2438 - "transferred": amount transferred (json-int)
2439 - "remaining": amount remaining (json-int)
2440 - "total": total (json-int)
2441- "disk": only present if "status" is "active" and it is a block migration,
2442 it is a json-object with the following disk information (in bytes):
2443 - "transferred": amount transferred (json-int)
2444 - "remaining": amount remaining (json-int)
2445 - "total": total (json-int)
2446
2447Examples:
2448
24491. Before the first migration
2450
2451-> { "execute": "query-migrate" }
2452<- { "return": {} }
2453
24542. Migration is done and has succeeded
2455
2456-> { "execute": "query-migrate" }
2457<- { "return": { "status": "completed" } }
2458
24593. Migration is done and has failed
2460
2461-> { "execute": "query-migrate" }
2462<- { "return": { "status": "failed" } }
2463
24644. Migration is being performed and is not a block migration:
2465
2466-> { "execute": "query-migrate" }
2467<- {
2468 "return":{
2469 "status":"active",
2470 "ram":{
2471 "transferred":123,
2472 "remaining":123,
2473 "total":246
2474 }
2475 }
2476 }
2477
24785. Migration is being performed and is a block migration:
2479
2480-> { "execute": "query-migrate" }
2481<- {
2482 "return":{
2483 "status":"active",
2484 "ram":{
2485 "total":1057024,
2486 "remaining":1053304,
2487 "transferred":3720
2488 },
2489 "disk":{
2490 "total":20971520,
2491 "remaining":20880384,
2492 "transferred":91136
2493 }
2494 }
2495 }
2496
2497EQMP
2498
2499STEXI
Jan Kiszka33572ec2010-05-31 14:43:30 -03002500@item info balloon
2501show balloon information
Jan Kiszkab40292e2010-05-31 14:43:31 -03002502ETEXI
2503SQMP
2504query-balloon
2505-------------
2506
2507Show balloon information.
2508
2509Make an asynchronous request for balloon info. When the request completes a
2510json-object will be returned containing the following data:
2511
2512- "actual": current balloon value in bytes (json-int)
2513- "mem_swapped_in": Amount of memory swapped in bytes (json-int, optional)
2514- "mem_swapped_out": Amount of memory swapped out in bytes (json-int, optional)
2515- "major_page_faults": Number of major faults (json-int, optional)
2516- "minor_page_faults": Number of minor faults (json-int, optional)
2517- "free_mem": Total amount of free and unused memory in
2518 bytes (json-int, optional)
2519- "total_mem": Total amount of available memory in bytes (json-int, optional)
2520
2521Example:
2522
2523-> { "execute": "query-balloon" }
2524<- {
2525 "return":{
2526 "actual":1073741824,
2527 "mem_swapped_in":0,
2528 "mem_swapped_out":0,
2529 "major_page_faults":142,
2530 "minor_page_faults":239245,
2531 "free_mem":1014185984,
2532 "total_mem":1044668416
2533 }
2534 }
2535
2536EQMP
2537
2538STEXI
Jan Kiszka33572ec2010-05-31 14:43:30 -03002539@item info qtree
2540show device tree
2541@item info qdm
2542show qdev device model list
2543@item info roms
2544show roms
2545@end table
2546ETEXI
2547
Prerna Saxena22890ab2010-06-24 17:04:53 +05302548#ifdef CONFIG_SIMPLE_TRACE
2549STEXI
2550@item info trace
2551show contents of trace buffer
2552@item info trace-events
2553show available trace events and their state
2554ETEXI
2555#endif
2556
Jan Kiszka33572ec2010-05-31 14:43:30 -03002557HXCOMM DO NOT add new commands after 'info', move your addition before it!
2558
Blue Swirl23130862009-06-06 08:22:04 +00002559STEXI
2560@end table
2561ETEXI