xref: /qemu/hmp-commands.hx (revision 4f0a993bf349e61632113a11e85ef588c66b421d)
12313086aSBlue SwirlHXCOMM Use DEFHEADING() to define headings in both help text and texi
22313086aSBlue SwirlHXCOMM Text between STEXI and ETEXI are copied to texi version and
32313086aSBlue SwirlHXCOMM discarded from C version
42313086aSBlue SwirlHXCOMM DEF(command, args, callback, arg_string, help) is used to construct
52313086aSBlue SwirlHXCOMM monitor commands
62313086aSBlue SwirlHXCOMM HXCOMM can be used for comments, discarded from both texi and C
72313086aSBlue Swirl
82313086aSBlue SwirlSTEXI
92313086aSBlue Swirl@table @option
102313086aSBlue SwirlETEXI
112313086aSBlue Swirl
12d7f9b689SLuiz Capitulino    {
13d7f9b689SLuiz Capitulino        .name       = "help|?",
14d7f9b689SLuiz Capitulino        .args_type  = "name:s?",
15d7f9b689SLuiz Capitulino        .params     = "[cmd]",
16d7f9b689SLuiz Capitulino        .help       = "show the help",
17af4ce882SLuiz Capitulino        .mhandler.cmd = do_help_cmd,
18d7f9b689SLuiz Capitulino    },
19d7f9b689SLuiz Capitulino
202313086aSBlue SwirlSTEXI
212313086aSBlue Swirl@item help or ? [@var{cmd}]
2270fcbbe7SStefan Weil@findex help
232313086aSBlue SwirlShow the help for all commands or just for command @var{cmd}.
242313086aSBlue SwirlETEXI
252313086aSBlue Swirl
26d7f9b689SLuiz Capitulino    {
27d7f9b689SLuiz Capitulino        .name       = "commit",
28d7f9b689SLuiz Capitulino        .args_type  = "device:B",
29d7f9b689SLuiz Capitulino        .params     = "device|all",
30d7f9b689SLuiz Capitulino        .help       = "commit changes to the disk images (if -snapshot is used) or backing files",
31af4ce882SLuiz Capitulino        .mhandler.cmd = do_commit,
32d7f9b689SLuiz Capitulino    },
33d7f9b689SLuiz Capitulino
342313086aSBlue SwirlSTEXI
352313086aSBlue Swirl@item commit
3670fcbbe7SStefan Weil@findex commit
372313086aSBlue SwirlCommit changes to the disk images (if -snapshot is used) or backing files.
382313086aSBlue SwirlETEXI
392313086aSBlue Swirl
40d7f9b689SLuiz Capitulino    {
41d7f9b689SLuiz Capitulino        .name       = "q|quit",
42d7f9b689SLuiz Capitulino        .args_type  = "",
43d7f9b689SLuiz Capitulino        .params     = "",
44d7f9b689SLuiz Capitulino        .help       = "quit the emulator",
45b223f35fSLuiz Capitulino        .user_print = monitor_user_noop,
467a7f325eSLuiz Capitulino        .mhandler.cmd = hmp_quit,
47d7f9b689SLuiz Capitulino    },
48d7f9b689SLuiz Capitulino
492313086aSBlue SwirlSTEXI
502313086aSBlue Swirl@item q or quit
5170fcbbe7SStefan Weil@findex quit
522313086aSBlue SwirlQuit the emulator.
532313086aSBlue SwirlETEXI
542313086aSBlue Swirl
55d7f9b689SLuiz Capitulino    {
566d4a2b3aSChristoph Hellwig        .name       = "block_resize",
576d4a2b3aSChristoph Hellwig        .args_type  = "device:B,size:o",
586d4a2b3aSChristoph Hellwig        .params     = "device size",
596d4a2b3aSChristoph Hellwig        .help       = "resize a block image",
605e7caacbSLuiz Capitulino        .mhandler.cmd = hmp_block_resize,
616d4a2b3aSChristoph Hellwig    },
626d4a2b3aSChristoph Hellwig
636d4a2b3aSChristoph HellwigSTEXI
646d4a2b3aSChristoph Hellwig@item block_resize
656d4a2b3aSChristoph Hellwig@findex block_resize
666d4a2b3aSChristoph HellwigResize a block image while a guest is running.  Usually requires guest
676d4a2b3aSChristoph Hellwigaction to see the updated size.  Resize to a lower size is supported,
686d4a2b3aSChristoph Hellwigbut should be used with extreme caution.  Note that this command only
696d4a2b3aSChristoph Hellwigresizes image files, it can not resize block devices like LVM volumes.
706d4a2b3aSChristoph HellwigETEXI
716d4a2b3aSChristoph Hellwig
726d4a2b3aSChristoph Hellwig
736d4a2b3aSChristoph Hellwig    {
74d7f9b689SLuiz Capitulino        .name       = "eject",
7578d714e0SLuiz Capitulino        .args_type  = "force:-f,device:B",
76d7f9b689SLuiz Capitulino        .params     = "[-f] device",
77d7f9b689SLuiz Capitulino        .help       = "eject a removable medium (use -f to force it)",
78e1c923a6SLuiz Capitulino        .user_print = monitor_user_noop,
79261394dbSLuiz Capitulino        .mhandler.cmd_new = do_eject,
80d7f9b689SLuiz Capitulino    },
81d7f9b689SLuiz Capitulino
822313086aSBlue SwirlSTEXI
832313086aSBlue Swirl@item eject [-f] @var{device}
8470fcbbe7SStefan Weil@findex eject
852313086aSBlue SwirlEject a removable medium (use -f to force it).
862313086aSBlue SwirlETEXI
872313086aSBlue Swirl
88d7f9b689SLuiz Capitulino    {
899063f814SRyan Harper        .name       = "drive_del",
909063f814SRyan Harper        .args_type  = "id:s",
919063f814SRyan Harper        .params     = "device",
929063f814SRyan Harper        .help       = "remove host block device",
939063f814SRyan Harper        .user_print = monitor_user_noop,
949063f814SRyan Harper        .mhandler.cmd_new = do_drive_del,
959063f814SRyan Harper    },
969063f814SRyan Harper
979063f814SRyan HarperSTEXI
989063f814SRyan Harper@item drive_del @var{device}
999063f814SRyan Harper@findex drive_del
1009063f814SRyan HarperRemove host block device.  The result is that guest generated IO is no longer
1019063f814SRyan Harpersubmitted against the host device underlying the disk.  Once a drive has
1029063f814SRyan Harperbeen deleted, the QEMU Block layer returns -EIO which results in IO
1039063f814SRyan Harpererrors in the guest for applications that are reading/writing to the device.
1049063f814SRyan HarperETEXI
1059063f814SRyan Harper
1069063f814SRyan Harper    {
107d7f9b689SLuiz Capitulino        .name       = "change",
108d7f9b689SLuiz Capitulino        .args_type  = "device:B,target:F,arg:s?",
109d7f9b689SLuiz Capitulino        .params     = "device filename [format]",
110d7f9b689SLuiz Capitulino        .help       = "change a removable medium, optional format",
111ec3b82afSMarkus Armbruster        .user_print = monitor_user_noop,
112261394dbSLuiz Capitulino        .mhandler.cmd_new = do_change,
113d7f9b689SLuiz Capitulino    },
114d7f9b689SLuiz Capitulino
1152313086aSBlue SwirlSTEXI
1162313086aSBlue Swirl@item change @var{device} @var{setting}
11770fcbbe7SStefan Weil@findex change
1182313086aSBlue Swirl
1192313086aSBlue SwirlChange the configuration of a device.
1202313086aSBlue Swirl
1212313086aSBlue Swirl@table @option
1222313086aSBlue Swirl@item change @var{diskdevice} @var{filename} [@var{format}]
1232313086aSBlue SwirlChange the medium for a removable disk device to point to @var{filename}. eg
1242313086aSBlue Swirl
1252313086aSBlue Swirl@example
1262313086aSBlue Swirl(qemu) change ide1-cd0 /path/to/some.iso
1272313086aSBlue Swirl@end example
1282313086aSBlue Swirl
1292313086aSBlue Swirl@var{format} is optional.
1302313086aSBlue Swirl
1312313086aSBlue Swirl@item change vnc @var{display},@var{options}
1322313086aSBlue SwirlChange the configuration of the VNC server. The valid syntax for @var{display}
1332313086aSBlue Swirland @var{options} are described at @ref{sec_invocation}. eg
1342313086aSBlue Swirl
1352313086aSBlue Swirl@example
1362313086aSBlue Swirl(qemu) change vnc localhost:1
1372313086aSBlue Swirl@end example
1382313086aSBlue Swirl
1392313086aSBlue Swirl@item change vnc password [@var{password}]
1402313086aSBlue Swirl
1412313086aSBlue SwirlChange the password associated with the VNC server. If the new password is not
1422313086aSBlue Swirlsupplied, the monitor will prompt for it to be entered. VNC passwords are only
1432313086aSBlue Swirlsignificant up to 8 letters. eg
1442313086aSBlue Swirl
1452313086aSBlue Swirl@example
1462313086aSBlue Swirl(qemu) change vnc password
1472313086aSBlue SwirlPassword: ********
1482313086aSBlue Swirl@end example
1492313086aSBlue Swirl
1502313086aSBlue Swirl@end table
1512313086aSBlue SwirlETEXI
1522313086aSBlue Swirl
153d7f9b689SLuiz Capitulino    {
154d7f9b689SLuiz Capitulino        .name       = "screendump",
155d7f9b689SLuiz Capitulino        .args_type  = "filename:F",
156d7f9b689SLuiz Capitulino        .params     = "filename",
157d7f9b689SLuiz Capitulino        .help       = "save screen into PPM image 'filename'",
158f1dc58e0SLuiz Capitulino        .user_print = monitor_user_noop,
159f1dc58e0SLuiz Capitulino        .mhandler.cmd_new = do_screen_dump,
160d7f9b689SLuiz Capitulino    },
161d7f9b689SLuiz Capitulino
1622313086aSBlue SwirlSTEXI
1632313086aSBlue Swirl@item screendump @var{filename}
16470fcbbe7SStefan Weil@findex screendump
1652313086aSBlue SwirlSave screen into PPM image @var{filename}.
1662313086aSBlue SwirlETEXI
1672313086aSBlue Swirl
168d7f9b689SLuiz Capitulino    {
169d7f9b689SLuiz Capitulino        .name       = "logfile",
170d7f9b689SLuiz Capitulino        .args_type  = "filename:F",
171d7f9b689SLuiz Capitulino        .params     = "filename",
172d7f9b689SLuiz Capitulino        .help       = "output logs to 'filename'",
173af4ce882SLuiz Capitulino        .mhandler.cmd = do_logfile,
174d7f9b689SLuiz Capitulino    },
175d7f9b689SLuiz Capitulino
1762313086aSBlue SwirlSTEXI
1772313086aSBlue Swirl@item logfile @var{filename}
17870fcbbe7SStefan Weil@findex logfile
1792313086aSBlue SwirlOutput logs to @var{filename}.
1802313086aSBlue SwirlETEXI
1812313086aSBlue Swirl
18222890ab5SPrerna Saxena    {
18322890ab5SPrerna Saxena        .name       = "trace-event",
18422890ab5SPrerna Saxena        .args_type  = "name:s,option:b",
18522890ab5SPrerna Saxena        .params     = "name on|off",
18622890ab5SPrerna Saxena        .help       = "changes status of a specific trace event",
187fc764105SLluís        .mhandler.cmd = do_trace_event_set_state,
18822890ab5SPrerna Saxena    },
18922890ab5SPrerna Saxena
19022890ab5SPrerna SaxenaSTEXI
19122890ab5SPrerna Saxena@item trace-event
19222890ab5SPrerna Saxena@findex trace-event
19322890ab5SPrerna Saxenachanges status of a trace event
19422890ab5SPrerna SaxenaETEXI
195c5ceb523SStefan Hajnoczi
196c45a8168SMichael Roth#if defined(CONFIG_TRACE_SIMPLE)
197c5ceb523SStefan Hajnoczi    {
198c5ceb523SStefan Hajnoczi        .name       = "trace-file",
199c5ceb523SStefan Hajnoczi        .args_type  = "op:s?,arg:F?",
200c5ceb523SStefan Hajnoczi        .params     = "on|off|flush|set [arg]",
201c5ceb523SStefan Hajnoczi        .help       = "open, close, or flush trace file, or set a new file name",
202c5ceb523SStefan Hajnoczi        .mhandler.cmd = do_trace_file,
203c5ceb523SStefan Hajnoczi    },
204c5ceb523SStefan Hajnoczi
205c5ceb523SStefan HajnocziSTEXI
206c5ceb523SStefan Hajnoczi@item trace-file on|off|flush
207c5ceb523SStefan Hajnoczi@findex trace-file
208c5ceb523SStefan HajnocziOpen, close, or flush the trace file.  If no argument is given, the status of the trace file is displayed.
209c5ceb523SStefan HajnocziETEXI
21022890ab5SPrerna Saxena#endif
21122890ab5SPrerna Saxena
212d7f9b689SLuiz Capitulino    {
213d7f9b689SLuiz Capitulino        .name       = "log",
214d7f9b689SLuiz Capitulino        .args_type  = "items:s",
215d7f9b689SLuiz Capitulino        .params     = "item1[,...]",
216d7f9b689SLuiz Capitulino        .help       = "activate logging of the specified items to '/tmp/qemu.log'",
217af4ce882SLuiz Capitulino        .mhandler.cmd = do_log,
218d7f9b689SLuiz Capitulino    },
219d7f9b689SLuiz Capitulino
2202313086aSBlue SwirlSTEXI
2212313086aSBlue Swirl@item log @var{item1}[,...]
22270fcbbe7SStefan Weil@findex log
2232313086aSBlue SwirlActivate logging of the specified items to @file{/tmp/qemu.log}.
2242313086aSBlue SwirlETEXI
2252313086aSBlue Swirl
226d7f9b689SLuiz Capitulino    {
227d7f9b689SLuiz Capitulino        .name       = "savevm",
228d7f9b689SLuiz Capitulino        .args_type  = "name:s?",
229d7f9b689SLuiz Capitulino        .params     = "[tag|id]",
230d7f9b689SLuiz Capitulino        .help       = "save a VM snapshot. If no tag or id are provided, a new snapshot is created",
231af4ce882SLuiz Capitulino        .mhandler.cmd = do_savevm,
232d7f9b689SLuiz Capitulino    },
233d7f9b689SLuiz Capitulino
2342313086aSBlue SwirlSTEXI
2352313086aSBlue Swirl@item savevm [@var{tag}|@var{id}]
23670fcbbe7SStefan Weil@findex savevm
2372313086aSBlue SwirlCreate a snapshot of the whole virtual machine. If @var{tag} is
2382313086aSBlue Swirlprovided, it is used as human readable identifier. If there is already
2392313086aSBlue Swirla snapshot with the same tag or ID, it is replaced. More info at
2402313086aSBlue Swirl@ref{vm_snapshots}.
2412313086aSBlue SwirlETEXI
2422313086aSBlue Swirl
243d7f9b689SLuiz Capitulino    {
244d7f9b689SLuiz Capitulino        .name       = "loadvm",
245d7f9b689SLuiz Capitulino        .args_type  = "name:s",
246d7f9b689SLuiz Capitulino        .params     = "tag|id",
247d7f9b689SLuiz Capitulino        .help       = "restore a VM snapshot from its tag or id",
248af4ce882SLuiz Capitulino        .mhandler.cmd = do_loadvm,
249d7f9b689SLuiz Capitulino    },
250d7f9b689SLuiz Capitulino
2512313086aSBlue SwirlSTEXI
2522313086aSBlue Swirl@item loadvm @var{tag}|@var{id}
25370fcbbe7SStefan Weil@findex loadvm
2542313086aSBlue SwirlSet the whole virtual machine to the snapshot identified by the tag
2552313086aSBlue Swirl@var{tag} or the unique snapshot ID @var{id}.
2562313086aSBlue SwirlETEXI
2572313086aSBlue Swirl
258d7f9b689SLuiz Capitulino    {
259d7f9b689SLuiz Capitulino        .name       = "delvm",
260d7f9b689SLuiz Capitulino        .args_type  = "name:s",
261d7f9b689SLuiz Capitulino        .params     = "tag|id",
262d7f9b689SLuiz Capitulino        .help       = "delete a VM snapshot from its tag or id",
263af4ce882SLuiz Capitulino        .mhandler.cmd = do_delvm,
264d7f9b689SLuiz Capitulino    },
265d7f9b689SLuiz Capitulino
2662313086aSBlue SwirlSTEXI
2672313086aSBlue Swirl@item delvm @var{tag}|@var{id}
26870fcbbe7SStefan Weil@findex delvm
2692313086aSBlue SwirlDelete the snapshot identified by @var{tag} or @var{id}.
2702313086aSBlue SwirlETEXI
2712313086aSBlue Swirl
272d7f9b689SLuiz Capitulino    {
273d7f9b689SLuiz Capitulino        .name       = "singlestep",
274d7f9b689SLuiz Capitulino        .args_type  = "option:s?",
275d7f9b689SLuiz Capitulino        .params     = "[on|off]",
276d7f9b689SLuiz Capitulino        .help       = "run emulation in singlestep mode or switch to normal mode",
277af4ce882SLuiz Capitulino        .mhandler.cmd = do_singlestep,
278d7f9b689SLuiz Capitulino    },
279d7f9b689SLuiz Capitulino
2802313086aSBlue SwirlSTEXI
2812313086aSBlue Swirl@item singlestep [off]
28270fcbbe7SStefan Weil@findex singlestep
2832313086aSBlue SwirlRun the emulation in single step mode.
2842313086aSBlue SwirlIf called with option off, the emulation returns to normal mode.
2852313086aSBlue SwirlETEXI
2862313086aSBlue Swirl
287d7f9b689SLuiz Capitulino    {
288d7f9b689SLuiz Capitulino        .name       = "stop",
289d7f9b689SLuiz Capitulino        .args_type  = "",
290d7f9b689SLuiz Capitulino        .params     = "",
291d7f9b689SLuiz Capitulino        .help       = "stop emulation",
2925f158f21SLuiz Capitulino        .mhandler.cmd = hmp_stop,
293d7f9b689SLuiz Capitulino    },
294d7f9b689SLuiz Capitulino
2952313086aSBlue SwirlSTEXI
2962313086aSBlue Swirl@item stop
29770fcbbe7SStefan Weil@findex stop
2982313086aSBlue SwirlStop emulation.
2992313086aSBlue SwirlETEXI
3002313086aSBlue Swirl
301d7f9b689SLuiz Capitulino    {
302d7f9b689SLuiz Capitulino        .name       = "c|cont",
303d7f9b689SLuiz Capitulino        .args_type  = "",
304d7f9b689SLuiz Capitulino        .params     = "",
305d7f9b689SLuiz Capitulino        .help       = "resume emulation",
306e42e818bSLuiz Capitulino        .mhandler.cmd = hmp_cont,
307d7f9b689SLuiz Capitulino    },
308d7f9b689SLuiz Capitulino
3092313086aSBlue SwirlSTEXI
3102313086aSBlue Swirl@item c or cont
31170fcbbe7SStefan Weil@findex cont
3122313086aSBlue SwirlResume emulation.
3132313086aSBlue SwirlETEXI
3142313086aSBlue Swirl
315d7f9b689SLuiz Capitulino    {
316d7f9b689SLuiz Capitulino        .name       = "gdbserver",
317d7f9b689SLuiz Capitulino        .args_type  = "device:s?",
318d7f9b689SLuiz Capitulino        .params     = "[device]",
319d7f9b689SLuiz Capitulino        .help       = "start gdbserver on given device (default 'tcp::1234'), stop with 'none'",
320af4ce882SLuiz Capitulino        .mhandler.cmd = do_gdbserver,
321d7f9b689SLuiz Capitulino    },
322d7f9b689SLuiz Capitulino
3232313086aSBlue SwirlSTEXI
3242313086aSBlue Swirl@item gdbserver [@var{port}]
32570fcbbe7SStefan Weil@findex gdbserver
3262313086aSBlue SwirlStart gdbserver session (default @var{port}=1234)
3272313086aSBlue SwirlETEXI
3282313086aSBlue Swirl
329d7f9b689SLuiz Capitulino    {
330d7f9b689SLuiz Capitulino        .name       = "x",
331d7f9b689SLuiz Capitulino        .args_type  = "fmt:/,addr:l",
332d7f9b689SLuiz Capitulino        .params     = "/fmt addr",
333d7f9b689SLuiz Capitulino        .help       = "virtual memory dump starting at 'addr'",
334af4ce882SLuiz Capitulino        .mhandler.cmd = do_memory_dump,
335d7f9b689SLuiz Capitulino    },
336d7f9b689SLuiz Capitulino
3372313086aSBlue SwirlSTEXI
3382313086aSBlue Swirl@item x/fmt @var{addr}
33970fcbbe7SStefan Weil@findex x
3402313086aSBlue SwirlVirtual memory dump starting at @var{addr}.
3412313086aSBlue SwirlETEXI
3422313086aSBlue Swirl
343d7f9b689SLuiz Capitulino    {
344d7f9b689SLuiz Capitulino        .name       = "xp",
345d7f9b689SLuiz Capitulino        .args_type  = "fmt:/,addr:l",
346d7f9b689SLuiz Capitulino        .params     = "/fmt addr",
347d7f9b689SLuiz Capitulino        .help       = "physical memory dump starting at 'addr'",
348af4ce882SLuiz Capitulino        .mhandler.cmd = do_physical_memory_dump,
349d7f9b689SLuiz Capitulino    },
350d7f9b689SLuiz Capitulino
3512313086aSBlue SwirlSTEXI
3522313086aSBlue Swirl@item xp /@var{fmt} @var{addr}
35370fcbbe7SStefan Weil@findex xp
3542313086aSBlue SwirlPhysical memory dump starting at @var{addr}.
3552313086aSBlue Swirl
3562313086aSBlue Swirl@var{fmt} is a format which tells the command how to format the
3572313086aSBlue Swirldata. Its syntax is: @option{/@{count@}@{format@}@{size@}}
3582313086aSBlue Swirl
3592313086aSBlue Swirl@table @var
3602313086aSBlue Swirl@item count
3612313086aSBlue Swirlis the number of items to be dumped.
3622313086aSBlue Swirl
3632313086aSBlue Swirl@item format
3642313086aSBlue Swirlcan be x (hex), d (signed decimal), u (unsigned decimal), o (octal),
3652313086aSBlue Swirlc (char) or i (asm instruction).
3662313086aSBlue Swirl
3672313086aSBlue Swirl@item size
3682313086aSBlue Swirlcan be b (8 bits), h (16 bits), w (32 bits) or g (64 bits). On x86,
3692313086aSBlue Swirl@code{h} or @code{w} can be specified with the @code{i} format to
3702313086aSBlue Swirlrespectively select 16 or 32 bit code instruction size.
3712313086aSBlue Swirl
3722313086aSBlue Swirl@end table
3732313086aSBlue Swirl
3742313086aSBlue SwirlExamples:
3752313086aSBlue Swirl@itemize
3762313086aSBlue Swirl@item
3772313086aSBlue SwirlDump 10 instructions at the current instruction pointer:
3782313086aSBlue Swirl@example
3792313086aSBlue Swirl(qemu) x/10i $eip
3802313086aSBlue Swirl0x90107063:  ret
3812313086aSBlue Swirl0x90107064:  sti
3822313086aSBlue Swirl0x90107065:  lea    0x0(%esi,1),%esi
3832313086aSBlue Swirl0x90107069:  lea    0x0(%edi,1),%edi
3842313086aSBlue Swirl0x90107070:  ret
3852313086aSBlue Swirl0x90107071:  jmp    0x90107080
3862313086aSBlue Swirl0x90107073:  nop
3872313086aSBlue Swirl0x90107074:  nop
3882313086aSBlue Swirl0x90107075:  nop
3892313086aSBlue Swirl0x90107076:  nop
3902313086aSBlue Swirl@end example
3912313086aSBlue Swirl
3922313086aSBlue Swirl@item
3932313086aSBlue SwirlDump 80 16 bit values at the start of the video memory.
3942313086aSBlue Swirl@smallexample
3952313086aSBlue Swirl(qemu) xp/80hx 0xb8000
3962313086aSBlue Swirl0x000b8000: 0x0b50 0x0b6c 0x0b65 0x0b78 0x0b38 0x0b36 0x0b2f 0x0b42
3972313086aSBlue Swirl0x000b8010: 0x0b6f 0x0b63 0x0b68 0x0b73 0x0b20 0x0b56 0x0b47 0x0b41
3982313086aSBlue Swirl0x000b8020: 0x0b42 0x0b69 0x0b6f 0x0b73 0x0b20 0x0b63 0x0b75 0x0b72
3992313086aSBlue Swirl0x000b8030: 0x0b72 0x0b65 0x0b6e 0x0b74 0x0b2d 0x0b63 0x0b76 0x0b73
4002313086aSBlue Swirl0x000b8040: 0x0b20 0x0b30 0x0b35 0x0b20 0x0b4e 0x0b6f 0x0b76 0x0b20
4012313086aSBlue Swirl0x000b8050: 0x0b32 0x0b30 0x0b30 0x0b33 0x0720 0x0720 0x0720 0x0720
4022313086aSBlue Swirl0x000b8060: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
4032313086aSBlue Swirl0x000b8070: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
4042313086aSBlue Swirl0x000b8080: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
4052313086aSBlue Swirl0x000b8090: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
4062313086aSBlue Swirl@end smallexample
4072313086aSBlue Swirl@end itemize
4082313086aSBlue SwirlETEXI
4092313086aSBlue Swirl
410d7f9b689SLuiz Capitulino    {
411d7f9b689SLuiz Capitulino        .name       = "p|print",
412d7f9b689SLuiz Capitulino        .args_type  = "fmt:/,val:l",
413d7f9b689SLuiz Capitulino        .params     = "/fmt expr",
414d7f9b689SLuiz Capitulino        .help       = "print expression value (use $reg for CPU register access)",
415af4ce882SLuiz Capitulino        .mhandler.cmd = do_print,
416d7f9b689SLuiz Capitulino    },
417d7f9b689SLuiz Capitulino
4182313086aSBlue SwirlSTEXI
4192313086aSBlue Swirl@item p or print/@var{fmt} @var{expr}
42070fcbbe7SStefan Weil@findex print
4212313086aSBlue Swirl
4222313086aSBlue SwirlPrint expression value. Only the @var{format} part of @var{fmt} is
4232313086aSBlue Swirlused.
4242313086aSBlue SwirlETEXI
4252313086aSBlue Swirl
426d7f9b689SLuiz Capitulino    {
427d7f9b689SLuiz Capitulino        .name       = "i",
428d7f9b689SLuiz Capitulino        .args_type  = "fmt:/,addr:i,index:i.",
429d7f9b689SLuiz Capitulino        .params     = "/fmt addr",
430d7f9b689SLuiz Capitulino        .help       = "I/O port read",
431af4ce882SLuiz Capitulino        .mhandler.cmd = do_ioport_read,
432d7f9b689SLuiz Capitulino    },
433d7f9b689SLuiz Capitulino
4342313086aSBlue SwirlSTEXI
4352313086aSBlue SwirlRead I/O port.
4362313086aSBlue SwirlETEXI
4372313086aSBlue Swirl
438d7f9b689SLuiz Capitulino    {
439d7f9b689SLuiz Capitulino        .name       = "o",
440d7f9b689SLuiz Capitulino        .args_type  = "fmt:/,addr:i,val:i",
441d7f9b689SLuiz Capitulino        .params     = "/fmt addr value",
442d7f9b689SLuiz Capitulino        .help       = "I/O port write",
443af4ce882SLuiz Capitulino        .mhandler.cmd = do_ioport_write,
444d7f9b689SLuiz Capitulino    },
445d7f9b689SLuiz Capitulino
446f114784fSJan KiszkaSTEXI
447f114784fSJan KiszkaWrite to I/O port.
448f114784fSJan KiszkaETEXI
4492313086aSBlue Swirl
450d7f9b689SLuiz Capitulino    {
451d7f9b689SLuiz Capitulino        .name       = "sendkey",
452d7f9b689SLuiz Capitulino        .args_type  = "string:s,hold_time:i?",
453d7f9b689SLuiz Capitulino        .params     = "keys [hold_ms]",
454d7f9b689SLuiz Capitulino        .help       = "send keys to the VM (e.g. 'sendkey ctrl-alt-f1', default hold time=100 ms)",
455af4ce882SLuiz Capitulino        .mhandler.cmd = do_sendkey,
456d7f9b689SLuiz Capitulino    },
457d7f9b689SLuiz Capitulino
4582313086aSBlue SwirlSTEXI
4592313086aSBlue Swirl@item sendkey @var{keys}
46070fcbbe7SStefan Weil@findex sendkey
4612313086aSBlue Swirl
4622313086aSBlue SwirlSend @var{keys} to the emulator. @var{keys} could be the name of the
4632313086aSBlue Swirlkey or @code{#} followed by the raw value in either decimal or hexadecimal
4642313086aSBlue Swirlformat. Use @code{-} to press several keys simultaneously. Example:
4652313086aSBlue Swirl@example
4662313086aSBlue Swirlsendkey ctrl-alt-f1
4672313086aSBlue Swirl@end example
4682313086aSBlue Swirl
4692313086aSBlue SwirlThis command is useful to send keys that your graphical user interface
4702313086aSBlue Swirlintercepts at low level, such as @code{ctrl-alt-f1} in X Window.
4712313086aSBlue SwirlETEXI
4722313086aSBlue Swirl
473d7f9b689SLuiz Capitulino    {
474d7f9b689SLuiz Capitulino        .name       = "system_reset",
475d7f9b689SLuiz Capitulino        .args_type  = "",
476d7f9b689SLuiz Capitulino        .params     = "",
477d7f9b689SLuiz Capitulino        .help       = "reset the system",
47838d22653SLuiz Capitulino        .mhandler.cmd = hmp_system_reset,
479d7f9b689SLuiz Capitulino    },
480d7f9b689SLuiz Capitulino
4812313086aSBlue SwirlSTEXI
4822313086aSBlue Swirl@item system_reset
48370fcbbe7SStefan Weil@findex system_reset
4842313086aSBlue Swirl
4852313086aSBlue SwirlReset the system.
4862313086aSBlue SwirlETEXI
4872313086aSBlue Swirl
488d7f9b689SLuiz Capitulino    {
489d7f9b689SLuiz Capitulino        .name       = "system_powerdown",
490d7f9b689SLuiz Capitulino        .args_type  = "",
491d7f9b689SLuiz Capitulino        .params     = "",
492d7f9b689SLuiz Capitulino        .help       = "send system power down event",
4935bc465e4SLuiz Capitulino        .mhandler.cmd = hmp_system_powerdown,
494d7f9b689SLuiz Capitulino    },
495d7f9b689SLuiz Capitulino
4962313086aSBlue SwirlSTEXI
4972313086aSBlue Swirl@item system_powerdown
49870fcbbe7SStefan Weil@findex system_powerdown
4992313086aSBlue Swirl
5002313086aSBlue SwirlPower down the system (if supported).
5012313086aSBlue SwirlETEXI
5022313086aSBlue Swirl
503d7f9b689SLuiz Capitulino    {
504d7f9b689SLuiz Capitulino        .name       = "sum",
505d7f9b689SLuiz Capitulino        .args_type  = "start:i,size:i",
506d7f9b689SLuiz Capitulino        .params     = "addr size",
507d7f9b689SLuiz Capitulino        .help       = "compute the checksum of a memory region",
508af4ce882SLuiz Capitulino        .mhandler.cmd = do_sum,
509d7f9b689SLuiz Capitulino    },
510d7f9b689SLuiz Capitulino
5112313086aSBlue SwirlSTEXI
5122313086aSBlue Swirl@item sum @var{addr} @var{size}
51370fcbbe7SStefan Weil@findex sum
5142313086aSBlue Swirl
5152313086aSBlue SwirlCompute the checksum of a memory region.
5162313086aSBlue SwirlETEXI
5172313086aSBlue Swirl
518d7f9b689SLuiz Capitulino    {
519d7f9b689SLuiz Capitulino        .name       = "usb_add",
520d7f9b689SLuiz Capitulino        .args_type  = "devname:s",
521d7f9b689SLuiz Capitulino        .params     = "device",
522d7f9b689SLuiz Capitulino        .help       = "add USB device (e.g. 'host:bus.addr' or 'host:vendor_id:product_id')",
523af4ce882SLuiz Capitulino        .mhandler.cmd = do_usb_add,
524d7f9b689SLuiz Capitulino    },
525d7f9b689SLuiz Capitulino
5262313086aSBlue SwirlSTEXI
5272313086aSBlue Swirl@item usb_add @var{devname}
52870fcbbe7SStefan Weil@findex usb_add
5292313086aSBlue Swirl
5302313086aSBlue SwirlAdd the USB device @var{devname}.  For details of available devices see
5312313086aSBlue Swirl@ref{usb_devices}
5322313086aSBlue SwirlETEXI
5332313086aSBlue Swirl
534d7f9b689SLuiz Capitulino    {
535d7f9b689SLuiz Capitulino        .name       = "usb_del",
536d7f9b689SLuiz Capitulino        .args_type  = "devname:s",
537d7f9b689SLuiz Capitulino        .params     = "device",
538d7f9b689SLuiz Capitulino        .help       = "remove USB device 'bus.addr'",
539af4ce882SLuiz Capitulino        .mhandler.cmd = do_usb_del,
540d7f9b689SLuiz Capitulino    },
541d7f9b689SLuiz Capitulino
5422313086aSBlue SwirlSTEXI
5432313086aSBlue Swirl@item usb_del @var{devname}
54470fcbbe7SStefan Weil@findex usb_del
5452313086aSBlue Swirl
5462313086aSBlue SwirlRemove the USB device @var{devname} from the QEMU virtual USB
5472313086aSBlue Swirlhub. @var{devname} has the syntax @code{bus.addr}. Use the monitor
5482313086aSBlue Swirlcommand @code{info usb} to see the devices you can remove.
5492313086aSBlue SwirlETEXI
5502313086aSBlue Swirl
551d7f9b689SLuiz Capitulino    {
552d7f9b689SLuiz Capitulino        .name       = "device_add",
553c7e4e8ceSMarkus Armbruster        .args_type  = "device:O",
554c7e4e8ceSMarkus Armbruster        .params     = "driver[,prop=value][,...]",
555d7f9b689SLuiz Capitulino        .help       = "add device, like -device on the command line",
5568bc27249SMarkus Armbruster        .user_print = monitor_user_noop,
5578bc27249SMarkus Armbruster        .mhandler.cmd_new = do_device_add,
558d7f9b689SLuiz Capitulino    },
559d7f9b689SLuiz Capitulino
5603418bd25SGerd HoffmannSTEXI
5613418bd25SGerd Hoffmann@item device_add @var{config}
56270fcbbe7SStefan Weil@findex device_add
5633418bd25SGerd Hoffmann
5643418bd25SGerd HoffmannAdd device.
5653418bd25SGerd HoffmannETEXI
5663418bd25SGerd Hoffmann
567d7f9b689SLuiz Capitulino    {
568d7f9b689SLuiz Capitulino        .name       = "device_del",
569d7f9b689SLuiz Capitulino        .args_type  = "id:s",
570d7f9b689SLuiz Capitulino        .params     = "device",
571d7f9b689SLuiz Capitulino        .help       = "remove device",
57217a38eaaSMarkus Armbruster        .user_print = monitor_user_noop,
57317a38eaaSMarkus Armbruster        .mhandler.cmd_new = do_device_del,
574d7f9b689SLuiz Capitulino    },
575d7f9b689SLuiz Capitulino
5763418bd25SGerd HoffmannSTEXI
5773418bd25SGerd Hoffmann@item device_del @var{id}
57870fcbbe7SStefan Weil@findex device_del
5793418bd25SGerd Hoffmann
5803418bd25SGerd HoffmannRemove device @var{id}.
5813418bd25SGerd HoffmannETEXI
5823418bd25SGerd Hoffmann
583d7f9b689SLuiz Capitulino    {
584d7f9b689SLuiz Capitulino        .name       = "cpu",
585d7f9b689SLuiz Capitulino        .args_type  = "index:i",
586d7f9b689SLuiz Capitulino        .params     = "index",
587d7f9b689SLuiz Capitulino        .help       = "set the default CPU",
588755f1968SLuiz Capitulino        .mhandler.cmd = hmp_cpu,
589d7f9b689SLuiz Capitulino    },
5903418bd25SGerd Hoffmann
5912313086aSBlue SwirlSTEXI
592c427ea9cSMarkus Armbruster@item cpu @var{index}
593c427ea9cSMarkus Armbruster@findex cpu
5942313086aSBlue SwirlSet the default CPU.
5952313086aSBlue SwirlETEXI
5962313086aSBlue Swirl
597d7f9b689SLuiz Capitulino    {
598d7f9b689SLuiz Capitulino        .name       = "mouse_move",
599d7f9b689SLuiz Capitulino        .args_type  = "dx_str:s,dy_str:s,dz_str:s?",
600d7f9b689SLuiz Capitulino        .params     = "dx dy [dz]",
601d7f9b689SLuiz Capitulino        .help       = "send mouse move events",
602af4ce882SLuiz Capitulino        .mhandler.cmd = do_mouse_move,
603d7f9b689SLuiz Capitulino    },
604d7f9b689SLuiz Capitulino
6052313086aSBlue SwirlSTEXI
6062313086aSBlue Swirl@item mouse_move @var{dx} @var{dy} [@var{dz}]
60770fcbbe7SStefan Weil@findex mouse_move
6082313086aSBlue SwirlMove the active mouse to the specified coordinates @var{dx} @var{dy}
6092313086aSBlue Swirlwith optional scroll axis @var{dz}.
6102313086aSBlue SwirlETEXI
6112313086aSBlue Swirl
612d7f9b689SLuiz Capitulino    {
613d7f9b689SLuiz Capitulino        .name       = "mouse_button",
614d7f9b689SLuiz Capitulino        .args_type  = "button_state:i",
615d7f9b689SLuiz Capitulino        .params     = "state",
616d7f9b689SLuiz Capitulino        .help       = "change mouse button state (1=L, 2=M, 4=R)",
617af4ce882SLuiz Capitulino        .mhandler.cmd = do_mouse_button,
618d7f9b689SLuiz Capitulino    },
619d7f9b689SLuiz Capitulino
6202313086aSBlue SwirlSTEXI
6212313086aSBlue Swirl@item mouse_button @var{val}
62270fcbbe7SStefan Weil@findex mouse_button
6232313086aSBlue SwirlChange the active mouse button state @var{val} (1=L, 2=M, 4=R).
6242313086aSBlue SwirlETEXI
6252313086aSBlue Swirl
626d7f9b689SLuiz Capitulino    {
627d7f9b689SLuiz Capitulino        .name       = "mouse_set",
628d7f9b689SLuiz Capitulino        .args_type  = "index:i",
629d7f9b689SLuiz Capitulino        .params     = "index",
630d7f9b689SLuiz Capitulino        .help       = "set which mouse device receives events",
631af4ce882SLuiz Capitulino        .mhandler.cmd = do_mouse_set,
632d7f9b689SLuiz Capitulino    },
633d7f9b689SLuiz Capitulino
6342313086aSBlue SwirlSTEXI
6352313086aSBlue Swirl@item mouse_set @var{index}
63670fcbbe7SStefan Weil@findex mouse_set
6372313086aSBlue SwirlSet which mouse device receives events at given @var{index}, index
6382313086aSBlue Swirlcan be obtained with
6392313086aSBlue Swirl@example
6402313086aSBlue Swirlinfo mice
6412313086aSBlue Swirl@end example
6422313086aSBlue SwirlETEXI
6432313086aSBlue Swirl
6442313086aSBlue Swirl#ifdef HAS_AUDIO
645d7f9b689SLuiz Capitulino    {
646d7f9b689SLuiz Capitulino        .name       = "wavcapture",
647d7f9b689SLuiz Capitulino        .args_type  = "path:F,freq:i?,bits:i?,nchannels:i?",
648d7f9b689SLuiz Capitulino        .params     = "path [frequency [bits [channels]]]",
649d7f9b689SLuiz Capitulino        .help       = "capture audio to a wave file (default frequency=44100 bits=16 channels=2)",
650af4ce882SLuiz Capitulino        .mhandler.cmd = do_wav_capture,
651d7f9b689SLuiz Capitulino    },
6522313086aSBlue Swirl#endif
6532313086aSBlue SwirlSTEXI
6542313086aSBlue Swirl@item wavcapture @var{filename} [@var{frequency} [@var{bits} [@var{channels}]]]
65570fcbbe7SStefan Weil@findex wavcapture
6562313086aSBlue SwirlCapture audio into @var{filename}. Using sample rate @var{frequency}
6572313086aSBlue Swirlbits per sample @var{bits} and number of channels @var{channels}.
6582313086aSBlue Swirl
6592313086aSBlue SwirlDefaults:
6602313086aSBlue Swirl@itemize @minus
6612313086aSBlue Swirl@item Sample rate = 44100 Hz - CD quality
6622313086aSBlue Swirl@item Bits = 16
6632313086aSBlue Swirl@item Number of channels = 2 - Stereo
6642313086aSBlue Swirl@end itemize
6652313086aSBlue SwirlETEXI
6662313086aSBlue Swirl
6672313086aSBlue Swirl#ifdef HAS_AUDIO
668d7f9b689SLuiz Capitulino    {
669d7f9b689SLuiz Capitulino        .name       = "stopcapture",
670d7f9b689SLuiz Capitulino        .args_type  = "n:i",
671d7f9b689SLuiz Capitulino        .params     = "capture index",
672d7f9b689SLuiz Capitulino        .help       = "stop capture",
673af4ce882SLuiz Capitulino        .mhandler.cmd = do_stop_capture,
674d7f9b689SLuiz Capitulino    },
6752313086aSBlue Swirl#endif
6762313086aSBlue SwirlSTEXI
6772313086aSBlue Swirl@item stopcapture @var{index}
67870fcbbe7SStefan Weil@findex stopcapture
6792313086aSBlue SwirlStop capture with a given @var{index}, index can be obtained with
6802313086aSBlue Swirl@example
6812313086aSBlue Swirlinfo capture
6822313086aSBlue Swirl@end example
6832313086aSBlue SwirlETEXI
6842313086aSBlue Swirl
685d7f9b689SLuiz Capitulino    {
686d7f9b689SLuiz Capitulino        .name       = "memsave",
687d7f9b689SLuiz Capitulino        .args_type  = "val:l,size:i,filename:s",
688d7f9b689SLuiz Capitulino        .params     = "addr size file",
689d7f9b689SLuiz Capitulino        .help       = "save to disk virtual memory dump starting at 'addr' of size 'size'",
6900cfd6a9aSLuiz Capitulino        .mhandler.cmd = hmp_memsave,
691d7f9b689SLuiz Capitulino    },
692d7f9b689SLuiz Capitulino
6932313086aSBlue SwirlSTEXI
6942313086aSBlue Swirl@item memsave @var{addr} @var{size} @var{file}
69570fcbbe7SStefan Weil@findex memsave
6962313086aSBlue Swirlsave to disk virtual memory dump starting at @var{addr} of size @var{size}.
6972313086aSBlue SwirlETEXI
6982313086aSBlue Swirl
699d7f9b689SLuiz Capitulino    {
700d7f9b689SLuiz Capitulino        .name       = "pmemsave",
701d7f9b689SLuiz Capitulino        .args_type  = "val:l,size:i,filename:s",
702d7f9b689SLuiz Capitulino        .params     = "addr size file",
703d7f9b689SLuiz Capitulino        .help       = "save to disk physical memory dump starting at 'addr' of size 'size'",
7046d3962bfSLuiz Capitulino        .mhandler.cmd = hmp_pmemsave,
705d7f9b689SLuiz Capitulino    },
706d7f9b689SLuiz Capitulino
7072313086aSBlue SwirlSTEXI
7082313086aSBlue Swirl@item pmemsave @var{addr} @var{size} @var{file}
70970fcbbe7SStefan Weil@findex pmemsave
7102313086aSBlue Swirlsave to disk physical memory dump starting at @var{addr} of size @var{size}.
7112313086aSBlue SwirlETEXI
7122313086aSBlue Swirl
713d7f9b689SLuiz Capitulino    {
714d7f9b689SLuiz Capitulino        .name       = "boot_set",
715d7f9b689SLuiz Capitulino        .args_type  = "bootdevice:s",
716d7f9b689SLuiz Capitulino        .params     = "bootdevice",
717d7f9b689SLuiz Capitulino        .help       = "define new values for the boot device list",
718af4ce882SLuiz Capitulino        .mhandler.cmd = do_boot_set,
719d7f9b689SLuiz Capitulino    },
720d7f9b689SLuiz Capitulino
7212313086aSBlue SwirlSTEXI
7222313086aSBlue Swirl@item boot_set @var{bootdevicelist}
72370fcbbe7SStefan Weil@findex boot_set
7242313086aSBlue Swirl
7252313086aSBlue SwirlDefine new values for the boot device list. Those values will override
7262313086aSBlue Swirlthe values specified on the command line through the @code{-boot} option.
7272313086aSBlue Swirl
7282313086aSBlue SwirlThe values that can be specified here depend on the machine type, but are
7292313086aSBlue Swirlthe same that can be specified in the @code{-boot} command line option.
7302313086aSBlue SwirlETEXI
7312313086aSBlue Swirl
7322313086aSBlue Swirl#if defined(TARGET_I386)
733d7f9b689SLuiz Capitulino    {
734d7f9b689SLuiz Capitulino        .name       = "nmi",
735e9b4b432SLuiz Capitulino        .args_type  = "",
736e9b4b432SLuiz Capitulino        .params     = "",
737e9b4b432SLuiz Capitulino        .help       = "inject an NMI on all guest's CPUs",
738ab49ab5cSLuiz Capitulino        .mhandler.cmd = hmp_inject_nmi,
739d7f9b689SLuiz Capitulino    },
7402313086aSBlue Swirl#endif
7412313086aSBlue SwirlSTEXI
7422313086aSBlue Swirl@item nmi @var{cpu}
74370fcbbe7SStefan Weil@findex nmi
7442313086aSBlue SwirlInject an NMI on the given CPU (x86 only).
7452313086aSBlue SwirlETEXI
7462313086aSBlue Swirl
747d7f9b689SLuiz Capitulino    {
748d7f9b689SLuiz Capitulino        .name       = "migrate",
749fbc3d96cSlirans@il.ibm.com        .args_type  = "detach:-d,blk:-b,inc:-i,uri:s",
750fbc3d96cSlirans@il.ibm.com        .params     = "[-d] [-b] [-i] uri",
751fbc3d96cSlirans@il.ibm.com        .help       = "migrate to URI (using -d to not wait for completion)"
752fbc3d96cSlirans@il.ibm.com		      "\n\t\t\t -b for migration without shared storage with"
753fbc3d96cSlirans@il.ibm.com		      " full copy of disk\n\t\t\t -i for migration without "
754fbc3d96cSlirans@il.ibm.com		      "shared storage with incremental copy of disk "
755fbc3d96cSlirans@il.ibm.com		      "(base image shared between src and destination)",
7565f79da00SLuiz Capitulino        .user_print = monitor_user_noop,
757261394dbSLuiz Capitulino	.mhandler.cmd_new = do_migrate,
758d7f9b689SLuiz Capitulino    },
759d7f9b689SLuiz Capitulino
760fbc3d96cSlirans@il.ibm.com
7612313086aSBlue SwirlSTEXI
762fbc3d96cSlirans@il.ibm.com@item migrate [-d] [-b] [-i] @var{uri}
76370fcbbe7SStefan Weil@findex migrate
7642313086aSBlue SwirlMigrate to @var{uri} (using -d to not wait for completion).
765fbc3d96cSlirans@il.ibm.com	-b for migration with full copy of disk
766fbc3d96cSlirans@il.ibm.com	-i for migration with incremental copy of disk (base image is shared)
7672313086aSBlue SwirlETEXI
7682313086aSBlue Swirl
769d7f9b689SLuiz Capitulino    {
770d7f9b689SLuiz Capitulino        .name       = "migrate_cancel",
771d7f9b689SLuiz Capitulino        .args_type  = "",
772d7f9b689SLuiz Capitulino        .params     = "",
773d7f9b689SLuiz Capitulino        .help       = "cancel the current VM migration",
7746cdedb07SLuiz Capitulino        .mhandler.cmd = hmp_migrate_cancel,
775d7f9b689SLuiz Capitulino    },
776d7f9b689SLuiz Capitulino
7772313086aSBlue SwirlSTEXI
7782313086aSBlue Swirl@item migrate_cancel
77970fcbbe7SStefan Weil@findex migrate_cancel
7802313086aSBlue SwirlCancel the current VM migration.
7812313086aSBlue SwirlETEXI
7822313086aSBlue Swirl
783d7f9b689SLuiz Capitulino    {
784d7f9b689SLuiz Capitulino        .name       = "migrate_set_speed",
785ed3d4a80SJes Sorensen        .args_type  = "value:o",
786d7f9b689SLuiz Capitulino        .params     = "value",
787ed3d4a80SJes Sorensen        .help       = "set maximum speed (in bytes) for migrations. "
788ed3d4a80SJes Sorensen	"Defaults to MB if no size suffix is specified, ie. B/K/M/G/T",
7895fd9083cSMarkus Armbruster        .user_print = monitor_user_noop,
790261394dbSLuiz Capitulino        .mhandler.cmd_new = do_migrate_set_speed,
791d7f9b689SLuiz Capitulino    },
792d7f9b689SLuiz Capitulino
7932313086aSBlue SwirlSTEXI
7942313086aSBlue Swirl@item migrate_set_speed @var{value}
79570fcbbe7SStefan Weil@findex migrate_set_speed
7962313086aSBlue SwirlSet maximum speed to @var{value} (in bytes) for migrations.
7972313086aSBlue SwirlETEXI
7982313086aSBlue Swirl
799d7f9b689SLuiz Capitulino    {
800d7f9b689SLuiz Capitulino        .name       = "migrate_set_downtime",
801b0fbf7d3SMarkus Armbruster        .args_type  = "value:T",
802d7f9b689SLuiz Capitulino        .params     = "value",
803d7f9b689SLuiz Capitulino        .help       = "set maximum tolerated downtime (in seconds) for migrations",
804*4f0a993bSLuiz Capitulino        .mhandler.cmd = hmp_migrate_set_downtime,
805d7f9b689SLuiz Capitulino    },
8062ea42952SGlauber Costa
8072ea42952SGlauber CostaSTEXI
8082ea42952SGlauber Costa@item migrate_set_downtime @var{second}
80970fcbbe7SStefan Weil@findex migrate_set_downtime
8102ea42952SGlauber CostaSet maximum tolerated downtime (in seconds) for migration.
8112ea42952SGlauber CostaETEXI
8122ea42952SGlauber Costa
813f8882568SJes Sorensen    {
8142ea720dbSJes Sorensen        .name       = "client_migrate_info",
8152ea720dbSJes Sorensen        .args_type  = "protocol:s,hostname:s,port:i?,tls-port:i?,cert-subject:s?",
8162ea720dbSJes Sorensen        .params     = "protocol hostname port tls-port cert-subject",
8172ea720dbSJes Sorensen        .help       = "send migration info to spice/vnc client",
8182ea720dbSJes Sorensen        .user_print = monitor_user_noop,
819edc5cb1aSYonit Halperin        .mhandler.cmd_async = client_migrate_info,
820edc5cb1aSYonit Halperin        .flags      = MONITOR_CMD_ASYNC,
821f8882568SJes Sorensen    },
822f8882568SJes Sorensen
823f8882568SJes SorensenSTEXI
824e866e239SGerd Hoffmann@item client_migrate_info @var{protocol} @var{hostname} @var{port} @var{tls-port} @var{cert-subject}
825e866e239SGerd Hoffmann@findex client_migrate_info
826e866e239SGerd HoffmannSet the spice/vnc connection info for the migration target.  The spice/vnc
827e866e239SGerd Hoffmannserver will ask the spice/vnc client to automatically reconnect using the
828e866e239SGerd Hoffmannnew parameters (if specified) once the vm migration finished successfully.
829e866e239SGerd HoffmannETEXI
830e866e239SGerd Hoffmann
831e866e239SGerd Hoffmann    {
8322ea720dbSJes Sorensen        .name       = "snapshot_blkdev",
833d967b2f1SJes Sorensen        .args_type  = "device:B,snapshot-file:s?,format:s?",
8342ea720dbSJes Sorensen        .params     = "device [new-image-file] [format]",
8352ea720dbSJes Sorensen        .help       = "initiates a live snapshot\n\t\t\t"
8362ea720dbSJes Sorensen                      "of device. If a new image file is specified, the\n\t\t\t"
8372ea720dbSJes Sorensen                      "new image file will become the new root image.\n\t\t\t"
8382ea720dbSJes Sorensen                      "If format is specified, the snapshot file will\n\t\t\t"
8392ea720dbSJes Sorensen                      "be created in that format. Otherwise the\n\t\t\t"
8402ea720dbSJes Sorensen                      "snapshot will be internal! (currently unsupported)",
8416106e249SLuiz Capitulino        .mhandler.cmd = hmp_snapshot_blkdev,
842e866e239SGerd Hoffmann    },
843e866e239SGerd Hoffmann
844e866e239SGerd HoffmannSTEXI
845f8882568SJes Sorensen@item snapshot_blkdev
846f8882568SJes Sorensen@findex snapshot_blkdev
847f8882568SJes SorensenSnapshot device, using snapshot file as target if provided
848f8882568SJes SorensenETEXI
849f8882568SJes Sorensen
8502313086aSBlue Swirl#if defined(TARGET_I386)
851d7f9b689SLuiz Capitulino    {
852d7f9b689SLuiz Capitulino        .name       = "drive_add",
853d7f9b689SLuiz Capitulino        .args_type  = "pci_addr:s,opts:s",
854d7f9b689SLuiz Capitulino        .params     = "[[<domain>:]<bus>:]<slot>\n"
8552313086aSBlue Swirl                      "[file=file][,if=type][,bus=n]\n"
856fb0490f6SStefan Hajnoczi                      "[,unit=m][,media=d][,index=i]\n"
8572313086aSBlue Swirl                      "[,cyls=c,heads=h,secs=s[,trans=t]]\n"
858fb0490f6SStefan Hajnoczi                      "[,snapshot=on|off][,cache=on|off]\n"
859fb0490f6SStefan Hajnoczi                      "[,readonly=on|off][,copy-on-read=on|off]",
860d7f9b689SLuiz Capitulino        .help       = "add drive to PCI storage controller",
861af4ce882SLuiz Capitulino        .mhandler.cmd = drive_hot_add,
862d7f9b689SLuiz Capitulino    },
8632313086aSBlue Swirl#endif
864d7f9b689SLuiz Capitulino
8652313086aSBlue SwirlSTEXI
8662313086aSBlue Swirl@item drive_add
86770fcbbe7SStefan Weil@findex drive_add
8682313086aSBlue SwirlAdd drive to PCI storage controller.
8692313086aSBlue SwirlETEXI
8702313086aSBlue Swirl
8712313086aSBlue Swirl#if defined(TARGET_I386)
872d7f9b689SLuiz Capitulino    {
873d7f9b689SLuiz Capitulino        .name       = "pci_add",
874d7f9b689SLuiz Capitulino        .args_type  = "pci_addr:s,type:s,opts:s?",
875d7f9b689SLuiz Capitulino        .params     = "auto|[[<domain>:]<bus>:]<slot> nic|storage [[vlan=n][,macaddr=addr][,model=type]] [file=file][,if=type][,bus=nr]...",
876d7f9b689SLuiz Capitulino        .help       = "hot-add PCI device",
8776c6a58aeSMarkus Armbruster        .mhandler.cmd = pci_device_hot_add,
878d7f9b689SLuiz Capitulino    },
8792313086aSBlue Swirl#endif
880d7f9b689SLuiz Capitulino
8812313086aSBlue SwirlSTEXI
8822313086aSBlue Swirl@item pci_add
88370fcbbe7SStefan Weil@findex pci_add
8842313086aSBlue SwirlHot-add PCI device.
8852313086aSBlue SwirlETEXI
8862313086aSBlue Swirl
8872313086aSBlue Swirl#if defined(TARGET_I386)
888d7f9b689SLuiz Capitulino    {
889d7f9b689SLuiz Capitulino        .name       = "pci_del",
890d7f9b689SLuiz Capitulino        .args_type  = "pci_addr:s",
891d7f9b689SLuiz Capitulino        .params     = "[[<domain>:]<bus>:]<slot>",
892d7f9b689SLuiz Capitulino        .help       = "hot remove PCI device",
893b752daf0SMarkus Armbruster        .mhandler.cmd = do_pci_device_hot_remove,
894d7f9b689SLuiz Capitulino    },
8952313086aSBlue Swirl#endif
896d7f9b689SLuiz Capitulino
8972313086aSBlue SwirlSTEXI
8982313086aSBlue Swirl@item pci_del
89970fcbbe7SStefan Weil@findex pci_del
9002313086aSBlue SwirlHot remove PCI device.
9012313086aSBlue SwirlETEXI
9022313086aSBlue Swirl
903d7f9b689SLuiz Capitulino    {
9042ae63bdaSIsaku Yamahata        .name       = "pcie_aer_inject_error",
9052ae63bdaSIsaku Yamahata        .args_type  = "advisory_non_fatal:-a,correctable:-c,"
9062ae63bdaSIsaku Yamahata	              "id:s,error_status:s,"
9072ae63bdaSIsaku Yamahata	              "header0:i?,header1:i?,header2:i?,header3:i?,"
9082ae63bdaSIsaku Yamahata	              "prefix0:i?,prefix1:i?,prefix2:i?,prefix3:i?",
9092ae63bdaSIsaku Yamahata        .params     = "[-a] [-c] id "
9102ae63bdaSIsaku Yamahata                      "<error_status> [<tlp header> [<tlp header prefix>]]",
9112ae63bdaSIsaku Yamahata        .help       = "inject pcie aer error\n\t\t\t"
9122ae63bdaSIsaku Yamahata	              " -a for advisory non fatal error\n\t\t\t"
9132ae63bdaSIsaku Yamahata	              " -c for correctable error\n\t\t\t"
9142ae63bdaSIsaku Yamahata                      "<id> = qdev device id\n\t\t\t"
9152ae63bdaSIsaku Yamahata                      "<error_status> = error string or 32bit\n\t\t\t"
9162ae63bdaSIsaku Yamahata                      "<tlb header> = 32bit x 4\n\t\t\t"
9172ae63bdaSIsaku Yamahata                      "<tlb header prefix> = 32bit x 4",
9182ae63bdaSIsaku Yamahata        .user_print  = pcie_aer_inject_error_print,
9192ae63bdaSIsaku Yamahata        .mhandler.cmd_new = do_pcie_aer_inejct_error,
9202ae63bdaSIsaku Yamahata    },
9212ae63bdaSIsaku Yamahata
9222ae63bdaSIsaku YamahataSTEXI
9232ae63bdaSIsaku Yamahata@item pcie_aer_inject_error
9242ae63bdaSIsaku Yamahata@findex pcie_aer_inject_error
9252ae63bdaSIsaku YamahataInject PCIe AER error
9262ae63bdaSIsaku YamahataETEXI
9272ae63bdaSIsaku Yamahata
9282ae63bdaSIsaku Yamahata    {
929d7f9b689SLuiz Capitulino        .name       = "host_net_add",
930d7f9b689SLuiz Capitulino        .args_type  = "device:s,opts:s?",
931d7f9b689SLuiz Capitulino        .params     = "tap|user|socket|vde|dump [options]",
932d7f9b689SLuiz Capitulino        .help       = "add host VLAN client",
933af4ce882SLuiz Capitulino        .mhandler.cmd = net_host_device_add,
934d7f9b689SLuiz Capitulino    },
935d7f9b689SLuiz Capitulino
9362313086aSBlue SwirlSTEXI
9372313086aSBlue Swirl@item host_net_add
93870fcbbe7SStefan Weil@findex host_net_add
9392313086aSBlue SwirlAdd host VLAN client.
9402313086aSBlue SwirlETEXI
9412313086aSBlue Swirl
942d7f9b689SLuiz Capitulino    {
943d7f9b689SLuiz Capitulino        .name       = "host_net_remove",
944d7f9b689SLuiz Capitulino        .args_type  = "vlan_id:i,device:s",
945d7f9b689SLuiz Capitulino        .params     = "vlan_id name",
946d7f9b689SLuiz Capitulino        .help       = "remove host VLAN client",
947af4ce882SLuiz Capitulino        .mhandler.cmd = net_host_device_remove,
948d7f9b689SLuiz Capitulino    },
949d7f9b689SLuiz Capitulino
9502313086aSBlue SwirlSTEXI
9512313086aSBlue Swirl@item host_net_remove
95270fcbbe7SStefan Weil@findex host_net_remove
9532313086aSBlue SwirlRemove host VLAN client.
9542313086aSBlue SwirlETEXI
9552313086aSBlue Swirl
956ae82d324SMarkus Armbruster    {
957ae82d324SMarkus Armbruster        .name       = "netdev_add",
958ae82d324SMarkus Armbruster        .args_type  = "netdev:O",
959ae82d324SMarkus Armbruster        .params     = "[user|tap|socket],id=str[,prop=value][,...]",
960ae82d324SMarkus Armbruster        .help       = "add host network device",
961ae82d324SMarkus Armbruster        .user_print = monitor_user_noop,
962ae82d324SMarkus Armbruster        .mhandler.cmd_new = do_netdev_add,
963ae82d324SMarkus Armbruster    },
964ae82d324SMarkus Armbruster
965ae82d324SMarkus ArmbrusterSTEXI
966ae82d324SMarkus Armbruster@item netdev_add
967ae82d324SMarkus Armbruster@findex netdev_add
968ae82d324SMarkus ArmbrusterAdd host network device.
969ae82d324SMarkus ArmbrusterETEXI
970ae82d324SMarkus Armbruster
971ae82d324SMarkus Armbruster    {
972ae82d324SMarkus Armbruster        .name       = "netdev_del",
973ae82d324SMarkus Armbruster        .args_type  = "id:s",
974ae82d324SMarkus Armbruster        .params     = "id",
975ae82d324SMarkus Armbruster        .help       = "remove host network device",
976ae82d324SMarkus Armbruster        .user_print = monitor_user_noop,
977ae82d324SMarkus Armbruster        .mhandler.cmd_new = do_netdev_del,
978ae82d324SMarkus Armbruster    },
979ae82d324SMarkus Armbruster
980ae82d324SMarkus ArmbrusterSTEXI
981ae82d324SMarkus Armbruster@item netdev_del
982ae82d324SMarkus Armbruster@findex netdev_del
983ae82d324SMarkus ArmbrusterRemove host network device.
984ae82d324SMarkus ArmbrusterETEXI
985ae82d324SMarkus Armbruster
9862313086aSBlue Swirl#ifdef CONFIG_SLIRP
987d7f9b689SLuiz Capitulino    {
988d7f9b689SLuiz Capitulino        .name       = "hostfwd_add",
989d7f9b689SLuiz Capitulino        .args_type  = "arg1:s,arg2:s?,arg3:s?",
990d7f9b689SLuiz Capitulino        .params     = "[vlan_id name] [tcp|udp]:[hostaddr]:hostport-[guestaddr]:guestport",
991d7f9b689SLuiz Capitulino        .help       = "redirect TCP or UDP connections from host to guest (requires -net user)",
992af4ce882SLuiz Capitulino        .mhandler.cmd = net_slirp_hostfwd_add,
993d7f9b689SLuiz Capitulino    },
99421413d68SMarkus Armbruster#endif
99521413d68SMarkus ArmbrusterSTEXI
99621413d68SMarkus Armbruster@item hostfwd_add
99721413d68SMarkus Armbruster@findex hostfwd_add
99821413d68SMarkus ArmbrusterRedirect TCP or UDP connections from host to guest (requires -net user).
99921413d68SMarkus ArmbrusterETEXI
1000d7f9b689SLuiz Capitulino
100121413d68SMarkus Armbruster#ifdef CONFIG_SLIRP
1002d7f9b689SLuiz Capitulino    {
1003d7f9b689SLuiz Capitulino        .name       = "hostfwd_remove",
1004d7f9b689SLuiz Capitulino        .args_type  = "arg1:s,arg2:s?,arg3:s?",
1005d7f9b689SLuiz Capitulino        .params     = "[vlan_id name] [tcp|udp]:[hostaddr]:hostport",
1006d7f9b689SLuiz Capitulino        .help       = "remove host-to-guest TCP or UDP redirection",
1007af4ce882SLuiz Capitulino        .mhandler.cmd = net_slirp_hostfwd_remove,
1008d7f9b689SLuiz Capitulino    },
1009d7f9b689SLuiz Capitulino
10102313086aSBlue Swirl#endif
10112313086aSBlue SwirlSTEXI
101221413d68SMarkus Armbruster@item hostfwd_remove
101321413d68SMarkus Armbruster@findex hostfwd_remove
101421413d68SMarkus ArmbrusterRemove host-to-guest TCP or UDP redirection.
10152313086aSBlue SwirlETEXI
10162313086aSBlue Swirl
1017d7f9b689SLuiz Capitulino    {
1018d7f9b689SLuiz Capitulino        .name       = "balloon",
10193b0bd6ecSLuiz Capitulino        .args_type  = "value:M",
1020d7f9b689SLuiz Capitulino        .params     = "target",
10213c05613aSRiccardo Magliocchetti        .help       = "request VM to change its memory allocation (in MB)",
1022d72f3264SLuiz Capitulino        .mhandler.cmd = hmp_balloon,
1023d7f9b689SLuiz Capitulino    },
1024d7f9b689SLuiz Capitulino
10252313086aSBlue SwirlSTEXI
10262313086aSBlue Swirl@item balloon @var{value}
102770fcbbe7SStefan Weil@findex balloon
10282313086aSBlue SwirlRequest VM to change its memory allocation to @var{value} (in MB).
10292313086aSBlue SwirlETEXI
10302313086aSBlue Swirl
1031d7f9b689SLuiz Capitulino    {
1032d7f9b689SLuiz Capitulino        .name       = "set_link",
1033c9b26a4cSMarkus Armbruster        .args_type  = "name:s,up:b",
1034c9b26a4cSMarkus Armbruster        .params     = "name on|off",
1035d7f9b689SLuiz Capitulino        .help       = "change the link status of a network adapter",
10364b37156cSLuiz Capitulino        .mhandler.cmd = hmp_set_link,
1037d7f9b689SLuiz Capitulino    },
1038d7f9b689SLuiz Capitulino
10392313086aSBlue SwirlSTEXI
1040c9b26a4cSMarkus Armbruster@item set_link @var{name} [on|off]
104170fcbbe7SStefan Weil@findex set_link
1042c9b26a4cSMarkus ArmbrusterSwitch link @var{name} on (i.e. up) or off (i.e. down).
10432313086aSBlue SwirlETEXI
10442313086aSBlue Swirl
1045d7f9b689SLuiz Capitulino    {
1046d7f9b689SLuiz Capitulino        .name       = "watchdog_action",
1047d7f9b689SLuiz Capitulino        .args_type  = "action:s",
1048d7f9b689SLuiz Capitulino        .params     = "[reset|shutdown|poweroff|pause|debug|none]",
1049d7f9b689SLuiz Capitulino        .help       = "change watchdog action",
1050af4ce882SLuiz Capitulino        .mhandler.cmd = do_watchdog_action,
1051d7f9b689SLuiz Capitulino    },
1052d7f9b689SLuiz Capitulino
10532313086aSBlue SwirlSTEXI
10542313086aSBlue Swirl@item watchdog_action
105570fcbbe7SStefan Weil@findex watchdog_action
10562313086aSBlue SwirlChange watchdog action.
10572313086aSBlue SwirlETEXI
10582313086aSBlue Swirl
1059d7f9b689SLuiz Capitulino    {
1060d7f9b689SLuiz Capitulino        .name       = "acl_show",
1061d7f9b689SLuiz Capitulino        .args_type  = "aclname:s",
1062d7f9b689SLuiz Capitulino        .params     = "aclname",
1063d7f9b689SLuiz Capitulino        .help       = "list rules in the access control list",
1064af4ce882SLuiz Capitulino        .mhandler.cmd = do_acl_show,
1065d7f9b689SLuiz Capitulino    },
1066d7f9b689SLuiz Capitulino
10672313086aSBlue SwirlSTEXI
106815dfcd45SJan Kiszka@item acl_show @var{aclname}
106970fcbbe7SStefan Weil@findex acl_show
107015dfcd45SJan KiszkaList all the matching rules in the access control list, and the default
107115dfcd45SJan Kiszkapolicy. There are currently two named access control lists,
107215dfcd45SJan Kiszka@var{vnc.x509dname} and @var{vnc.username} matching on the x509 client
107315dfcd45SJan Kiszkacertificate distinguished name, and SASL username respectively.
107415dfcd45SJan KiszkaETEXI
10752313086aSBlue Swirl
1076d7f9b689SLuiz Capitulino    {
1077d7f9b689SLuiz Capitulino        .name       = "acl_policy",
1078d7f9b689SLuiz Capitulino        .args_type  = "aclname:s,policy:s",
1079d7f9b689SLuiz Capitulino        .params     = "aclname allow|deny",
1080d7f9b689SLuiz Capitulino        .help       = "set default access control list policy",
1081af4ce882SLuiz Capitulino        .mhandler.cmd = do_acl_policy,
1082d7f9b689SLuiz Capitulino    },
1083d7f9b689SLuiz Capitulino
108415dfcd45SJan KiszkaSTEXI
1085cbbfacc6SJan Kiszka@item acl_policy @var{aclname} @code{allow|deny}
108670fcbbe7SStefan Weil@findex acl_policy
108715dfcd45SJan KiszkaSet the default access control list policy, used in the event that
10882313086aSBlue Swirlnone of the explicit rules match. The default policy at startup is
108915dfcd45SJan Kiszkaalways @code{deny}.
109015dfcd45SJan KiszkaETEXI
109115dfcd45SJan Kiszka
1092d7f9b689SLuiz Capitulino    {
1093d7f9b689SLuiz Capitulino        .name       = "acl_add",
1094d7f9b689SLuiz Capitulino        .args_type  = "aclname:s,match:s,policy:s,index:i?",
1095d7f9b689SLuiz Capitulino        .params     = "aclname match allow|deny [index]",
1096d7f9b689SLuiz Capitulino        .help       = "add a match rule to the access control list",
1097af4ce882SLuiz Capitulino        .mhandler.cmd = do_acl_add,
1098d7f9b689SLuiz Capitulino    },
1099d7f9b689SLuiz Capitulino
110015dfcd45SJan KiszkaSTEXI
11010e4aec98SMarkus Armbruster@item acl_add @var{aclname} @var{match} @code{allow|deny} [@var{index}]
11020e4aec98SMarkus Armbruster@findex acl_add
110315dfcd45SJan KiszkaAdd a match rule to the access control list, allowing or denying access.
110415dfcd45SJan KiszkaThe match will normally be an exact username or x509 distinguished name,
110515dfcd45SJan Kiszkabut can optionally include wildcard globs. eg @code{*@@EXAMPLE.COM} to
110615dfcd45SJan Kiszkaallow all users in the @code{EXAMPLE.COM} kerberos realm. The match will
11072313086aSBlue Swirlnormally be appended to the end of the ACL, but can be inserted
110815dfcd45SJan Kiszkaearlier in the list if the optional @var{index} parameter is supplied.
110915dfcd45SJan KiszkaETEXI
111015dfcd45SJan Kiszka
1111d7f9b689SLuiz Capitulino    {
1112d7f9b689SLuiz Capitulino        .name       = "acl_remove",
1113d7f9b689SLuiz Capitulino        .args_type  = "aclname:s,match:s",
1114d7f9b689SLuiz Capitulino        .params     = "aclname match",
1115d7f9b689SLuiz Capitulino        .help       = "remove a match rule from the access control list",
1116af4ce882SLuiz Capitulino        .mhandler.cmd = do_acl_remove,
1117d7f9b689SLuiz Capitulino    },
1118d7f9b689SLuiz Capitulino
111915dfcd45SJan KiszkaSTEXI
112015dfcd45SJan Kiszka@item acl_remove @var{aclname} @var{match}
112170fcbbe7SStefan Weil@findex acl_remove
112215dfcd45SJan KiszkaRemove the specified match rule from the access control list.
112315dfcd45SJan KiszkaETEXI
112415dfcd45SJan Kiszka
1125d7f9b689SLuiz Capitulino    {
1126d7f9b689SLuiz Capitulino        .name       = "acl_reset",
1127d7f9b689SLuiz Capitulino        .args_type  = "aclname:s",
1128d7f9b689SLuiz Capitulino        .params     = "aclname",
1129d7f9b689SLuiz Capitulino        .help       = "reset the access control list",
1130af4ce882SLuiz Capitulino        .mhandler.cmd = do_acl_reset,
1131d7f9b689SLuiz Capitulino    },
1132d7f9b689SLuiz Capitulino
113315dfcd45SJan KiszkaSTEXI
11340e4aec98SMarkus Armbruster@item acl_reset @var{aclname}
11350e4aec98SMarkus Armbruster@findex acl_reset
113615dfcd45SJan KiszkaRemove all matches from the access control list, and set the default
11372313086aSBlue Swirlpolicy back to @code{deny}.
11382313086aSBlue SwirlETEXI
11392313086aSBlue Swirl
114079c4f6b0SHuang Ying#if defined(TARGET_I386)
1141d7f9b689SLuiz Capitulino
1142d7f9b689SLuiz Capitulino    {
1143d7f9b689SLuiz Capitulino        .name       = "mce",
114431ce5e0cSJin Dongming        .args_type  = "broadcast:-b,cpu_index:i,bank:i,status:l,mcg_status:l,addr:l,misc:l",
114531ce5e0cSJin Dongming        .params     = "[-b] cpu bank status mcgstatus addr misc",
114631ce5e0cSJin Dongming        .help       = "inject a MCE on the given CPU [and broadcast to other CPUs with -b option]",
1147af4ce882SLuiz Capitulino        .mhandler.cmd = do_inject_mce,
1148d7f9b689SLuiz Capitulino    },
1149d7f9b689SLuiz Capitulino
115079c4f6b0SHuang Ying#endif
115179c4f6b0SHuang YingSTEXI
115279c4f6b0SHuang Ying@item mce @var{cpu} @var{bank} @var{status} @var{mcgstatus} @var{addr} @var{misc}
115370fcbbe7SStefan Weil@findex mce (x86)
115479c4f6b0SHuang YingInject an MCE on the given CPU (x86 only).
115579c4f6b0SHuang YingETEXI
115679c4f6b0SHuang Ying
1157d7f9b689SLuiz Capitulino    {
1158d7f9b689SLuiz Capitulino        .name       = "getfd",
1159d7f9b689SLuiz Capitulino        .args_type  = "fdname:s",
1160d7f9b689SLuiz Capitulino        .params     = "getfd name",
1161d7f9b689SLuiz Capitulino        .help       = "receive a file descriptor via SCM rights and assign it a name",
1162f0d6000aSLuiz Capitulino        .user_print = monitor_user_noop,
1163261394dbSLuiz Capitulino        .mhandler.cmd_new = do_getfd,
1164d7f9b689SLuiz Capitulino    },
1165d7f9b689SLuiz Capitulino
1166f07918fdSMark McLoughlinSTEXI
1167f07918fdSMark McLoughlin@item getfd @var{fdname}
116870fcbbe7SStefan Weil@findex getfd
1169f07918fdSMark McLoughlinIf a file descriptor is passed alongside this command using the SCM_RIGHTS
1170f07918fdSMark McLoughlinmechanism on unix sockets, it is stored using the name @var{fdname} for
1171f07918fdSMark McLoughlinlater use by other monitor commands.
1172f07918fdSMark McLoughlinETEXI
1173f07918fdSMark McLoughlin
1174d7f9b689SLuiz Capitulino    {
1175d7f9b689SLuiz Capitulino        .name       = "closefd",
1176d7f9b689SLuiz Capitulino        .args_type  = "fdname:s",
1177d7f9b689SLuiz Capitulino        .params     = "closefd name",
1178d7f9b689SLuiz Capitulino        .help       = "close a file descriptor previously passed via SCM rights",
117918f3a515SLuiz Capitulino        .user_print = monitor_user_noop,
1180261394dbSLuiz Capitulino        .mhandler.cmd_new = do_closefd,
1181d7f9b689SLuiz Capitulino    },
1182d7f9b689SLuiz Capitulino
1183f07918fdSMark McLoughlinSTEXI
1184f07918fdSMark McLoughlin@item closefd @var{fdname}
118570fcbbe7SStefan Weil@findex closefd
1186f07918fdSMark McLoughlinClose the file descriptor previously assigned to @var{fdname} using the
1187f07918fdSMark McLoughlin@code{getfd} command. This is only needed if the file descriptor was never
1188f07918fdSMark McLoughlinused by another monitor command.
1189f07918fdSMark McLoughlinETEXI
1190f07918fdSMark McLoughlin
1191a3a55a2eSLuiz Capitulino    {
1192a3a55a2eSLuiz Capitulino        .name       = "block_passwd",
1193a3a55a2eSLuiz Capitulino        .args_type  = "device:B,password:s",
1194a3a55a2eSLuiz Capitulino        .params     = "block_passwd device password",
1195a3a55a2eSLuiz Capitulino        .help       = "set the password of encrypted block devices",
1196a4dea8a9SLuiz Capitulino        .mhandler.cmd = hmp_block_passwd,
1197a3a55a2eSLuiz Capitulino    },
1198a3a55a2eSLuiz Capitulino
1199a3a55a2eSLuiz CapitulinoSTEXI
1200727f005eSZhi Yong Wu@item block_set_io_throttle @var{device} @var{bps} @var{bps_rd} @var{bps_wr} @var{iops} @var{iops_rd} @var{iops_wr}
1201727f005eSZhi Yong Wu@findex block_set_io_throttle
1202727f005eSZhi Yong WuChange I/O throttle limits for a block drive to @var{bps} @var{bps_rd} @var{bps_wr} @var{iops} @var{iops_rd} @var{iops_wr}
1203727f005eSZhi Yong WuETEXI
1204727f005eSZhi Yong Wu
1205727f005eSZhi Yong Wu    {
1206727f005eSZhi Yong Wu        .name       = "block_set_io_throttle",
1207727f005eSZhi Yong Wu        .args_type  = "device:B,bps:l,bps_rd:l,bps_wr:l,iops:l,iops_rd:l,iops_wr:l",
1208727f005eSZhi Yong Wu        .params     = "device bps bps_rd bps_wr iops iops_rd iops_wr",
1209727f005eSZhi Yong Wu        .help       = "change I/O throttle limits for a block drive",
1210727f005eSZhi Yong Wu        .user_print = monitor_user_noop,
1211727f005eSZhi Yong Wu        .mhandler.cmd_new = do_block_set_io_throttle,
1212727f005eSZhi Yong Wu    },
1213727f005eSZhi Yong Wu
1214727f005eSZhi Yong WuSTEXI
1215a3a55a2eSLuiz Capitulino@item block_passwd @var{device} @var{password}
121670fcbbe7SStefan Weil@findex block_passwd
1217a3a55a2eSLuiz CapitulinoSet the encrypted device @var{device} password to @var{password}
1218a3a55a2eSLuiz CapitulinoETEXI
1219b40292e7SJan Kiszka
122033572eceSJan Kiszka    {
12217572150cSGerd Hoffmann        .name       = "set_password",
12227572150cSGerd Hoffmann        .args_type  = "protocol:s,password:s,connected:s?",
12237572150cSGerd Hoffmann        .params     = "protocol password action-if-connected",
12247572150cSGerd Hoffmann        .help       = "set spice/vnc password",
12257572150cSGerd Hoffmann        .user_print = monitor_user_noop,
12267572150cSGerd Hoffmann        .mhandler.cmd_new = set_password,
12277572150cSGerd Hoffmann    },
12287572150cSGerd Hoffmann
12297572150cSGerd HoffmannSTEXI
12307572150cSGerd Hoffmann@item set_password [ vnc | spice ] password [ action-if-connected ]
12317572150cSGerd Hoffmann@findex set_password
12327572150cSGerd Hoffmann
12337572150cSGerd HoffmannChange spice/vnc password.  Use zero to make the password stay valid
12347572150cSGerd Hoffmannforever.  @var{action-if-connected} specifies what should happen in
12357572150cSGerd Hoffmanncase a connection is established: @var{fail} makes the password change
12367572150cSGerd Hoffmannfail.  @var{disconnect} changes the password and disconnects the
12377572150cSGerd Hoffmannclient.  @var{keep} changes the password and keeps the connection up.
12387572150cSGerd Hoffmann@var{keep} is the default.
12397572150cSGerd HoffmannETEXI
12407572150cSGerd Hoffmann
12417572150cSGerd Hoffmann    {
12427572150cSGerd Hoffmann        .name       = "expire_password",
12437572150cSGerd Hoffmann        .args_type  = "protocol:s,time:s",
12447572150cSGerd Hoffmann        .params     = "protocol time",
12457572150cSGerd Hoffmann        .help       = "set spice/vnc password expire-time",
12467572150cSGerd Hoffmann        .user_print = monitor_user_noop,
12477572150cSGerd Hoffmann        .mhandler.cmd_new = expire_password,
12487572150cSGerd Hoffmann    },
12497572150cSGerd Hoffmann
12507572150cSGerd HoffmannSTEXI
12517572150cSGerd Hoffmann@item expire_password [ vnc | spice ] expire-time
12527572150cSGerd Hoffmann@findex expire_password
12537572150cSGerd Hoffmann
12547572150cSGerd HoffmannSpecify when a password for spice/vnc becomes
12557572150cSGerd Hoffmanninvalid. @var{expire-time} accepts:
12567572150cSGerd Hoffmann
12577572150cSGerd Hoffmann@table @var
12587572150cSGerd Hoffmann@item now
12597572150cSGerd HoffmannInvalidate password instantly.
12607572150cSGerd Hoffmann
12617572150cSGerd Hoffmann@item never
12627572150cSGerd HoffmannPassword stays valid forever.
12637572150cSGerd Hoffmann
12647572150cSGerd Hoffmann@item +nsec
12657572150cSGerd HoffmannPassword stays valid for @var{nsec} seconds starting now.
12667572150cSGerd Hoffmann
12677572150cSGerd Hoffmann@item nsec
12687572150cSGerd HoffmannPassword is invalidated at the given time.  @var{nsec} are the seconds
12697572150cSGerd Hoffmannpassed since 1970, i.e. unix epoch.
12707572150cSGerd Hoffmann
12717572150cSGerd Hoffmann@end table
12727572150cSGerd HoffmannETEXI
12737572150cSGerd Hoffmann
12747572150cSGerd Hoffmann    {
127533572eceSJan Kiszka        .name       = "info",
127633572eceSJan Kiszka        .args_type  = "item:s?",
127733572eceSJan Kiszka        .params     = "[subcommand]",
127833572eceSJan Kiszka        .help       = "show various information about the system state",
12791162daa6SLuiz Capitulino        .mhandler.cmd = do_info,
128033572eceSJan Kiszka    },
128133572eceSJan Kiszka
128233572eceSJan KiszkaSTEXI
128333572eceSJan Kiszka@item info @var{subcommand}
128433572eceSJan Kiszka@findex info
128533572eceSJan KiszkaShow various information about the system state.
128633572eceSJan Kiszka
128733572eceSJan Kiszka@table @option
128833572eceSJan Kiszka@item info version
128933572eceSJan Kiszkashow the version of QEMU
129033572eceSJan Kiszka@item info network
129133572eceSJan Kiszkashow the various VLANs and the associated devices
129233572eceSJan Kiszka@item info chardev
129333572eceSJan Kiszkashow the character devices
129433572eceSJan Kiszka@item info block
129533572eceSJan Kiszkashow the block devices
129633572eceSJan Kiszka@item info blockstats
129733572eceSJan Kiszkashow block device statistics
129833572eceSJan Kiszka@item info registers
129933572eceSJan Kiszkashow the cpu registers
130033572eceSJan Kiszka@item info cpus
130133572eceSJan Kiszkashow infos for each CPU
130233572eceSJan Kiszka@item info history
130333572eceSJan Kiszkashow the command line history
130433572eceSJan Kiszka@item info irq
130533572eceSJan Kiszkashow the interrupts statistics (if available)
130633572eceSJan Kiszka@item info pic
130733572eceSJan Kiszkashow i8259 (PIC) state
130833572eceSJan Kiszka@item info pci
130933572eceSJan Kiszkashow emulated PCI device info
131033572eceSJan Kiszka@item info tlb
1311bebabbc7SScott Woodshow virtual to physical memory mappings (i386, SH4, SPARC, and PPC only)
131233572eceSJan Kiszka@item info mem
131333572eceSJan Kiszkashow the active virtual memory mappings (i386 only)
131433572eceSJan Kiszka@item info jit
131533572eceSJan Kiszkashow dynamic compiler info
131633572eceSJan Kiszka@item info numa
131733572eceSJan Kiszkashow NUMA information
1318b40292e7SJan Kiszka@item info kvm
1319b40292e7SJan Kiszkashow KVM information
132033572eceSJan Kiszka@item info usb
132133572eceSJan Kiszkashow USB devices plugged on the virtual USB hub
132233572eceSJan Kiszka@item info usbhost
132333572eceSJan Kiszkashow all USB host devices
132433572eceSJan Kiszka@item info profile
132533572eceSJan Kiszkashow profiling information
132633572eceSJan Kiszka@item info capture
132733572eceSJan Kiszkashow information about active capturing
132833572eceSJan Kiszka@item info snapshots
132933572eceSJan Kiszkashow list of VM snapshots
133033572eceSJan Kiszka@item info status
133133572eceSJan Kiszkashow the current VM status (running|paused)
133233572eceSJan Kiszka@item info pcmcia
133333572eceSJan Kiszkashow guest PCMCIA status
133433572eceSJan Kiszka@item info mice
133533572eceSJan Kiszkashow which guest mouse is receiving events
133633572eceSJan Kiszka@item info vnc
133733572eceSJan Kiszkashow the vnc server status
133833572eceSJan Kiszka@item info name
133933572eceSJan Kiszkashow the current VM name
134033572eceSJan Kiszka@item info uuid
134133572eceSJan Kiszkashow the current VM UUID
134233572eceSJan Kiszka@item info cpustats
134333572eceSJan Kiszkashow CPU statistics
134433572eceSJan Kiszka@item info usernet
134533572eceSJan Kiszkashow user network stack connection states
134633572eceSJan Kiszka@item info migrate
134733572eceSJan Kiszkashow migration status
134833572eceSJan Kiszka@item info balloon
134933572eceSJan Kiszkashow balloon information
135033572eceSJan Kiszka@item info qtree
135133572eceSJan Kiszkashow device tree
135233572eceSJan Kiszka@item info qdm
135333572eceSJan Kiszkashow qdev device model list
135433572eceSJan Kiszka@item info roms
135533572eceSJan Kiszkashow roms
135633572eceSJan Kiszka@end table
135733572eceSJan KiszkaETEXI
135833572eceSJan Kiszka
13596d8a764eSLluís#ifdef CONFIG_TRACE_SIMPLE
136022890ab5SPrerna SaxenaSTEXI
136122890ab5SPrerna Saxena@item info trace
136222890ab5SPrerna Saxenashow contents of trace buffer
136331965ae2SLluísETEXI
136431965ae2SLluís#endif
136531965ae2SLluís
136631965ae2SLluísSTEXI
136722890ab5SPrerna Saxena@item info trace-events
136822890ab5SPrerna Saxenashow available trace events and their state
136922890ab5SPrerna SaxenaETEXI
137022890ab5SPrerna Saxena
13712313086aSBlue SwirlSTEXI
13722313086aSBlue Swirl@end table
13732313086aSBlue SwirlETEXI
1374