xref: /qemu/hmp-commands.hx (revision 783e9b4826b95e53e33c42db6b4bd7d89bdff147)
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",
74c83c66c3SStefan Hajnoczi        .args_type  = "device:B,speed:o?,base:s?",
75c83c66c3SStefan Hajnoczi        .params     = "device [speed [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",
88882ec7ceSStefan Hajnoczi        .args_type  = "device:B,speed:o",
89882ec7ceSStefan Hajnoczi        .params     = "device speed",
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
954451b799SPaolo Bonzini@item block_job_set_speed
964451b799SPaolo Bonzini@findex block_job_set_speed
972d47c6e9SStefan HajnocziSet maximum speed for a background block operation.
982d47c6e9SStefan HajnocziETEXI
992d47c6e9SStefan Hajnoczi
1002d47c6e9SStefan Hajnoczi    {
101370521a1SStefan Hajnoczi        .name       = "block_job_cancel",
102370521a1SStefan Hajnoczi        .args_type  = "device:B",
103370521a1SStefan Hajnoczi        .params     = "device",
104370521a1SStefan Hajnoczi        .help       = "stop an active block streaming operation",
105370521a1SStefan Hajnoczi        .mhandler.cmd = hmp_block_job_cancel,
106370521a1SStefan Hajnoczi    },
107370521a1SStefan Hajnoczi
108370521a1SStefan HajnocziSTEXI
109370521a1SStefan Hajnoczi@item block_job_cancel
110370521a1SStefan Hajnoczi@findex block_job_cancel
111370521a1SStefan HajnocziStop an active block streaming operation.
112370521a1SStefan HajnocziETEXI
113370521a1SStefan Hajnoczi
114370521a1SStefan 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    {
3559b9df25aSGerd Hoffmann        .name       = "system_wakeup",
3569b9df25aSGerd Hoffmann        .args_type  = "",
3579b9df25aSGerd Hoffmann        .params     = "",
3589b9df25aSGerd Hoffmann        .help       = "wakeup guest from suspend",
3599b9df25aSGerd Hoffmann        .mhandler.cmd = hmp_system_wakeup,
3609b9df25aSGerd Hoffmann    },
3619b9df25aSGerd Hoffmann
3629b9df25aSGerd HoffmannSTEXI
3639b9df25aSGerd Hoffmann@item system_wakeup
3649b9df25aSGerd Hoffmann@findex system_wakeup
3659b9df25aSGerd HoffmannWakeup guest from suspend.
3669b9df25aSGerd HoffmannETEXI
3679b9df25aSGerd Hoffmann
3689b9df25aSGerd Hoffmann    {
369d7f9b689SLuiz Capitulino        .name       = "gdbserver",
370d7f9b689SLuiz Capitulino        .args_type  = "device:s?",
371d7f9b689SLuiz Capitulino        .params     = "[device]",
372d7f9b689SLuiz Capitulino        .help       = "start gdbserver on given device (default 'tcp::1234'), stop with 'none'",
373af4ce882SLuiz Capitulino        .mhandler.cmd = do_gdbserver,
374d7f9b689SLuiz Capitulino    },
375d7f9b689SLuiz Capitulino
3762313086aSBlue SwirlSTEXI
3772313086aSBlue Swirl@item gdbserver [@var{port}]
37870fcbbe7SStefan Weil@findex gdbserver
3792313086aSBlue SwirlStart gdbserver session (default @var{port}=1234)
3802313086aSBlue SwirlETEXI
3812313086aSBlue Swirl
382d7f9b689SLuiz Capitulino    {
383d7f9b689SLuiz Capitulino        .name       = "x",
384d7f9b689SLuiz Capitulino        .args_type  = "fmt:/,addr:l",
385d7f9b689SLuiz Capitulino        .params     = "/fmt addr",
386d7f9b689SLuiz Capitulino        .help       = "virtual memory dump starting at 'addr'",
387af4ce882SLuiz Capitulino        .mhandler.cmd = do_memory_dump,
388d7f9b689SLuiz Capitulino    },
389d7f9b689SLuiz Capitulino
3902313086aSBlue SwirlSTEXI
3912313086aSBlue Swirl@item x/fmt @var{addr}
39270fcbbe7SStefan Weil@findex x
3932313086aSBlue SwirlVirtual memory dump starting at @var{addr}.
3942313086aSBlue SwirlETEXI
3952313086aSBlue Swirl
396d7f9b689SLuiz Capitulino    {
397d7f9b689SLuiz Capitulino        .name       = "xp",
398d7f9b689SLuiz Capitulino        .args_type  = "fmt:/,addr:l",
399d7f9b689SLuiz Capitulino        .params     = "/fmt addr",
400d7f9b689SLuiz Capitulino        .help       = "physical memory dump starting at 'addr'",
401af4ce882SLuiz Capitulino        .mhandler.cmd = do_physical_memory_dump,
402d7f9b689SLuiz Capitulino    },
403d7f9b689SLuiz Capitulino
4042313086aSBlue SwirlSTEXI
4052313086aSBlue Swirl@item xp /@var{fmt} @var{addr}
40670fcbbe7SStefan Weil@findex xp
4072313086aSBlue SwirlPhysical memory dump starting at @var{addr}.
4082313086aSBlue Swirl
4092313086aSBlue Swirl@var{fmt} is a format which tells the command how to format the
4102313086aSBlue Swirldata. Its syntax is: @option{/@{count@}@{format@}@{size@}}
4112313086aSBlue Swirl
4122313086aSBlue Swirl@table @var
4132313086aSBlue Swirl@item count
4142313086aSBlue Swirlis the number of items to be dumped.
4152313086aSBlue Swirl
4162313086aSBlue Swirl@item format
4172313086aSBlue Swirlcan be x (hex), d (signed decimal), u (unsigned decimal), o (octal),
4182313086aSBlue Swirlc (char) or i (asm instruction).
4192313086aSBlue Swirl
4202313086aSBlue Swirl@item size
4212313086aSBlue Swirlcan be b (8 bits), h (16 bits), w (32 bits) or g (64 bits). On x86,
4222313086aSBlue Swirl@code{h} or @code{w} can be specified with the @code{i} format to
4232313086aSBlue Swirlrespectively select 16 or 32 bit code instruction size.
4242313086aSBlue Swirl
4252313086aSBlue Swirl@end table
4262313086aSBlue Swirl
4272313086aSBlue SwirlExamples:
4282313086aSBlue Swirl@itemize
4292313086aSBlue Swirl@item
4302313086aSBlue SwirlDump 10 instructions at the current instruction pointer:
4312313086aSBlue Swirl@example
4322313086aSBlue Swirl(qemu) x/10i $eip
4332313086aSBlue Swirl0x90107063:  ret
4342313086aSBlue Swirl0x90107064:  sti
4352313086aSBlue Swirl0x90107065:  lea    0x0(%esi,1),%esi
4362313086aSBlue Swirl0x90107069:  lea    0x0(%edi,1),%edi
4372313086aSBlue Swirl0x90107070:  ret
4382313086aSBlue Swirl0x90107071:  jmp    0x90107080
4392313086aSBlue Swirl0x90107073:  nop
4402313086aSBlue Swirl0x90107074:  nop
4412313086aSBlue Swirl0x90107075:  nop
4422313086aSBlue Swirl0x90107076:  nop
4432313086aSBlue Swirl@end example
4442313086aSBlue Swirl
4452313086aSBlue Swirl@item
4462313086aSBlue SwirlDump 80 16 bit values at the start of the video memory.
4472313086aSBlue Swirl@smallexample
4482313086aSBlue Swirl(qemu) xp/80hx 0xb8000
4492313086aSBlue Swirl0x000b8000: 0x0b50 0x0b6c 0x0b65 0x0b78 0x0b38 0x0b36 0x0b2f 0x0b42
4502313086aSBlue Swirl0x000b8010: 0x0b6f 0x0b63 0x0b68 0x0b73 0x0b20 0x0b56 0x0b47 0x0b41
4512313086aSBlue Swirl0x000b8020: 0x0b42 0x0b69 0x0b6f 0x0b73 0x0b20 0x0b63 0x0b75 0x0b72
4522313086aSBlue Swirl0x000b8030: 0x0b72 0x0b65 0x0b6e 0x0b74 0x0b2d 0x0b63 0x0b76 0x0b73
4532313086aSBlue Swirl0x000b8040: 0x0b20 0x0b30 0x0b35 0x0b20 0x0b4e 0x0b6f 0x0b76 0x0b20
4542313086aSBlue Swirl0x000b8050: 0x0b32 0x0b30 0x0b30 0x0b33 0x0720 0x0720 0x0720 0x0720
4552313086aSBlue Swirl0x000b8060: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
4562313086aSBlue Swirl0x000b8070: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
4572313086aSBlue Swirl0x000b8080: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
4582313086aSBlue Swirl0x000b8090: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
4592313086aSBlue Swirl@end smallexample
4602313086aSBlue Swirl@end itemize
4612313086aSBlue SwirlETEXI
4622313086aSBlue Swirl
463d7f9b689SLuiz Capitulino    {
464d7f9b689SLuiz Capitulino        .name       = "p|print",
465d7f9b689SLuiz Capitulino        .args_type  = "fmt:/,val:l",
466d7f9b689SLuiz Capitulino        .params     = "/fmt expr",
467d7f9b689SLuiz Capitulino        .help       = "print expression value (use $reg for CPU register access)",
468af4ce882SLuiz Capitulino        .mhandler.cmd = do_print,
469d7f9b689SLuiz Capitulino    },
470d7f9b689SLuiz Capitulino
4712313086aSBlue SwirlSTEXI
4722313086aSBlue Swirl@item p or print/@var{fmt} @var{expr}
47370fcbbe7SStefan Weil@findex print
4742313086aSBlue Swirl
4752313086aSBlue SwirlPrint expression value. Only the @var{format} part of @var{fmt} is
4762313086aSBlue Swirlused.
4772313086aSBlue SwirlETEXI
4782313086aSBlue Swirl
479d7f9b689SLuiz Capitulino    {
480d7f9b689SLuiz Capitulino        .name       = "i",
481d7f9b689SLuiz Capitulino        .args_type  = "fmt:/,addr:i,index:i.",
482d7f9b689SLuiz Capitulino        .params     = "/fmt addr",
483d7f9b689SLuiz Capitulino        .help       = "I/O port read",
484af4ce882SLuiz Capitulino        .mhandler.cmd = do_ioport_read,
485d7f9b689SLuiz Capitulino    },
486d7f9b689SLuiz Capitulino
4872313086aSBlue SwirlSTEXI
4882313086aSBlue SwirlRead I/O port.
4892313086aSBlue SwirlETEXI
4902313086aSBlue Swirl
491d7f9b689SLuiz Capitulino    {
492d7f9b689SLuiz Capitulino        .name       = "o",
493d7f9b689SLuiz Capitulino        .args_type  = "fmt:/,addr:i,val:i",
494d7f9b689SLuiz Capitulino        .params     = "/fmt addr value",
495d7f9b689SLuiz Capitulino        .help       = "I/O port write",
496af4ce882SLuiz Capitulino        .mhandler.cmd = do_ioport_write,
497d7f9b689SLuiz Capitulino    },
498d7f9b689SLuiz Capitulino
499f114784fSJan KiszkaSTEXI
500f114784fSJan KiszkaWrite to I/O port.
501f114784fSJan KiszkaETEXI
5022313086aSBlue Swirl
503d7f9b689SLuiz Capitulino    {
504d7f9b689SLuiz Capitulino        .name       = "sendkey",
505d7f9b689SLuiz Capitulino        .args_type  = "string:s,hold_time:i?",
506d7f9b689SLuiz Capitulino        .params     = "keys [hold_ms]",
507d7f9b689SLuiz Capitulino        .help       = "send keys to the VM (e.g. 'sendkey ctrl-alt-f1', default hold time=100 ms)",
508af4ce882SLuiz Capitulino        .mhandler.cmd = do_sendkey,
509d7f9b689SLuiz Capitulino    },
510d7f9b689SLuiz Capitulino
5112313086aSBlue SwirlSTEXI
5122313086aSBlue Swirl@item sendkey @var{keys}
51370fcbbe7SStefan Weil@findex sendkey
5142313086aSBlue Swirl
5152313086aSBlue SwirlSend @var{keys} to the emulator. @var{keys} could be the name of the
5162313086aSBlue Swirlkey or @code{#} followed by the raw value in either decimal or hexadecimal
5172313086aSBlue Swirlformat. Use @code{-} to press several keys simultaneously. Example:
5182313086aSBlue Swirl@example
5192313086aSBlue Swirlsendkey ctrl-alt-f1
5202313086aSBlue Swirl@end example
5212313086aSBlue Swirl
5222313086aSBlue SwirlThis command is useful to send keys that your graphical user interface
5232313086aSBlue Swirlintercepts at low level, such as @code{ctrl-alt-f1} in X Window.
5242313086aSBlue SwirlETEXI
5252313086aSBlue Swirl
526d7f9b689SLuiz Capitulino    {
527d7f9b689SLuiz Capitulino        .name       = "system_reset",
528d7f9b689SLuiz Capitulino        .args_type  = "",
529d7f9b689SLuiz Capitulino        .params     = "",
530d7f9b689SLuiz Capitulino        .help       = "reset the system",
53138d22653SLuiz Capitulino        .mhandler.cmd = hmp_system_reset,
532d7f9b689SLuiz Capitulino    },
533d7f9b689SLuiz Capitulino
5342313086aSBlue SwirlSTEXI
5352313086aSBlue Swirl@item system_reset
53670fcbbe7SStefan Weil@findex system_reset
5372313086aSBlue Swirl
5382313086aSBlue SwirlReset the system.
5392313086aSBlue SwirlETEXI
5402313086aSBlue Swirl
541d7f9b689SLuiz Capitulino    {
542d7f9b689SLuiz Capitulino        .name       = "system_powerdown",
543d7f9b689SLuiz Capitulino        .args_type  = "",
544d7f9b689SLuiz Capitulino        .params     = "",
545d7f9b689SLuiz Capitulino        .help       = "send system power down event",
5465bc465e4SLuiz Capitulino        .mhandler.cmd = hmp_system_powerdown,
547d7f9b689SLuiz Capitulino    },
548d7f9b689SLuiz Capitulino
5492313086aSBlue SwirlSTEXI
5502313086aSBlue Swirl@item system_powerdown
55170fcbbe7SStefan Weil@findex system_powerdown
5522313086aSBlue Swirl
5532313086aSBlue SwirlPower down the system (if supported).
5542313086aSBlue SwirlETEXI
5552313086aSBlue Swirl
556d7f9b689SLuiz Capitulino    {
557d7f9b689SLuiz Capitulino        .name       = "sum",
558d7f9b689SLuiz Capitulino        .args_type  = "start:i,size:i",
559d7f9b689SLuiz Capitulino        .params     = "addr size",
560d7f9b689SLuiz Capitulino        .help       = "compute the checksum of a memory region",
561af4ce882SLuiz Capitulino        .mhandler.cmd = do_sum,
562d7f9b689SLuiz Capitulino    },
563d7f9b689SLuiz Capitulino
5642313086aSBlue SwirlSTEXI
5652313086aSBlue Swirl@item sum @var{addr} @var{size}
56670fcbbe7SStefan Weil@findex sum
5672313086aSBlue Swirl
5682313086aSBlue SwirlCompute the checksum of a memory region.
5692313086aSBlue SwirlETEXI
5702313086aSBlue Swirl
571d7f9b689SLuiz Capitulino    {
572d7f9b689SLuiz Capitulino        .name       = "usb_add",
573d7f9b689SLuiz Capitulino        .args_type  = "devname:s",
574d7f9b689SLuiz Capitulino        .params     = "device",
575d7f9b689SLuiz Capitulino        .help       = "add USB device (e.g. 'host:bus.addr' or 'host:vendor_id:product_id')",
576af4ce882SLuiz Capitulino        .mhandler.cmd = do_usb_add,
577d7f9b689SLuiz Capitulino    },
578d7f9b689SLuiz Capitulino
5792313086aSBlue SwirlSTEXI
5802313086aSBlue Swirl@item usb_add @var{devname}
58170fcbbe7SStefan Weil@findex usb_add
5822313086aSBlue Swirl
5832313086aSBlue SwirlAdd the USB device @var{devname}.  For details of available devices see
5842313086aSBlue Swirl@ref{usb_devices}
5852313086aSBlue SwirlETEXI
5862313086aSBlue Swirl
587d7f9b689SLuiz Capitulino    {
588d7f9b689SLuiz Capitulino        .name       = "usb_del",
589d7f9b689SLuiz Capitulino        .args_type  = "devname:s",
590d7f9b689SLuiz Capitulino        .params     = "device",
591d7f9b689SLuiz Capitulino        .help       = "remove USB device 'bus.addr'",
592af4ce882SLuiz Capitulino        .mhandler.cmd = do_usb_del,
593d7f9b689SLuiz Capitulino    },
594d7f9b689SLuiz Capitulino
5952313086aSBlue SwirlSTEXI
5962313086aSBlue Swirl@item usb_del @var{devname}
59770fcbbe7SStefan Weil@findex usb_del
5982313086aSBlue Swirl
5992313086aSBlue SwirlRemove the USB device @var{devname} from the QEMU virtual USB
6002313086aSBlue Swirlhub. @var{devname} has the syntax @code{bus.addr}. Use the monitor
6012313086aSBlue Swirlcommand @code{info usb} to see the devices you can remove.
6022313086aSBlue SwirlETEXI
6032313086aSBlue Swirl
604d7f9b689SLuiz Capitulino    {
605d7f9b689SLuiz Capitulino        .name       = "device_add",
606c7e4e8ceSMarkus Armbruster        .args_type  = "device:O",
607c7e4e8ceSMarkus Armbruster        .params     = "driver[,prop=value][,...]",
608d7f9b689SLuiz Capitulino        .help       = "add device, like -device on the command line",
6098bc27249SMarkus Armbruster        .user_print = monitor_user_noop,
6108bc27249SMarkus Armbruster        .mhandler.cmd_new = do_device_add,
611d7f9b689SLuiz Capitulino    },
612d7f9b689SLuiz Capitulino
6133418bd25SGerd HoffmannSTEXI
6143418bd25SGerd Hoffmann@item device_add @var{config}
61570fcbbe7SStefan Weil@findex device_add
6163418bd25SGerd Hoffmann
6173418bd25SGerd HoffmannAdd device.
6183418bd25SGerd HoffmannETEXI
6193418bd25SGerd Hoffmann
620d7f9b689SLuiz Capitulino    {
621d7f9b689SLuiz Capitulino        .name       = "device_del",
622d7f9b689SLuiz Capitulino        .args_type  = "id:s",
623d7f9b689SLuiz Capitulino        .params     = "device",
624d7f9b689SLuiz Capitulino        .help       = "remove device",
625a15fef21SLuiz Capitulino        .mhandler.cmd = hmp_device_del,
626d7f9b689SLuiz Capitulino    },
627d7f9b689SLuiz Capitulino
6283418bd25SGerd HoffmannSTEXI
6293418bd25SGerd Hoffmann@item device_del @var{id}
63070fcbbe7SStefan Weil@findex device_del
6313418bd25SGerd Hoffmann
6323418bd25SGerd HoffmannRemove device @var{id}.
6333418bd25SGerd HoffmannETEXI
6343418bd25SGerd Hoffmann
635d7f9b689SLuiz Capitulino    {
636d7f9b689SLuiz Capitulino        .name       = "cpu",
637d7f9b689SLuiz Capitulino        .args_type  = "index:i",
638d7f9b689SLuiz Capitulino        .params     = "index",
639d7f9b689SLuiz Capitulino        .help       = "set the default CPU",
640755f1968SLuiz Capitulino        .mhandler.cmd = hmp_cpu,
641d7f9b689SLuiz Capitulino    },
6423418bd25SGerd Hoffmann
6432313086aSBlue SwirlSTEXI
644c427ea9cSMarkus Armbruster@item cpu @var{index}
645c427ea9cSMarkus Armbruster@findex cpu
6462313086aSBlue SwirlSet the default CPU.
6472313086aSBlue SwirlETEXI
6482313086aSBlue Swirl
649d7f9b689SLuiz Capitulino    {
650d7f9b689SLuiz Capitulino        .name       = "mouse_move",
651d7f9b689SLuiz Capitulino        .args_type  = "dx_str:s,dy_str:s,dz_str:s?",
652d7f9b689SLuiz Capitulino        .params     = "dx dy [dz]",
653d7f9b689SLuiz Capitulino        .help       = "send mouse move events",
654af4ce882SLuiz Capitulino        .mhandler.cmd = do_mouse_move,
655d7f9b689SLuiz Capitulino    },
656d7f9b689SLuiz Capitulino
6572313086aSBlue SwirlSTEXI
6582313086aSBlue Swirl@item mouse_move @var{dx} @var{dy} [@var{dz}]
65970fcbbe7SStefan Weil@findex mouse_move
6602313086aSBlue SwirlMove the active mouse to the specified coordinates @var{dx} @var{dy}
6612313086aSBlue Swirlwith optional scroll axis @var{dz}.
6622313086aSBlue SwirlETEXI
6632313086aSBlue Swirl
664d7f9b689SLuiz Capitulino    {
665d7f9b689SLuiz Capitulino        .name       = "mouse_button",
666d7f9b689SLuiz Capitulino        .args_type  = "button_state:i",
667d7f9b689SLuiz Capitulino        .params     = "state",
668d7f9b689SLuiz Capitulino        .help       = "change mouse button state (1=L, 2=M, 4=R)",
669af4ce882SLuiz Capitulino        .mhandler.cmd = do_mouse_button,
670d7f9b689SLuiz Capitulino    },
671d7f9b689SLuiz Capitulino
6722313086aSBlue SwirlSTEXI
6732313086aSBlue Swirl@item mouse_button @var{val}
67470fcbbe7SStefan Weil@findex mouse_button
6752313086aSBlue SwirlChange the active mouse button state @var{val} (1=L, 2=M, 4=R).
6762313086aSBlue SwirlETEXI
6772313086aSBlue Swirl
678d7f9b689SLuiz Capitulino    {
679d7f9b689SLuiz Capitulino        .name       = "mouse_set",
680d7f9b689SLuiz Capitulino        .args_type  = "index:i",
681d7f9b689SLuiz Capitulino        .params     = "index",
682d7f9b689SLuiz Capitulino        .help       = "set which mouse device receives events",
683af4ce882SLuiz Capitulino        .mhandler.cmd = do_mouse_set,
684d7f9b689SLuiz Capitulino    },
685d7f9b689SLuiz Capitulino
6862313086aSBlue SwirlSTEXI
6872313086aSBlue Swirl@item mouse_set @var{index}
68870fcbbe7SStefan Weil@findex mouse_set
6892313086aSBlue SwirlSet which mouse device receives events at given @var{index}, index
6902313086aSBlue Swirlcan be obtained with
6912313086aSBlue Swirl@example
6922313086aSBlue Swirlinfo mice
6932313086aSBlue Swirl@end example
6942313086aSBlue SwirlETEXI
6952313086aSBlue Swirl
6962313086aSBlue Swirl#ifdef HAS_AUDIO
697d7f9b689SLuiz Capitulino    {
698d7f9b689SLuiz Capitulino        .name       = "wavcapture",
699d7f9b689SLuiz Capitulino        .args_type  = "path:F,freq:i?,bits:i?,nchannels:i?",
700d7f9b689SLuiz Capitulino        .params     = "path [frequency [bits [channels]]]",
701d7f9b689SLuiz Capitulino        .help       = "capture audio to a wave file (default frequency=44100 bits=16 channels=2)",
702af4ce882SLuiz Capitulino        .mhandler.cmd = do_wav_capture,
703d7f9b689SLuiz Capitulino    },
7042313086aSBlue Swirl#endif
7052313086aSBlue SwirlSTEXI
7062313086aSBlue Swirl@item wavcapture @var{filename} [@var{frequency} [@var{bits} [@var{channels}]]]
70770fcbbe7SStefan Weil@findex wavcapture
7082313086aSBlue SwirlCapture audio into @var{filename}. Using sample rate @var{frequency}
7092313086aSBlue Swirlbits per sample @var{bits} and number of channels @var{channels}.
7102313086aSBlue Swirl
7112313086aSBlue SwirlDefaults:
7122313086aSBlue Swirl@itemize @minus
7132313086aSBlue Swirl@item Sample rate = 44100 Hz - CD quality
7142313086aSBlue Swirl@item Bits = 16
7152313086aSBlue Swirl@item Number of channels = 2 - Stereo
7162313086aSBlue Swirl@end itemize
7172313086aSBlue SwirlETEXI
7182313086aSBlue Swirl
7192313086aSBlue Swirl#ifdef HAS_AUDIO
720d7f9b689SLuiz Capitulino    {
721d7f9b689SLuiz Capitulino        .name       = "stopcapture",
722d7f9b689SLuiz Capitulino        .args_type  = "n:i",
723d7f9b689SLuiz Capitulino        .params     = "capture index",
724d7f9b689SLuiz Capitulino        .help       = "stop capture",
725af4ce882SLuiz Capitulino        .mhandler.cmd = do_stop_capture,
726d7f9b689SLuiz Capitulino    },
7272313086aSBlue Swirl#endif
7282313086aSBlue SwirlSTEXI
7292313086aSBlue Swirl@item stopcapture @var{index}
73070fcbbe7SStefan Weil@findex stopcapture
7312313086aSBlue SwirlStop capture with a given @var{index}, index can be obtained with
7322313086aSBlue Swirl@example
7332313086aSBlue Swirlinfo capture
7342313086aSBlue Swirl@end example
7352313086aSBlue SwirlETEXI
7362313086aSBlue Swirl
737d7f9b689SLuiz Capitulino    {
738d7f9b689SLuiz Capitulino        .name       = "memsave",
739d7f9b689SLuiz Capitulino        .args_type  = "val:l,size:i,filename:s",
740d7f9b689SLuiz Capitulino        .params     = "addr size file",
741d7f9b689SLuiz Capitulino        .help       = "save to disk virtual memory dump starting at 'addr' of size 'size'",
7420cfd6a9aSLuiz Capitulino        .mhandler.cmd = hmp_memsave,
743d7f9b689SLuiz Capitulino    },
744d7f9b689SLuiz Capitulino
7452313086aSBlue SwirlSTEXI
7462313086aSBlue Swirl@item memsave @var{addr} @var{size} @var{file}
74770fcbbe7SStefan Weil@findex memsave
7482313086aSBlue Swirlsave to disk virtual memory dump starting at @var{addr} of size @var{size}.
7492313086aSBlue SwirlETEXI
7502313086aSBlue Swirl
751d7f9b689SLuiz Capitulino    {
752d7f9b689SLuiz Capitulino        .name       = "pmemsave",
753d7f9b689SLuiz Capitulino        .args_type  = "val:l,size:i,filename:s",
754d7f9b689SLuiz Capitulino        .params     = "addr size file",
755d7f9b689SLuiz Capitulino        .help       = "save to disk physical memory dump starting at 'addr' of size 'size'",
7566d3962bfSLuiz Capitulino        .mhandler.cmd = hmp_pmemsave,
757d7f9b689SLuiz Capitulino    },
758d7f9b689SLuiz Capitulino
7592313086aSBlue SwirlSTEXI
7602313086aSBlue Swirl@item pmemsave @var{addr} @var{size} @var{file}
76170fcbbe7SStefan Weil@findex pmemsave
7622313086aSBlue Swirlsave to disk physical memory dump starting at @var{addr} of size @var{size}.
7632313086aSBlue SwirlETEXI
7642313086aSBlue Swirl
765d7f9b689SLuiz Capitulino    {
766d7f9b689SLuiz Capitulino        .name       = "boot_set",
767d7f9b689SLuiz Capitulino        .args_type  = "bootdevice:s",
768d7f9b689SLuiz Capitulino        .params     = "bootdevice",
769d7f9b689SLuiz Capitulino        .help       = "define new values for the boot device list",
770af4ce882SLuiz Capitulino        .mhandler.cmd = do_boot_set,
771d7f9b689SLuiz Capitulino    },
772d7f9b689SLuiz Capitulino
7732313086aSBlue SwirlSTEXI
7742313086aSBlue Swirl@item boot_set @var{bootdevicelist}
77570fcbbe7SStefan Weil@findex boot_set
7762313086aSBlue Swirl
7772313086aSBlue SwirlDefine new values for the boot device list. Those values will override
7782313086aSBlue Swirlthe values specified on the command line through the @code{-boot} option.
7792313086aSBlue Swirl
7802313086aSBlue SwirlThe values that can be specified here depend on the machine type, but are
7812313086aSBlue Swirlthe same that can be specified in the @code{-boot} command line option.
7822313086aSBlue SwirlETEXI
7832313086aSBlue Swirl
7842313086aSBlue Swirl#if defined(TARGET_I386)
785d7f9b689SLuiz Capitulino    {
786d7f9b689SLuiz Capitulino        .name       = "nmi",
787e9b4b432SLuiz Capitulino        .args_type  = "",
788e9b4b432SLuiz Capitulino        .params     = "",
789e9b4b432SLuiz Capitulino        .help       = "inject an NMI on all guest's CPUs",
790ab49ab5cSLuiz Capitulino        .mhandler.cmd = hmp_inject_nmi,
791d7f9b689SLuiz Capitulino    },
7922313086aSBlue Swirl#endif
7932313086aSBlue SwirlSTEXI
7942313086aSBlue Swirl@item nmi @var{cpu}
79570fcbbe7SStefan Weil@findex nmi
7962313086aSBlue SwirlInject an NMI on the given CPU (x86 only).
7972313086aSBlue SwirlETEXI
7982313086aSBlue Swirl
799d7f9b689SLuiz Capitulino    {
800d7f9b689SLuiz Capitulino        .name       = "migrate",
801fbc3d96cSlirans@il.ibm.com        .args_type  = "detach:-d,blk:-b,inc:-i,uri:s",
802fbc3d96cSlirans@il.ibm.com        .params     = "[-d] [-b] [-i] uri",
803fbc3d96cSlirans@il.ibm.com        .help       = "migrate to URI (using -d to not wait for completion)"
804fbc3d96cSlirans@il.ibm.com		      "\n\t\t\t -b for migration without shared storage with"
805fbc3d96cSlirans@il.ibm.com		      " full copy of disk\n\t\t\t -i for migration without "
806fbc3d96cSlirans@il.ibm.com		      "shared storage with incremental copy of disk "
807fbc3d96cSlirans@il.ibm.com		      "(base image shared between src and destination)",
808e1c37d0eSLuiz Capitulino        .mhandler.cmd = hmp_migrate,
809d7f9b689SLuiz Capitulino    },
810d7f9b689SLuiz Capitulino
811fbc3d96cSlirans@il.ibm.com
8122313086aSBlue SwirlSTEXI
813fbc3d96cSlirans@il.ibm.com@item migrate [-d] [-b] [-i] @var{uri}
81470fcbbe7SStefan Weil@findex migrate
8152313086aSBlue SwirlMigrate to @var{uri} (using -d to not wait for completion).
816fbc3d96cSlirans@il.ibm.com	-b for migration with full copy of disk
817fbc3d96cSlirans@il.ibm.com	-i for migration with incremental copy of disk (base image is shared)
8182313086aSBlue SwirlETEXI
8192313086aSBlue Swirl
820d7f9b689SLuiz Capitulino    {
821d7f9b689SLuiz Capitulino        .name       = "migrate_cancel",
822d7f9b689SLuiz Capitulino        .args_type  = "",
823d7f9b689SLuiz Capitulino        .params     = "",
824d7f9b689SLuiz Capitulino        .help       = "cancel the current VM migration",
8256cdedb07SLuiz Capitulino        .mhandler.cmd = hmp_migrate_cancel,
826d7f9b689SLuiz Capitulino    },
827d7f9b689SLuiz Capitulino
8282313086aSBlue SwirlSTEXI
8292313086aSBlue Swirl@item migrate_cancel
83070fcbbe7SStefan Weil@findex migrate_cancel
8312313086aSBlue SwirlCancel the current VM migration.
8322313086aSBlue SwirlETEXI
8332313086aSBlue Swirl
834d7f9b689SLuiz Capitulino    {
835d7f9b689SLuiz Capitulino        .name       = "migrate_set_speed",
836ed3d4a80SJes Sorensen        .args_type  = "value:o",
837d7f9b689SLuiz Capitulino        .params     = "value",
838ed3d4a80SJes Sorensen        .help       = "set maximum speed (in bytes) for migrations. "
839ed3d4a80SJes Sorensen	"Defaults to MB if no size suffix is specified, ie. B/K/M/G/T",
8403dc85383SLuiz Capitulino        .mhandler.cmd = hmp_migrate_set_speed,
841d7f9b689SLuiz Capitulino    },
842d7f9b689SLuiz Capitulino
8432313086aSBlue SwirlSTEXI
8442313086aSBlue Swirl@item migrate_set_speed @var{value}
84570fcbbe7SStefan Weil@findex migrate_set_speed
8462313086aSBlue SwirlSet maximum speed to @var{value} (in bytes) for migrations.
8472313086aSBlue SwirlETEXI
8482313086aSBlue Swirl
849d7f9b689SLuiz Capitulino    {
850d7f9b689SLuiz Capitulino        .name       = "migrate_set_downtime",
851b0fbf7d3SMarkus Armbruster        .args_type  = "value:T",
852d7f9b689SLuiz Capitulino        .params     = "value",
853d7f9b689SLuiz Capitulino        .help       = "set maximum tolerated downtime (in seconds) for migrations",
8544f0a993bSLuiz Capitulino        .mhandler.cmd = hmp_migrate_set_downtime,
855d7f9b689SLuiz Capitulino    },
8562ea42952SGlauber Costa
8572ea42952SGlauber CostaSTEXI
8582ea42952SGlauber Costa@item migrate_set_downtime @var{second}
85970fcbbe7SStefan Weil@findex migrate_set_downtime
8602ea42952SGlauber CostaSet maximum tolerated downtime (in seconds) for migration.
8612ea42952SGlauber CostaETEXI
8622ea42952SGlauber Costa
863f8882568SJes Sorensen    {
8642ea720dbSJes Sorensen        .name       = "client_migrate_info",
8652ea720dbSJes Sorensen        .args_type  = "protocol:s,hostname:s,port:i?,tls-port:i?,cert-subject:s?",
8662ea720dbSJes Sorensen        .params     = "protocol hostname port tls-port cert-subject",
8672ea720dbSJes Sorensen        .help       = "send migration info to spice/vnc client",
8682ea720dbSJes Sorensen        .user_print = monitor_user_noop,
869edc5cb1aSYonit Halperin        .mhandler.cmd_async = client_migrate_info,
870edc5cb1aSYonit Halperin        .flags      = MONITOR_CMD_ASYNC,
871f8882568SJes Sorensen    },
872f8882568SJes Sorensen
873f8882568SJes SorensenSTEXI
874e866e239SGerd Hoffmann@item client_migrate_info @var{protocol} @var{hostname} @var{port} @var{tls-port} @var{cert-subject}
875e866e239SGerd Hoffmann@findex client_migrate_info
876e866e239SGerd HoffmannSet the spice/vnc connection info for the migration target.  The spice/vnc
877e866e239SGerd Hoffmannserver will ask the spice/vnc client to automatically reconnect using the
878e866e239SGerd Hoffmannnew parameters (if specified) once the vm migration finished successfully.
879e866e239SGerd HoffmannETEXI
880e866e239SGerd Hoffmann
881*783e9b48SWen Congyang#if defined(CONFIG_HAVE_CORE_DUMP)
882*783e9b48SWen Congyang    {
883*783e9b48SWen Congyang        .name       = "dump-guest-memory",
884*783e9b48SWen Congyang        .args_type  = "paging:-p,protocol:s,begin:i?,length:i?",
885*783e9b48SWen Congyang        .params     = "[-p] protocol [begin] [length]",
886*783e9b48SWen Congyang        .help       = "dump guest memory to file"
887*783e9b48SWen Congyang                      "\n\t\t\t begin(optional): the starting physical address"
888*783e9b48SWen Congyang                      "\n\t\t\t length(optional): the memory size, in bytes",
889*783e9b48SWen Congyang        .user_print = monitor_user_noop,
890*783e9b48SWen Congyang        .mhandler.cmd = hmp_dump_guest_memory,
891*783e9b48SWen Congyang    },
892*783e9b48SWen Congyang
893*783e9b48SWen Congyang
894*783e9b48SWen CongyangSTEXI
895*783e9b48SWen Congyang@item dump-guest-memory [-p] @var{protocol} @var{begin} @var{length}
896*783e9b48SWen Congyang@findex dump-guest-memory
897*783e9b48SWen CongyangDump guest memory to @var{protocol}. The file can be processed with crash or
898*783e9b48SWen Congyanggdb.
899*783e9b48SWen Congyang  protocol: destination file(started with "file:") or destination file
900*783e9b48SWen Congyang            descriptor (started with "fd:")
901*783e9b48SWen Congyang    paging: do paging to get guest's memory mapping
902*783e9b48SWen Congyang     begin: the starting physical address. It's optional, and should be
903*783e9b48SWen Congyang            specified with length together.
904*783e9b48SWen Congyang    length: the memory size, in bytes. It's optional, and should be specified
905*783e9b48SWen Congyang            with begin together.
906*783e9b48SWen CongyangETEXI
907*783e9b48SWen Congyang#endif
908*783e9b48SWen Congyang
909e866e239SGerd Hoffmann    {
9102ea720dbSJes Sorensen        .name       = "snapshot_blkdev",
9116cc2a415SPaolo Bonzini        .args_type  = "reuse:-n,device:B,snapshot-file:s?,format:s?",
9126cc2a415SPaolo Bonzini        .params     = "[-n] device [new-image-file] [format]",
9132ea720dbSJes Sorensen        .help       = "initiates a live snapshot\n\t\t\t"
9142ea720dbSJes Sorensen                      "of device. If a new image file is specified, the\n\t\t\t"
9152ea720dbSJes Sorensen                      "new image file will become the new root image.\n\t\t\t"
9162ea720dbSJes Sorensen                      "If format is specified, the snapshot file will\n\t\t\t"
9172ea720dbSJes Sorensen                      "be created in that format. Otherwise the\n\t\t\t"
9186cc2a415SPaolo Bonzini                      "snapshot will be internal! (currently unsupported).\n\t\t\t"
9196cc2a415SPaolo Bonzini                      "The default format is qcow2.  The -n flag requests QEMU\n\t\t\t"
9206cc2a415SPaolo Bonzini                      "to reuse the image found in new-image-file, instead of\n\t\t\t"
9216cc2a415SPaolo Bonzini                      "recreating it from scratch.",
9226106e249SLuiz Capitulino        .mhandler.cmd = hmp_snapshot_blkdev,
923e866e239SGerd Hoffmann    },
924e866e239SGerd Hoffmann
925e866e239SGerd HoffmannSTEXI
926f8882568SJes Sorensen@item snapshot_blkdev
927f8882568SJes Sorensen@findex snapshot_blkdev
928f8882568SJes SorensenSnapshot device, using snapshot file as target if provided
929f8882568SJes SorensenETEXI
930f8882568SJes Sorensen
931d7f9b689SLuiz Capitulino    {
932d7f9b689SLuiz Capitulino        .name       = "drive_add",
933d7f9b689SLuiz Capitulino        .args_type  = "pci_addr:s,opts:s",
934d7f9b689SLuiz Capitulino        .params     = "[[<domain>:]<bus>:]<slot>\n"
9352313086aSBlue Swirl                      "[file=file][,if=type][,bus=n]\n"
936fb0490f6SStefan Hajnoczi                      "[,unit=m][,media=d][,index=i]\n"
9372313086aSBlue Swirl                      "[,cyls=c,heads=h,secs=s[,trans=t]]\n"
938fb0490f6SStefan Hajnoczi                      "[,snapshot=on|off][,cache=on|off]\n"
939fb0490f6SStefan Hajnoczi                      "[,readonly=on|off][,copy-on-read=on|off]",
940d7f9b689SLuiz Capitulino        .help       = "add drive to PCI storage controller",
941af4ce882SLuiz Capitulino        .mhandler.cmd = drive_hot_add,
942d7f9b689SLuiz Capitulino    },
943d7f9b689SLuiz Capitulino
9442313086aSBlue SwirlSTEXI
9452313086aSBlue Swirl@item drive_add
94670fcbbe7SStefan Weil@findex drive_add
9472313086aSBlue SwirlAdd drive to PCI storage controller.
9482313086aSBlue SwirlETEXI
9492313086aSBlue Swirl
9502313086aSBlue Swirl#if defined(TARGET_I386)
951d7f9b689SLuiz Capitulino    {
952d7f9b689SLuiz Capitulino        .name       = "pci_add",
953d7f9b689SLuiz Capitulino        .args_type  = "pci_addr:s,type:s,opts:s?",
954d7f9b689SLuiz Capitulino        .params     = "auto|[[<domain>:]<bus>:]<slot> nic|storage [[vlan=n][,macaddr=addr][,model=type]] [file=file][,if=type][,bus=nr]...",
955d7f9b689SLuiz Capitulino        .help       = "hot-add PCI device",
9566c6a58aeSMarkus Armbruster        .mhandler.cmd = pci_device_hot_add,
957d7f9b689SLuiz Capitulino    },
9582313086aSBlue Swirl#endif
959d7f9b689SLuiz Capitulino
9602313086aSBlue SwirlSTEXI
9612313086aSBlue Swirl@item pci_add
96270fcbbe7SStefan Weil@findex pci_add
9632313086aSBlue SwirlHot-add PCI device.
9642313086aSBlue SwirlETEXI
9652313086aSBlue Swirl
9662313086aSBlue Swirl#if defined(TARGET_I386)
967d7f9b689SLuiz Capitulino    {
968d7f9b689SLuiz Capitulino        .name       = "pci_del",
969d7f9b689SLuiz Capitulino        .args_type  = "pci_addr:s",
970d7f9b689SLuiz Capitulino        .params     = "[[<domain>:]<bus>:]<slot>",
971d7f9b689SLuiz Capitulino        .help       = "hot remove PCI device",
972b752daf0SMarkus Armbruster        .mhandler.cmd = do_pci_device_hot_remove,
973d7f9b689SLuiz Capitulino    },
9742313086aSBlue Swirl#endif
975d7f9b689SLuiz Capitulino
9762313086aSBlue SwirlSTEXI
9772313086aSBlue Swirl@item pci_del
97870fcbbe7SStefan Weil@findex pci_del
9792313086aSBlue SwirlHot remove PCI device.
9802313086aSBlue SwirlETEXI
9812313086aSBlue Swirl
982d7f9b689SLuiz Capitulino    {
9832ae63bdaSIsaku Yamahata        .name       = "pcie_aer_inject_error",
9842ae63bdaSIsaku Yamahata        .args_type  = "advisory_non_fatal:-a,correctable:-c,"
9852ae63bdaSIsaku Yamahata	              "id:s,error_status:s,"
9862ae63bdaSIsaku Yamahata	              "header0:i?,header1:i?,header2:i?,header3:i?,"
9872ae63bdaSIsaku Yamahata	              "prefix0:i?,prefix1:i?,prefix2:i?,prefix3:i?",
9882ae63bdaSIsaku Yamahata        .params     = "[-a] [-c] id "
9892ae63bdaSIsaku Yamahata                      "<error_status> [<tlp header> [<tlp header prefix>]]",
9902ae63bdaSIsaku Yamahata        .help       = "inject pcie aer error\n\t\t\t"
9912ae63bdaSIsaku Yamahata	              " -a for advisory non fatal error\n\t\t\t"
9922ae63bdaSIsaku Yamahata	              " -c for correctable error\n\t\t\t"
9932ae63bdaSIsaku Yamahata                      "<id> = qdev device id\n\t\t\t"
9942ae63bdaSIsaku Yamahata                      "<error_status> = error string or 32bit\n\t\t\t"
9952ae63bdaSIsaku Yamahata                      "<tlb header> = 32bit x 4\n\t\t\t"
9962ae63bdaSIsaku Yamahata                      "<tlb header prefix> = 32bit x 4",
9972ae63bdaSIsaku Yamahata        .user_print  = pcie_aer_inject_error_print,
9981f3392b7SZhi Yong Wu        .mhandler.cmd_new = do_pcie_aer_inject_error,
9992ae63bdaSIsaku Yamahata    },
10002ae63bdaSIsaku Yamahata
10012ae63bdaSIsaku YamahataSTEXI
10022ae63bdaSIsaku Yamahata@item pcie_aer_inject_error
10032ae63bdaSIsaku Yamahata@findex pcie_aer_inject_error
10042ae63bdaSIsaku YamahataInject PCIe AER error
10052ae63bdaSIsaku YamahataETEXI
10062ae63bdaSIsaku Yamahata
10072ae63bdaSIsaku Yamahata    {
1008d7f9b689SLuiz Capitulino        .name       = "host_net_add",
1009d7f9b689SLuiz Capitulino        .args_type  = "device:s,opts:s?",
1010d7f9b689SLuiz Capitulino        .params     = "tap|user|socket|vde|dump [options]",
1011d7f9b689SLuiz Capitulino        .help       = "add host VLAN client",
1012af4ce882SLuiz Capitulino        .mhandler.cmd = net_host_device_add,
1013d7f9b689SLuiz Capitulino    },
1014d7f9b689SLuiz Capitulino
10152313086aSBlue SwirlSTEXI
10162313086aSBlue Swirl@item host_net_add
101770fcbbe7SStefan Weil@findex host_net_add
10182313086aSBlue SwirlAdd host VLAN client.
10192313086aSBlue SwirlETEXI
10202313086aSBlue Swirl
1021d7f9b689SLuiz Capitulino    {
1022d7f9b689SLuiz Capitulino        .name       = "host_net_remove",
1023d7f9b689SLuiz Capitulino        .args_type  = "vlan_id:i,device:s",
1024d7f9b689SLuiz Capitulino        .params     = "vlan_id name",
1025d7f9b689SLuiz Capitulino        .help       = "remove host VLAN client",
1026af4ce882SLuiz Capitulino        .mhandler.cmd = net_host_device_remove,
1027d7f9b689SLuiz Capitulino    },
1028d7f9b689SLuiz Capitulino
10292313086aSBlue SwirlSTEXI
10302313086aSBlue Swirl@item host_net_remove
103170fcbbe7SStefan Weil@findex host_net_remove
10322313086aSBlue SwirlRemove host VLAN client.
10332313086aSBlue SwirlETEXI
10342313086aSBlue Swirl
1035ae82d324SMarkus Armbruster    {
1036ae82d324SMarkus Armbruster        .name       = "netdev_add",
1037ae82d324SMarkus Armbruster        .args_type  = "netdev:O",
1038ae82d324SMarkus Armbruster        .params     = "[user|tap|socket],id=str[,prop=value][,...]",
1039ae82d324SMarkus Armbruster        .help       = "add host network device",
1040ae82d324SMarkus Armbruster        .user_print = monitor_user_noop,
1041ae82d324SMarkus Armbruster        .mhandler.cmd_new = do_netdev_add,
1042ae82d324SMarkus Armbruster    },
1043ae82d324SMarkus Armbruster
1044ae82d324SMarkus ArmbrusterSTEXI
1045ae82d324SMarkus Armbruster@item netdev_add
1046ae82d324SMarkus Armbruster@findex netdev_add
1047ae82d324SMarkus ArmbrusterAdd host network device.
1048ae82d324SMarkus ArmbrusterETEXI
1049ae82d324SMarkus Armbruster
1050ae82d324SMarkus Armbruster    {
1051ae82d324SMarkus Armbruster        .name       = "netdev_del",
1052ae82d324SMarkus Armbruster        .args_type  = "id:s",
1053ae82d324SMarkus Armbruster        .params     = "id",
1054ae82d324SMarkus Armbruster        .help       = "remove host network device",
1055ae82d324SMarkus Armbruster        .user_print = monitor_user_noop,
1056ae82d324SMarkus Armbruster        .mhandler.cmd_new = do_netdev_del,
1057ae82d324SMarkus Armbruster    },
1058ae82d324SMarkus Armbruster
1059ae82d324SMarkus ArmbrusterSTEXI
1060ae82d324SMarkus Armbruster@item netdev_del
1061ae82d324SMarkus Armbruster@findex netdev_del
1062ae82d324SMarkus ArmbrusterRemove host network device.
1063ae82d324SMarkus ArmbrusterETEXI
1064ae82d324SMarkus Armbruster
10652313086aSBlue Swirl#ifdef CONFIG_SLIRP
1066d7f9b689SLuiz Capitulino    {
1067d7f9b689SLuiz Capitulino        .name       = "hostfwd_add",
1068d7f9b689SLuiz Capitulino        .args_type  = "arg1:s,arg2:s?,arg3:s?",
1069d7f9b689SLuiz Capitulino        .params     = "[vlan_id name] [tcp|udp]:[hostaddr]:hostport-[guestaddr]:guestport",
1070d7f9b689SLuiz Capitulino        .help       = "redirect TCP or UDP connections from host to guest (requires -net user)",
1071af4ce882SLuiz Capitulino        .mhandler.cmd = net_slirp_hostfwd_add,
1072d7f9b689SLuiz Capitulino    },
107321413d68SMarkus Armbruster#endif
107421413d68SMarkus ArmbrusterSTEXI
107521413d68SMarkus Armbruster@item hostfwd_add
107621413d68SMarkus Armbruster@findex hostfwd_add
107721413d68SMarkus ArmbrusterRedirect TCP or UDP connections from host to guest (requires -net user).
107821413d68SMarkus ArmbrusterETEXI
1079d7f9b689SLuiz Capitulino
108021413d68SMarkus Armbruster#ifdef CONFIG_SLIRP
1081d7f9b689SLuiz Capitulino    {
1082d7f9b689SLuiz Capitulino        .name       = "hostfwd_remove",
1083d7f9b689SLuiz Capitulino        .args_type  = "arg1:s,arg2:s?,arg3:s?",
1084d7f9b689SLuiz Capitulino        .params     = "[vlan_id name] [tcp|udp]:[hostaddr]:hostport",
1085d7f9b689SLuiz Capitulino        .help       = "remove host-to-guest TCP or UDP redirection",
1086af4ce882SLuiz Capitulino        .mhandler.cmd = net_slirp_hostfwd_remove,
1087d7f9b689SLuiz Capitulino    },
1088d7f9b689SLuiz Capitulino
10892313086aSBlue Swirl#endif
10902313086aSBlue SwirlSTEXI
109121413d68SMarkus Armbruster@item hostfwd_remove
109221413d68SMarkus Armbruster@findex hostfwd_remove
109321413d68SMarkus ArmbrusterRemove host-to-guest TCP or UDP redirection.
10942313086aSBlue SwirlETEXI
10952313086aSBlue Swirl
1096d7f9b689SLuiz Capitulino    {
1097d7f9b689SLuiz Capitulino        .name       = "balloon",
10983b0bd6ecSLuiz Capitulino        .args_type  = "value:M",
1099d7f9b689SLuiz Capitulino        .params     = "target",
11003c05613aSRiccardo Magliocchetti        .help       = "request VM to change its memory allocation (in MB)",
1101d72f3264SLuiz Capitulino        .mhandler.cmd = hmp_balloon,
1102d7f9b689SLuiz Capitulino    },
1103d7f9b689SLuiz Capitulino
11042313086aSBlue SwirlSTEXI
11052313086aSBlue Swirl@item balloon @var{value}
110670fcbbe7SStefan Weil@findex balloon
11072313086aSBlue SwirlRequest VM to change its memory allocation to @var{value} (in MB).
11082313086aSBlue SwirlETEXI
11092313086aSBlue Swirl
1110d7f9b689SLuiz Capitulino    {
1111d7f9b689SLuiz Capitulino        .name       = "set_link",
1112c9b26a4cSMarkus Armbruster        .args_type  = "name:s,up:b",
1113c9b26a4cSMarkus Armbruster        .params     = "name on|off",
1114d7f9b689SLuiz Capitulino        .help       = "change the link status of a network adapter",
11154b37156cSLuiz Capitulino        .mhandler.cmd = hmp_set_link,
1116d7f9b689SLuiz Capitulino    },
1117d7f9b689SLuiz Capitulino
11182313086aSBlue SwirlSTEXI
1119c9b26a4cSMarkus Armbruster@item set_link @var{name} [on|off]
112070fcbbe7SStefan Weil@findex set_link
1121c9b26a4cSMarkus ArmbrusterSwitch link @var{name} on (i.e. up) or off (i.e. down).
11222313086aSBlue SwirlETEXI
11232313086aSBlue Swirl
1124d7f9b689SLuiz Capitulino    {
1125d7f9b689SLuiz Capitulino        .name       = "watchdog_action",
1126d7f9b689SLuiz Capitulino        .args_type  = "action:s",
1127d7f9b689SLuiz Capitulino        .params     = "[reset|shutdown|poweroff|pause|debug|none]",
1128d7f9b689SLuiz Capitulino        .help       = "change watchdog action",
1129af4ce882SLuiz Capitulino        .mhandler.cmd = do_watchdog_action,
1130d7f9b689SLuiz Capitulino    },
1131d7f9b689SLuiz Capitulino
11322313086aSBlue SwirlSTEXI
11332313086aSBlue Swirl@item watchdog_action
113470fcbbe7SStefan Weil@findex watchdog_action
11352313086aSBlue SwirlChange watchdog action.
11362313086aSBlue SwirlETEXI
11372313086aSBlue Swirl
1138d7f9b689SLuiz Capitulino    {
1139d7f9b689SLuiz Capitulino        .name       = "acl_show",
1140d7f9b689SLuiz Capitulino        .args_type  = "aclname:s",
1141d7f9b689SLuiz Capitulino        .params     = "aclname",
1142d7f9b689SLuiz Capitulino        .help       = "list rules in the access control list",
1143af4ce882SLuiz Capitulino        .mhandler.cmd = do_acl_show,
1144d7f9b689SLuiz Capitulino    },
1145d7f9b689SLuiz Capitulino
11462313086aSBlue SwirlSTEXI
114715dfcd45SJan Kiszka@item acl_show @var{aclname}
114870fcbbe7SStefan Weil@findex acl_show
114915dfcd45SJan KiszkaList all the matching rules in the access control list, and the default
115015dfcd45SJan Kiszkapolicy. There are currently two named access control lists,
115115dfcd45SJan Kiszka@var{vnc.x509dname} and @var{vnc.username} matching on the x509 client
115215dfcd45SJan Kiszkacertificate distinguished name, and SASL username respectively.
115315dfcd45SJan KiszkaETEXI
11542313086aSBlue Swirl
1155d7f9b689SLuiz Capitulino    {
1156d7f9b689SLuiz Capitulino        .name       = "acl_policy",
1157d7f9b689SLuiz Capitulino        .args_type  = "aclname:s,policy:s",
1158d7f9b689SLuiz Capitulino        .params     = "aclname allow|deny",
1159d7f9b689SLuiz Capitulino        .help       = "set default access control list policy",
1160af4ce882SLuiz Capitulino        .mhandler.cmd = do_acl_policy,
1161d7f9b689SLuiz Capitulino    },
1162d7f9b689SLuiz Capitulino
116315dfcd45SJan KiszkaSTEXI
1164cbbfacc6SJan Kiszka@item acl_policy @var{aclname} @code{allow|deny}
116570fcbbe7SStefan Weil@findex acl_policy
116615dfcd45SJan KiszkaSet the default access control list policy, used in the event that
11672313086aSBlue Swirlnone of the explicit rules match. The default policy at startup is
116815dfcd45SJan Kiszkaalways @code{deny}.
116915dfcd45SJan KiszkaETEXI
117015dfcd45SJan Kiszka
1171d7f9b689SLuiz Capitulino    {
1172d7f9b689SLuiz Capitulino        .name       = "acl_add",
1173d7f9b689SLuiz Capitulino        .args_type  = "aclname:s,match:s,policy:s,index:i?",
1174d7f9b689SLuiz Capitulino        .params     = "aclname match allow|deny [index]",
1175d7f9b689SLuiz Capitulino        .help       = "add a match rule to the access control list",
1176af4ce882SLuiz Capitulino        .mhandler.cmd = do_acl_add,
1177d7f9b689SLuiz Capitulino    },
1178d7f9b689SLuiz Capitulino
117915dfcd45SJan KiszkaSTEXI
11800e4aec98SMarkus Armbruster@item acl_add @var{aclname} @var{match} @code{allow|deny} [@var{index}]
11810e4aec98SMarkus Armbruster@findex acl_add
118215dfcd45SJan KiszkaAdd a match rule to the access control list, allowing or denying access.
118315dfcd45SJan KiszkaThe match will normally be an exact username or x509 distinguished name,
118415dfcd45SJan Kiszkabut can optionally include wildcard globs. eg @code{*@@EXAMPLE.COM} to
118515dfcd45SJan Kiszkaallow all users in the @code{EXAMPLE.COM} kerberos realm. The match will
11862313086aSBlue Swirlnormally be appended to the end of the ACL, but can be inserted
118715dfcd45SJan Kiszkaearlier in the list if the optional @var{index} parameter is supplied.
118815dfcd45SJan KiszkaETEXI
118915dfcd45SJan Kiszka
1190d7f9b689SLuiz Capitulino    {
1191d7f9b689SLuiz Capitulino        .name       = "acl_remove",
1192d7f9b689SLuiz Capitulino        .args_type  = "aclname:s,match:s",
1193d7f9b689SLuiz Capitulino        .params     = "aclname match",
1194d7f9b689SLuiz Capitulino        .help       = "remove a match rule from the access control list",
1195af4ce882SLuiz Capitulino        .mhandler.cmd = do_acl_remove,
1196d7f9b689SLuiz Capitulino    },
1197d7f9b689SLuiz Capitulino
119815dfcd45SJan KiszkaSTEXI
119915dfcd45SJan Kiszka@item acl_remove @var{aclname} @var{match}
120070fcbbe7SStefan Weil@findex acl_remove
120115dfcd45SJan KiszkaRemove the specified match rule from the access control list.
120215dfcd45SJan KiszkaETEXI
120315dfcd45SJan Kiszka
1204d7f9b689SLuiz Capitulino    {
1205d7f9b689SLuiz Capitulino        .name       = "acl_reset",
1206d7f9b689SLuiz Capitulino        .args_type  = "aclname:s",
1207d7f9b689SLuiz Capitulino        .params     = "aclname",
1208d7f9b689SLuiz Capitulino        .help       = "reset the access control list",
1209af4ce882SLuiz Capitulino        .mhandler.cmd = do_acl_reset,
1210d7f9b689SLuiz Capitulino    },
1211d7f9b689SLuiz Capitulino
121215dfcd45SJan KiszkaSTEXI
12130e4aec98SMarkus Armbruster@item acl_reset @var{aclname}
12140e4aec98SMarkus Armbruster@findex acl_reset
121515dfcd45SJan KiszkaRemove all matches from the access control list, and set the default
12162313086aSBlue Swirlpolicy back to @code{deny}.
12172313086aSBlue SwirlETEXI
12182313086aSBlue Swirl
121979c4f6b0SHuang Ying#if defined(TARGET_I386)
1220d7f9b689SLuiz Capitulino
1221d7f9b689SLuiz Capitulino    {
1222d7f9b689SLuiz Capitulino        .name       = "mce",
122331ce5e0cSJin Dongming        .args_type  = "broadcast:-b,cpu_index:i,bank:i,status:l,mcg_status:l,addr:l,misc:l",
122431ce5e0cSJin Dongming        .params     = "[-b] cpu bank status mcgstatus addr misc",
122531ce5e0cSJin Dongming        .help       = "inject a MCE on the given CPU [and broadcast to other CPUs with -b option]",
1226af4ce882SLuiz Capitulino        .mhandler.cmd = do_inject_mce,
1227d7f9b689SLuiz Capitulino    },
1228d7f9b689SLuiz Capitulino
122979c4f6b0SHuang Ying#endif
123079c4f6b0SHuang YingSTEXI
123179c4f6b0SHuang Ying@item mce @var{cpu} @var{bank} @var{status} @var{mcgstatus} @var{addr} @var{misc}
123270fcbbe7SStefan Weil@findex mce (x86)
123379c4f6b0SHuang YingInject an MCE on the given CPU (x86 only).
123479c4f6b0SHuang YingETEXI
123579c4f6b0SHuang Ying
1236d7f9b689SLuiz Capitulino    {
1237d7f9b689SLuiz Capitulino        .name       = "getfd",
1238d7f9b689SLuiz Capitulino        .args_type  = "fdname:s",
1239d7f9b689SLuiz Capitulino        .params     = "getfd name",
1240d7f9b689SLuiz Capitulino        .help       = "receive a file descriptor via SCM rights and assign it a name",
1241f0d6000aSLuiz Capitulino        .user_print = monitor_user_noop,
1242261394dbSLuiz Capitulino        .mhandler.cmd_new = do_getfd,
1243d7f9b689SLuiz Capitulino    },
1244d7f9b689SLuiz Capitulino
1245f07918fdSMark McLoughlinSTEXI
1246f07918fdSMark McLoughlin@item getfd @var{fdname}
124770fcbbe7SStefan Weil@findex getfd
1248f07918fdSMark McLoughlinIf a file descriptor is passed alongside this command using the SCM_RIGHTS
1249f07918fdSMark McLoughlinmechanism on unix sockets, it is stored using the name @var{fdname} for
1250f07918fdSMark McLoughlinlater use by other monitor commands.
1251f07918fdSMark McLoughlinETEXI
1252f07918fdSMark McLoughlin
1253d7f9b689SLuiz Capitulino    {
1254d7f9b689SLuiz Capitulino        .name       = "closefd",
1255d7f9b689SLuiz Capitulino        .args_type  = "fdname:s",
1256d7f9b689SLuiz Capitulino        .params     = "closefd name",
1257d7f9b689SLuiz Capitulino        .help       = "close a file descriptor previously passed via SCM rights",
125818f3a515SLuiz Capitulino        .user_print = monitor_user_noop,
1259261394dbSLuiz Capitulino        .mhandler.cmd_new = do_closefd,
1260d7f9b689SLuiz Capitulino    },
1261d7f9b689SLuiz Capitulino
1262f07918fdSMark McLoughlinSTEXI
1263f07918fdSMark McLoughlin@item closefd @var{fdname}
126470fcbbe7SStefan Weil@findex closefd
1265f07918fdSMark McLoughlinClose the file descriptor previously assigned to @var{fdname} using the
1266f07918fdSMark McLoughlin@code{getfd} command. This is only needed if the file descriptor was never
1267f07918fdSMark McLoughlinused by another monitor command.
1268f07918fdSMark McLoughlinETEXI
1269f07918fdSMark McLoughlin
1270a3a55a2eSLuiz Capitulino    {
1271a3a55a2eSLuiz Capitulino        .name       = "block_passwd",
1272a3a55a2eSLuiz Capitulino        .args_type  = "device:B,password:s",
1273a3a55a2eSLuiz Capitulino        .params     = "block_passwd device password",
1274a3a55a2eSLuiz Capitulino        .help       = "set the password of encrypted block devices",
1275a4dea8a9SLuiz Capitulino        .mhandler.cmd = hmp_block_passwd,
1276a3a55a2eSLuiz Capitulino    },
1277a3a55a2eSLuiz Capitulino
1278a3a55a2eSLuiz CapitulinoSTEXI
1279727f005eSZhi 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}
1280727f005eSZhi Yong Wu@findex block_set_io_throttle
1281727f005eSZhi 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}
1282727f005eSZhi Yong WuETEXI
1283727f005eSZhi Yong Wu
1284727f005eSZhi Yong Wu    {
1285727f005eSZhi Yong Wu        .name       = "block_set_io_throttle",
1286727f005eSZhi Yong Wu        .args_type  = "device:B,bps:l,bps_rd:l,bps_wr:l,iops:l,iops_rd:l,iops_wr:l",
1287727f005eSZhi Yong Wu        .params     = "device bps bps_rd bps_wr iops iops_rd iops_wr",
1288727f005eSZhi Yong Wu        .help       = "change I/O throttle limits for a block drive",
128980047da5SLuiz Capitulino        .mhandler.cmd = hmp_block_set_io_throttle,
1290727f005eSZhi Yong Wu    },
1291727f005eSZhi Yong Wu
1292727f005eSZhi Yong WuSTEXI
1293a3a55a2eSLuiz Capitulino@item block_passwd @var{device} @var{password}
129470fcbbe7SStefan Weil@findex block_passwd
1295a3a55a2eSLuiz CapitulinoSet the encrypted device @var{device} password to @var{password}
1296a3a55a2eSLuiz CapitulinoETEXI
1297b40292e7SJan Kiszka
129833572eceSJan Kiszka    {
12997572150cSGerd Hoffmann        .name       = "set_password",
13007572150cSGerd Hoffmann        .args_type  = "protocol:s,password:s,connected:s?",
13017572150cSGerd Hoffmann        .params     = "protocol password action-if-connected",
13027572150cSGerd Hoffmann        .help       = "set spice/vnc password",
1303fbf796fdSLuiz Capitulino        .mhandler.cmd = hmp_set_password,
13047572150cSGerd Hoffmann    },
13057572150cSGerd Hoffmann
13067572150cSGerd HoffmannSTEXI
13077572150cSGerd Hoffmann@item set_password [ vnc | spice ] password [ action-if-connected ]
13087572150cSGerd Hoffmann@findex set_password
13097572150cSGerd Hoffmann
13107572150cSGerd HoffmannChange spice/vnc password.  Use zero to make the password stay valid
13117572150cSGerd Hoffmannforever.  @var{action-if-connected} specifies what should happen in
13127572150cSGerd Hoffmanncase a connection is established: @var{fail} makes the password change
13137572150cSGerd Hoffmannfail.  @var{disconnect} changes the password and disconnects the
13147572150cSGerd Hoffmannclient.  @var{keep} changes the password and keeps the connection up.
13157572150cSGerd Hoffmann@var{keep} is the default.
13167572150cSGerd HoffmannETEXI
13177572150cSGerd Hoffmann
13187572150cSGerd Hoffmann    {
13197572150cSGerd Hoffmann        .name       = "expire_password",
13207572150cSGerd Hoffmann        .args_type  = "protocol:s,time:s",
13217572150cSGerd Hoffmann        .params     = "protocol time",
13227572150cSGerd Hoffmann        .help       = "set spice/vnc password expire-time",
13239ad5372dSLuiz Capitulino        .mhandler.cmd = hmp_expire_password,
13247572150cSGerd Hoffmann    },
13257572150cSGerd Hoffmann
13267572150cSGerd HoffmannSTEXI
13277572150cSGerd Hoffmann@item expire_password [ vnc | spice ] expire-time
13287572150cSGerd Hoffmann@findex expire_password
13297572150cSGerd Hoffmann
13307572150cSGerd HoffmannSpecify when a password for spice/vnc becomes
13317572150cSGerd Hoffmanninvalid. @var{expire-time} accepts:
13327572150cSGerd Hoffmann
13337572150cSGerd Hoffmann@table @var
13347572150cSGerd Hoffmann@item now
13357572150cSGerd HoffmannInvalidate password instantly.
13367572150cSGerd Hoffmann
13377572150cSGerd Hoffmann@item never
13387572150cSGerd HoffmannPassword stays valid forever.
13397572150cSGerd Hoffmann
13407572150cSGerd Hoffmann@item +nsec
13417572150cSGerd HoffmannPassword stays valid for @var{nsec} seconds starting now.
13427572150cSGerd Hoffmann
13437572150cSGerd Hoffmann@item nsec
13447572150cSGerd HoffmannPassword is invalidated at the given time.  @var{nsec} are the seconds
13457572150cSGerd Hoffmannpassed since 1970, i.e. unix epoch.
13467572150cSGerd Hoffmann
13477572150cSGerd Hoffmann@end table
13487572150cSGerd HoffmannETEXI
13497572150cSGerd Hoffmann
13507572150cSGerd Hoffmann    {
135133572eceSJan Kiszka        .name       = "info",
135233572eceSJan Kiszka        .args_type  = "item:s?",
135333572eceSJan Kiszka        .params     = "[subcommand]",
135433572eceSJan Kiszka        .help       = "show various information about the system state",
13551162daa6SLuiz Capitulino        .mhandler.cmd = do_info,
135633572eceSJan Kiszka    },
135733572eceSJan Kiszka
135833572eceSJan KiszkaSTEXI
135933572eceSJan Kiszka@item info @var{subcommand}
136033572eceSJan Kiszka@findex info
136133572eceSJan KiszkaShow various information about the system state.
136233572eceSJan Kiszka
136333572eceSJan Kiszka@table @option
136433572eceSJan Kiszka@item info version
136533572eceSJan Kiszkashow the version of QEMU
136633572eceSJan Kiszka@item info network
136733572eceSJan Kiszkashow the various VLANs and the associated devices
136833572eceSJan Kiszka@item info chardev
136933572eceSJan Kiszkashow the character devices
137033572eceSJan Kiszka@item info block
137133572eceSJan Kiszkashow the block devices
137233572eceSJan Kiszka@item info blockstats
137333572eceSJan Kiszkashow block device statistics
137433572eceSJan Kiszka@item info registers
137533572eceSJan Kiszkashow the cpu registers
137633572eceSJan Kiszka@item info cpus
137733572eceSJan Kiszkashow infos for each CPU
137833572eceSJan Kiszka@item info history
137933572eceSJan Kiszkashow the command line history
138033572eceSJan Kiszka@item info irq
138133572eceSJan Kiszkashow the interrupts statistics (if available)
138233572eceSJan Kiszka@item info pic
138333572eceSJan Kiszkashow i8259 (PIC) state
138433572eceSJan Kiszka@item info pci
138533572eceSJan Kiszkashow emulated PCI device info
138633572eceSJan Kiszka@item info tlb
1387692f737cSMax Filippovshow virtual to physical memory mappings (i386, SH4, SPARC, PPC, and Xtensa only)
138833572eceSJan Kiszka@item info mem
138933572eceSJan Kiszkashow the active virtual memory mappings (i386 only)
139033572eceSJan Kiszka@item info jit
139133572eceSJan Kiszkashow dynamic compiler info
139233572eceSJan Kiszka@item info numa
139333572eceSJan Kiszkashow NUMA information
1394b40292e7SJan Kiszka@item info kvm
1395b40292e7SJan Kiszkashow KVM information
139633572eceSJan Kiszka@item info usb
139733572eceSJan Kiszkashow USB devices plugged on the virtual USB hub
139833572eceSJan Kiszka@item info usbhost
139933572eceSJan Kiszkashow all USB host devices
140033572eceSJan Kiszka@item info profile
140133572eceSJan Kiszkashow profiling information
140233572eceSJan Kiszka@item info capture
140333572eceSJan Kiszkashow information about active capturing
140433572eceSJan Kiszka@item info snapshots
140533572eceSJan Kiszkashow list of VM snapshots
140633572eceSJan Kiszka@item info status
140733572eceSJan Kiszkashow the current VM status (running|paused)
140833572eceSJan Kiszka@item info pcmcia
140933572eceSJan Kiszkashow guest PCMCIA status
141033572eceSJan Kiszka@item info mice
141133572eceSJan Kiszkashow which guest mouse is receiving events
141233572eceSJan Kiszka@item info vnc
141333572eceSJan Kiszkashow the vnc server status
141433572eceSJan Kiszka@item info name
141533572eceSJan Kiszkashow the current VM name
141633572eceSJan Kiszka@item info uuid
141733572eceSJan Kiszkashow the current VM UUID
141833572eceSJan Kiszka@item info cpustats
141933572eceSJan Kiszkashow CPU statistics
142033572eceSJan Kiszka@item info usernet
142133572eceSJan Kiszkashow user network stack connection states
142233572eceSJan Kiszka@item info migrate
142333572eceSJan Kiszkashow migration status
142433572eceSJan Kiszka@item info balloon
142533572eceSJan Kiszkashow balloon information
142633572eceSJan Kiszka@item info qtree
142733572eceSJan Kiszkashow device tree
142833572eceSJan Kiszka@item info qdm
142933572eceSJan Kiszkashow qdev device model list
143033572eceSJan Kiszka@item info roms
143133572eceSJan Kiszkashow roms
143233572eceSJan Kiszka@end table
143333572eceSJan KiszkaETEXI
143433572eceSJan Kiszka
14356d8a764eSLluís#ifdef CONFIG_TRACE_SIMPLE
143622890ab5SPrerna SaxenaSTEXI
143722890ab5SPrerna Saxena@item info trace
143822890ab5SPrerna Saxenashow contents of trace buffer
143931965ae2SLluísETEXI
144031965ae2SLluís#endif
144131965ae2SLluís
144231965ae2SLluísSTEXI
144322890ab5SPrerna Saxena@item info trace-events
144422890ab5SPrerna Saxenashow available trace events and their state
144522890ab5SPrerna SaxenaETEXI
144622890ab5SPrerna Saxena
14472313086aSBlue SwirlSTEXI
14482313086aSBlue Swirl@end table
14492313086aSBlue SwirlETEXI
1450