xref: /qemu/hmp-commands.hx (revision 370521a1d6f5537ea7271c119f3fbb7b0fa57063)
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
7212bd451fSStefan Hajnoczi    {
7312bd451fSStefan Hajnoczi        .name       = "block_stream",
7412bd451fSStefan Hajnoczi        .args_type  = "device:B,base:s?",
7512bd451fSStefan Hajnoczi        .params     = "device [base]",
7612bd451fSStefan Hajnoczi        .help       = "copy data from a backing file into a block device",
7712bd451fSStefan Hajnoczi        .mhandler.cmd = hmp_block_stream,
7812bd451fSStefan Hajnoczi    },
7912bd451fSStefan Hajnoczi
8012bd451fSStefan HajnocziSTEXI
8112bd451fSStefan Hajnoczi@item block_stream
8212bd451fSStefan Hajnoczi@findex block_stream
8312bd451fSStefan HajnocziCopy data from a backing file into a block device.
8412bd451fSStefan HajnocziETEXI
856d4a2b3aSChristoph Hellwig
866d4a2b3aSChristoph Hellwig    {
872d47c6e9SStefan Hajnoczi        .name       = "block_job_set_speed",
882d47c6e9SStefan Hajnoczi        .args_type  = "device:B,value:o",
892d47c6e9SStefan Hajnoczi        .params     = "device value",
902d47c6e9SStefan Hajnoczi        .help       = "set maximum speed for a background block operation",
912d47c6e9SStefan Hajnoczi        .mhandler.cmd = hmp_block_job_set_speed,
922d47c6e9SStefan Hajnoczi    },
932d47c6e9SStefan Hajnoczi
942d47c6e9SStefan HajnocziSTEXI
952d47c6e9SStefan Hajnoczi@item block_job_set_stream
962d47c6e9SStefan Hajnoczi@findex block_job_set_stream
972d47c6e9SStefan HajnocziSet maximum speed for a background block operation.
982d47c6e9SStefan HajnocziETEXI
992d47c6e9SStefan Hajnoczi
1002d47c6e9SStefan Hajnoczi    {
101*370521a1SStefan Hajnoczi        .name       = "block_job_cancel",
102*370521a1SStefan Hajnoczi        .args_type  = "device:B",
103*370521a1SStefan Hajnoczi        .params     = "device",
104*370521a1SStefan Hajnoczi        .help       = "stop an active block streaming operation",
105*370521a1SStefan Hajnoczi        .mhandler.cmd = hmp_block_job_cancel,
106*370521a1SStefan Hajnoczi    },
107*370521a1SStefan Hajnoczi
108*370521a1SStefan HajnocziSTEXI
109*370521a1SStefan Hajnoczi@item block_job_cancel
110*370521a1SStefan Hajnoczi@findex block_job_cancel
111*370521a1SStefan HajnocziStop an active block streaming operation.
112*370521a1SStefan HajnocziETEXI
113*370521a1SStefan Hajnoczi
114*370521a1SStefan Hajnoczi    {
115d7f9b689SLuiz Capitulino        .name       = "eject",
11678d714e0SLuiz Capitulino        .args_type  = "force:-f,device:B",
117d7f9b689SLuiz Capitulino        .params     = "[-f] device",
118d7f9b689SLuiz Capitulino        .help       = "eject a removable medium (use -f to force it)",
119c245b6a3SLuiz Capitulino        .mhandler.cmd = hmp_eject,
120d7f9b689SLuiz Capitulino    },
121d7f9b689SLuiz Capitulino
1222313086aSBlue SwirlSTEXI
1232313086aSBlue Swirl@item eject [-f] @var{device}
12470fcbbe7SStefan Weil@findex eject
1252313086aSBlue SwirlEject a removable medium (use -f to force it).
1262313086aSBlue SwirlETEXI
1272313086aSBlue Swirl
128d7f9b689SLuiz Capitulino    {
1299063f814SRyan Harper        .name       = "drive_del",
1309063f814SRyan Harper        .args_type  = "id:s",
1319063f814SRyan Harper        .params     = "device",
1329063f814SRyan Harper        .help       = "remove host block device",
1339063f814SRyan Harper        .user_print = monitor_user_noop,
1349063f814SRyan Harper        .mhandler.cmd_new = do_drive_del,
1359063f814SRyan Harper    },
1369063f814SRyan Harper
1379063f814SRyan HarperSTEXI
1389063f814SRyan Harper@item drive_del @var{device}
1399063f814SRyan Harper@findex drive_del
1409063f814SRyan HarperRemove host block device.  The result is that guest generated IO is no longer
1419063f814SRyan Harpersubmitted against the host device underlying the disk.  Once a drive has
1429063f814SRyan Harperbeen deleted, the QEMU Block layer returns -EIO which results in IO
1439063f814SRyan Harpererrors in the guest for applications that are reading/writing to the device.
1449063f814SRyan HarperETEXI
1459063f814SRyan Harper
1469063f814SRyan Harper    {
147d7f9b689SLuiz Capitulino        .name       = "change",
148d7f9b689SLuiz Capitulino        .args_type  = "device:B,target:F,arg:s?",
149d7f9b689SLuiz Capitulino        .params     = "device filename [format]",
150d7f9b689SLuiz Capitulino        .help       = "change a removable medium, optional format",
151333a96ecSLuiz Capitulino        .mhandler.cmd = hmp_change,
152d7f9b689SLuiz Capitulino    },
153d7f9b689SLuiz Capitulino
1542313086aSBlue SwirlSTEXI
1552313086aSBlue Swirl@item change @var{device} @var{setting}
15670fcbbe7SStefan Weil@findex change
1572313086aSBlue Swirl
1582313086aSBlue SwirlChange the configuration of a device.
1592313086aSBlue Swirl
1602313086aSBlue Swirl@table @option
1612313086aSBlue Swirl@item change @var{diskdevice} @var{filename} [@var{format}]
1622313086aSBlue SwirlChange the medium for a removable disk device to point to @var{filename}. eg
1632313086aSBlue Swirl
1642313086aSBlue Swirl@example
1652313086aSBlue Swirl(qemu) change ide1-cd0 /path/to/some.iso
1662313086aSBlue Swirl@end example
1672313086aSBlue Swirl
1682313086aSBlue Swirl@var{format} is optional.
1692313086aSBlue Swirl
1702313086aSBlue Swirl@item change vnc @var{display},@var{options}
1712313086aSBlue SwirlChange the configuration of the VNC server. The valid syntax for @var{display}
1722313086aSBlue Swirland @var{options} are described at @ref{sec_invocation}. eg
1732313086aSBlue Swirl
1742313086aSBlue Swirl@example
1752313086aSBlue Swirl(qemu) change vnc localhost:1
1762313086aSBlue Swirl@end example
1772313086aSBlue Swirl
1782313086aSBlue Swirl@item change vnc password [@var{password}]
1792313086aSBlue Swirl
1802313086aSBlue SwirlChange the password associated with the VNC server. If the new password is not
1812313086aSBlue Swirlsupplied, the monitor will prompt for it to be entered. VNC passwords are only
1822313086aSBlue Swirlsignificant up to 8 letters. eg
1832313086aSBlue Swirl
1842313086aSBlue Swirl@example
1852313086aSBlue Swirl(qemu) change vnc password
1862313086aSBlue SwirlPassword: ********
1872313086aSBlue Swirl@end example
1882313086aSBlue Swirl
1892313086aSBlue Swirl@end table
1902313086aSBlue SwirlETEXI
1912313086aSBlue Swirl
192d7f9b689SLuiz Capitulino    {
193d7f9b689SLuiz Capitulino        .name       = "screendump",
194d7f9b689SLuiz Capitulino        .args_type  = "filename:F",
195d7f9b689SLuiz Capitulino        .params     = "filename",
196d7f9b689SLuiz Capitulino        .help       = "save screen into PPM image 'filename'",
197f1dc58e0SLuiz Capitulino        .user_print = monitor_user_noop,
198f1dc58e0SLuiz Capitulino        .mhandler.cmd_new = do_screen_dump,
199d7f9b689SLuiz Capitulino    },
200d7f9b689SLuiz Capitulino
2012313086aSBlue SwirlSTEXI
2022313086aSBlue Swirl@item screendump @var{filename}
20370fcbbe7SStefan Weil@findex screendump
2042313086aSBlue SwirlSave screen into PPM image @var{filename}.
2052313086aSBlue SwirlETEXI
2062313086aSBlue Swirl
207d7f9b689SLuiz Capitulino    {
208d7f9b689SLuiz Capitulino        .name       = "logfile",
209d7f9b689SLuiz Capitulino        .args_type  = "filename:F",
210d7f9b689SLuiz Capitulino        .params     = "filename",
211d7f9b689SLuiz Capitulino        .help       = "output logs to 'filename'",
212af4ce882SLuiz Capitulino        .mhandler.cmd = do_logfile,
213d7f9b689SLuiz Capitulino    },
214d7f9b689SLuiz Capitulino
2152313086aSBlue SwirlSTEXI
2162313086aSBlue Swirl@item logfile @var{filename}
21770fcbbe7SStefan Weil@findex logfile
2182313086aSBlue SwirlOutput logs to @var{filename}.
2192313086aSBlue SwirlETEXI
2202313086aSBlue Swirl
22122890ab5SPrerna Saxena    {
22222890ab5SPrerna Saxena        .name       = "trace-event",
22322890ab5SPrerna Saxena        .args_type  = "name:s,option:b",
22422890ab5SPrerna Saxena        .params     = "name on|off",
22522890ab5SPrerna Saxena        .help       = "changes status of a specific trace event",
226fc764105SLluís        .mhandler.cmd = do_trace_event_set_state,
22722890ab5SPrerna Saxena    },
22822890ab5SPrerna Saxena
22922890ab5SPrerna SaxenaSTEXI
23022890ab5SPrerna Saxena@item trace-event
23122890ab5SPrerna Saxena@findex trace-event
23222890ab5SPrerna Saxenachanges status of a trace event
23322890ab5SPrerna SaxenaETEXI
234c5ceb523SStefan Hajnoczi
235c45a8168SMichael Roth#if defined(CONFIG_TRACE_SIMPLE)
236c5ceb523SStefan Hajnoczi    {
237c5ceb523SStefan Hajnoczi        .name       = "trace-file",
238c5ceb523SStefan Hajnoczi        .args_type  = "op:s?,arg:F?",
239c5ceb523SStefan Hajnoczi        .params     = "on|off|flush|set [arg]",
240c5ceb523SStefan Hajnoczi        .help       = "open, close, or flush trace file, or set a new file name",
241c5ceb523SStefan Hajnoczi        .mhandler.cmd = do_trace_file,
242c5ceb523SStefan Hajnoczi    },
243c5ceb523SStefan Hajnoczi
244c5ceb523SStefan HajnocziSTEXI
245c5ceb523SStefan Hajnoczi@item trace-file on|off|flush
246c5ceb523SStefan Hajnoczi@findex trace-file
247c5ceb523SStefan HajnocziOpen, close, or flush the trace file.  If no argument is given, the status of the trace file is displayed.
248c5ceb523SStefan HajnocziETEXI
24922890ab5SPrerna Saxena#endif
25022890ab5SPrerna Saxena
251d7f9b689SLuiz Capitulino    {
252d7f9b689SLuiz Capitulino        .name       = "log",
253d7f9b689SLuiz Capitulino        .args_type  = "items:s",
254d7f9b689SLuiz Capitulino        .params     = "item1[,...]",
255d7f9b689SLuiz Capitulino        .help       = "activate logging of the specified items to '/tmp/qemu.log'",
256af4ce882SLuiz Capitulino        .mhandler.cmd = do_log,
257d7f9b689SLuiz Capitulino    },
258d7f9b689SLuiz Capitulino
2592313086aSBlue SwirlSTEXI
2602313086aSBlue Swirl@item log @var{item1}[,...]
26170fcbbe7SStefan Weil@findex log
2622313086aSBlue SwirlActivate logging of the specified items to @file{/tmp/qemu.log}.
2632313086aSBlue SwirlETEXI
2642313086aSBlue Swirl
265d7f9b689SLuiz Capitulino    {
266d7f9b689SLuiz Capitulino        .name       = "savevm",
267d7f9b689SLuiz Capitulino        .args_type  = "name:s?",
268d7f9b689SLuiz Capitulino        .params     = "[tag|id]",
269d7f9b689SLuiz Capitulino        .help       = "save a VM snapshot. If no tag or id are provided, a new snapshot is created",
270af4ce882SLuiz Capitulino        .mhandler.cmd = do_savevm,
271d7f9b689SLuiz Capitulino    },
272d7f9b689SLuiz Capitulino
2732313086aSBlue SwirlSTEXI
2742313086aSBlue Swirl@item savevm [@var{tag}|@var{id}]
27570fcbbe7SStefan Weil@findex savevm
2762313086aSBlue SwirlCreate a snapshot of the whole virtual machine. If @var{tag} is
2772313086aSBlue Swirlprovided, it is used as human readable identifier. If there is already
2782313086aSBlue Swirla snapshot with the same tag or ID, it is replaced. More info at
2792313086aSBlue Swirl@ref{vm_snapshots}.
2802313086aSBlue SwirlETEXI
2812313086aSBlue Swirl
282d7f9b689SLuiz Capitulino    {
283d7f9b689SLuiz Capitulino        .name       = "loadvm",
284d7f9b689SLuiz Capitulino        .args_type  = "name:s",
285d7f9b689SLuiz Capitulino        .params     = "tag|id",
286d7f9b689SLuiz Capitulino        .help       = "restore a VM snapshot from its tag or id",
287af4ce882SLuiz Capitulino        .mhandler.cmd = do_loadvm,
288d7f9b689SLuiz Capitulino    },
289d7f9b689SLuiz Capitulino
2902313086aSBlue SwirlSTEXI
2912313086aSBlue Swirl@item loadvm @var{tag}|@var{id}
29270fcbbe7SStefan Weil@findex loadvm
2932313086aSBlue SwirlSet the whole virtual machine to the snapshot identified by the tag
2942313086aSBlue Swirl@var{tag} or the unique snapshot ID @var{id}.
2952313086aSBlue SwirlETEXI
2962313086aSBlue Swirl
297d7f9b689SLuiz Capitulino    {
298d7f9b689SLuiz Capitulino        .name       = "delvm",
299d7f9b689SLuiz Capitulino        .args_type  = "name:s",
300d7f9b689SLuiz Capitulino        .params     = "tag|id",
301d7f9b689SLuiz Capitulino        .help       = "delete a VM snapshot from its tag or id",
302af4ce882SLuiz Capitulino        .mhandler.cmd = do_delvm,
303d7f9b689SLuiz Capitulino    },
304d7f9b689SLuiz Capitulino
3052313086aSBlue SwirlSTEXI
3062313086aSBlue Swirl@item delvm @var{tag}|@var{id}
30770fcbbe7SStefan Weil@findex delvm
3082313086aSBlue SwirlDelete the snapshot identified by @var{tag} or @var{id}.
3092313086aSBlue SwirlETEXI
3102313086aSBlue Swirl
311d7f9b689SLuiz Capitulino    {
312d7f9b689SLuiz Capitulino        .name       = "singlestep",
313d7f9b689SLuiz Capitulino        .args_type  = "option:s?",
314d7f9b689SLuiz Capitulino        .params     = "[on|off]",
315d7f9b689SLuiz Capitulino        .help       = "run emulation in singlestep mode or switch to normal mode",
316af4ce882SLuiz Capitulino        .mhandler.cmd = do_singlestep,
317d7f9b689SLuiz Capitulino    },
318d7f9b689SLuiz Capitulino
3192313086aSBlue SwirlSTEXI
3202313086aSBlue Swirl@item singlestep [off]
32170fcbbe7SStefan Weil@findex singlestep
3222313086aSBlue SwirlRun the emulation in single step mode.
3232313086aSBlue SwirlIf called with option off, the emulation returns to normal mode.
3242313086aSBlue SwirlETEXI
3252313086aSBlue Swirl
326d7f9b689SLuiz Capitulino    {
327d7f9b689SLuiz Capitulino        .name       = "stop",
328d7f9b689SLuiz Capitulino        .args_type  = "",
329d7f9b689SLuiz Capitulino        .params     = "",
330d7f9b689SLuiz Capitulino        .help       = "stop emulation",
3315f158f21SLuiz Capitulino        .mhandler.cmd = hmp_stop,
332d7f9b689SLuiz Capitulino    },
333d7f9b689SLuiz Capitulino
3342313086aSBlue SwirlSTEXI
3352313086aSBlue Swirl@item stop
33670fcbbe7SStefan Weil@findex stop
3372313086aSBlue SwirlStop emulation.
3382313086aSBlue SwirlETEXI
3392313086aSBlue Swirl
340d7f9b689SLuiz Capitulino    {
341d7f9b689SLuiz Capitulino        .name       = "c|cont",
342d7f9b689SLuiz Capitulino        .args_type  = "",
343d7f9b689SLuiz Capitulino        .params     = "",
344d7f9b689SLuiz Capitulino        .help       = "resume emulation",
345e42e818bSLuiz Capitulino        .mhandler.cmd = hmp_cont,
346d7f9b689SLuiz Capitulino    },
347d7f9b689SLuiz Capitulino
3482313086aSBlue SwirlSTEXI
3492313086aSBlue Swirl@item c or cont
35070fcbbe7SStefan Weil@findex cont
3512313086aSBlue SwirlResume emulation.
3522313086aSBlue SwirlETEXI
3532313086aSBlue Swirl
354d7f9b689SLuiz Capitulino    {
355d7f9b689SLuiz Capitulino        .name       = "gdbserver",
356d7f9b689SLuiz Capitulino        .args_type  = "device:s?",
357d7f9b689SLuiz Capitulino        .params     = "[device]",
358d7f9b689SLuiz Capitulino        .help       = "start gdbserver on given device (default 'tcp::1234'), stop with 'none'",
359af4ce882SLuiz Capitulino        .mhandler.cmd = do_gdbserver,
360d7f9b689SLuiz Capitulino    },
361d7f9b689SLuiz Capitulino
3622313086aSBlue SwirlSTEXI
3632313086aSBlue Swirl@item gdbserver [@var{port}]
36470fcbbe7SStefan Weil@findex gdbserver
3652313086aSBlue SwirlStart gdbserver session (default @var{port}=1234)
3662313086aSBlue SwirlETEXI
3672313086aSBlue Swirl
368d7f9b689SLuiz Capitulino    {
369d7f9b689SLuiz Capitulino        .name       = "x",
370d7f9b689SLuiz Capitulino        .args_type  = "fmt:/,addr:l",
371d7f9b689SLuiz Capitulino        .params     = "/fmt addr",
372d7f9b689SLuiz Capitulino        .help       = "virtual memory dump starting at 'addr'",
373af4ce882SLuiz Capitulino        .mhandler.cmd = do_memory_dump,
374d7f9b689SLuiz Capitulino    },
375d7f9b689SLuiz Capitulino
3762313086aSBlue SwirlSTEXI
3772313086aSBlue Swirl@item x/fmt @var{addr}
37870fcbbe7SStefan Weil@findex x
3792313086aSBlue SwirlVirtual memory dump starting at @var{addr}.
3802313086aSBlue SwirlETEXI
3812313086aSBlue Swirl
382d7f9b689SLuiz Capitulino    {
383d7f9b689SLuiz Capitulino        .name       = "xp",
384d7f9b689SLuiz Capitulino        .args_type  = "fmt:/,addr:l",
385d7f9b689SLuiz Capitulino        .params     = "/fmt addr",
386d7f9b689SLuiz Capitulino        .help       = "physical memory dump starting at 'addr'",
387af4ce882SLuiz Capitulino        .mhandler.cmd = do_physical_memory_dump,
388d7f9b689SLuiz Capitulino    },
389d7f9b689SLuiz Capitulino
3902313086aSBlue SwirlSTEXI
3912313086aSBlue Swirl@item xp /@var{fmt} @var{addr}
39270fcbbe7SStefan Weil@findex xp
3932313086aSBlue SwirlPhysical memory dump starting at @var{addr}.
3942313086aSBlue Swirl
3952313086aSBlue Swirl@var{fmt} is a format which tells the command how to format the
3962313086aSBlue Swirldata. Its syntax is: @option{/@{count@}@{format@}@{size@}}
3972313086aSBlue Swirl
3982313086aSBlue Swirl@table @var
3992313086aSBlue Swirl@item count
4002313086aSBlue Swirlis the number of items to be dumped.
4012313086aSBlue Swirl
4022313086aSBlue Swirl@item format
4032313086aSBlue Swirlcan be x (hex), d (signed decimal), u (unsigned decimal), o (octal),
4042313086aSBlue Swirlc (char) or i (asm instruction).
4052313086aSBlue Swirl
4062313086aSBlue Swirl@item size
4072313086aSBlue Swirlcan be b (8 bits), h (16 bits), w (32 bits) or g (64 bits). On x86,
4082313086aSBlue Swirl@code{h} or @code{w} can be specified with the @code{i} format to
4092313086aSBlue Swirlrespectively select 16 or 32 bit code instruction size.
4102313086aSBlue Swirl
4112313086aSBlue Swirl@end table
4122313086aSBlue Swirl
4132313086aSBlue SwirlExamples:
4142313086aSBlue Swirl@itemize
4152313086aSBlue Swirl@item
4162313086aSBlue SwirlDump 10 instructions at the current instruction pointer:
4172313086aSBlue Swirl@example
4182313086aSBlue Swirl(qemu) x/10i $eip
4192313086aSBlue Swirl0x90107063:  ret
4202313086aSBlue Swirl0x90107064:  sti
4212313086aSBlue Swirl0x90107065:  lea    0x0(%esi,1),%esi
4222313086aSBlue Swirl0x90107069:  lea    0x0(%edi,1),%edi
4232313086aSBlue Swirl0x90107070:  ret
4242313086aSBlue Swirl0x90107071:  jmp    0x90107080
4252313086aSBlue Swirl0x90107073:  nop
4262313086aSBlue Swirl0x90107074:  nop
4272313086aSBlue Swirl0x90107075:  nop
4282313086aSBlue Swirl0x90107076:  nop
4292313086aSBlue Swirl@end example
4302313086aSBlue Swirl
4312313086aSBlue Swirl@item
4322313086aSBlue SwirlDump 80 16 bit values at the start of the video memory.
4332313086aSBlue Swirl@smallexample
4342313086aSBlue Swirl(qemu) xp/80hx 0xb8000
4352313086aSBlue Swirl0x000b8000: 0x0b50 0x0b6c 0x0b65 0x0b78 0x0b38 0x0b36 0x0b2f 0x0b42
4362313086aSBlue Swirl0x000b8010: 0x0b6f 0x0b63 0x0b68 0x0b73 0x0b20 0x0b56 0x0b47 0x0b41
4372313086aSBlue Swirl0x000b8020: 0x0b42 0x0b69 0x0b6f 0x0b73 0x0b20 0x0b63 0x0b75 0x0b72
4382313086aSBlue Swirl0x000b8030: 0x0b72 0x0b65 0x0b6e 0x0b74 0x0b2d 0x0b63 0x0b76 0x0b73
4392313086aSBlue Swirl0x000b8040: 0x0b20 0x0b30 0x0b35 0x0b20 0x0b4e 0x0b6f 0x0b76 0x0b20
4402313086aSBlue Swirl0x000b8050: 0x0b32 0x0b30 0x0b30 0x0b33 0x0720 0x0720 0x0720 0x0720
4412313086aSBlue Swirl0x000b8060: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
4422313086aSBlue Swirl0x000b8070: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
4432313086aSBlue Swirl0x000b8080: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
4442313086aSBlue Swirl0x000b8090: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
4452313086aSBlue Swirl@end smallexample
4462313086aSBlue Swirl@end itemize
4472313086aSBlue SwirlETEXI
4482313086aSBlue Swirl
449d7f9b689SLuiz Capitulino    {
450d7f9b689SLuiz Capitulino        .name       = "p|print",
451d7f9b689SLuiz Capitulino        .args_type  = "fmt:/,val:l",
452d7f9b689SLuiz Capitulino        .params     = "/fmt expr",
453d7f9b689SLuiz Capitulino        .help       = "print expression value (use $reg for CPU register access)",
454af4ce882SLuiz Capitulino        .mhandler.cmd = do_print,
455d7f9b689SLuiz Capitulino    },
456d7f9b689SLuiz Capitulino
4572313086aSBlue SwirlSTEXI
4582313086aSBlue Swirl@item p or print/@var{fmt} @var{expr}
45970fcbbe7SStefan Weil@findex print
4602313086aSBlue Swirl
4612313086aSBlue SwirlPrint expression value. Only the @var{format} part of @var{fmt} is
4622313086aSBlue Swirlused.
4632313086aSBlue SwirlETEXI
4642313086aSBlue Swirl
465d7f9b689SLuiz Capitulino    {
466d7f9b689SLuiz Capitulino        .name       = "i",
467d7f9b689SLuiz Capitulino        .args_type  = "fmt:/,addr:i,index:i.",
468d7f9b689SLuiz Capitulino        .params     = "/fmt addr",
469d7f9b689SLuiz Capitulino        .help       = "I/O port read",
470af4ce882SLuiz Capitulino        .mhandler.cmd = do_ioport_read,
471d7f9b689SLuiz Capitulino    },
472d7f9b689SLuiz Capitulino
4732313086aSBlue SwirlSTEXI
4742313086aSBlue SwirlRead I/O port.
4752313086aSBlue SwirlETEXI
4762313086aSBlue Swirl
477d7f9b689SLuiz Capitulino    {
478d7f9b689SLuiz Capitulino        .name       = "o",
479d7f9b689SLuiz Capitulino        .args_type  = "fmt:/,addr:i,val:i",
480d7f9b689SLuiz Capitulino        .params     = "/fmt addr value",
481d7f9b689SLuiz Capitulino        .help       = "I/O port write",
482af4ce882SLuiz Capitulino        .mhandler.cmd = do_ioport_write,
483d7f9b689SLuiz Capitulino    },
484d7f9b689SLuiz Capitulino
485f114784fSJan KiszkaSTEXI
486f114784fSJan KiszkaWrite to I/O port.
487f114784fSJan KiszkaETEXI
4882313086aSBlue Swirl
489d7f9b689SLuiz Capitulino    {
490d7f9b689SLuiz Capitulino        .name       = "sendkey",
491d7f9b689SLuiz Capitulino        .args_type  = "string:s,hold_time:i?",
492d7f9b689SLuiz Capitulino        .params     = "keys [hold_ms]",
493d7f9b689SLuiz Capitulino        .help       = "send keys to the VM (e.g. 'sendkey ctrl-alt-f1', default hold time=100 ms)",
494af4ce882SLuiz Capitulino        .mhandler.cmd = do_sendkey,
495d7f9b689SLuiz Capitulino    },
496d7f9b689SLuiz Capitulino
4972313086aSBlue SwirlSTEXI
4982313086aSBlue Swirl@item sendkey @var{keys}
49970fcbbe7SStefan Weil@findex sendkey
5002313086aSBlue Swirl
5012313086aSBlue SwirlSend @var{keys} to the emulator. @var{keys} could be the name of the
5022313086aSBlue Swirlkey or @code{#} followed by the raw value in either decimal or hexadecimal
5032313086aSBlue Swirlformat. Use @code{-} to press several keys simultaneously. Example:
5042313086aSBlue Swirl@example
5052313086aSBlue Swirlsendkey ctrl-alt-f1
5062313086aSBlue Swirl@end example
5072313086aSBlue Swirl
5082313086aSBlue SwirlThis command is useful to send keys that your graphical user interface
5092313086aSBlue Swirlintercepts at low level, such as @code{ctrl-alt-f1} in X Window.
5102313086aSBlue SwirlETEXI
5112313086aSBlue Swirl
512d7f9b689SLuiz Capitulino    {
513d7f9b689SLuiz Capitulino        .name       = "system_reset",
514d7f9b689SLuiz Capitulino        .args_type  = "",
515d7f9b689SLuiz Capitulino        .params     = "",
516d7f9b689SLuiz Capitulino        .help       = "reset the system",
51738d22653SLuiz Capitulino        .mhandler.cmd = hmp_system_reset,
518d7f9b689SLuiz Capitulino    },
519d7f9b689SLuiz Capitulino
5202313086aSBlue SwirlSTEXI
5212313086aSBlue Swirl@item system_reset
52270fcbbe7SStefan Weil@findex system_reset
5232313086aSBlue Swirl
5242313086aSBlue SwirlReset the system.
5252313086aSBlue SwirlETEXI
5262313086aSBlue Swirl
527d7f9b689SLuiz Capitulino    {
528d7f9b689SLuiz Capitulino        .name       = "system_powerdown",
529d7f9b689SLuiz Capitulino        .args_type  = "",
530d7f9b689SLuiz Capitulino        .params     = "",
531d7f9b689SLuiz Capitulino        .help       = "send system power down event",
5325bc465e4SLuiz Capitulino        .mhandler.cmd = hmp_system_powerdown,
533d7f9b689SLuiz Capitulino    },
534d7f9b689SLuiz Capitulino
5352313086aSBlue SwirlSTEXI
5362313086aSBlue Swirl@item system_powerdown
53770fcbbe7SStefan Weil@findex system_powerdown
5382313086aSBlue Swirl
5392313086aSBlue SwirlPower down the system (if supported).
5402313086aSBlue SwirlETEXI
5412313086aSBlue Swirl
542d7f9b689SLuiz Capitulino    {
543d7f9b689SLuiz Capitulino        .name       = "sum",
544d7f9b689SLuiz Capitulino        .args_type  = "start:i,size:i",
545d7f9b689SLuiz Capitulino        .params     = "addr size",
546d7f9b689SLuiz Capitulino        .help       = "compute the checksum of a memory region",
547af4ce882SLuiz Capitulino        .mhandler.cmd = do_sum,
548d7f9b689SLuiz Capitulino    },
549d7f9b689SLuiz Capitulino
5502313086aSBlue SwirlSTEXI
5512313086aSBlue Swirl@item sum @var{addr} @var{size}
55270fcbbe7SStefan Weil@findex sum
5532313086aSBlue Swirl
5542313086aSBlue SwirlCompute the checksum of a memory region.
5552313086aSBlue SwirlETEXI
5562313086aSBlue Swirl
557d7f9b689SLuiz Capitulino    {
558d7f9b689SLuiz Capitulino        .name       = "usb_add",
559d7f9b689SLuiz Capitulino        .args_type  = "devname:s",
560d7f9b689SLuiz Capitulino        .params     = "device",
561d7f9b689SLuiz Capitulino        .help       = "add USB device (e.g. 'host:bus.addr' or 'host:vendor_id:product_id')",
562af4ce882SLuiz Capitulino        .mhandler.cmd = do_usb_add,
563d7f9b689SLuiz Capitulino    },
564d7f9b689SLuiz Capitulino
5652313086aSBlue SwirlSTEXI
5662313086aSBlue Swirl@item usb_add @var{devname}
56770fcbbe7SStefan Weil@findex usb_add
5682313086aSBlue Swirl
5692313086aSBlue SwirlAdd the USB device @var{devname}.  For details of available devices see
5702313086aSBlue Swirl@ref{usb_devices}
5712313086aSBlue SwirlETEXI
5722313086aSBlue Swirl
573d7f9b689SLuiz Capitulino    {
574d7f9b689SLuiz Capitulino        .name       = "usb_del",
575d7f9b689SLuiz Capitulino        .args_type  = "devname:s",
576d7f9b689SLuiz Capitulino        .params     = "device",
577d7f9b689SLuiz Capitulino        .help       = "remove USB device 'bus.addr'",
578af4ce882SLuiz Capitulino        .mhandler.cmd = do_usb_del,
579d7f9b689SLuiz Capitulino    },
580d7f9b689SLuiz Capitulino
5812313086aSBlue SwirlSTEXI
5822313086aSBlue Swirl@item usb_del @var{devname}
58370fcbbe7SStefan Weil@findex usb_del
5842313086aSBlue Swirl
5852313086aSBlue SwirlRemove the USB device @var{devname} from the QEMU virtual USB
5862313086aSBlue Swirlhub. @var{devname} has the syntax @code{bus.addr}. Use the monitor
5872313086aSBlue Swirlcommand @code{info usb} to see the devices you can remove.
5882313086aSBlue SwirlETEXI
5892313086aSBlue Swirl
590d7f9b689SLuiz Capitulino    {
591d7f9b689SLuiz Capitulino        .name       = "device_add",
592c7e4e8ceSMarkus Armbruster        .args_type  = "device:O",
593c7e4e8ceSMarkus Armbruster        .params     = "driver[,prop=value][,...]",
594d7f9b689SLuiz Capitulino        .help       = "add device, like -device on the command line",
5958bc27249SMarkus Armbruster        .user_print = monitor_user_noop,
5968bc27249SMarkus Armbruster        .mhandler.cmd_new = do_device_add,
597d7f9b689SLuiz Capitulino    },
598d7f9b689SLuiz Capitulino
5993418bd25SGerd HoffmannSTEXI
6003418bd25SGerd Hoffmann@item device_add @var{config}
60170fcbbe7SStefan Weil@findex device_add
6023418bd25SGerd Hoffmann
6033418bd25SGerd HoffmannAdd device.
6043418bd25SGerd HoffmannETEXI
6053418bd25SGerd Hoffmann
606d7f9b689SLuiz Capitulino    {
607d7f9b689SLuiz Capitulino        .name       = "device_del",
608d7f9b689SLuiz Capitulino        .args_type  = "id:s",
609d7f9b689SLuiz Capitulino        .params     = "device",
610d7f9b689SLuiz Capitulino        .help       = "remove device",
61117a38eaaSMarkus Armbruster        .user_print = monitor_user_noop,
61217a38eaaSMarkus Armbruster        .mhandler.cmd_new = do_device_del,
613d7f9b689SLuiz Capitulino    },
614d7f9b689SLuiz Capitulino
6153418bd25SGerd HoffmannSTEXI
6163418bd25SGerd Hoffmann@item device_del @var{id}
61770fcbbe7SStefan Weil@findex device_del
6183418bd25SGerd Hoffmann
6193418bd25SGerd HoffmannRemove device @var{id}.
6203418bd25SGerd HoffmannETEXI
6213418bd25SGerd Hoffmann
622d7f9b689SLuiz Capitulino    {
623d7f9b689SLuiz Capitulino        .name       = "cpu",
624d7f9b689SLuiz Capitulino        .args_type  = "index:i",
625d7f9b689SLuiz Capitulino        .params     = "index",
626d7f9b689SLuiz Capitulino        .help       = "set the default CPU",
627755f1968SLuiz Capitulino        .mhandler.cmd = hmp_cpu,
628d7f9b689SLuiz Capitulino    },
6293418bd25SGerd Hoffmann
6302313086aSBlue SwirlSTEXI
631c427ea9cSMarkus Armbruster@item cpu @var{index}
632c427ea9cSMarkus Armbruster@findex cpu
6332313086aSBlue SwirlSet the default CPU.
6342313086aSBlue SwirlETEXI
6352313086aSBlue Swirl
636d7f9b689SLuiz Capitulino    {
637d7f9b689SLuiz Capitulino        .name       = "mouse_move",
638d7f9b689SLuiz Capitulino        .args_type  = "dx_str:s,dy_str:s,dz_str:s?",
639d7f9b689SLuiz Capitulino        .params     = "dx dy [dz]",
640d7f9b689SLuiz Capitulino        .help       = "send mouse move events",
641af4ce882SLuiz Capitulino        .mhandler.cmd = do_mouse_move,
642d7f9b689SLuiz Capitulino    },
643d7f9b689SLuiz Capitulino
6442313086aSBlue SwirlSTEXI
6452313086aSBlue Swirl@item mouse_move @var{dx} @var{dy} [@var{dz}]
64670fcbbe7SStefan Weil@findex mouse_move
6472313086aSBlue SwirlMove the active mouse to the specified coordinates @var{dx} @var{dy}
6482313086aSBlue Swirlwith optional scroll axis @var{dz}.
6492313086aSBlue SwirlETEXI
6502313086aSBlue Swirl
651d7f9b689SLuiz Capitulino    {
652d7f9b689SLuiz Capitulino        .name       = "mouse_button",
653d7f9b689SLuiz Capitulino        .args_type  = "button_state:i",
654d7f9b689SLuiz Capitulino        .params     = "state",
655d7f9b689SLuiz Capitulino        .help       = "change mouse button state (1=L, 2=M, 4=R)",
656af4ce882SLuiz Capitulino        .mhandler.cmd = do_mouse_button,
657d7f9b689SLuiz Capitulino    },
658d7f9b689SLuiz Capitulino
6592313086aSBlue SwirlSTEXI
6602313086aSBlue Swirl@item mouse_button @var{val}
66170fcbbe7SStefan Weil@findex mouse_button
6622313086aSBlue SwirlChange the active mouse button state @var{val} (1=L, 2=M, 4=R).
6632313086aSBlue SwirlETEXI
6642313086aSBlue Swirl
665d7f9b689SLuiz Capitulino    {
666d7f9b689SLuiz Capitulino        .name       = "mouse_set",
667d7f9b689SLuiz Capitulino        .args_type  = "index:i",
668d7f9b689SLuiz Capitulino        .params     = "index",
669d7f9b689SLuiz Capitulino        .help       = "set which mouse device receives events",
670af4ce882SLuiz Capitulino        .mhandler.cmd = do_mouse_set,
671d7f9b689SLuiz Capitulino    },
672d7f9b689SLuiz Capitulino
6732313086aSBlue SwirlSTEXI
6742313086aSBlue Swirl@item mouse_set @var{index}
67570fcbbe7SStefan Weil@findex mouse_set
6762313086aSBlue SwirlSet which mouse device receives events at given @var{index}, index
6772313086aSBlue Swirlcan be obtained with
6782313086aSBlue Swirl@example
6792313086aSBlue Swirlinfo mice
6802313086aSBlue Swirl@end example
6812313086aSBlue SwirlETEXI
6822313086aSBlue Swirl
6832313086aSBlue Swirl#ifdef HAS_AUDIO
684d7f9b689SLuiz Capitulino    {
685d7f9b689SLuiz Capitulino        .name       = "wavcapture",
686d7f9b689SLuiz Capitulino        .args_type  = "path:F,freq:i?,bits:i?,nchannels:i?",
687d7f9b689SLuiz Capitulino        .params     = "path [frequency [bits [channels]]]",
688d7f9b689SLuiz Capitulino        .help       = "capture audio to a wave file (default frequency=44100 bits=16 channels=2)",
689af4ce882SLuiz Capitulino        .mhandler.cmd = do_wav_capture,
690d7f9b689SLuiz Capitulino    },
6912313086aSBlue Swirl#endif
6922313086aSBlue SwirlSTEXI
6932313086aSBlue Swirl@item wavcapture @var{filename} [@var{frequency} [@var{bits} [@var{channels}]]]
69470fcbbe7SStefan Weil@findex wavcapture
6952313086aSBlue SwirlCapture audio into @var{filename}. Using sample rate @var{frequency}
6962313086aSBlue Swirlbits per sample @var{bits} and number of channels @var{channels}.
6972313086aSBlue Swirl
6982313086aSBlue SwirlDefaults:
6992313086aSBlue Swirl@itemize @minus
7002313086aSBlue Swirl@item Sample rate = 44100 Hz - CD quality
7012313086aSBlue Swirl@item Bits = 16
7022313086aSBlue Swirl@item Number of channels = 2 - Stereo
7032313086aSBlue Swirl@end itemize
7042313086aSBlue SwirlETEXI
7052313086aSBlue Swirl
7062313086aSBlue Swirl#ifdef HAS_AUDIO
707d7f9b689SLuiz Capitulino    {
708d7f9b689SLuiz Capitulino        .name       = "stopcapture",
709d7f9b689SLuiz Capitulino        .args_type  = "n:i",
710d7f9b689SLuiz Capitulino        .params     = "capture index",
711d7f9b689SLuiz Capitulino        .help       = "stop capture",
712af4ce882SLuiz Capitulino        .mhandler.cmd = do_stop_capture,
713d7f9b689SLuiz Capitulino    },
7142313086aSBlue Swirl#endif
7152313086aSBlue SwirlSTEXI
7162313086aSBlue Swirl@item stopcapture @var{index}
71770fcbbe7SStefan Weil@findex stopcapture
7182313086aSBlue SwirlStop capture with a given @var{index}, index can be obtained with
7192313086aSBlue Swirl@example
7202313086aSBlue Swirlinfo capture
7212313086aSBlue Swirl@end example
7222313086aSBlue SwirlETEXI
7232313086aSBlue Swirl
724d7f9b689SLuiz Capitulino    {
725d7f9b689SLuiz Capitulino        .name       = "memsave",
726d7f9b689SLuiz Capitulino        .args_type  = "val:l,size:i,filename:s",
727d7f9b689SLuiz Capitulino        .params     = "addr size file",
728d7f9b689SLuiz Capitulino        .help       = "save to disk virtual memory dump starting at 'addr' of size 'size'",
7290cfd6a9aSLuiz Capitulino        .mhandler.cmd = hmp_memsave,
730d7f9b689SLuiz Capitulino    },
731d7f9b689SLuiz Capitulino
7322313086aSBlue SwirlSTEXI
7332313086aSBlue Swirl@item memsave @var{addr} @var{size} @var{file}
73470fcbbe7SStefan Weil@findex memsave
7352313086aSBlue Swirlsave to disk virtual memory dump starting at @var{addr} of size @var{size}.
7362313086aSBlue SwirlETEXI
7372313086aSBlue Swirl
738d7f9b689SLuiz Capitulino    {
739d7f9b689SLuiz Capitulino        .name       = "pmemsave",
740d7f9b689SLuiz Capitulino        .args_type  = "val:l,size:i,filename:s",
741d7f9b689SLuiz Capitulino        .params     = "addr size file",
742d7f9b689SLuiz Capitulino        .help       = "save to disk physical memory dump starting at 'addr' of size 'size'",
7436d3962bfSLuiz Capitulino        .mhandler.cmd = hmp_pmemsave,
744d7f9b689SLuiz Capitulino    },
745d7f9b689SLuiz Capitulino
7462313086aSBlue SwirlSTEXI
7472313086aSBlue Swirl@item pmemsave @var{addr} @var{size} @var{file}
74870fcbbe7SStefan Weil@findex pmemsave
7492313086aSBlue Swirlsave to disk physical memory dump starting at @var{addr} of size @var{size}.
7502313086aSBlue SwirlETEXI
7512313086aSBlue Swirl
752d7f9b689SLuiz Capitulino    {
753d7f9b689SLuiz Capitulino        .name       = "boot_set",
754d7f9b689SLuiz Capitulino        .args_type  = "bootdevice:s",
755d7f9b689SLuiz Capitulino        .params     = "bootdevice",
756d7f9b689SLuiz Capitulino        .help       = "define new values for the boot device list",
757af4ce882SLuiz Capitulino        .mhandler.cmd = do_boot_set,
758d7f9b689SLuiz Capitulino    },
759d7f9b689SLuiz Capitulino
7602313086aSBlue SwirlSTEXI
7612313086aSBlue Swirl@item boot_set @var{bootdevicelist}
76270fcbbe7SStefan Weil@findex boot_set
7632313086aSBlue Swirl
7642313086aSBlue SwirlDefine new values for the boot device list. Those values will override
7652313086aSBlue Swirlthe values specified on the command line through the @code{-boot} option.
7662313086aSBlue Swirl
7672313086aSBlue SwirlThe values that can be specified here depend on the machine type, but are
7682313086aSBlue Swirlthe same that can be specified in the @code{-boot} command line option.
7692313086aSBlue SwirlETEXI
7702313086aSBlue Swirl
7712313086aSBlue Swirl#if defined(TARGET_I386)
772d7f9b689SLuiz Capitulino    {
773d7f9b689SLuiz Capitulino        .name       = "nmi",
774e9b4b432SLuiz Capitulino        .args_type  = "",
775e9b4b432SLuiz Capitulino        .params     = "",
776e9b4b432SLuiz Capitulino        .help       = "inject an NMI on all guest's CPUs",
777ab49ab5cSLuiz Capitulino        .mhandler.cmd = hmp_inject_nmi,
778d7f9b689SLuiz Capitulino    },
7792313086aSBlue Swirl#endif
7802313086aSBlue SwirlSTEXI
7812313086aSBlue Swirl@item nmi @var{cpu}
78270fcbbe7SStefan Weil@findex nmi
7832313086aSBlue SwirlInject an NMI on the given CPU (x86 only).
7842313086aSBlue SwirlETEXI
7852313086aSBlue Swirl
786d7f9b689SLuiz Capitulino    {
787d7f9b689SLuiz Capitulino        .name       = "migrate",
788fbc3d96cSlirans@il.ibm.com        .args_type  = "detach:-d,blk:-b,inc:-i,uri:s",
789fbc3d96cSlirans@il.ibm.com        .params     = "[-d] [-b] [-i] uri",
790fbc3d96cSlirans@il.ibm.com        .help       = "migrate to URI (using -d to not wait for completion)"
791fbc3d96cSlirans@il.ibm.com		      "\n\t\t\t -b for migration without shared storage with"
792fbc3d96cSlirans@il.ibm.com		      " full copy of disk\n\t\t\t -i for migration without "
793fbc3d96cSlirans@il.ibm.com		      "shared storage with incremental copy of disk "
794fbc3d96cSlirans@il.ibm.com		      "(base image shared between src and destination)",
7955f79da00SLuiz Capitulino        .user_print = monitor_user_noop,
796261394dbSLuiz Capitulino	.mhandler.cmd_new = do_migrate,
797d7f9b689SLuiz Capitulino    },
798d7f9b689SLuiz Capitulino
799fbc3d96cSlirans@il.ibm.com
8002313086aSBlue SwirlSTEXI
801fbc3d96cSlirans@il.ibm.com@item migrate [-d] [-b] [-i] @var{uri}
80270fcbbe7SStefan Weil@findex migrate
8032313086aSBlue SwirlMigrate to @var{uri} (using -d to not wait for completion).
804fbc3d96cSlirans@il.ibm.com	-b for migration with full copy of disk
805fbc3d96cSlirans@il.ibm.com	-i for migration with incremental copy of disk (base image is shared)
8062313086aSBlue SwirlETEXI
8072313086aSBlue Swirl
808d7f9b689SLuiz Capitulino    {
809d7f9b689SLuiz Capitulino        .name       = "migrate_cancel",
810d7f9b689SLuiz Capitulino        .args_type  = "",
811d7f9b689SLuiz Capitulino        .params     = "",
812d7f9b689SLuiz Capitulino        .help       = "cancel the current VM migration",
8136cdedb07SLuiz Capitulino        .mhandler.cmd = hmp_migrate_cancel,
814d7f9b689SLuiz Capitulino    },
815d7f9b689SLuiz Capitulino
8162313086aSBlue SwirlSTEXI
8172313086aSBlue Swirl@item migrate_cancel
81870fcbbe7SStefan Weil@findex migrate_cancel
8192313086aSBlue SwirlCancel the current VM migration.
8202313086aSBlue SwirlETEXI
8212313086aSBlue Swirl
822d7f9b689SLuiz Capitulino    {
823d7f9b689SLuiz Capitulino        .name       = "migrate_set_speed",
824ed3d4a80SJes Sorensen        .args_type  = "value:o",
825d7f9b689SLuiz Capitulino        .params     = "value",
826ed3d4a80SJes Sorensen        .help       = "set maximum speed (in bytes) for migrations. "
827ed3d4a80SJes Sorensen	"Defaults to MB if no size suffix is specified, ie. B/K/M/G/T",
8283dc85383SLuiz Capitulino        .mhandler.cmd = hmp_migrate_set_speed,
829d7f9b689SLuiz Capitulino    },
830d7f9b689SLuiz Capitulino
8312313086aSBlue SwirlSTEXI
8322313086aSBlue Swirl@item migrate_set_speed @var{value}
83370fcbbe7SStefan Weil@findex migrate_set_speed
8342313086aSBlue SwirlSet maximum speed to @var{value} (in bytes) for migrations.
8352313086aSBlue SwirlETEXI
8362313086aSBlue Swirl
837d7f9b689SLuiz Capitulino    {
838d7f9b689SLuiz Capitulino        .name       = "migrate_set_downtime",
839b0fbf7d3SMarkus Armbruster        .args_type  = "value:T",
840d7f9b689SLuiz Capitulino        .params     = "value",
841d7f9b689SLuiz Capitulino        .help       = "set maximum tolerated downtime (in seconds) for migrations",
8424f0a993bSLuiz Capitulino        .mhandler.cmd = hmp_migrate_set_downtime,
843d7f9b689SLuiz Capitulino    },
8442ea42952SGlauber Costa
8452ea42952SGlauber CostaSTEXI
8462ea42952SGlauber Costa@item migrate_set_downtime @var{second}
84770fcbbe7SStefan Weil@findex migrate_set_downtime
8482ea42952SGlauber CostaSet maximum tolerated downtime (in seconds) for migration.
8492ea42952SGlauber CostaETEXI
8502ea42952SGlauber Costa
851f8882568SJes Sorensen    {
8522ea720dbSJes Sorensen        .name       = "client_migrate_info",
8532ea720dbSJes Sorensen        .args_type  = "protocol:s,hostname:s,port:i?,tls-port:i?,cert-subject:s?",
8542ea720dbSJes Sorensen        .params     = "protocol hostname port tls-port cert-subject",
8552ea720dbSJes Sorensen        .help       = "send migration info to spice/vnc client",
8562ea720dbSJes Sorensen        .user_print = monitor_user_noop,
857edc5cb1aSYonit Halperin        .mhandler.cmd_async = client_migrate_info,
858edc5cb1aSYonit Halperin        .flags      = MONITOR_CMD_ASYNC,
859f8882568SJes Sorensen    },
860f8882568SJes Sorensen
861f8882568SJes SorensenSTEXI
862e866e239SGerd Hoffmann@item client_migrate_info @var{protocol} @var{hostname} @var{port} @var{tls-port} @var{cert-subject}
863e866e239SGerd Hoffmann@findex client_migrate_info
864e866e239SGerd HoffmannSet the spice/vnc connection info for the migration target.  The spice/vnc
865e866e239SGerd Hoffmannserver will ask the spice/vnc client to automatically reconnect using the
866e866e239SGerd Hoffmannnew parameters (if specified) once the vm migration finished successfully.
867e866e239SGerd HoffmannETEXI
868e866e239SGerd Hoffmann
869e866e239SGerd Hoffmann    {
8702ea720dbSJes Sorensen        .name       = "snapshot_blkdev",
871d967b2f1SJes Sorensen        .args_type  = "device:B,snapshot-file:s?,format:s?",
8722ea720dbSJes Sorensen        .params     = "device [new-image-file] [format]",
8732ea720dbSJes Sorensen        .help       = "initiates a live snapshot\n\t\t\t"
8742ea720dbSJes Sorensen                      "of device. If a new image file is specified, the\n\t\t\t"
8752ea720dbSJes Sorensen                      "new image file will become the new root image.\n\t\t\t"
8762ea720dbSJes Sorensen                      "If format is specified, the snapshot file will\n\t\t\t"
8772ea720dbSJes Sorensen                      "be created in that format. Otherwise the\n\t\t\t"
8782ea720dbSJes Sorensen                      "snapshot will be internal! (currently unsupported)",
8796106e249SLuiz Capitulino        .mhandler.cmd = hmp_snapshot_blkdev,
880e866e239SGerd Hoffmann    },
881e866e239SGerd Hoffmann
882e866e239SGerd HoffmannSTEXI
883f8882568SJes Sorensen@item snapshot_blkdev
884f8882568SJes Sorensen@findex snapshot_blkdev
885f8882568SJes SorensenSnapshot device, using snapshot file as target if provided
886f8882568SJes SorensenETEXI
887f8882568SJes Sorensen
888d7f9b689SLuiz Capitulino    {
889d7f9b689SLuiz Capitulino        .name       = "drive_add",
890d7f9b689SLuiz Capitulino        .args_type  = "pci_addr:s,opts:s",
891d7f9b689SLuiz Capitulino        .params     = "[[<domain>:]<bus>:]<slot>\n"
8922313086aSBlue Swirl                      "[file=file][,if=type][,bus=n]\n"
893fb0490f6SStefan Hajnoczi                      "[,unit=m][,media=d][,index=i]\n"
8942313086aSBlue Swirl                      "[,cyls=c,heads=h,secs=s[,trans=t]]\n"
895fb0490f6SStefan Hajnoczi                      "[,snapshot=on|off][,cache=on|off]\n"
896fb0490f6SStefan Hajnoczi                      "[,readonly=on|off][,copy-on-read=on|off]",
897d7f9b689SLuiz Capitulino        .help       = "add drive to PCI storage controller",
898af4ce882SLuiz Capitulino        .mhandler.cmd = drive_hot_add,
899d7f9b689SLuiz Capitulino    },
900d7f9b689SLuiz Capitulino
9012313086aSBlue SwirlSTEXI
9022313086aSBlue Swirl@item drive_add
90370fcbbe7SStefan Weil@findex drive_add
9042313086aSBlue SwirlAdd drive to PCI storage controller.
9052313086aSBlue SwirlETEXI
9062313086aSBlue Swirl
9072313086aSBlue Swirl#if defined(TARGET_I386)
908d7f9b689SLuiz Capitulino    {
909d7f9b689SLuiz Capitulino        .name       = "pci_add",
910d7f9b689SLuiz Capitulino        .args_type  = "pci_addr:s,type:s,opts:s?",
911d7f9b689SLuiz Capitulino        .params     = "auto|[[<domain>:]<bus>:]<slot> nic|storage [[vlan=n][,macaddr=addr][,model=type]] [file=file][,if=type][,bus=nr]...",
912d7f9b689SLuiz Capitulino        .help       = "hot-add PCI device",
9136c6a58aeSMarkus Armbruster        .mhandler.cmd = pci_device_hot_add,
914d7f9b689SLuiz Capitulino    },
9152313086aSBlue Swirl#endif
916d7f9b689SLuiz Capitulino
9172313086aSBlue SwirlSTEXI
9182313086aSBlue Swirl@item pci_add
91970fcbbe7SStefan Weil@findex pci_add
9202313086aSBlue SwirlHot-add PCI device.
9212313086aSBlue SwirlETEXI
9222313086aSBlue Swirl
9232313086aSBlue Swirl#if defined(TARGET_I386)
924d7f9b689SLuiz Capitulino    {
925d7f9b689SLuiz Capitulino        .name       = "pci_del",
926d7f9b689SLuiz Capitulino        .args_type  = "pci_addr:s",
927d7f9b689SLuiz Capitulino        .params     = "[[<domain>:]<bus>:]<slot>",
928d7f9b689SLuiz Capitulino        .help       = "hot remove PCI device",
929b752daf0SMarkus Armbruster        .mhandler.cmd = do_pci_device_hot_remove,
930d7f9b689SLuiz Capitulino    },
9312313086aSBlue Swirl#endif
932d7f9b689SLuiz Capitulino
9332313086aSBlue SwirlSTEXI
9342313086aSBlue Swirl@item pci_del
93570fcbbe7SStefan Weil@findex pci_del
9362313086aSBlue SwirlHot remove PCI device.
9372313086aSBlue SwirlETEXI
9382313086aSBlue Swirl
939d7f9b689SLuiz Capitulino    {
9402ae63bdaSIsaku Yamahata        .name       = "pcie_aer_inject_error",
9412ae63bdaSIsaku Yamahata        .args_type  = "advisory_non_fatal:-a,correctable:-c,"
9422ae63bdaSIsaku Yamahata	              "id:s,error_status:s,"
9432ae63bdaSIsaku Yamahata	              "header0:i?,header1:i?,header2:i?,header3:i?,"
9442ae63bdaSIsaku Yamahata	              "prefix0:i?,prefix1:i?,prefix2:i?,prefix3:i?",
9452ae63bdaSIsaku Yamahata        .params     = "[-a] [-c] id "
9462ae63bdaSIsaku Yamahata                      "<error_status> [<tlp header> [<tlp header prefix>]]",
9472ae63bdaSIsaku Yamahata        .help       = "inject pcie aer error\n\t\t\t"
9482ae63bdaSIsaku Yamahata	              " -a for advisory non fatal error\n\t\t\t"
9492ae63bdaSIsaku Yamahata	              " -c for correctable error\n\t\t\t"
9502ae63bdaSIsaku Yamahata                      "<id> = qdev device id\n\t\t\t"
9512ae63bdaSIsaku Yamahata                      "<error_status> = error string or 32bit\n\t\t\t"
9522ae63bdaSIsaku Yamahata                      "<tlb header> = 32bit x 4\n\t\t\t"
9532ae63bdaSIsaku Yamahata                      "<tlb header prefix> = 32bit x 4",
9542ae63bdaSIsaku Yamahata        .user_print  = pcie_aer_inject_error_print,
9551f3392b7SZhi Yong Wu        .mhandler.cmd_new = do_pcie_aer_inject_error,
9562ae63bdaSIsaku Yamahata    },
9572ae63bdaSIsaku Yamahata
9582ae63bdaSIsaku YamahataSTEXI
9592ae63bdaSIsaku Yamahata@item pcie_aer_inject_error
9602ae63bdaSIsaku Yamahata@findex pcie_aer_inject_error
9612ae63bdaSIsaku YamahataInject PCIe AER error
9622ae63bdaSIsaku YamahataETEXI
9632ae63bdaSIsaku Yamahata
9642ae63bdaSIsaku Yamahata    {
965d7f9b689SLuiz Capitulino        .name       = "host_net_add",
966d7f9b689SLuiz Capitulino        .args_type  = "device:s,opts:s?",
967d7f9b689SLuiz Capitulino        .params     = "tap|user|socket|vde|dump [options]",
968d7f9b689SLuiz Capitulino        .help       = "add host VLAN client",
969af4ce882SLuiz Capitulino        .mhandler.cmd = net_host_device_add,
970d7f9b689SLuiz Capitulino    },
971d7f9b689SLuiz Capitulino
9722313086aSBlue SwirlSTEXI
9732313086aSBlue Swirl@item host_net_add
97470fcbbe7SStefan Weil@findex host_net_add
9752313086aSBlue SwirlAdd host VLAN client.
9762313086aSBlue SwirlETEXI
9772313086aSBlue Swirl
978d7f9b689SLuiz Capitulino    {
979d7f9b689SLuiz Capitulino        .name       = "host_net_remove",
980d7f9b689SLuiz Capitulino        .args_type  = "vlan_id:i,device:s",
981d7f9b689SLuiz Capitulino        .params     = "vlan_id name",
982d7f9b689SLuiz Capitulino        .help       = "remove host VLAN client",
983af4ce882SLuiz Capitulino        .mhandler.cmd = net_host_device_remove,
984d7f9b689SLuiz Capitulino    },
985d7f9b689SLuiz Capitulino
9862313086aSBlue SwirlSTEXI
9872313086aSBlue Swirl@item host_net_remove
98870fcbbe7SStefan Weil@findex host_net_remove
9892313086aSBlue SwirlRemove host VLAN client.
9902313086aSBlue SwirlETEXI
9912313086aSBlue Swirl
992ae82d324SMarkus Armbruster    {
993ae82d324SMarkus Armbruster        .name       = "netdev_add",
994ae82d324SMarkus Armbruster        .args_type  = "netdev:O",
995ae82d324SMarkus Armbruster        .params     = "[user|tap|socket],id=str[,prop=value][,...]",
996ae82d324SMarkus Armbruster        .help       = "add host network device",
997ae82d324SMarkus Armbruster        .user_print = monitor_user_noop,
998ae82d324SMarkus Armbruster        .mhandler.cmd_new = do_netdev_add,
999ae82d324SMarkus Armbruster    },
1000ae82d324SMarkus Armbruster
1001ae82d324SMarkus ArmbrusterSTEXI
1002ae82d324SMarkus Armbruster@item netdev_add
1003ae82d324SMarkus Armbruster@findex netdev_add
1004ae82d324SMarkus ArmbrusterAdd host network device.
1005ae82d324SMarkus ArmbrusterETEXI
1006ae82d324SMarkus Armbruster
1007ae82d324SMarkus Armbruster    {
1008ae82d324SMarkus Armbruster        .name       = "netdev_del",
1009ae82d324SMarkus Armbruster        .args_type  = "id:s",
1010ae82d324SMarkus Armbruster        .params     = "id",
1011ae82d324SMarkus Armbruster        .help       = "remove host network device",
1012ae82d324SMarkus Armbruster        .user_print = monitor_user_noop,
1013ae82d324SMarkus Armbruster        .mhandler.cmd_new = do_netdev_del,
1014ae82d324SMarkus Armbruster    },
1015ae82d324SMarkus Armbruster
1016ae82d324SMarkus ArmbrusterSTEXI
1017ae82d324SMarkus Armbruster@item netdev_del
1018ae82d324SMarkus Armbruster@findex netdev_del
1019ae82d324SMarkus ArmbrusterRemove host network device.
1020ae82d324SMarkus ArmbrusterETEXI
1021ae82d324SMarkus Armbruster
10222313086aSBlue Swirl#ifdef CONFIG_SLIRP
1023d7f9b689SLuiz Capitulino    {
1024d7f9b689SLuiz Capitulino        .name       = "hostfwd_add",
1025d7f9b689SLuiz Capitulino        .args_type  = "arg1:s,arg2:s?,arg3:s?",
1026d7f9b689SLuiz Capitulino        .params     = "[vlan_id name] [tcp|udp]:[hostaddr]:hostport-[guestaddr]:guestport",
1027d7f9b689SLuiz Capitulino        .help       = "redirect TCP or UDP connections from host to guest (requires -net user)",
1028af4ce882SLuiz Capitulino        .mhandler.cmd = net_slirp_hostfwd_add,
1029d7f9b689SLuiz Capitulino    },
103021413d68SMarkus Armbruster#endif
103121413d68SMarkus ArmbrusterSTEXI
103221413d68SMarkus Armbruster@item hostfwd_add
103321413d68SMarkus Armbruster@findex hostfwd_add
103421413d68SMarkus ArmbrusterRedirect TCP or UDP connections from host to guest (requires -net user).
103521413d68SMarkus ArmbrusterETEXI
1036d7f9b689SLuiz Capitulino
103721413d68SMarkus Armbruster#ifdef CONFIG_SLIRP
1038d7f9b689SLuiz Capitulino    {
1039d7f9b689SLuiz Capitulino        .name       = "hostfwd_remove",
1040d7f9b689SLuiz Capitulino        .args_type  = "arg1:s,arg2:s?,arg3:s?",
1041d7f9b689SLuiz Capitulino        .params     = "[vlan_id name] [tcp|udp]:[hostaddr]:hostport",
1042d7f9b689SLuiz Capitulino        .help       = "remove host-to-guest TCP or UDP redirection",
1043af4ce882SLuiz Capitulino        .mhandler.cmd = net_slirp_hostfwd_remove,
1044d7f9b689SLuiz Capitulino    },
1045d7f9b689SLuiz Capitulino
10462313086aSBlue Swirl#endif
10472313086aSBlue SwirlSTEXI
104821413d68SMarkus Armbruster@item hostfwd_remove
104921413d68SMarkus Armbruster@findex hostfwd_remove
105021413d68SMarkus ArmbrusterRemove host-to-guest TCP or UDP redirection.
10512313086aSBlue SwirlETEXI
10522313086aSBlue Swirl
1053d7f9b689SLuiz Capitulino    {
1054d7f9b689SLuiz Capitulino        .name       = "balloon",
10553b0bd6ecSLuiz Capitulino        .args_type  = "value:M",
1056d7f9b689SLuiz Capitulino        .params     = "target",
10573c05613aSRiccardo Magliocchetti        .help       = "request VM to change its memory allocation (in MB)",
1058d72f3264SLuiz Capitulino        .mhandler.cmd = hmp_balloon,
1059d7f9b689SLuiz Capitulino    },
1060d7f9b689SLuiz Capitulino
10612313086aSBlue SwirlSTEXI
10622313086aSBlue Swirl@item balloon @var{value}
106370fcbbe7SStefan Weil@findex balloon
10642313086aSBlue SwirlRequest VM to change its memory allocation to @var{value} (in MB).
10652313086aSBlue SwirlETEXI
10662313086aSBlue Swirl
1067d7f9b689SLuiz Capitulino    {
1068d7f9b689SLuiz Capitulino        .name       = "set_link",
1069c9b26a4cSMarkus Armbruster        .args_type  = "name:s,up:b",
1070c9b26a4cSMarkus Armbruster        .params     = "name on|off",
1071d7f9b689SLuiz Capitulino        .help       = "change the link status of a network adapter",
10724b37156cSLuiz Capitulino        .mhandler.cmd = hmp_set_link,
1073d7f9b689SLuiz Capitulino    },
1074d7f9b689SLuiz Capitulino
10752313086aSBlue SwirlSTEXI
1076c9b26a4cSMarkus Armbruster@item set_link @var{name} [on|off]
107770fcbbe7SStefan Weil@findex set_link
1078c9b26a4cSMarkus ArmbrusterSwitch link @var{name} on (i.e. up) or off (i.e. down).
10792313086aSBlue SwirlETEXI
10802313086aSBlue Swirl
1081d7f9b689SLuiz Capitulino    {
1082d7f9b689SLuiz Capitulino        .name       = "watchdog_action",
1083d7f9b689SLuiz Capitulino        .args_type  = "action:s",
1084d7f9b689SLuiz Capitulino        .params     = "[reset|shutdown|poweroff|pause|debug|none]",
1085d7f9b689SLuiz Capitulino        .help       = "change watchdog action",
1086af4ce882SLuiz Capitulino        .mhandler.cmd = do_watchdog_action,
1087d7f9b689SLuiz Capitulino    },
1088d7f9b689SLuiz Capitulino
10892313086aSBlue SwirlSTEXI
10902313086aSBlue Swirl@item watchdog_action
109170fcbbe7SStefan Weil@findex watchdog_action
10922313086aSBlue SwirlChange watchdog action.
10932313086aSBlue SwirlETEXI
10942313086aSBlue Swirl
1095d7f9b689SLuiz Capitulino    {
1096d7f9b689SLuiz Capitulino        .name       = "acl_show",
1097d7f9b689SLuiz Capitulino        .args_type  = "aclname:s",
1098d7f9b689SLuiz Capitulino        .params     = "aclname",
1099d7f9b689SLuiz Capitulino        .help       = "list rules in the access control list",
1100af4ce882SLuiz Capitulino        .mhandler.cmd = do_acl_show,
1101d7f9b689SLuiz Capitulino    },
1102d7f9b689SLuiz Capitulino
11032313086aSBlue SwirlSTEXI
110415dfcd45SJan Kiszka@item acl_show @var{aclname}
110570fcbbe7SStefan Weil@findex acl_show
110615dfcd45SJan KiszkaList all the matching rules in the access control list, and the default
110715dfcd45SJan Kiszkapolicy. There are currently two named access control lists,
110815dfcd45SJan Kiszka@var{vnc.x509dname} and @var{vnc.username} matching on the x509 client
110915dfcd45SJan Kiszkacertificate distinguished name, and SASL username respectively.
111015dfcd45SJan KiszkaETEXI
11112313086aSBlue Swirl
1112d7f9b689SLuiz Capitulino    {
1113d7f9b689SLuiz Capitulino        .name       = "acl_policy",
1114d7f9b689SLuiz Capitulino        .args_type  = "aclname:s,policy:s",
1115d7f9b689SLuiz Capitulino        .params     = "aclname allow|deny",
1116d7f9b689SLuiz Capitulino        .help       = "set default access control list policy",
1117af4ce882SLuiz Capitulino        .mhandler.cmd = do_acl_policy,
1118d7f9b689SLuiz Capitulino    },
1119d7f9b689SLuiz Capitulino
112015dfcd45SJan KiszkaSTEXI
1121cbbfacc6SJan Kiszka@item acl_policy @var{aclname} @code{allow|deny}
112270fcbbe7SStefan Weil@findex acl_policy
112315dfcd45SJan KiszkaSet the default access control list policy, used in the event that
11242313086aSBlue Swirlnone of the explicit rules match. The default policy at startup is
112515dfcd45SJan Kiszkaalways @code{deny}.
112615dfcd45SJan KiszkaETEXI
112715dfcd45SJan Kiszka
1128d7f9b689SLuiz Capitulino    {
1129d7f9b689SLuiz Capitulino        .name       = "acl_add",
1130d7f9b689SLuiz Capitulino        .args_type  = "aclname:s,match:s,policy:s,index:i?",
1131d7f9b689SLuiz Capitulino        .params     = "aclname match allow|deny [index]",
1132d7f9b689SLuiz Capitulino        .help       = "add a match rule to the access control list",
1133af4ce882SLuiz Capitulino        .mhandler.cmd = do_acl_add,
1134d7f9b689SLuiz Capitulino    },
1135d7f9b689SLuiz Capitulino
113615dfcd45SJan KiszkaSTEXI
11370e4aec98SMarkus Armbruster@item acl_add @var{aclname} @var{match} @code{allow|deny} [@var{index}]
11380e4aec98SMarkus Armbruster@findex acl_add
113915dfcd45SJan KiszkaAdd a match rule to the access control list, allowing or denying access.
114015dfcd45SJan KiszkaThe match will normally be an exact username or x509 distinguished name,
114115dfcd45SJan Kiszkabut can optionally include wildcard globs. eg @code{*@@EXAMPLE.COM} to
114215dfcd45SJan Kiszkaallow all users in the @code{EXAMPLE.COM} kerberos realm. The match will
11432313086aSBlue Swirlnormally be appended to the end of the ACL, but can be inserted
114415dfcd45SJan Kiszkaearlier in the list if the optional @var{index} parameter is supplied.
114515dfcd45SJan KiszkaETEXI
114615dfcd45SJan Kiszka
1147d7f9b689SLuiz Capitulino    {
1148d7f9b689SLuiz Capitulino        .name       = "acl_remove",
1149d7f9b689SLuiz Capitulino        .args_type  = "aclname:s,match:s",
1150d7f9b689SLuiz Capitulino        .params     = "aclname match",
1151d7f9b689SLuiz Capitulino        .help       = "remove a match rule from the access control list",
1152af4ce882SLuiz Capitulino        .mhandler.cmd = do_acl_remove,
1153d7f9b689SLuiz Capitulino    },
1154d7f9b689SLuiz Capitulino
115515dfcd45SJan KiszkaSTEXI
115615dfcd45SJan Kiszka@item acl_remove @var{aclname} @var{match}
115770fcbbe7SStefan Weil@findex acl_remove
115815dfcd45SJan KiszkaRemove the specified match rule from the access control list.
115915dfcd45SJan KiszkaETEXI
116015dfcd45SJan Kiszka
1161d7f9b689SLuiz Capitulino    {
1162d7f9b689SLuiz Capitulino        .name       = "acl_reset",
1163d7f9b689SLuiz Capitulino        .args_type  = "aclname:s",
1164d7f9b689SLuiz Capitulino        .params     = "aclname",
1165d7f9b689SLuiz Capitulino        .help       = "reset the access control list",
1166af4ce882SLuiz Capitulino        .mhandler.cmd = do_acl_reset,
1167d7f9b689SLuiz Capitulino    },
1168d7f9b689SLuiz Capitulino
116915dfcd45SJan KiszkaSTEXI
11700e4aec98SMarkus Armbruster@item acl_reset @var{aclname}
11710e4aec98SMarkus Armbruster@findex acl_reset
117215dfcd45SJan KiszkaRemove all matches from the access control list, and set the default
11732313086aSBlue Swirlpolicy back to @code{deny}.
11742313086aSBlue SwirlETEXI
11752313086aSBlue Swirl
117679c4f6b0SHuang Ying#if defined(TARGET_I386)
1177d7f9b689SLuiz Capitulino
1178d7f9b689SLuiz Capitulino    {
1179d7f9b689SLuiz Capitulino        .name       = "mce",
118031ce5e0cSJin Dongming        .args_type  = "broadcast:-b,cpu_index:i,bank:i,status:l,mcg_status:l,addr:l,misc:l",
118131ce5e0cSJin Dongming        .params     = "[-b] cpu bank status mcgstatus addr misc",
118231ce5e0cSJin Dongming        .help       = "inject a MCE on the given CPU [and broadcast to other CPUs with -b option]",
1183af4ce882SLuiz Capitulino        .mhandler.cmd = do_inject_mce,
1184d7f9b689SLuiz Capitulino    },
1185d7f9b689SLuiz Capitulino
118679c4f6b0SHuang Ying#endif
118779c4f6b0SHuang YingSTEXI
118879c4f6b0SHuang Ying@item mce @var{cpu} @var{bank} @var{status} @var{mcgstatus} @var{addr} @var{misc}
118970fcbbe7SStefan Weil@findex mce (x86)
119079c4f6b0SHuang YingInject an MCE on the given CPU (x86 only).
119179c4f6b0SHuang YingETEXI
119279c4f6b0SHuang Ying
1193d7f9b689SLuiz Capitulino    {
1194d7f9b689SLuiz Capitulino        .name       = "getfd",
1195d7f9b689SLuiz Capitulino        .args_type  = "fdname:s",
1196d7f9b689SLuiz Capitulino        .params     = "getfd name",
1197d7f9b689SLuiz Capitulino        .help       = "receive a file descriptor via SCM rights and assign it a name",
1198f0d6000aSLuiz Capitulino        .user_print = monitor_user_noop,
1199261394dbSLuiz Capitulino        .mhandler.cmd_new = do_getfd,
1200d7f9b689SLuiz Capitulino    },
1201d7f9b689SLuiz Capitulino
1202f07918fdSMark McLoughlinSTEXI
1203f07918fdSMark McLoughlin@item getfd @var{fdname}
120470fcbbe7SStefan Weil@findex getfd
1205f07918fdSMark McLoughlinIf a file descriptor is passed alongside this command using the SCM_RIGHTS
1206f07918fdSMark McLoughlinmechanism on unix sockets, it is stored using the name @var{fdname} for
1207f07918fdSMark McLoughlinlater use by other monitor commands.
1208f07918fdSMark McLoughlinETEXI
1209f07918fdSMark McLoughlin
1210d7f9b689SLuiz Capitulino    {
1211d7f9b689SLuiz Capitulino        .name       = "closefd",
1212d7f9b689SLuiz Capitulino        .args_type  = "fdname:s",
1213d7f9b689SLuiz Capitulino        .params     = "closefd name",
1214d7f9b689SLuiz Capitulino        .help       = "close a file descriptor previously passed via SCM rights",
121518f3a515SLuiz Capitulino        .user_print = monitor_user_noop,
1216261394dbSLuiz Capitulino        .mhandler.cmd_new = do_closefd,
1217d7f9b689SLuiz Capitulino    },
1218d7f9b689SLuiz Capitulino
1219f07918fdSMark McLoughlinSTEXI
1220f07918fdSMark McLoughlin@item closefd @var{fdname}
122170fcbbe7SStefan Weil@findex closefd
1222f07918fdSMark McLoughlinClose the file descriptor previously assigned to @var{fdname} using the
1223f07918fdSMark McLoughlin@code{getfd} command. This is only needed if the file descriptor was never
1224f07918fdSMark McLoughlinused by another monitor command.
1225f07918fdSMark McLoughlinETEXI
1226f07918fdSMark McLoughlin
1227a3a55a2eSLuiz Capitulino    {
1228a3a55a2eSLuiz Capitulino        .name       = "block_passwd",
1229a3a55a2eSLuiz Capitulino        .args_type  = "device:B,password:s",
1230a3a55a2eSLuiz Capitulino        .params     = "block_passwd device password",
1231a3a55a2eSLuiz Capitulino        .help       = "set the password of encrypted block devices",
1232a4dea8a9SLuiz Capitulino        .mhandler.cmd = hmp_block_passwd,
1233a3a55a2eSLuiz Capitulino    },
1234a3a55a2eSLuiz Capitulino
1235a3a55a2eSLuiz CapitulinoSTEXI
1236727f005eSZhi 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}
1237727f005eSZhi Yong Wu@findex block_set_io_throttle
1238727f005eSZhi 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}
1239727f005eSZhi Yong WuETEXI
1240727f005eSZhi Yong Wu
1241727f005eSZhi Yong Wu    {
1242727f005eSZhi Yong Wu        .name       = "block_set_io_throttle",
1243727f005eSZhi Yong Wu        .args_type  = "device:B,bps:l,bps_rd:l,bps_wr:l,iops:l,iops_rd:l,iops_wr:l",
1244727f005eSZhi Yong Wu        .params     = "device bps bps_rd bps_wr iops iops_rd iops_wr",
1245727f005eSZhi Yong Wu        .help       = "change I/O throttle limits for a block drive",
124680047da5SLuiz Capitulino        .mhandler.cmd = hmp_block_set_io_throttle,
1247727f005eSZhi Yong Wu    },
1248727f005eSZhi Yong Wu
1249727f005eSZhi Yong WuSTEXI
1250a3a55a2eSLuiz Capitulino@item block_passwd @var{device} @var{password}
125170fcbbe7SStefan Weil@findex block_passwd
1252a3a55a2eSLuiz CapitulinoSet the encrypted device @var{device} password to @var{password}
1253a3a55a2eSLuiz CapitulinoETEXI
1254b40292e7SJan Kiszka
125533572eceSJan Kiszka    {
12567572150cSGerd Hoffmann        .name       = "set_password",
12577572150cSGerd Hoffmann        .args_type  = "protocol:s,password:s,connected:s?",
12587572150cSGerd Hoffmann        .params     = "protocol password action-if-connected",
12597572150cSGerd Hoffmann        .help       = "set spice/vnc password",
1260fbf796fdSLuiz Capitulino        .mhandler.cmd = hmp_set_password,
12617572150cSGerd Hoffmann    },
12627572150cSGerd Hoffmann
12637572150cSGerd HoffmannSTEXI
12647572150cSGerd Hoffmann@item set_password [ vnc | spice ] password [ action-if-connected ]
12657572150cSGerd Hoffmann@findex set_password
12667572150cSGerd Hoffmann
12677572150cSGerd HoffmannChange spice/vnc password.  Use zero to make the password stay valid
12687572150cSGerd Hoffmannforever.  @var{action-if-connected} specifies what should happen in
12697572150cSGerd Hoffmanncase a connection is established: @var{fail} makes the password change
12707572150cSGerd Hoffmannfail.  @var{disconnect} changes the password and disconnects the
12717572150cSGerd Hoffmannclient.  @var{keep} changes the password and keeps the connection up.
12727572150cSGerd Hoffmann@var{keep} is the default.
12737572150cSGerd HoffmannETEXI
12747572150cSGerd Hoffmann
12757572150cSGerd Hoffmann    {
12767572150cSGerd Hoffmann        .name       = "expire_password",
12777572150cSGerd Hoffmann        .args_type  = "protocol:s,time:s",
12787572150cSGerd Hoffmann        .params     = "protocol time",
12797572150cSGerd Hoffmann        .help       = "set spice/vnc password expire-time",
12809ad5372dSLuiz Capitulino        .mhandler.cmd = hmp_expire_password,
12817572150cSGerd Hoffmann    },
12827572150cSGerd Hoffmann
12837572150cSGerd HoffmannSTEXI
12847572150cSGerd Hoffmann@item expire_password [ vnc | spice ] expire-time
12857572150cSGerd Hoffmann@findex expire_password
12867572150cSGerd Hoffmann
12877572150cSGerd HoffmannSpecify when a password for spice/vnc becomes
12887572150cSGerd Hoffmanninvalid. @var{expire-time} accepts:
12897572150cSGerd Hoffmann
12907572150cSGerd Hoffmann@table @var
12917572150cSGerd Hoffmann@item now
12927572150cSGerd HoffmannInvalidate password instantly.
12937572150cSGerd Hoffmann
12947572150cSGerd Hoffmann@item never
12957572150cSGerd HoffmannPassword stays valid forever.
12967572150cSGerd Hoffmann
12977572150cSGerd Hoffmann@item +nsec
12987572150cSGerd HoffmannPassword stays valid for @var{nsec} seconds starting now.
12997572150cSGerd Hoffmann
13007572150cSGerd Hoffmann@item nsec
13017572150cSGerd HoffmannPassword is invalidated at the given time.  @var{nsec} are the seconds
13027572150cSGerd Hoffmannpassed since 1970, i.e. unix epoch.
13037572150cSGerd Hoffmann
13047572150cSGerd Hoffmann@end table
13057572150cSGerd HoffmannETEXI
13067572150cSGerd Hoffmann
13077572150cSGerd Hoffmann    {
130833572eceSJan Kiszka        .name       = "info",
130933572eceSJan Kiszka        .args_type  = "item:s?",
131033572eceSJan Kiszka        .params     = "[subcommand]",
131133572eceSJan Kiszka        .help       = "show various information about the system state",
13121162daa6SLuiz Capitulino        .mhandler.cmd = do_info,
131333572eceSJan Kiszka    },
131433572eceSJan Kiszka
131533572eceSJan KiszkaSTEXI
131633572eceSJan Kiszka@item info @var{subcommand}
131733572eceSJan Kiszka@findex info
131833572eceSJan KiszkaShow various information about the system state.
131933572eceSJan Kiszka
132033572eceSJan Kiszka@table @option
132133572eceSJan Kiszka@item info version
132233572eceSJan Kiszkashow the version of QEMU
132333572eceSJan Kiszka@item info network
132433572eceSJan Kiszkashow the various VLANs and the associated devices
132533572eceSJan Kiszka@item info chardev
132633572eceSJan Kiszkashow the character devices
132733572eceSJan Kiszka@item info block
132833572eceSJan Kiszkashow the block devices
132933572eceSJan Kiszka@item info blockstats
133033572eceSJan Kiszkashow block device statistics
133133572eceSJan Kiszka@item info registers
133233572eceSJan Kiszkashow the cpu registers
133333572eceSJan Kiszka@item info cpus
133433572eceSJan Kiszkashow infos for each CPU
133533572eceSJan Kiszka@item info history
133633572eceSJan Kiszkashow the command line history
133733572eceSJan Kiszka@item info irq
133833572eceSJan Kiszkashow the interrupts statistics (if available)
133933572eceSJan Kiszka@item info pic
134033572eceSJan Kiszkashow i8259 (PIC) state
134133572eceSJan Kiszka@item info pci
134233572eceSJan Kiszkashow emulated PCI device info
134333572eceSJan Kiszka@item info tlb
1344bebabbc7SScott Woodshow virtual to physical memory mappings (i386, SH4, SPARC, and PPC only)
134533572eceSJan Kiszka@item info mem
134633572eceSJan Kiszkashow the active virtual memory mappings (i386 only)
134733572eceSJan Kiszka@item info jit
134833572eceSJan Kiszkashow dynamic compiler info
134933572eceSJan Kiszka@item info numa
135033572eceSJan Kiszkashow NUMA information
1351b40292e7SJan Kiszka@item info kvm
1352b40292e7SJan Kiszkashow KVM information
135333572eceSJan Kiszka@item info usb
135433572eceSJan Kiszkashow USB devices plugged on the virtual USB hub
135533572eceSJan Kiszka@item info usbhost
135633572eceSJan Kiszkashow all USB host devices
135733572eceSJan Kiszka@item info profile
135833572eceSJan Kiszkashow profiling information
135933572eceSJan Kiszka@item info capture
136033572eceSJan Kiszkashow information about active capturing
136133572eceSJan Kiszka@item info snapshots
136233572eceSJan Kiszkashow list of VM snapshots
136333572eceSJan Kiszka@item info status
136433572eceSJan Kiszkashow the current VM status (running|paused)
136533572eceSJan Kiszka@item info pcmcia
136633572eceSJan Kiszkashow guest PCMCIA status
136733572eceSJan Kiszka@item info mice
136833572eceSJan Kiszkashow which guest mouse is receiving events
136933572eceSJan Kiszka@item info vnc
137033572eceSJan Kiszkashow the vnc server status
137133572eceSJan Kiszka@item info name
137233572eceSJan Kiszkashow the current VM name
137333572eceSJan Kiszka@item info uuid
137433572eceSJan Kiszkashow the current VM UUID
137533572eceSJan Kiszka@item info cpustats
137633572eceSJan Kiszkashow CPU statistics
137733572eceSJan Kiszka@item info usernet
137833572eceSJan Kiszkashow user network stack connection states
137933572eceSJan Kiszka@item info migrate
138033572eceSJan Kiszkashow migration status
138133572eceSJan Kiszka@item info balloon
138233572eceSJan Kiszkashow balloon information
138333572eceSJan Kiszka@item info qtree
138433572eceSJan Kiszkashow device tree
138533572eceSJan Kiszka@item info qdm
138633572eceSJan Kiszkashow qdev device model list
138733572eceSJan Kiszka@item info roms
138833572eceSJan Kiszkashow roms
138933572eceSJan Kiszka@end table
139033572eceSJan KiszkaETEXI
139133572eceSJan Kiszka
13926d8a764eSLluís#ifdef CONFIG_TRACE_SIMPLE
139322890ab5SPrerna SaxenaSTEXI
139422890ab5SPrerna Saxena@item info trace
139522890ab5SPrerna Saxenashow contents of trace buffer
139631965ae2SLluísETEXI
139731965ae2SLluís#endif
139831965ae2SLluís
139931965ae2SLluísSTEXI
140022890ab5SPrerna Saxena@item info trace-events
140122890ab5SPrerna Saxenashow available trace events and their state
140222890ab5SPrerna SaxenaETEXI
140322890ab5SPrerna Saxena
14042313086aSBlue SwirlSTEXI
14052313086aSBlue Swirl@end table
14062313086aSBlue SwirlETEXI
1407