xref: /qemu/hmp-commands.hx (revision 3b563c4be01f42d2a4e641d50736bd5ac8e3b15f)
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|?",
14129be006SWenchao Xia        .args_type  = "name:S?",
15d7f9b689SLuiz Capitulino        .params     = "[cmd]",
16d7f9b689SLuiz Capitulino        .help       = "show the help",
172b9e3576SMarc-André Lureau        .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",
312b9e3576SMarc-André Lureau        .cmd        = hmp_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.
3837222900SJeff CodyIf the backing file is smaller than the snapshot, then the backing file will be
3937222900SJeff Codyresized to be the same size as the snapshot.  If the snapshot is smaller than
4037222900SJeff Codythe backing file, the backing file will not be truncated.  If you want the
4137222900SJeff Codybacking file to match the size of the smaller snapshot, you can safely truncate
4237222900SJeff Codyit yourself once the commit operation successfully completes.
432313086aSBlue SwirlETEXI
442313086aSBlue Swirl
45d7f9b689SLuiz Capitulino    {
46d7f9b689SLuiz Capitulino        .name       = "q|quit",
47d7f9b689SLuiz Capitulino        .args_type  = "",
48d7f9b689SLuiz Capitulino        .params     = "",
49d7f9b689SLuiz Capitulino        .help       = "quit the emulator",
502b9e3576SMarc-André Lureau        .cmd        = hmp_quit,
51d7f9b689SLuiz Capitulino    },
52d7f9b689SLuiz Capitulino
532313086aSBlue SwirlSTEXI
542313086aSBlue Swirl@item q or quit
5570fcbbe7SStefan Weil@findex quit
562313086aSBlue SwirlQuit the emulator.
572313086aSBlue SwirlETEXI
582313086aSBlue Swirl
59d7f9b689SLuiz Capitulino    {
606d4a2b3aSChristoph Hellwig        .name       = "block_resize",
616d4a2b3aSChristoph Hellwig        .args_type  = "device:B,size:o",
626d4a2b3aSChristoph Hellwig        .params     = "device size",
636d4a2b3aSChristoph Hellwig        .help       = "resize a block image",
642b9e3576SMarc-André Lureau        .cmd        = hmp_block_resize,
656d4a2b3aSChristoph Hellwig    },
666d4a2b3aSChristoph Hellwig
676d4a2b3aSChristoph HellwigSTEXI
686d4a2b3aSChristoph Hellwig@item block_resize
696d4a2b3aSChristoph Hellwig@findex block_resize
706d4a2b3aSChristoph HellwigResize a block image while a guest is running.  Usually requires guest
716d4a2b3aSChristoph Hellwigaction to see the updated size.  Resize to a lower size is supported,
726d4a2b3aSChristoph Hellwigbut should be used with extreme caution.  Note that this command only
736d4a2b3aSChristoph Hellwigresizes image files, it can not resize block devices like LVM volumes.
746d4a2b3aSChristoph HellwigETEXI
756d4a2b3aSChristoph Hellwig
7612bd451fSStefan Hajnoczi    {
7712bd451fSStefan Hajnoczi        .name       = "block_stream",
78c83c66c3SStefan Hajnoczi        .args_type  = "device:B,speed:o?,base:s?",
79c83c66c3SStefan Hajnoczi        .params     = "device [speed [base]]",
8012bd451fSStefan Hajnoczi        .help       = "copy data from a backing file into a block device",
812b9e3576SMarc-André Lureau        .cmd        = hmp_block_stream,
8212bd451fSStefan Hajnoczi    },
8312bd451fSStefan Hajnoczi
8412bd451fSStefan HajnocziSTEXI
8512bd451fSStefan Hajnoczi@item block_stream
8612bd451fSStefan Hajnoczi@findex block_stream
8712bd451fSStefan HajnocziCopy data from a backing file into a block device.
8812bd451fSStefan HajnocziETEXI
896d4a2b3aSChristoph Hellwig
906d4a2b3aSChristoph Hellwig    {
912d47c6e9SStefan Hajnoczi        .name       = "block_job_set_speed",
92882ec7ceSStefan Hajnoczi        .args_type  = "device:B,speed:o",
93882ec7ceSStefan Hajnoczi        .params     = "device speed",
942d47c6e9SStefan Hajnoczi        .help       = "set maximum speed for a background block operation",
952b9e3576SMarc-André Lureau        .cmd        = hmp_block_job_set_speed,
962d47c6e9SStefan Hajnoczi    },
972d47c6e9SStefan Hajnoczi
982d47c6e9SStefan HajnocziSTEXI
994451b799SPaolo Bonzini@item block_job_set_speed
1004451b799SPaolo Bonzini@findex block_job_set_speed
1012d47c6e9SStefan HajnocziSet maximum speed for a background block operation.
1022d47c6e9SStefan HajnocziETEXI
1032d47c6e9SStefan Hajnoczi
1042d47c6e9SStefan Hajnoczi    {
105370521a1SStefan Hajnoczi        .name       = "block_job_cancel",
1066e37fb81SPaolo Bonzini        .args_type  = "force:-f,device:B",
1076e37fb81SPaolo Bonzini        .params     = "[-f] device",
1086e37fb81SPaolo Bonzini        .help       = "stop an active background block operation (use -f"
109b76e4458SLiang Li                      "\n\t\t\t if you want to abort the operation immediately"
110b76e4458SLiang Li                      "\n\t\t\t instead of keep running until data is in sync)",
1112b9e3576SMarc-André Lureau        .cmd        = hmp_block_job_cancel,
112370521a1SStefan Hajnoczi    },
113370521a1SStefan Hajnoczi
114370521a1SStefan HajnocziSTEXI
115370521a1SStefan Hajnoczi@item block_job_cancel
116370521a1SStefan Hajnoczi@findex block_job_cancel
117aeae883bSPaolo BonziniStop an active background block operation (streaming, mirroring).
118aeae883bSPaolo BonziniETEXI
119aeae883bSPaolo Bonzini
120aeae883bSPaolo Bonzini    {
121aeae883bSPaolo Bonzini        .name       = "block_job_complete",
122aeae883bSPaolo Bonzini        .args_type  = "device:B",
123aeae883bSPaolo Bonzini        .params     = "device",
124aeae883bSPaolo Bonzini        .help       = "stop an active background block operation",
1252b9e3576SMarc-André Lureau        .cmd        = hmp_block_job_complete,
126aeae883bSPaolo Bonzini    },
127aeae883bSPaolo Bonzini
128aeae883bSPaolo BonziniSTEXI
129aeae883bSPaolo Bonzini@item block_job_complete
130aeae883bSPaolo Bonzini@findex block_job_complete
131aeae883bSPaolo BonziniManually trigger completion of an active background block operation.
132aeae883bSPaolo BonziniFor mirroring, this will switch the device to the destination path.
133370521a1SStefan HajnocziETEXI
134370521a1SStefan Hajnoczi
135370521a1SStefan Hajnoczi    {
1366e37fb81SPaolo Bonzini        .name       = "block_job_pause",
1376e37fb81SPaolo Bonzini        .args_type  = "device:B",
1386e37fb81SPaolo Bonzini        .params     = "device",
1396e37fb81SPaolo Bonzini        .help       = "pause an active background block operation",
1402b9e3576SMarc-André Lureau        .cmd        = hmp_block_job_pause,
1416e37fb81SPaolo Bonzini    },
1426e37fb81SPaolo Bonzini
1436e37fb81SPaolo BonziniSTEXI
1446e37fb81SPaolo Bonzini@item block_job_pause
1456e37fb81SPaolo Bonzini@findex block_job_pause
1466e37fb81SPaolo BonziniPause an active block streaming operation.
1476e37fb81SPaolo BonziniETEXI
1486e37fb81SPaolo Bonzini
1496e37fb81SPaolo Bonzini    {
1506e37fb81SPaolo Bonzini        .name       = "block_job_resume",
1516e37fb81SPaolo Bonzini        .args_type  = "device:B",
1526e37fb81SPaolo Bonzini        .params     = "device",
1536e37fb81SPaolo Bonzini        .help       = "resume a paused background block operation",
1542b9e3576SMarc-André Lureau        .cmd        = hmp_block_job_resume,
1556e37fb81SPaolo Bonzini    },
1566e37fb81SPaolo Bonzini
1576e37fb81SPaolo BonziniSTEXI
1586e37fb81SPaolo Bonzini@item block_job_resume
1596e37fb81SPaolo Bonzini@findex block_job_resume
1606e37fb81SPaolo BonziniResume a paused block streaming operation.
1616e37fb81SPaolo BonziniETEXI
1626e37fb81SPaolo Bonzini
1636e37fb81SPaolo Bonzini    {
164d7f9b689SLuiz Capitulino        .name       = "eject",
16578d714e0SLuiz Capitulino        .args_type  = "force:-f,device:B",
166d7f9b689SLuiz Capitulino        .params     = "[-f] device",
167d7f9b689SLuiz Capitulino        .help       = "eject a removable medium (use -f to force it)",
1682b9e3576SMarc-André Lureau        .cmd        = hmp_eject,
169d7f9b689SLuiz Capitulino    },
170d7f9b689SLuiz Capitulino
1712313086aSBlue SwirlSTEXI
1722313086aSBlue Swirl@item eject [-f] @var{device}
17370fcbbe7SStefan Weil@findex eject
1742313086aSBlue SwirlEject a removable medium (use -f to force it).
1752313086aSBlue SwirlETEXI
1762313086aSBlue Swirl
177d7f9b689SLuiz Capitulino    {
1789063f814SRyan Harper        .name       = "drive_del",
179f7bdc41aSHani Benhabiles        .args_type  = "id:B",
1809063f814SRyan Harper        .params     = "device",
1819063f814SRyan Harper        .help       = "remove host block device",
1822b9e3576SMarc-André Lureau        .cmd        = hmp_drive_del,
1839063f814SRyan Harper    },
1849063f814SRyan Harper
1859063f814SRyan HarperSTEXI
1869063f814SRyan Harper@item drive_del @var{device}
1879063f814SRyan Harper@findex drive_del
1889063f814SRyan HarperRemove host block device.  The result is that guest generated IO is no longer
1899063f814SRyan Harpersubmitted against the host device underlying the disk.  Once a drive has
1909063f814SRyan Harperbeen deleted, the QEMU Block layer returns -EIO which results in IO
1919063f814SRyan Harpererrors in the guest for applications that are reading/writing to the device.
192293c51a6SStefan HajnocziThese errors are always reported to the guest, regardless of the drive's error
193293c51a6SStefan Hajnocziactions (drive options rerror, werror).
1949063f814SRyan HarperETEXI
1959063f814SRyan Harper
1969063f814SRyan Harper    {
197d7f9b689SLuiz Capitulino        .name       = "change",
198baead0abSMax Reitz        .args_type  = "device:B,target:F,arg:s?,read-only-mode:s?",
199baead0abSMax Reitz        .params     = "device filename [format [read-only-mode]]",
200d7f9b689SLuiz Capitulino        .help       = "change a removable medium, optional format",
2012b9e3576SMarc-André Lureau        .cmd        = hmp_change,
202d7f9b689SLuiz Capitulino    },
203d7f9b689SLuiz Capitulino
2042313086aSBlue SwirlSTEXI
2052313086aSBlue Swirl@item change @var{device} @var{setting}
20670fcbbe7SStefan Weil@findex change
2072313086aSBlue SwirlChange the configuration of a device.
2082313086aSBlue Swirl
2092313086aSBlue Swirl@table @option
210baead0abSMax Reitz@item change @var{diskdevice} @var{filename} [@var{format} [@var{read-only-mode}]]
2112313086aSBlue SwirlChange the medium for a removable disk device to point to @var{filename}. eg
2122313086aSBlue Swirl
2132313086aSBlue Swirl@example
2142313086aSBlue Swirl(qemu) change ide1-cd0 /path/to/some.iso
2152313086aSBlue Swirl@end example
2162313086aSBlue Swirl
2172313086aSBlue Swirl@var{format} is optional.
2182313086aSBlue Swirl
219baead0abSMax Reitz@var{read-only-mode} may be used to change the read-only status of the device.
220baead0abSMax ReitzIt accepts the following values:
221baead0abSMax Reitz
222baead0abSMax Reitz@table @var
223baead0abSMax Reitz@item retain
224baead0abSMax ReitzRetains the current status; this is the default.
225baead0abSMax Reitz
226baead0abSMax Reitz@item read-only
227baead0abSMax ReitzMakes the device read-only.
228baead0abSMax Reitz
229baead0abSMax Reitz@item read-write
230baead0abSMax ReitzMakes the device writable.
231baead0abSMax Reitz@end table
232baead0abSMax Reitz
2332313086aSBlue Swirl@item change vnc @var{display},@var{options}
2342313086aSBlue SwirlChange the configuration of the VNC server. The valid syntax for @var{display}
2352313086aSBlue Swirland @var{options} are described at @ref{sec_invocation}. eg
2362313086aSBlue Swirl
2372313086aSBlue Swirl@example
2382313086aSBlue Swirl(qemu) change vnc localhost:1
2392313086aSBlue Swirl@end example
2402313086aSBlue Swirl
2412313086aSBlue Swirl@item change vnc password [@var{password}]
2422313086aSBlue Swirl
2432313086aSBlue SwirlChange the password associated with the VNC server. If the new password is not
2442313086aSBlue Swirlsupplied, the monitor will prompt for it to be entered. VNC passwords are only
2452313086aSBlue Swirlsignificant up to 8 letters. eg
2462313086aSBlue Swirl
2472313086aSBlue Swirl@example
2482313086aSBlue Swirl(qemu) change vnc password
2492313086aSBlue SwirlPassword: ********
2502313086aSBlue Swirl@end example
2512313086aSBlue Swirl
2522313086aSBlue Swirl@end table
2532313086aSBlue SwirlETEXI
2542313086aSBlue Swirl
255d7f9b689SLuiz Capitulino    {
256d7f9b689SLuiz Capitulino        .name       = "screendump",
257f771c544SThomas Huth        .args_type  = "filename:F,device:s?,head:i?",
258f771c544SThomas Huth        .params     = "filename [device [head]]",
259f771c544SThomas Huth        .help       = "save screen from head 'head' of display device 'device' "
260f771c544SThomas Huth                      "into PPM image 'filename'",
2612b9e3576SMarc-André Lureau        .cmd        = hmp_screendump,
262d7f9b689SLuiz Capitulino    },
263d7f9b689SLuiz Capitulino
2642313086aSBlue SwirlSTEXI
2652313086aSBlue Swirl@item screendump @var{filename}
26670fcbbe7SStefan Weil@findex screendump
2672313086aSBlue SwirlSave screen into PPM image @var{filename}.
2682313086aSBlue SwirlETEXI
2692313086aSBlue Swirl
270d7f9b689SLuiz Capitulino    {
271d7f9b689SLuiz Capitulino        .name       = "logfile",
272d7f9b689SLuiz Capitulino        .args_type  = "filename:F",
273d7f9b689SLuiz Capitulino        .params     = "filename",
274d7f9b689SLuiz Capitulino        .help       = "output logs to 'filename'",
2752b9e3576SMarc-André Lureau        .cmd        = hmp_logfile,
276d7f9b689SLuiz Capitulino    },
277d7f9b689SLuiz Capitulino
2782313086aSBlue SwirlSTEXI
2792313086aSBlue Swirl@item logfile @var{filename}
28070fcbbe7SStefan Weil@findex logfile
2812313086aSBlue SwirlOutput logs to @var{filename}.
2822313086aSBlue SwirlETEXI
2832313086aSBlue Swirl
28422890ab5SPrerna Saxena    {
28522890ab5SPrerna Saxena        .name       = "trace-event",
28677e2b172SLluís Vilanova        .args_type  = "name:s,option:b,vcpu:i?",
28777e2b172SLluís Vilanova        .params     = "name on|off [vcpu]",
28877e2b172SLluís Vilanova        .help       = "changes status of a specific trace event "
28977e2b172SLluís Vilanova                      "(vcpu: vCPU to set, default is all)",
2902b9e3576SMarc-André Lureau        .cmd = hmp_trace_event,
291987bd270SDr. David Alan Gilbert        .command_completion = trace_event_completion,
29222890ab5SPrerna Saxena    },
29322890ab5SPrerna Saxena
29422890ab5SPrerna SaxenaSTEXI
29522890ab5SPrerna Saxena@item trace-event
29622890ab5SPrerna Saxena@findex trace-event
29722890ab5SPrerna Saxenachanges status of a trace event
29822890ab5SPrerna SaxenaETEXI
299c5ceb523SStefan Hajnoczi
300c45a8168SMichael Roth#if defined(CONFIG_TRACE_SIMPLE)
301c5ceb523SStefan Hajnoczi    {
302c5ceb523SStefan Hajnoczi        .name       = "trace-file",
303c5ceb523SStefan Hajnoczi        .args_type  = "op:s?,arg:F?",
304c5ceb523SStefan Hajnoczi        .params     = "on|off|flush|set [arg]",
305c5ceb523SStefan Hajnoczi        .help       = "open, close, or flush trace file, or set a new file name",
3062b9e3576SMarc-André Lureau        .cmd        = hmp_trace_file,
307c5ceb523SStefan Hajnoczi    },
308c5ceb523SStefan Hajnoczi
309c5ceb523SStefan HajnocziSTEXI
310c5ceb523SStefan Hajnoczi@item trace-file on|off|flush
311c5ceb523SStefan Hajnoczi@findex trace-file
312c5ceb523SStefan HajnocziOpen, close, or flush the trace file.  If no argument is given, the status of the trace file is displayed.
313c5ceb523SStefan HajnocziETEXI
31422890ab5SPrerna Saxena#endif
31522890ab5SPrerna Saxena
316d7f9b689SLuiz Capitulino    {
317d7f9b689SLuiz Capitulino        .name       = "log",
318d7f9b689SLuiz Capitulino        .args_type  = "items:s",
319d7f9b689SLuiz Capitulino        .params     = "item1[,...]",
320989b697dSPeter Maydell        .help       = "activate logging of the specified items",
3212b9e3576SMarc-André Lureau        .cmd        = hmp_log,
322d7f9b689SLuiz Capitulino    },
323d7f9b689SLuiz Capitulino
3242313086aSBlue SwirlSTEXI
3252313086aSBlue Swirl@item log @var{item1}[,...]
32670fcbbe7SStefan Weil@findex log
327989b697dSPeter MaydellActivate logging of the specified items.
3282313086aSBlue SwirlETEXI
3292313086aSBlue Swirl
330d7f9b689SLuiz Capitulino    {
331d7f9b689SLuiz Capitulino        .name       = "savevm",
332d7f9b689SLuiz Capitulino        .args_type  = "name:s?",
333d7f9b689SLuiz Capitulino        .params     = "[tag|id]",
334d7f9b689SLuiz Capitulino        .help       = "save a VM snapshot. If no tag or id are provided, a new snapshot is created",
3352b9e3576SMarc-André Lureau        .cmd        = hmp_savevm,
336d7f9b689SLuiz Capitulino    },
337d7f9b689SLuiz Capitulino
3382313086aSBlue SwirlSTEXI
3392313086aSBlue Swirl@item savevm [@var{tag}|@var{id}]
34070fcbbe7SStefan Weil@findex savevm
3412313086aSBlue SwirlCreate a snapshot of the whole virtual machine. If @var{tag} is
3422313086aSBlue Swirlprovided, it is used as human readable identifier. If there is already
3432313086aSBlue Swirla snapshot with the same tag or ID, it is replaced. More info at
3442313086aSBlue Swirl@ref{vm_snapshots}.
3452313086aSBlue SwirlETEXI
3462313086aSBlue Swirl
347d7f9b689SLuiz Capitulino    {
348d7f9b689SLuiz Capitulino        .name       = "loadvm",
349d7f9b689SLuiz Capitulino        .args_type  = "name:s",
350d7f9b689SLuiz Capitulino        .params     = "tag|id",
351d7f9b689SLuiz Capitulino        .help       = "restore a VM snapshot from its tag or id",
3522b9e3576SMarc-André Lureau        .cmd        = hmp_loadvm,
353b21631f3SHani Benhabiles        .command_completion = loadvm_completion,
354d7f9b689SLuiz Capitulino    },
355d7f9b689SLuiz Capitulino
3562313086aSBlue SwirlSTEXI
3572313086aSBlue Swirl@item loadvm @var{tag}|@var{id}
35870fcbbe7SStefan Weil@findex loadvm
3592313086aSBlue SwirlSet the whole virtual machine to the snapshot identified by the tag
3602313086aSBlue Swirl@var{tag} or the unique snapshot ID @var{id}.
3612313086aSBlue SwirlETEXI
3622313086aSBlue Swirl
363d7f9b689SLuiz Capitulino    {
364d7f9b689SLuiz Capitulino        .name       = "delvm",
365d7f9b689SLuiz Capitulino        .args_type  = "name:s",
366d7f9b689SLuiz Capitulino        .params     = "tag|id",
367d7f9b689SLuiz Capitulino        .help       = "delete a VM snapshot from its tag or id",
3682b9e3576SMarc-André Lureau        .cmd        = hmp_delvm,
369b21631f3SHani Benhabiles        .command_completion = delvm_completion,
370d7f9b689SLuiz Capitulino    },
371d7f9b689SLuiz Capitulino
3722313086aSBlue SwirlSTEXI
3732313086aSBlue Swirl@item delvm @var{tag}|@var{id}
37470fcbbe7SStefan Weil@findex delvm
3752313086aSBlue SwirlDelete the snapshot identified by @var{tag} or @var{id}.
3762313086aSBlue SwirlETEXI
3772313086aSBlue Swirl
378d7f9b689SLuiz Capitulino    {
379d7f9b689SLuiz Capitulino        .name       = "singlestep",
380d7f9b689SLuiz Capitulino        .args_type  = "option:s?",
381d7f9b689SLuiz Capitulino        .params     = "[on|off]",
382d7f9b689SLuiz Capitulino        .help       = "run emulation in singlestep mode or switch to normal mode",
3832b9e3576SMarc-André Lureau        .cmd        = hmp_singlestep,
384d7f9b689SLuiz Capitulino    },
385d7f9b689SLuiz Capitulino
3862313086aSBlue SwirlSTEXI
3872313086aSBlue Swirl@item singlestep [off]
38870fcbbe7SStefan Weil@findex singlestep
3892313086aSBlue SwirlRun the emulation in single step mode.
3902313086aSBlue SwirlIf called with option off, the emulation returns to normal mode.
3912313086aSBlue SwirlETEXI
3922313086aSBlue Swirl
393d7f9b689SLuiz Capitulino    {
394d7f9b689SLuiz Capitulino        .name       = "stop",
395d7f9b689SLuiz Capitulino        .args_type  = "",
396d7f9b689SLuiz Capitulino        .params     = "",
397d7f9b689SLuiz Capitulino        .help       = "stop emulation",
3982b9e3576SMarc-André Lureau        .cmd        = hmp_stop,
399d7f9b689SLuiz Capitulino    },
400d7f9b689SLuiz Capitulino
4012313086aSBlue SwirlSTEXI
4022313086aSBlue Swirl@item stop
40370fcbbe7SStefan Weil@findex stop
4042313086aSBlue SwirlStop emulation.
4052313086aSBlue SwirlETEXI
4062313086aSBlue Swirl
407d7f9b689SLuiz Capitulino    {
408d7f9b689SLuiz Capitulino        .name       = "c|cont",
409d7f9b689SLuiz Capitulino        .args_type  = "",
410d7f9b689SLuiz Capitulino        .params     = "",
411d7f9b689SLuiz Capitulino        .help       = "resume emulation",
4122b9e3576SMarc-André Lureau        .cmd        = hmp_cont,
413d7f9b689SLuiz Capitulino    },
414d7f9b689SLuiz Capitulino
4152313086aSBlue SwirlSTEXI
4162313086aSBlue Swirl@item c or cont
41770fcbbe7SStefan Weil@findex cont
4182313086aSBlue SwirlResume emulation.
4192313086aSBlue SwirlETEXI
4202313086aSBlue Swirl
421d7f9b689SLuiz Capitulino    {
4229b9df25aSGerd Hoffmann        .name       = "system_wakeup",
4239b9df25aSGerd Hoffmann        .args_type  = "",
4249b9df25aSGerd Hoffmann        .params     = "",
4259b9df25aSGerd Hoffmann        .help       = "wakeup guest from suspend",
4262b9e3576SMarc-André Lureau        .cmd        = hmp_system_wakeup,
4279b9df25aSGerd Hoffmann    },
4289b9df25aSGerd Hoffmann
4299b9df25aSGerd HoffmannSTEXI
4309b9df25aSGerd Hoffmann@item system_wakeup
4319b9df25aSGerd Hoffmann@findex system_wakeup
4329b9df25aSGerd HoffmannWakeup guest from suspend.
4339b9df25aSGerd HoffmannETEXI
4349b9df25aSGerd Hoffmann
4359b9df25aSGerd Hoffmann    {
436d7f9b689SLuiz Capitulino        .name       = "gdbserver",
437d7f9b689SLuiz Capitulino        .args_type  = "device:s?",
438d7f9b689SLuiz Capitulino        .params     = "[device]",
439d7f9b689SLuiz Capitulino        .help       = "start gdbserver on given device (default 'tcp::1234'), stop with 'none'",
4402b9e3576SMarc-André Lureau        .cmd        = hmp_gdbserver,
441d7f9b689SLuiz Capitulino    },
442d7f9b689SLuiz Capitulino
4432313086aSBlue SwirlSTEXI
4442313086aSBlue Swirl@item gdbserver [@var{port}]
44570fcbbe7SStefan Weil@findex gdbserver
4462313086aSBlue SwirlStart gdbserver session (default @var{port}=1234)
4472313086aSBlue SwirlETEXI
4482313086aSBlue Swirl
449d7f9b689SLuiz Capitulino    {
450d7f9b689SLuiz Capitulino        .name       = "x",
451d7f9b689SLuiz Capitulino        .args_type  = "fmt:/,addr:l",
452d7f9b689SLuiz Capitulino        .params     = "/fmt addr",
453d7f9b689SLuiz Capitulino        .help       = "virtual memory dump starting at 'addr'",
4542b9e3576SMarc-André Lureau        .cmd        = hmp_memory_dump,
455d7f9b689SLuiz Capitulino    },
456d7f9b689SLuiz Capitulino
4572313086aSBlue SwirlSTEXI
4582313086aSBlue Swirl@item x/fmt @var{addr}
45970fcbbe7SStefan Weil@findex x
4602313086aSBlue SwirlVirtual memory dump starting at @var{addr}.
4612313086aSBlue SwirlETEXI
4622313086aSBlue Swirl
463d7f9b689SLuiz Capitulino    {
464d7f9b689SLuiz Capitulino        .name       = "xp",
465d7f9b689SLuiz Capitulino        .args_type  = "fmt:/,addr:l",
466d7f9b689SLuiz Capitulino        .params     = "/fmt addr",
467d7f9b689SLuiz Capitulino        .help       = "physical memory dump starting at 'addr'",
4682b9e3576SMarc-André Lureau        .cmd        = hmp_physical_memory_dump,
469d7f9b689SLuiz Capitulino    },
470d7f9b689SLuiz Capitulino
4712313086aSBlue SwirlSTEXI
4722313086aSBlue Swirl@item xp /@var{fmt} @var{addr}
47370fcbbe7SStefan Weil@findex xp
4742313086aSBlue SwirlPhysical memory dump starting at @var{addr}.
4752313086aSBlue Swirl
4762313086aSBlue Swirl@var{fmt} is a format which tells the command how to format the
4772313086aSBlue Swirldata. Its syntax is: @option{/@{count@}@{format@}@{size@}}
4782313086aSBlue Swirl
4792313086aSBlue Swirl@table @var
4802313086aSBlue Swirl@item count
4812313086aSBlue Swirlis the number of items to be dumped.
4822313086aSBlue Swirl
4832313086aSBlue Swirl@item format
4842313086aSBlue Swirlcan be x (hex), d (signed decimal), u (unsigned decimal), o (octal),
4852313086aSBlue Swirlc (char) or i (asm instruction).
4862313086aSBlue Swirl
4872313086aSBlue Swirl@item size
4882313086aSBlue Swirlcan be b (8 bits), h (16 bits), w (32 bits) or g (64 bits). On x86,
4892313086aSBlue Swirl@code{h} or @code{w} can be specified with the @code{i} format to
4902313086aSBlue Swirlrespectively select 16 or 32 bit code instruction size.
4912313086aSBlue Swirl
4922313086aSBlue Swirl@end table
4932313086aSBlue Swirl
4942313086aSBlue SwirlExamples:
4952313086aSBlue Swirl@itemize
4962313086aSBlue Swirl@item
4972313086aSBlue SwirlDump 10 instructions at the current instruction pointer:
4982313086aSBlue Swirl@example
4992313086aSBlue Swirl(qemu) x/10i $eip
5002313086aSBlue Swirl0x90107063:  ret
5012313086aSBlue Swirl0x90107064:  sti
5022313086aSBlue Swirl0x90107065:  lea    0x0(%esi,1),%esi
5032313086aSBlue Swirl0x90107069:  lea    0x0(%edi,1),%edi
5042313086aSBlue Swirl0x90107070:  ret
5052313086aSBlue Swirl0x90107071:  jmp    0x90107080
5062313086aSBlue Swirl0x90107073:  nop
5072313086aSBlue Swirl0x90107074:  nop
5082313086aSBlue Swirl0x90107075:  nop
5092313086aSBlue Swirl0x90107076:  nop
5102313086aSBlue Swirl@end example
5112313086aSBlue Swirl
5122313086aSBlue Swirl@item
5132313086aSBlue SwirlDump 80 16 bit values at the start of the video memory.
5142313086aSBlue Swirl@smallexample
5152313086aSBlue Swirl(qemu) xp/80hx 0xb8000
5162313086aSBlue Swirl0x000b8000: 0x0b50 0x0b6c 0x0b65 0x0b78 0x0b38 0x0b36 0x0b2f 0x0b42
5172313086aSBlue Swirl0x000b8010: 0x0b6f 0x0b63 0x0b68 0x0b73 0x0b20 0x0b56 0x0b47 0x0b41
5182313086aSBlue Swirl0x000b8020: 0x0b42 0x0b69 0x0b6f 0x0b73 0x0b20 0x0b63 0x0b75 0x0b72
5192313086aSBlue Swirl0x000b8030: 0x0b72 0x0b65 0x0b6e 0x0b74 0x0b2d 0x0b63 0x0b76 0x0b73
5202313086aSBlue Swirl0x000b8040: 0x0b20 0x0b30 0x0b35 0x0b20 0x0b4e 0x0b6f 0x0b76 0x0b20
5212313086aSBlue Swirl0x000b8050: 0x0b32 0x0b30 0x0b30 0x0b33 0x0720 0x0720 0x0720 0x0720
5222313086aSBlue Swirl0x000b8060: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
5232313086aSBlue Swirl0x000b8070: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
5242313086aSBlue Swirl0x000b8080: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
5252313086aSBlue Swirl0x000b8090: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
5262313086aSBlue Swirl@end smallexample
5272313086aSBlue Swirl@end itemize
5282313086aSBlue SwirlETEXI
5292313086aSBlue Swirl
530d7f9b689SLuiz Capitulino    {
531e9628441SPaolo Bonzini        .name       = "gpa2hva",
532e9628441SPaolo Bonzini        .args_type  = "addr:l",
533e9628441SPaolo Bonzini        .params     = "addr",
534e9628441SPaolo Bonzini        .help       = "print the host virtual address corresponding to a guest physical address",
535e9628441SPaolo Bonzini        .cmd        = hmp_gpa2hva,
536e9628441SPaolo Bonzini    },
537e9628441SPaolo Bonzini
538e9628441SPaolo BonziniSTEXI
539e9628441SPaolo Bonzini@item gpa2hva @var{addr}
540e9628441SPaolo Bonzini@findex gpa2hva
541e9628441SPaolo BonziniPrint the host virtual address at which the guest's physical address @var{addr}
542e9628441SPaolo Bonziniis mapped.
543e9628441SPaolo BonziniETEXI
544e9628441SPaolo Bonzini
545e9628441SPaolo Bonzini#ifdef CONFIG_LINUX
546e9628441SPaolo Bonzini    {
547e9628441SPaolo Bonzini        .name       = "gpa2hpa",
548e9628441SPaolo Bonzini        .args_type  = "addr:l",
549e9628441SPaolo Bonzini        .params     = "addr",
550e9628441SPaolo Bonzini        .help       = "print the host physical address corresponding to a guest physical address",
551e9628441SPaolo Bonzini        .cmd        = hmp_gpa2hpa,
552e9628441SPaolo Bonzini    },
553e9628441SPaolo Bonzini#endif
554e9628441SPaolo Bonzini
555e9628441SPaolo BonziniSTEXI
556e9628441SPaolo Bonzini@item gpa2hpa @var{addr}
557e9628441SPaolo Bonzini@findex gpa2hpa
558e9628441SPaolo BonziniPrint the host physical address at which the guest's physical address @var{addr}
559e9628441SPaolo Bonziniis mapped.
560e9628441SPaolo BonziniETEXI
561e9628441SPaolo Bonzini
562e9628441SPaolo Bonzini    {
563d7f9b689SLuiz Capitulino        .name       = "p|print",
564d7f9b689SLuiz Capitulino        .args_type  = "fmt:/,val:l",
565d7f9b689SLuiz Capitulino        .params     = "/fmt expr",
566d7f9b689SLuiz Capitulino        .help       = "print expression value (use $reg for CPU register access)",
5672b9e3576SMarc-André Lureau        .cmd        = do_print,
568d7f9b689SLuiz Capitulino    },
569d7f9b689SLuiz Capitulino
5702313086aSBlue SwirlSTEXI
5712313086aSBlue Swirl@item p or print/@var{fmt} @var{expr}
57270fcbbe7SStefan Weil@findex print
5732313086aSBlue SwirlPrint expression value. Only the @var{format} part of @var{fmt} is
5742313086aSBlue Swirlused.
5752313086aSBlue SwirlETEXI
5762313086aSBlue Swirl
577d7f9b689SLuiz Capitulino    {
578d7f9b689SLuiz Capitulino        .name       = "i",
579d7f9b689SLuiz Capitulino        .args_type  = "fmt:/,addr:i,index:i.",
580d7f9b689SLuiz Capitulino        .params     = "/fmt addr",
581d7f9b689SLuiz Capitulino        .help       = "I/O port read",
5822b9e3576SMarc-André Lureau        .cmd        = hmp_ioport_read,
583d7f9b689SLuiz Capitulino    },
584d7f9b689SLuiz Capitulino
5852313086aSBlue SwirlSTEXI
586b76d799eSMarkus Armbruster@item i/@var{fmt} @var{addr} [.@var{index}]
587b76d799eSMarkus Armbruster@findex i
5882313086aSBlue SwirlRead I/O port.
5892313086aSBlue SwirlETEXI
5902313086aSBlue Swirl
591d7f9b689SLuiz Capitulino    {
592d7f9b689SLuiz Capitulino        .name       = "o",
593d7f9b689SLuiz Capitulino        .args_type  = "fmt:/,addr:i,val:i",
594d7f9b689SLuiz Capitulino        .params     = "/fmt addr value",
595d7f9b689SLuiz Capitulino        .help       = "I/O port write",
5962b9e3576SMarc-André Lureau        .cmd        = hmp_ioport_write,
597d7f9b689SLuiz Capitulino    },
598d7f9b689SLuiz Capitulino
599f114784fSJan KiszkaSTEXI
600b76d799eSMarkus Armbruster@item o/@var{fmt} @var{addr} @var{val}
601b76d799eSMarkus Armbruster@findex o
602f114784fSJan KiszkaWrite to I/O port.
603f114784fSJan KiszkaETEXI
6042313086aSBlue Swirl
605d7f9b689SLuiz Capitulino    {
606d7f9b689SLuiz Capitulino        .name       = "sendkey",
6072ef20c15SAmos Kong        .args_type  = "keys:s,hold-time:i?",
608d7f9b689SLuiz Capitulino        .params     = "keys [hold_ms]",
609d7f9b689SLuiz Capitulino        .help       = "send keys to the VM (e.g. 'sendkey ctrl-alt-f1', default hold time=100 ms)",
6102b9e3576SMarc-André Lureau        .cmd        = hmp_sendkey,
61129136cd8SHani Benhabiles        .command_completion = sendkey_completion,
612d7f9b689SLuiz Capitulino    },
613d7f9b689SLuiz Capitulino
6142313086aSBlue SwirlSTEXI
6152313086aSBlue Swirl@item sendkey @var{keys}
61670fcbbe7SStefan Weil@findex sendkey
617886cc706SAmos KongSend @var{keys} to the guest. @var{keys} could be the name of the
618886cc706SAmos Kongkey or the raw value in hexadecimal format. Use @code{-} to press
619886cc706SAmos Kongseveral keys simultaneously. Example:
6202313086aSBlue Swirl@example
6212313086aSBlue Swirlsendkey ctrl-alt-f1
6222313086aSBlue Swirl@end example
6232313086aSBlue Swirl
6242313086aSBlue SwirlThis command is useful to send keys that your graphical user interface
6252313086aSBlue Swirlintercepts at low level, such as @code{ctrl-alt-f1} in X Window.
6262313086aSBlue SwirlETEXI
6272313086aSBlue Swirl
628d7f9b689SLuiz Capitulino    {
629d7f9b689SLuiz Capitulino        .name       = "system_reset",
630d7f9b689SLuiz Capitulino        .args_type  = "",
631d7f9b689SLuiz Capitulino        .params     = "",
632d7f9b689SLuiz Capitulino        .help       = "reset the system",
6332b9e3576SMarc-André Lureau        .cmd        = hmp_system_reset,
634d7f9b689SLuiz Capitulino    },
635d7f9b689SLuiz Capitulino
6362313086aSBlue SwirlSTEXI
6372313086aSBlue Swirl@item system_reset
63870fcbbe7SStefan Weil@findex system_reset
6392313086aSBlue SwirlReset the system.
6402313086aSBlue SwirlETEXI
6412313086aSBlue Swirl
642d7f9b689SLuiz Capitulino    {
643d7f9b689SLuiz Capitulino        .name       = "system_powerdown",
644d7f9b689SLuiz Capitulino        .args_type  = "",
645d7f9b689SLuiz Capitulino        .params     = "",
646d7f9b689SLuiz Capitulino        .help       = "send system power down event",
6472b9e3576SMarc-André Lureau        .cmd        = hmp_system_powerdown,
648d7f9b689SLuiz Capitulino    },
649d7f9b689SLuiz Capitulino
6502313086aSBlue SwirlSTEXI
6512313086aSBlue Swirl@item system_powerdown
65270fcbbe7SStefan Weil@findex system_powerdown
6532313086aSBlue SwirlPower down the system (if supported).
6542313086aSBlue SwirlETEXI
6552313086aSBlue Swirl
656d7f9b689SLuiz Capitulino    {
657d7f9b689SLuiz Capitulino        .name       = "sum",
658d7f9b689SLuiz Capitulino        .args_type  = "start:i,size:i",
659d7f9b689SLuiz Capitulino        .params     = "addr size",
660d7f9b689SLuiz Capitulino        .help       = "compute the checksum of a memory region",
6612b9e3576SMarc-André Lureau        .cmd        = hmp_sum,
662d7f9b689SLuiz Capitulino    },
663d7f9b689SLuiz Capitulino
6642313086aSBlue SwirlSTEXI
6652313086aSBlue Swirl@item sum @var{addr} @var{size}
66670fcbbe7SStefan Weil@findex sum
6672313086aSBlue SwirlCompute the checksum of a memory region.
6682313086aSBlue SwirlETEXI
6692313086aSBlue Swirl
670d7f9b689SLuiz Capitulino    {
671d7f9b689SLuiz Capitulino        .name       = "device_add",
672c7e4e8ceSMarkus Armbruster        .args_type  = "device:O",
673c7e4e8ceSMarkus Armbruster        .params     = "driver[,prop=value][,...]",
674d7f9b689SLuiz Capitulino        .help       = "add device, like -device on the command line",
6752b9e3576SMarc-André Lureau        .cmd        = hmp_device_add,
6762da1b3abSHani Benhabiles        .command_completion = device_add_completion,
677d7f9b689SLuiz Capitulino    },
678d7f9b689SLuiz Capitulino
6793418bd25SGerd HoffmannSTEXI
6803418bd25SGerd Hoffmann@item device_add @var{config}
68170fcbbe7SStefan Weil@findex device_add
6823418bd25SGerd HoffmannAdd device.
6833418bd25SGerd HoffmannETEXI
6843418bd25SGerd Hoffmann
685d7f9b689SLuiz Capitulino    {
686d7f9b689SLuiz Capitulino        .name       = "device_del",
687d7f9b689SLuiz Capitulino        .args_type  = "id:s",
688d7f9b689SLuiz Capitulino        .params     = "device",
689d7f9b689SLuiz Capitulino        .help       = "remove device",
6902b9e3576SMarc-André Lureau        .cmd        = hmp_device_del,
6912da1b3abSHani Benhabiles        .command_completion = device_del_completion,
692d7f9b689SLuiz Capitulino    },
693d7f9b689SLuiz Capitulino
6943418bd25SGerd HoffmannSTEXI
6953418bd25SGerd Hoffmann@item device_del @var{id}
69670fcbbe7SStefan Weil@findex device_del
6976287d827SDaniel P. BerrangeRemove device @var{id}. @var{id} may be a short ID
6986287d827SDaniel P. Berrangeor a QOM object path.
6993418bd25SGerd HoffmannETEXI
7003418bd25SGerd Hoffmann
701d7f9b689SLuiz Capitulino    {
702d7f9b689SLuiz Capitulino        .name       = "cpu",
703d7f9b689SLuiz Capitulino        .args_type  = "index:i",
704d7f9b689SLuiz Capitulino        .params     = "index",
705d7f9b689SLuiz Capitulino        .help       = "set the default CPU",
7062b9e3576SMarc-André Lureau        .cmd        = hmp_cpu,
707d7f9b689SLuiz Capitulino    },
7083418bd25SGerd Hoffmann
7092313086aSBlue SwirlSTEXI
710c427ea9cSMarkus Armbruster@item cpu @var{index}
711c427ea9cSMarkus Armbruster@findex cpu
7122313086aSBlue SwirlSet the default CPU.
7132313086aSBlue SwirlETEXI
7142313086aSBlue Swirl
715d7f9b689SLuiz Capitulino    {
716d7f9b689SLuiz Capitulino        .name       = "mouse_move",
717d7f9b689SLuiz Capitulino        .args_type  = "dx_str:s,dy_str:s,dz_str:s?",
718d7f9b689SLuiz Capitulino        .params     = "dx dy [dz]",
719d7f9b689SLuiz Capitulino        .help       = "send mouse move events",
7202b9e3576SMarc-André Lureau        .cmd        = hmp_mouse_move,
721d7f9b689SLuiz Capitulino    },
722d7f9b689SLuiz Capitulino
7232313086aSBlue SwirlSTEXI
7242313086aSBlue Swirl@item mouse_move @var{dx} @var{dy} [@var{dz}]
72570fcbbe7SStefan Weil@findex mouse_move
7262313086aSBlue SwirlMove the active mouse to the specified coordinates @var{dx} @var{dy}
7272313086aSBlue Swirlwith optional scroll axis @var{dz}.
7282313086aSBlue SwirlETEXI
7292313086aSBlue Swirl
730d7f9b689SLuiz Capitulino    {
731d7f9b689SLuiz Capitulino        .name       = "mouse_button",
732d7f9b689SLuiz Capitulino        .args_type  = "button_state:i",
733d7f9b689SLuiz Capitulino        .params     = "state",
734d7f9b689SLuiz Capitulino        .help       = "change mouse button state (1=L, 2=M, 4=R)",
7352b9e3576SMarc-André Lureau        .cmd        = hmp_mouse_button,
736d7f9b689SLuiz Capitulino    },
737d7f9b689SLuiz Capitulino
7382313086aSBlue SwirlSTEXI
7392313086aSBlue Swirl@item mouse_button @var{val}
74070fcbbe7SStefan Weil@findex mouse_button
7412313086aSBlue SwirlChange the active mouse button state @var{val} (1=L, 2=M, 4=R).
7422313086aSBlue SwirlETEXI
7432313086aSBlue Swirl
744d7f9b689SLuiz Capitulino    {
745d7f9b689SLuiz Capitulino        .name       = "mouse_set",
746d7f9b689SLuiz Capitulino        .args_type  = "index:i",
747d7f9b689SLuiz Capitulino        .params     = "index",
748d7f9b689SLuiz Capitulino        .help       = "set which mouse device receives events",
7492b9e3576SMarc-André Lureau        .cmd        = hmp_mouse_set,
750d7f9b689SLuiz Capitulino    },
751d7f9b689SLuiz Capitulino
7522313086aSBlue SwirlSTEXI
7532313086aSBlue Swirl@item mouse_set @var{index}
75470fcbbe7SStefan Weil@findex mouse_set
7552313086aSBlue SwirlSet which mouse device receives events at given @var{index}, index
7562313086aSBlue Swirlcan be obtained with
7572313086aSBlue Swirl@example
7582313086aSBlue Swirlinfo mice
7592313086aSBlue Swirl@end example
7602313086aSBlue SwirlETEXI
7612313086aSBlue Swirl
762d7f9b689SLuiz Capitulino    {
763d7f9b689SLuiz Capitulino        .name       = "wavcapture",
764d7f9b689SLuiz Capitulino        .args_type  = "path:F,freq:i?,bits:i?,nchannels:i?",
765d7f9b689SLuiz Capitulino        .params     = "path [frequency [bits [channels]]]",
766d7f9b689SLuiz Capitulino        .help       = "capture audio to a wave file (default frequency=44100 bits=16 channels=2)",
7672b9e3576SMarc-André Lureau        .cmd        = hmp_wavcapture,
768d7f9b689SLuiz Capitulino    },
7692313086aSBlue SwirlSTEXI
7702313086aSBlue Swirl@item wavcapture @var{filename} [@var{frequency} [@var{bits} [@var{channels}]]]
77170fcbbe7SStefan Weil@findex wavcapture
7722313086aSBlue SwirlCapture audio into @var{filename}. Using sample rate @var{frequency}
7732313086aSBlue Swirlbits per sample @var{bits} and number of channels @var{channels}.
7742313086aSBlue Swirl
7752313086aSBlue SwirlDefaults:
7762313086aSBlue Swirl@itemize @minus
7772313086aSBlue Swirl@item Sample rate = 44100 Hz - CD quality
7782313086aSBlue Swirl@item Bits = 16
7792313086aSBlue Swirl@item Number of channels = 2 - Stereo
7802313086aSBlue Swirl@end itemize
7812313086aSBlue SwirlETEXI
7822313086aSBlue Swirl
783d7f9b689SLuiz Capitulino    {
784d7f9b689SLuiz Capitulino        .name       = "stopcapture",
785d7f9b689SLuiz Capitulino        .args_type  = "n:i",
786d7f9b689SLuiz Capitulino        .params     = "capture index",
787d7f9b689SLuiz Capitulino        .help       = "stop capture",
7882b9e3576SMarc-André Lureau        .cmd        = hmp_stopcapture,
789d7f9b689SLuiz Capitulino    },
7902313086aSBlue SwirlSTEXI
7912313086aSBlue Swirl@item stopcapture @var{index}
79270fcbbe7SStefan Weil@findex stopcapture
7932313086aSBlue SwirlStop capture with a given @var{index}, index can be obtained with
7942313086aSBlue Swirl@example
7952313086aSBlue Swirlinfo capture
7962313086aSBlue Swirl@end example
7972313086aSBlue SwirlETEXI
7982313086aSBlue Swirl
799d7f9b689SLuiz Capitulino    {
800d7f9b689SLuiz Capitulino        .name       = "memsave",
801d7f9b689SLuiz Capitulino        .args_type  = "val:l,size:i,filename:s",
802d7f9b689SLuiz Capitulino        .params     = "addr size file",
803d7f9b689SLuiz Capitulino        .help       = "save to disk virtual memory dump starting at 'addr' of size 'size'",
8042b9e3576SMarc-André Lureau        .cmd        = hmp_memsave,
805d7f9b689SLuiz Capitulino    },
806d7f9b689SLuiz Capitulino
8072313086aSBlue SwirlSTEXI
8082313086aSBlue Swirl@item memsave @var{addr} @var{size} @var{file}
80970fcbbe7SStefan Weil@findex memsave
8102313086aSBlue Swirlsave to disk virtual memory dump starting at @var{addr} of size @var{size}.
8112313086aSBlue SwirlETEXI
8122313086aSBlue Swirl
813d7f9b689SLuiz Capitulino    {
814d7f9b689SLuiz Capitulino        .name       = "pmemsave",
815d7f9b689SLuiz Capitulino        .args_type  = "val:l,size:i,filename:s",
816d7f9b689SLuiz Capitulino        .params     = "addr size file",
817d7f9b689SLuiz Capitulino        .help       = "save to disk physical memory dump starting at 'addr' of size 'size'",
8182b9e3576SMarc-André Lureau        .cmd        = hmp_pmemsave,
819d7f9b689SLuiz Capitulino    },
820d7f9b689SLuiz Capitulino
8212313086aSBlue SwirlSTEXI
8222313086aSBlue Swirl@item pmemsave @var{addr} @var{size} @var{file}
82370fcbbe7SStefan Weil@findex pmemsave
8242313086aSBlue Swirlsave to disk physical memory dump starting at @var{addr} of size @var{size}.
8252313086aSBlue SwirlETEXI
8262313086aSBlue Swirl
827d7f9b689SLuiz Capitulino    {
828d7f9b689SLuiz Capitulino        .name       = "boot_set",
829d7f9b689SLuiz Capitulino        .args_type  = "bootdevice:s",
830d7f9b689SLuiz Capitulino        .params     = "bootdevice",
831d7f9b689SLuiz Capitulino        .help       = "define new values for the boot device list",
8322b9e3576SMarc-André Lureau        .cmd        = hmp_boot_set,
833d7f9b689SLuiz Capitulino    },
834d7f9b689SLuiz Capitulino
8352313086aSBlue SwirlSTEXI
8362313086aSBlue Swirl@item boot_set @var{bootdevicelist}
83770fcbbe7SStefan Weil@findex boot_set
8382313086aSBlue SwirlDefine new values for the boot device list. Those values will override
8392313086aSBlue Swirlthe values specified on the command line through the @code{-boot} option.
8402313086aSBlue Swirl
8412313086aSBlue SwirlThe values that can be specified here depend on the machine type, but are
8422313086aSBlue Swirlthe same that can be specified in the @code{-boot} command line option.
8432313086aSBlue SwirlETEXI
8442313086aSBlue Swirl
845d7f9b689SLuiz Capitulino    {
846d7f9b689SLuiz Capitulino        .name       = "nmi",
847e9b4b432SLuiz Capitulino        .args_type  = "",
848e9b4b432SLuiz Capitulino        .params     = "",
8499cb805fdSAlexey Kardashevskiy        .help       = "inject an NMI",
8502b9e3576SMarc-André Lureau        .cmd        = hmp_nmi,
851d7f9b689SLuiz Capitulino    },
8522313086aSBlue SwirlSTEXI
8532313086aSBlue Swirl@item nmi @var{cpu}
85470fcbbe7SStefan Weil@findex nmi
8559cb805fdSAlexey KardashevskiyInject an NMI on the default CPU (x86/s390) or all CPUs (ppc64).
8561f590cf9SLei Li
8571f590cf9SLei LiETEXI
8581f590cf9SLei Li
8591f590cf9SLei Li    {
8603949e594SMarkus Armbruster        .name       = "ringbuf_write",
8611f590cf9SLei Li        .args_type  = "device:s,data:s",
8621f590cf9SLei Li        .params     = "device data",
8633949e594SMarkus Armbruster        .help       = "Write to a ring buffer character device",
8642b9e3576SMarc-André Lureau        .cmd        = hmp_ringbuf_write,
8658e597779SHani Benhabiles        .command_completion = ringbuf_write_completion,
8661f590cf9SLei Li    },
8671f590cf9SLei Li
8681f590cf9SLei LiSTEXI
8693949e594SMarkus Armbruster@item ringbuf_write @var{device} @var{data}
8703949e594SMarkus Armbruster@findex ringbuf_write
8713949e594SMarkus ArmbrusterWrite @var{data} to ring buffer character device @var{device}.
8723949e594SMarkus Armbruster@var{data} must be a UTF-8 string.
8731f590cf9SLei Li
8742313086aSBlue SwirlETEXI
8752313086aSBlue Swirl
876d7f9b689SLuiz Capitulino    {
8773949e594SMarkus Armbruster        .name       = "ringbuf_read",
87849b6d722SLei Li        .args_type  = "device:s,size:i",
87949b6d722SLei Li        .params     = "device size",
8803949e594SMarkus Armbruster        .help       = "Read from a ring buffer character device",
8812b9e3576SMarc-André Lureau        .cmd        = hmp_ringbuf_read,
8828e597779SHani Benhabiles        .command_completion = ringbuf_write_completion,
88349b6d722SLei Li    },
88449b6d722SLei Li
88549b6d722SLei LiSTEXI
8863949e594SMarkus Armbruster@item ringbuf_read @var{device}
8873949e594SMarkus Armbruster@findex ringbuf_read
8883949e594SMarkus ArmbrusterRead and print up to @var{size} bytes from ring buffer character
8893949e594SMarkus Armbrusterdevice @var{device}.
890543f3412SMarkus ArmbrusterCertain non-printable characters are printed \uXXXX, where XXXX is the
891543f3412SMarkus Armbrustercharacter code in hexadecimal.  Character \ is printed \\.
8923949e594SMarkus ArmbrusterBug: can screw up when the buffer contains invalid UTF-8 sequences,
8933949e594SMarkus ArmbrusterNUL characters, after the ring buffer lost data, and when reading
8943949e594SMarkus Armbrusterstops because the size limit is reached.
89549b6d722SLei Li
89649b6d722SLei LiETEXI
89749b6d722SLei Li
89849b6d722SLei Li    {
899d7f9b689SLuiz Capitulino        .name       = "migrate",
9007a4da28bSPeter Xu        .args_type  = "detach:-d,blk:-b,inc:-i,resume:-r,uri:s",
9017a4da28bSPeter Xu        .params     = "[-d] [-b] [-i] [-r] uri",
902fbc3d96cSlirans@il.ibm.com        .help       = "migrate to URI (using -d to not wait for completion)"
903fbc3d96cSlirans@il.ibm.com		      "\n\t\t\t -b for migration without shared storage with"
904fbc3d96cSlirans@il.ibm.com		      " full copy of disk\n\t\t\t -i for migration without "
905fbc3d96cSlirans@il.ibm.com		      "shared storage with incremental copy of disk "
9067a4da28bSPeter Xu		      "(base image shared between src and destination)"
9077a4da28bSPeter Xu                      "\n\t\t\t -r to resume a paused migration",
9082b9e3576SMarc-André Lureau        .cmd        = hmp_migrate,
909d7f9b689SLuiz Capitulino    },
910d7f9b689SLuiz Capitulino
911fbc3d96cSlirans@il.ibm.com
9122313086aSBlue SwirlSTEXI
913fbc3d96cSlirans@il.ibm.com@item migrate [-d] [-b] [-i] @var{uri}
91470fcbbe7SStefan Weil@findex migrate
9152313086aSBlue SwirlMigrate to @var{uri} (using -d to not wait for completion).
916fbc3d96cSlirans@il.ibm.com	-b for migration with full copy of disk
917fbc3d96cSlirans@il.ibm.com	-i for migration with incremental copy of disk (base image is shared)
9182313086aSBlue SwirlETEXI
9192313086aSBlue Swirl
920d7f9b689SLuiz Capitulino    {
921d7f9b689SLuiz Capitulino        .name       = "migrate_cancel",
922d7f9b689SLuiz Capitulino        .args_type  = "",
923d7f9b689SLuiz Capitulino        .params     = "",
924d7f9b689SLuiz Capitulino        .help       = "cancel the current VM migration",
9252b9e3576SMarc-André Lureau        .cmd        = hmp_migrate_cancel,
926d7f9b689SLuiz Capitulino    },
927d7f9b689SLuiz Capitulino
9282313086aSBlue SwirlSTEXI
9292313086aSBlue Swirl@item migrate_cancel
93070fcbbe7SStefan Weil@findex migrate_cancel
9312313086aSBlue SwirlCancel the current VM migration.
93294ae12cbSDr. David Alan GilbertETEXI
9339e1ba4ccSOrit Wasserman
93494ae12cbSDr. David Alan Gilbert    {
93594ae12cbSDr. David Alan Gilbert        .name       = "migrate_continue",
93694ae12cbSDr. David Alan Gilbert        .args_type  = "state:s",
93794ae12cbSDr. David Alan Gilbert        .params     = "state",
93894ae12cbSDr. David Alan Gilbert        .help       = "Continue migration from the given paused state",
93994ae12cbSDr. David Alan Gilbert        .cmd        = hmp_migrate_continue,
94094ae12cbSDr. David Alan Gilbert    },
94194ae12cbSDr. David Alan GilbertSTEXI
94294ae12cbSDr. David Alan Gilbert@item migrate_continue @var{state}
94394ae12cbSDr. David Alan Gilbert@findex migrate_continue
94494ae12cbSDr. David Alan GilbertContinue migration from the paused state @var{state}
9459e1ba4ccSOrit WassermanETEXI
9469e1ba4ccSOrit Wasserman
9479e1ba4ccSOrit Wasserman    {
948bf1ae1f4SDr. David Alan Gilbert        .name       = "migrate_incoming",
949bf1ae1f4SDr. David Alan Gilbert        .args_type  = "uri:s",
950bf1ae1f4SDr. David Alan Gilbert        .params     = "uri",
951bf1ae1f4SDr. David Alan Gilbert        .help       = "Continue an incoming migration from an -incoming defer",
9522b9e3576SMarc-André Lureau        .cmd        = hmp_migrate_incoming,
953bf1ae1f4SDr. David Alan Gilbert    },
954bf1ae1f4SDr. David Alan Gilbert
955bf1ae1f4SDr. David Alan GilbertSTEXI
956bf1ae1f4SDr. David Alan Gilbert@item migrate_incoming @var{uri}
957bf1ae1f4SDr. David Alan Gilbert@findex migrate_incoming
958bf1ae1f4SDr. David Alan GilbertContinue an incoming migration using the @var{uri} (that has the same syntax
959bf1ae1f4SDr. David Alan Gilbertas the -incoming option).
960*3b563c4bSPeter XuETEXI
961bf1ae1f4SDr. David Alan Gilbert
962*3b563c4bSPeter Xu    {
963*3b563c4bSPeter Xu        .name       = "migrate_recover",
964*3b563c4bSPeter Xu        .args_type  = "uri:s",
965*3b563c4bSPeter Xu        .params     = "uri",
966*3b563c4bSPeter Xu        .help       = "Continue a paused incoming postcopy migration",
967*3b563c4bSPeter Xu        .cmd        = hmp_migrate_recover,
968*3b563c4bSPeter Xu    },
969*3b563c4bSPeter Xu
970*3b563c4bSPeter XuSTEXI
971*3b563c4bSPeter Xu@item migrate_recover @var{uri}
972*3b563c4bSPeter Xu@findex migrate_recover
973*3b563c4bSPeter XuContinue a paused incoming postcopy migration using the @var{uri}.
974bf1ae1f4SDr. David Alan GilbertETEXI
975bf1ae1f4SDr. David Alan Gilbert
976bf1ae1f4SDr. David Alan Gilbert    {
9779e1ba4ccSOrit Wasserman        .name       = "migrate_set_cache_size",
9789e1ba4ccSOrit Wasserman        .args_type  = "value:o",
9799e1ba4ccSOrit Wasserman        .params     = "value",
9809e1ba4ccSOrit Wasserman        .help       = "set cache size (in bytes) for XBZRLE migrations,"
9819e1ba4ccSOrit Wasserman                      "the cache size will be rounded down to the nearest "
9829e1ba4ccSOrit Wasserman                      "power of 2.\n"
9839e1ba4ccSOrit Wasserman                      "The cache size affects the number of cache misses."
9849e1ba4ccSOrit Wasserman                      "In case of a high cache miss ratio you need to increase"
9859e1ba4ccSOrit Wasserman                      " the cache size",
9862b9e3576SMarc-André Lureau        .cmd        = hmp_migrate_set_cache_size,
9879e1ba4ccSOrit Wasserman    },
9889e1ba4ccSOrit Wasserman
9899e1ba4ccSOrit WassermanSTEXI
9909e1ba4ccSOrit Wasserman@item migrate_set_cache_size @var{value}
9919e1ba4ccSOrit Wasserman@findex migrate_set_cache_size
9929e1ba4ccSOrit WassermanSet cache size to @var{value} (in bytes) for xbzrle migrations.
9932313086aSBlue SwirlETEXI
9942313086aSBlue Swirl
995d7f9b689SLuiz Capitulino    {
996d7f9b689SLuiz Capitulino        .name       = "migrate_set_speed",
997ed3d4a80SJes Sorensen        .args_type  = "value:o",
998d7f9b689SLuiz Capitulino        .params     = "value",
999ed3d4a80SJes Sorensen        .help       = "set maximum speed (in bytes) for migrations. "
1000ed3d4a80SJes Sorensen	"Defaults to MB if no size suffix is specified, ie. B/K/M/G/T",
10012b9e3576SMarc-André Lureau        .cmd        = hmp_migrate_set_speed,
1002d7f9b689SLuiz Capitulino    },
1003d7f9b689SLuiz Capitulino
10042313086aSBlue SwirlSTEXI
10052313086aSBlue Swirl@item migrate_set_speed @var{value}
100670fcbbe7SStefan Weil@findex migrate_set_speed
10072313086aSBlue SwirlSet maximum speed to @var{value} (in bytes) for migrations.
10082313086aSBlue SwirlETEXI
10092313086aSBlue Swirl
1010d7f9b689SLuiz Capitulino    {
1011d7f9b689SLuiz Capitulino        .name       = "migrate_set_downtime",
1012b0fbf7d3SMarkus Armbruster        .args_type  = "value:T",
1013d7f9b689SLuiz Capitulino        .params     = "value",
1014d7f9b689SLuiz Capitulino        .help       = "set maximum tolerated downtime (in seconds) for migrations",
10152b9e3576SMarc-André Lureau        .cmd        = hmp_migrate_set_downtime,
1016d7f9b689SLuiz Capitulino    },
10172ea42952SGlauber Costa
10182ea42952SGlauber CostaSTEXI
10192ea42952SGlauber Costa@item migrate_set_downtime @var{second}
102070fcbbe7SStefan Weil@findex migrate_set_downtime
10212ea42952SGlauber CostaSet maximum tolerated downtime (in seconds) for migration.
10222ea42952SGlauber CostaETEXI
10232ea42952SGlauber Costa
1024f8882568SJes Sorensen    {
102500458433SOrit Wasserman        .name       = "migrate_set_capability",
102600458433SOrit Wasserman        .args_type  = "capability:s,state:b",
102700458433SOrit Wasserman        .params     = "capability state",
102800458433SOrit Wasserman        .help       = "Enable/Disable the usage of a capability for migration",
10292b9e3576SMarc-André Lureau        .cmd        = hmp_migrate_set_capability,
1030c68a0409SHani Benhabiles        .command_completion = migrate_set_capability_completion,
103100458433SOrit Wasserman    },
103200458433SOrit Wasserman
103300458433SOrit WassermanSTEXI
103400458433SOrit Wasserman@item migrate_set_capability @var{capability} @var{state}
103500458433SOrit Wasserman@findex migrate_set_capability
103600458433SOrit WassermanEnable/Disable the usage of a capability @var{capability} for migration.
103700458433SOrit WassermanETEXI
103800458433SOrit Wasserman
103900458433SOrit Wasserman    {
104050e9a629SLiang Li        .name       = "migrate_set_parameter",
104169ef1f36SDaniel P. Berrange        .args_type  = "parameter:s,value:s",
104250e9a629SLiang Li        .params     = "parameter value",
104350e9a629SLiang Li        .help       = "Set the parameter for migration",
10442b9e3576SMarc-André Lureau        .cmd        = hmp_migrate_set_parameter,
104550e9a629SLiang Li        .command_completion = migrate_set_parameter_completion,
104650e9a629SLiang Li    },
104750e9a629SLiang Li
104850e9a629SLiang LiSTEXI
104950e9a629SLiang Li@item migrate_set_parameter @var{parameter} @var{value}
105050e9a629SLiang Li@findex migrate_set_parameter
105150e9a629SLiang LiSet the parameter @var{parameter} for migration.
105250e9a629SLiang LiETEXI
105350e9a629SLiang Li
105450e9a629SLiang Li    {
10554886a1bcSDr. David Alan Gilbert        .name       = "migrate_start_postcopy",
10564886a1bcSDr. David Alan Gilbert        .args_type  = "",
10574886a1bcSDr. David Alan Gilbert        .params     = "",
1058a54d340bSDr. David Alan Gilbert        .help       = "Followup to a migration command to switch the migration"
105932c3db5bSDr. David Alan Gilbert                      " to postcopy mode. The postcopy-ram capability must "
1060c2eb7f21SGreg Kurz                      "be set on both source and destination before the "
1061c2eb7f21SGreg Kurz                      "original migration command .",
10622b9e3576SMarc-André Lureau        .cmd        = hmp_migrate_start_postcopy,
10634886a1bcSDr. David Alan Gilbert    },
10644886a1bcSDr. David Alan Gilbert
10654886a1bcSDr. David Alan GilbertSTEXI
10664886a1bcSDr. David Alan Gilbert@item migrate_start_postcopy
10674886a1bcSDr. David Alan Gilbert@findex migrate_start_postcopy
10684886a1bcSDr. David Alan GilbertSwitch in-progress migration to postcopy mode. Ignored after the end of
10694886a1bcSDr. David Alan Gilbertmigration (or once already in postcopy).
10704886a1bcSDr. David Alan GilbertETEXI
10714886a1bcSDr. David Alan Gilbert
10724886a1bcSDr. David Alan Gilbert    {
1073d89e666eSzhanghailiang        .name       = "x_colo_lost_heartbeat",
1074d89e666eSzhanghailiang        .args_type  = "",
1075d89e666eSzhanghailiang        .params     = "",
1076d89e666eSzhanghailiang        .help       = "Tell COLO that heartbeat is lost,\n\t\t\t"
1077d89e666eSzhanghailiang                      "a failover or takeover is needed.",
1078d89e666eSzhanghailiang        .cmd = hmp_x_colo_lost_heartbeat,
1079d89e666eSzhanghailiang    },
1080d89e666eSzhanghailiang
1081d89e666eSzhanghailiangSTEXI
1082d89e666eSzhanghailiang@item x_colo_lost_heartbeat
1083d89e666eSzhanghailiang@findex x_colo_lost_heartbeat
1084d89e666eSzhanghailiangTell COLO that heartbeat is lost, a failover or takeover is needed.
1085d89e666eSzhanghailiangETEXI
1086d89e666eSzhanghailiang
1087d89e666eSzhanghailiang    {
10882ea720dbSJes Sorensen        .name       = "client_migrate_info",
10892ea720dbSJes Sorensen        .args_type  = "protocol:s,hostname:s,port:i?,tls-port:i?,cert-subject:s?",
10902ea720dbSJes Sorensen        .params     = "protocol hostname port tls-port cert-subject",
109113cadefbSMarkus Armbruster        .help       = "set migration information for remote display",
10922b9e3576SMarc-André Lureau        .cmd        = hmp_client_migrate_info,
1093f8882568SJes Sorensen    },
1094f8882568SJes Sorensen
1095f8882568SJes SorensenSTEXI
1096e866e239SGerd Hoffmann@item client_migrate_info @var{protocol} @var{hostname} @var{port} @var{tls-port} @var{cert-subject}
1097e866e239SGerd Hoffmann@findex client_migrate_info
109813cadefbSMarkus ArmbrusterSet migration information for remote display.  This makes the server
109913cadefbSMarkus Armbrusterask the client to automatically reconnect using the new parameters
110013cadefbSMarkus Armbrusteronce migration finished successfully.  Only implemented for SPICE.
1101e866e239SGerd HoffmannETEXI
1102e866e239SGerd Hoffmann
1103783e9b48SWen Congyang    {
1104783e9b48SWen Congyang        .name       = "dump-guest-memory",
1105228de9cfSPeter Xu        .args_type  = "paging:-p,detach:-d,zlib:-z,lzo:-l,snappy:-s,filename:F,begin:i?,length:i?",
1106228de9cfSPeter Xu        .params     = "[-p] [-d] [-z|-l|-s] filename [begin length]",
1107c20499d9SQiao Nuohan        .help       = "dump guest memory into file 'filename'.\n\t\t\t"
1108c20499d9SQiao Nuohan                      "-p: do paging to get guest's memory mapping.\n\t\t\t"
1109228de9cfSPeter Xu                      "-d: return immediately (do not wait for completion).\n\t\t\t"
11101b7a0f75SQiao Nuohan                      "-z: dump in kdump-compressed format, with zlib compression.\n\t\t\t"
11111b7a0f75SQiao Nuohan                      "-l: dump in kdump-compressed format, with lzo compression.\n\t\t\t"
11121b7a0f75SQiao Nuohan                      "-s: dump in kdump-compressed format, with snappy compression.\n\t\t\t"
1113c20499d9SQiao Nuohan                      "begin: the starting physical address.\n\t\t\t"
1114c20499d9SQiao Nuohan                      "length: the memory size, in bytes.",
11152b9e3576SMarc-André Lureau        .cmd        = hmp_dump_guest_memory,
1116783e9b48SWen Congyang    },
1117783e9b48SWen Congyang
1118783e9b48SWen Congyang
1119783e9b48SWen CongyangSTEXI
1120c20499d9SQiao Nuohan@item dump-guest-memory [-p] @var{filename} @var{begin} @var{length}
11211b7a0f75SQiao Nuohan@item dump-guest-memory [-z|-l|-s] @var{filename}
1122783e9b48SWen Congyang@findex dump-guest-memory
1123783e9b48SWen CongyangDump guest memory to @var{protocol}. The file can be processed with crash or
11241b7a0f75SQiao Nuohangdb. Without -z|-l|-s, the dump format is ELF.
1125c20499d9SQiao Nuohan        -p: do paging to get guest's memory mapping.
11261b7a0f75SQiao Nuohan        -z: dump in kdump-compressed format, with zlib compression.
11271b7a0f75SQiao Nuohan        -l: dump in kdump-compressed format, with lzo compression.
11281b7a0f75SQiao Nuohan        -s: dump in kdump-compressed format, with snappy compression.
1129c20499d9SQiao Nuohan  filename: dump file name.
1130783e9b48SWen Congyang     begin: the starting physical address. It's optional, and should be
1131c20499d9SQiao Nuohan            specified together with length.
1132783e9b48SWen Congyang    length: the memory size, in bytes. It's optional, and should be specified
1133c20499d9SQiao Nuohan            together with begin.
1134783e9b48SWen CongyangETEXI
1135783e9b48SWen Congyang
1136a4538a5cSJason J. Herne#if defined(TARGET_S390X)
1137a4538a5cSJason J. Herne    {
1138a4538a5cSJason J. Herne        .name       = "dump-skeys",
1139a4538a5cSJason J. Herne        .args_type  = "filename:F",
1140a4538a5cSJason J. Herne        .params     = "",
1141a4538a5cSJason J. Herne        .help       = "Save guest storage keys into file 'filename'.\n",
11422b9e3576SMarc-André Lureau        .cmd        = hmp_dump_skeys,
1143a4538a5cSJason J. Herne    },
1144a4538a5cSJason J. Herne#endif
1145a4538a5cSJason J. Herne
1146a4538a5cSJason J. HerneSTEXI
1147a4538a5cSJason J. Herne@item dump-skeys @var{filename}
1148a4538a5cSJason J. Herne@findex dump-skeys
1149a4538a5cSJason J. HerneSave guest storage keys to a file.
1150a4538a5cSJason J. HerneETEXI
1151a4538a5cSJason J. Herne
1152f860d497SClaudio Imbrenda#if defined(TARGET_S390X)
1153f860d497SClaudio Imbrenda    {
1154f860d497SClaudio Imbrenda        .name       = "migration_mode",
1155f860d497SClaudio Imbrenda        .args_type  = "mode:i",
1156f860d497SClaudio Imbrenda        .params     = "mode",
1157f860d497SClaudio Imbrenda        .help       = "Enables or disables migration mode\n",
1158f860d497SClaudio Imbrenda        .cmd        = hmp_migrationmode,
1159f860d497SClaudio Imbrenda    },
1160f860d497SClaudio Imbrenda#endif
1161f860d497SClaudio Imbrenda
1162f860d497SClaudio ImbrendaSTEXI
1163f860d497SClaudio Imbrenda@item migration_mode @var{mode}
1164f860d497SClaudio Imbrenda@findex migration_mode
1165f860d497SClaudio ImbrendaEnables or disables migration mode.
1166f860d497SClaudio ImbrendaETEXI
1167f860d497SClaudio Imbrenda
1168e866e239SGerd Hoffmann    {
11692ea720dbSJes Sorensen        .name       = "snapshot_blkdev",
11706cc2a415SPaolo Bonzini        .args_type  = "reuse:-n,device:B,snapshot-file:s?,format:s?",
11716cc2a415SPaolo Bonzini        .params     = "[-n] device [new-image-file] [format]",
11722ea720dbSJes Sorensen        .help       = "initiates a live snapshot\n\t\t\t"
11732ea720dbSJes Sorensen                      "of device. If a new image file is specified, the\n\t\t\t"
11742ea720dbSJes Sorensen                      "new image file will become the new root image.\n\t\t\t"
11752ea720dbSJes Sorensen                      "If format is specified, the snapshot file will\n\t\t\t"
1176775ca88eSWenchao Xia                      "be created in that format.\n\t\t\t"
11776cc2a415SPaolo Bonzini                      "The default format is qcow2.  The -n flag requests QEMU\n\t\t\t"
11786cc2a415SPaolo Bonzini                      "to reuse the image found in new-image-file, instead of\n\t\t\t"
11796cc2a415SPaolo Bonzini                      "recreating it from scratch.",
11802b9e3576SMarc-André Lureau        .cmd        = hmp_snapshot_blkdev,
1181e866e239SGerd Hoffmann    },
1182e866e239SGerd Hoffmann
1183e866e239SGerd HoffmannSTEXI
1184f8882568SJes Sorensen@item snapshot_blkdev
1185f8882568SJes Sorensen@findex snapshot_blkdev
1186f8882568SJes SorensenSnapshot device, using snapshot file as target if provided
1187f8882568SJes SorensenETEXI
1188f8882568SJes Sorensen
1189d7f9b689SLuiz Capitulino    {
1190775ca88eSWenchao Xia        .name       = "snapshot_blkdev_internal",
1191775ca88eSWenchao Xia        .args_type  = "device:B,name:s",
1192775ca88eSWenchao Xia        .params     = "device name",
1193775ca88eSWenchao Xia        .help       = "take an internal snapshot of device.\n\t\t\t"
1194775ca88eSWenchao Xia                      "The format of the image used by device must\n\t\t\t"
1195775ca88eSWenchao Xia                      "support it, such as qcow2.\n\t\t\t",
11962b9e3576SMarc-André Lureau        .cmd        = hmp_snapshot_blkdev_internal,
1197775ca88eSWenchao Xia    },
1198775ca88eSWenchao Xia
1199775ca88eSWenchao XiaSTEXI
1200775ca88eSWenchao Xia@item snapshot_blkdev_internal
1201775ca88eSWenchao Xia@findex snapshot_blkdev_internal
1202775ca88eSWenchao XiaTake an internal snapshot on device if it support
1203775ca88eSWenchao XiaETEXI
1204775ca88eSWenchao Xia
1205775ca88eSWenchao Xia    {
12067a4ed2eeSWenchao Xia        .name       = "snapshot_delete_blkdev_internal",
12077a4ed2eeSWenchao Xia        .args_type  = "device:B,name:s,id:s?",
12087a4ed2eeSWenchao Xia        .params     = "device name [id]",
12097a4ed2eeSWenchao Xia        .help       = "delete an internal snapshot of device.\n\t\t\t"
12107a4ed2eeSWenchao Xia                      "If id is specified, qemu will try delete\n\t\t\t"
12117a4ed2eeSWenchao Xia                      "the snapshot matching both id and name.\n\t\t\t"
12127a4ed2eeSWenchao Xia                      "The format of the image used by device must\n\t\t\t"
12137a4ed2eeSWenchao Xia                      "support it, such as qcow2.\n\t\t\t",
12142b9e3576SMarc-André Lureau        .cmd        = hmp_snapshot_delete_blkdev_internal,
12157a4ed2eeSWenchao Xia    },
12167a4ed2eeSWenchao Xia
12177a4ed2eeSWenchao XiaSTEXI
12187a4ed2eeSWenchao Xia@item snapshot_delete_blkdev_internal
12197a4ed2eeSWenchao Xia@findex snapshot_delete_blkdev_internal
12207a4ed2eeSWenchao XiaDelete an internal snapshot on device if it support
12217a4ed2eeSWenchao XiaETEXI
12227a4ed2eeSWenchao Xia
12237a4ed2eeSWenchao Xia    {
1224d9b902dbSPaolo Bonzini        .name       = "drive_mirror",
1225d9b902dbSPaolo Bonzini        .args_type  = "reuse:-n,full:-f,device:B,target:s,format:s?",
1226d9b902dbSPaolo Bonzini        .params     = "[-n] [-f] device target [format]",
1227d9b902dbSPaolo Bonzini        .help       = "initiates live storage\n\t\t\t"
1228d9b902dbSPaolo Bonzini                      "migration for a device. The device's contents are\n\t\t\t"
1229d9b902dbSPaolo Bonzini                      "copied to the new image file, including data that\n\t\t\t"
1230d9b902dbSPaolo Bonzini                      "is written after the command is started.\n\t\t\t"
1231d9b902dbSPaolo Bonzini                      "The -n flag requests QEMU to reuse the image found\n\t\t\t"
1232d9b902dbSPaolo Bonzini                      "in new-image-file, instead of recreating it from scratch.\n\t\t\t"
1233d9b902dbSPaolo Bonzini                      "The -f flag requests QEMU to copy the whole disk,\n\t\t\t"
1234d9b902dbSPaolo Bonzini                      "so that the result does not need a backing file.\n\t\t\t",
12352b9e3576SMarc-André Lureau        .cmd        = hmp_drive_mirror,
1236d9b902dbSPaolo Bonzini    },
1237d9b902dbSPaolo BonziniSTEXI
1238d9b902dbSPaolo Bonzini@item drive_mirror
1239d9b902dbSPaolo Bonzini@findex drive_mirror
1240d9b902dbSPaolo BonziniStart mirroring a block device's writes to a new destination,
1241d9b902dbSPaolo Bonziniusing the specified target.
1242d9b902dbSPaolo BonziniETEXI
1243d9b902dbSPaolo Bonzini
1244d9b902dbSPaolo Bonzini    {
1245de90930aSStefan Hajnoczi        .name       = "drive_backup",
124613b9414bSPavel Butsykin        .args_type  = "reuse:-n,full:-f,compress:-c,device:B,target:s,format:s?",
124713b9414bSPavel Butsykin        .params     = "[-n] [-f] [-c] device target [format]",
1248de90930aSStefan Hajnoczi        .help       = "initiates a point-in-time\n\t\t\t"
1249de90930aSStefan Hajnoczi                      "copy for a device. The device's contents are\n\t\t\t"
1250de90930aSStefan Hajnoczi                      "copied to the new image file, excluding data that\n\t\t\t"
1251de90930aSStefan Hajnoczi                      "is written after the command is started.\n\t\t\t"
1252de90930aSStefan Hajnoczi                      "The -n flag requests QEMU to reuse the image found\n\t\t\t"
1253de90930aSStefan Hajnoczi                      "in new-image-file, instead of recreating it from scratch.\n\t\t\t"
1254de90930aSStefan Hajnoczi                      "The -f flag requests QEMU to copy the whole disk,\n\t\t\t"
125513b9414bSPavel Butsykin                      "so that the result does not need a backing file.\n\t\t\t"
125613b9414bSPavel Butsykin                      "The -c flag requests QEMU to compress backup data\n\t\t\t"
125713b9414bSPavel Butsykin                      "(if the target format supports it).\n\t\t\t",
12582b9e3576SMarc-André Lureau        .cmd        = hmp_drive_backup,
1259de90930aSStefan Hajnoczi    },
1260de90930aSStefan HajnocziSTEXI
1261de90930aSStefan Hajnoczi@item drive_backup
1262de90930aSStefan Hajnoczi@findex drive_backup
1263de90930aSStefan HajnocziStart a point-in-time copy of a block device to a specificed target.
1264de90930aSStefan HajnocziETEXI
1265de90930aSStefan Hajnoczi
1266de90930aSStefan Hajnoczi    {
1267d7f9b689SLuiz Capitulino        .name       = "drive_add",
1268abb21ac3SKevin Wolf        .args_type  = "node:-n,pci_addr:s,opts:s",
1269abb21ac3SKevin Wolf        .params     = "[-n] [[<domain>:]<bus>:]<slot>\n"
12702313086aSBlue Swirl                      "[file=file][,if=type][,bus=n]\n"
1271fb0490f6SStefan Hajnoczi                      "[,unit=m][,media=d][,index=i]\n"
12722313086aSBlue Swirl                      "[,cyls=c,heads=h,secs=s[,trans=t]]\n"
1273fb0490f6SStefan Hajnoczi                      "[,snapshot=on|off][,cache=on|off]\n"
1274fb0490f6SStefan Hajnoczi                      "[,readonly=on|off][,copy-on-read=on|off]",
1275d7f9b689SLuiz Capitulino        .help       = "add drive to PCI storage controller",
12762b9e3576SMarc-André Lureau        .cmd        = hmp_drive_add,
1277d7f9b689SLuiz Capitulino    },
1278d7f9b689SLuiz Capitulino
12792313086aSBlue SwirlSTEXI
12802313086aSBlue Swirl@item drive_add
128170fcbbe7SStefan Weil@findex drive_add
12822313086aSBlue SwirlAdd drive to PCI storage controller.
12832313086aSBlue SwirlETEXI
12842313086aSBlue Swirl
1285d7f9b689SLuiz Capitulino    {
12862ae63bdaSIsaku Yamahata        .name       = "pcie_aer_inject_error",
12872ae63bdaSIsaku Yamahata        .args_type  = "advisory_non_fatal:-a,correctable:-c,"
12882ae63bdaSIsaku Yamahata	              "id:s,error_status:s,"
12892ae63bdaSIsaku Yamahata	              "header0:i?,header1:i?,header2:i?,header3:i?,"
12902ae63bdaSIsaku Yamahata	              "prefix0:i?,prefix1:i?,prefix2:i?,prefix3:i?",
12912ae63bdaSIsaku Yamahata        .params     = "[-a] [-c] id "
12922ae63bdaSIsaku Yamahata                      "<error_status> [<tlp header> [<tlp header prefix>]]",
12932ae63bdaSIsaku Yamahata        .help       = "inject pcie aer error\n\t\t\t"
12942ae63bdaSIsaku Yamahata	              " -a for advisory non fatal error\n\t\t\t"
12952ae63bdaSIsaku Yamahata	              " -c for correctable error\n\t\t\t"
12962ae63bdaSIsaku Yamahata                      "<id> = qdev device id\n\t\t\t"
12972ae63bdaSIsaku Yamahata                      "<error_status> = error string or 32bit\n\t\t\t"
12982ae63bdaSIsaku Yamahata                      "<tlb header> = 32bit x 4\n\t\t\t"
12992ae63bdaSIsaku Yamahata                      "<tlb header prefix> = 32bit x 4",
13002b9e3576SMarc-André Lureau        .cmd        = hmp_pcie_aer_inject_error,
13012ae63bdaSIsaku Yamahata    },
13022ae63bdaSIsaku Yamahata
13032ae63bdaSIsaku YamahataSTEXI
13042ae63bdaSIsaku Yamahata@item pcie_aer_inject_error
13052ae63bdaSIsaku Yamahata@findex pcie_aer_inject_error
13062ae63bdaSIsaku YamahataInject PCIe AER error
13072ae63bdaSIsaku YamahataETEXI
13082ae63bdaSIsaku Yamahata
13092ae63bdaSIsaku Yamahata    {
1310ae82d324SMarkus Armbruster        .name       = "netdev_add",
1311ae82d324SMarkus Armbruster        .args_type  = "netdev:O",
131203ce5744SNikolay Nikolaev        .params     = "[user|tap|socket|vde|bridge|hubport|netmap|vhost-user],id=str[,prop=value][,...]",
1313ae82d324SMarkus Armbruster        .help       = "add host network device",
13142b9e3576SMarc-André Lureau        .cmd        = hmp_netdev_add,
1315b162b49aSHani Benhabiles        .command_completion = netdev_add_completion,
1316ae82d324SMarkus Armbruster    },
1317ae82d324SMarkus Armbruster
1318ae82d324SMarkus ArmbrusterSTEXI
1319ae82d324SMarkus Armbruster@item netdev_add
1320ae82d324SMarkus Armbruster@findex netdev_add
1321ae82d324SMarkus ArmbrusterAdd host network device.
1322ae82d324SMarkus ArmbrusterETEXI
1323ae82d324SMarkus Armbruster
1324ae82d324SMarkus Armbruster    {
1325ae82d324SMarkus Armbruster        .name       = "netdev_del",
1326ae82d324SMarkus Armbruster        .args_type  = "id:s",
1327ae82d324SMarkus Armbruster        .params     = "id",
1328ae82d324SMarkus Armbruster        .help       = "remove host network device",
13292b9e3576SMarc-André Lureau        .cmd        = hmp_netdev_del,
133011b389f2SHani Benhabiles        .command_completion = netdev_del_completion,
1331ae82d324SMarkus Armbruster    },
1332ae82d324SMarkus Armbruster
1333ae82d324SMarkus ArmbrusterSTEXI
1334ae82d324SMarkus Armbruster@item netdev_del
1335ae82d324SMarkus Armbruster@findex netdev_del
1336ae82d324SMarkus ArmbrusterRemove host network device.
1337ae82d324SMarkus ArmbrusterETEXI
1338ae82d324SMarkus Armbruster
1339ab2d0531SPaolo Bonzini    {
1340cff8b2c6SPaolo Bonzini        .name       = "object_add",
1341cff8b2c6SPaolo Bonzini        .args_type  = "object:O",
1342cff8b2c6SPaolo Bonzini        .params     = "[qom-type=]type,id=str[,prop=value][,...]",
1343cff8b2c6SPaolo Bonzini        .help       = "create QOM object",
13442b9e3576SMarc-André Lureau        .cmd        = hmp_object_add,
1345bfa40f77SHani Benhabiles        .command_completion = object_add_completion,
1346cff8b2c6SPaolo Bonzini    },
1347cff8b2c6SPaolo Bonzini
1348cff8b2c6SPaolo BonziniSTEXI
1349cff8b2c6SPaolo Bonzini@item object_add
1350cff8b2c6SPaolo Bonzini@findex object_add
1351cff8b2c6SPaolo BonziniCreate QOM object.
1352cff8b2c6SPaolo BonziniETEXI
1353cff8b2c6SPaolo Bonzini
1354cff8b2c6SPaolo Bonzini    {
1355ab2d0531SPaolo Bonzini        .name       = "object_del",
1356ab2d0531SPaolo Bonzini        .args_type  = "id:s",
1357ab2d0531SPaolo Bonzini        .params     = "id",
1358ab2d0531SPaolo Bonzini        .help       = "destroy QOM object",
13592b9e3576SMarc-André Lureau        .cmd        = hmp_object_del,
1360bfa40f77SHani Benhabiles        .command_completion = object_del_completion,
1361ab2d0531SPaolo Bonzini    },
1362ab2d0531SPaolo Bonzini
1363ab2d0531SPaolo BonziniSTEXI
1364ab2d0531SPaolo Bonzini@item object_del
1365ab2d0531SPaolo Bonzini@findex object_del
1366ab2d0531SPaolo BonziniDestroy QOM object.
1367ab2d0531SPaolo BonziniETEXI
1368ab2d0531SPaolo Bonzini
13692313086aSBlue Swirl#ifdef CONFIG_SLIRP
1370d7f9b689SLuiz Capitulino    {
1371d7f9b689SLuiz Capitulino        .name       = "hostfwd_add",
1372d7f9b689SLuiz Capitulino        .args_type  = "arg1:s,arg2:s?,arg3:s?",
137393653066SThomas Huth        .params     = "[hub_id name]|[netdev_id] [tcp|udp]:[hostaddr]:hostport-[guestaddr]:guestport",
1374d7f9b689SLuiz Capitulino        .help       = "redirect TCP or UDP connections from host to guest (requires -net user)",
13752b9e3576SMarc-André Lureau        .cmd        = hmp_hostfwd_add,
1376d7f9b689SLuiz Capitulino    },
137721413d68SMarkus Armbruster#endif
137821413d68SMarkus ArmbrusterSTEXI
137921413d68SMarkus Armbruster@item hostfwd_add
138021413d68SMarkus Armbruster@findex hostfwd_add
138121413d68SMarkus ArmbrusterRedirect TCP or UDP connections from host to guest (requires -net user).
138221413d68SMarkus ArmbrusterETEXI
1383d7f9b689SLuiz Capitulino
138421413d68SMarkus Armbruster#ifdef CONFIG_SLIRP
1385d7f9b689SLuiz Capitulino    {
1386d7f9b689SLuiz Capitulino        .name       = "hostfwd_remove",
1387d7f9b689SLuiz Capitulino        .args_type  = "arg1:s,arg2:s?,arg3:s?",
138893653066SThomas Huth        .params     = "[hub_id name]|[netdev_id] [tcp|udp]:[hostaddr]:hostport",
1389d7f9b689SLuiz Capitulino        .help       = "remove host-to-guest TCP or UDP redirection",
13902b9e3576SMarc-André Lureau        .cmd        = hmp_hostfwd_remove,
1391d7f9b689SLuiz Capitulino    },
1392d7f9b689SLuiz Capitulino
13932313086aSBlue Swirl#endif
13942313086aSBlue SwirlSTEXI
139521413d68SMarkus Armbruster@item hostfwd_remove
139621413d68SMarkus Armbruster@findex hostfwd_remove
139721413d68SMarkus ArmbrusterRemove host-to-guest TCP or UDP redirection.
13982313086aSBlue SwirlETEXI
13992313086aSBlue Swirl
1400d7f9b689SLuiz Capitulino    {
1401d7f9b689SLuiz Capitulino        .name       = "balloon",
14023b0bd6ecSLuiz Capitulino        .args_type  = "value:M",
1403d7f9b689SLuiz Capitulino        .params     = "target",
14043c05613aSRiccardo Magliocchetti        .help       = "request VM to change its memory allocation (in MB)",
14052b9e3576SMarc-André Lureau        .cmd        = hmp_balloon,
1406d7f9b689SLuiz Capitulino    },
1407d7f9b689SLuiz Capitulino
14082313086aSBlue SwirlSTEXI
14092313086aSBlue Swirl@item balloon @var{value}
141070fcbbe7SStefan Weil@findex balloon
14112313086aSBlue SwirlRequest VM to change its memory allocation to @var{value} (in MB).
14122313086aSBlue SwirlETEXI
14132313086aSBlue Swirl
1414d7f9b689SLuiz Capitulino    {
1415d7f9b689SLuiz Capitulino        .name       = "set_link",
1416c9b26a4cSMarkus Armbruster        .args_type  = "name:s,up:b",
1417c9b26a4cSMarkus Armbruster        .params     = "name on|off",
1418d7f9b689SLuiz Capitulino        .help       = "change the link status of a network adapter",
14192b9e3576SMarc-André Lureau        .cmd        = hmp_set_link,
142040d19394SHani Benhabiles        .command_completion = set_link_completion,
1421d7f9b689SLuiz Capitulino    },
1422d7f9b689SLuiz Capitulino
14232313086aSBlue SwirlSTEXI
1424c9b26a4cSMarkus Armbruster@item set_link @var{name} [on|off]
142570fcbbe7SStefan Weil@findex set_link
1426c9b26a4cSMarkus ArmbrusterSwitch link @var{name} on (i.e. up) or off (i.e. down).
14272313086aSBlue SwirlETEXI
14282313086aSBlue Swirl
1429d7f9b689SLuiz Capitulino    {
1430d7f9b689SLuiz Capitulino        .name       = "watchdog_action",
1431d7f9b689SLuiz Capitulino        .args_type  = "action:s",
1432d7f9b689SLuiz Capitulino        .params     = "[reset|shutdown|poweroff|pause|debug|none]",
1433d7f9b689SLuiz Capitulino        .help       = "change watchdog action",
14342b9e3576SMarc-André Lureau        .cmd        = hmp_watchdog_action,
1435d0ece345SHani Benhabiles        .command_completion = watchdog_action_completion,
1436d7f9b689SLuiz Capitulino    },
1437d7f9b689SLuiz Capitulino
14382313086aSBlue SwirlSTEXI
14392313086aSBlue Swirl@item watchdog_action
144070fcbbe7SStefan Weil@findex watchdog_action
14412313086aSBlue SwirlChange watchdog action.
14422313086aSBlue SwirlETEXI
14432313086aSBlue Swirl
1444d7f9b689SLuiz Capitulino    {
1445d7f9b689SLuiz Capitulino        .name       = "acl_show",
1446d7f9b689SLuiz Capitulino        .args_type  = "aclname:s",
1447d7f9b689SLuiz Capitulino        .params     = "aclname",
1448d7f9b689SLuiz Capitulino        .help       = "list rules in the access control list",
14492b9e3576SMarc-André Lureau        .cmd        = hmp_acl_show,
1450d7f9b689SLuiz Capitulino    },
1451d7f9b689SLuiz Capitulino
14522313086aSBlue SwirlSTEXI
145315dfcd45SJan Kiszka@item acl_show @var{aclname}
145470fcbbe7SStefan Weil@findex acl_show
145515dfcd45SJan KiszkaList all the matching rules in the access control list, and the default
145615dfcd45SJan Kiszkapolicy. There are currently two named access control lists,
145715dfcd45SJan Kiszka@var{vnc.x509dname} and @var{vnc.username} matching on the x509 client
145815dfcd45SJan Kiszkacertificate distinguished name, and SASL username respectively.
145915dfcd45SJan KiszkaETEXI
14602313086aSBlue Swirl
1461d7f9b689SLuiz Capitulino    {
1462d7f9b689SLuiz Capitulino        .name       = "acl_policy",
1463d7f9b689SLuiz Capitulino        .args_type  = "aclname:s,policy:s",
1464d7f9b689SLuiz Capitulino        .params     = "aclname allow|deny",
1465d7f9b689SLuiz Capitulino        .help       = "set default access control list policy",
14662b9e3576SMarc-André Lureau        .cmd        = hmp_acl_policy,
1467d7f9b689SLuiz Capitulino    },
1468d7f9b689SLuiz Capitulino
146915dfcd45SJan KiszkaSTEXI
1470cbbfacc6SJan Kiszka@item acl_policy @var{aclname} @code{allow|deny}
147170fcbbe7SStefan Weil@findex acl_policy
147215dfcd45SJan KiszkaSet the default access control list policy, used in the event that
14732313086aSBlue Swirlnone of the explicit rules match. The default policy at startup is
147415dfcd45SJan Kiszkaalways @code{deny}.
147515dfcd45SJan KiszkaETEXI
147615dfcd45SJan Kiszka
1477d7f9b689SLuiz Capitulino    {
1478d7f9b689SLuiz Capitulino        .name       = "acl_add",
1479d7f9b689SLuiz Capitulino        .args_type  = "aclname:s,match:s,policy:s,index:i?",
1480d7f9b689SLuiz Capitulino        .params     = "aclname match allow|deny [index]",
1481d7f9b689SLuiz Capitulino        .help       = "add a match rule to the access control list",
14822b9e3576SMarc-André Lureau        .cmd        = hmp_acl_add,
1483d7f9b689SLuiz Capitulino    },
1484d7f9b689SLuiz Capitulino
148515dfcd45SJan KiszkaSTEXI
14860e4aec98SMarkus Armbruster@item acl_add @var{aclname} @var{match} @code{allow|deny} [@var{index}]
14870e4aec98SMarkus Armbruster@findex acl_add
148815dfcd45SJan KiszkaAdd a match rule to the access control list, allowing or denying access.
148915dfcd45SJan KiszkaThe match will normally be an exact username or x509 distinguished name,
149015dfcd45SJan Kiszkabut can optionally include wildcard globs. eg @code{*@@EXAMPLE.COM} to
149115dfcd45SJan Kiszkaallow all users in the @code{EXAMPLE.COM} kerberos realm. The match will
14922313086aSBlue Swirlnormally be appended to the end of the ACL, but can be inserted
149315dfcd45SJan Kiszkaearlier in the list if the optional @var{index} parameter is supplied.
149415dfcd45SJan KiszkaETEXI
149515dfcd45SJan Kiszka
1496d7f9b689SLuiz Capitulino    {
1497d7f9b689SLuiz Capitulino        .name       = "acl_remove",
1498d7f9b689SLuiz Capitulino        .args_type  = "aclname:s,match:s",
1499d7f9b689SLuiz Capitulino        .params     = "aclname match",
1500d7f9b689SLuiz Capitulino        .help       = "remove a match rule from the access control list",
15012b9e3576SMarc-André Lureau        .cmd        = hmp_acl_remove,
1502d7f9b689SLuiz Capitulino    },
1503d7f9b689SLuiz Capitulino
150415dfcd45SJan KiszkaSTEXI
150515dfcd45SJan Kiszka@item acl_remove @var{aclname} @var{match}
150670fcbbe7SStefan Weil@findex acl_remove
150715dfcd45SJan KiszkaRemove the specified match rule from the access control list.
150815dfcd45SJan KiszkaETEXI
150915dfcd45SJan Kiszka
1510d7f9b689SLuiz Capitulino    {
1511d7f9b689SLuiz Capitulino        .name       = "acl_reset",
1512d7f9b689SLuiz Capitulino        .args_type  = "aclname:s",
1513d7f9b689SLuiz Capitulino        .params     = "aclname",
1514d7f9b689SLuiz Capitulino        .help       = "reset the access control list",
15152b9e3576SMarc-André Lureau        .cmd        = hmp_acl_reset,
1516d7f9b689SLuiz Capitulino    },
1517d7f9b689SLuiz Capitulino
151815dfcd45SJan KiszkaSTEXI
15190e4aec98SMarkus Armbruster@item acl_reset @var{aclname}
15200e4aec98SMarkus Armbruster@findex acl_reset
152115dfcd45SJan KiszkaRemove all matches from the access control list, and set the default
15222313086aSBlue Swirlpolicy back to @code{deny}.
15232313086aSBlue SwirlETEXI
15242313086aSBlue Swirl
15254057725fSPaolo Bonzini    {
15264057725fSPaolo Bonzini        .name       = "nbd_server_start",
15274057725fSPaolo Bonzini        .args_type  = "all:-a,writable:-w,uri:s",
15284057725fSPaolo Bonzini        .params     = "nbd_server_start [-a] [-w] host:port",
15294057725fSPaolo Bonzini        .help       = "serve block devices on the given host and port",
15302b9e3576SMarc-André Lureau        .cmd        = hmp_nbd_server_start,
15314057725fSPaolo Bonzini    },
15324057725fSPaolo BonziniSTEXI
15334057725fSPaolo Bonzini@item nbd_server_start @var{host}:@var{port}
15344057725fSPaolo Bonzini@findex nbd_server_start
15354057725fSPaolo BonziniStart an NBD server on the given host and/or port.  If the @option{-a}
15364057725fSPaolo Bonzinioption is included, all of the virtual machine's block devices that
15374057725fSPaolo Bonzinihave an inserted media on them are automatically exported; in this case,
15384057725fSPaolo Bonzinithe @option{-w} option makes the devices writable too.
15394057725fSPaolo BonziniETEXI
15404057725fSPaolo Bonzini
15414057725fSPaolo Bonzini    {
15424057725fSPaolo Bonzini        .name       = "nbd_server_add",
1543dba49323SEric Blake        .args_type  = "writable:-w,device:B,name:s?",
1544dba49323SEric Blake        .params     = "nbd_server_add [-w] device [name]",
15454057725fSPaolo Bonzini        .help       = "export a block device via NBD",
15462b9e3576SMarc-André Lureau        .cmd        = hmp_nbd_server_add,
15474057725fSPaolo Bonzini    },
15484057725fSPaolo BonziniSTEXI
1549dba49323SEric Blake@item nbd_server_add @var{device} [ @var{name} ]
15504057725fSPaolo Bonzini@findex nbd_server_add
15514057725fSPaolo BonziniExport a block device through QEMU's NBD server, which must be started
15524057725fSPaolo Bonzinibeforehand with @command{nbd_server_start}.  The @option{-w} option makes the
1553dba49323SEric Blakeexported device writable too.  The export name is controlled by @var{name},
1554dba49323SEric Blakedefaulting to @var{device}.
15554057725fSPaolo BonziniETEXI
15564057725fSPaolo Bonzini
15574057725fSPaolo Bonzini    {
155808fb10a7SEric Blake        .name       = "nbd_server_remove",
155908fb10a7SEric Blake        .args_type  = "force:-f,name:s",
156008fb10a7SEric Blake        .params     = "nbd_server_remove [-f] name",
156108fb10a7SEric Blake        .help       = "remove an export previously exposed via NBD",
156208fb10a7SEric Blake        .cmd        = hmp_nbd_server_remove,
156308fb10a7SEric Blake    },
156408fb10a7SEric BlakeSTEXI
156508fb10a7SEric Blake@item nbd_server_remove [-f] @var{name}
156608fb10a7SEric Blake@findex nbd_server_remove
156708fb10a7SEric BlakeStop exporting a block device through QEMU's NBD server, which was
156808fb10a7SEric Blakepreviously started with @command{nbd_server_add}.  The @option{-f}
156908fb10a7SEric Blakeoption forces the server to drop the export immediately even if
157008fb10a7SEric Blakeclients are connected; otherwise the command fails unless there are no
157108fb10a7SEric Blakeclients.
157208fb10a7SEric BlakeETEXI
157308fb10a7SEric Blake
157408fb10a7SEric Blake    {
15754057725fSPaolo Bonzini        .name       = "nbd_server_stop",
15764057725fSPaolo Bonzini        .args_type  = "",
15774057725fSPaolo Bonzini        .params     = "nbd_server_stop",
15784057725fSPaolo Bonzini        .help       = "stop serving block devices using the NBD protocol",
15792b9e3576SMarc-André Lureau        .cmd        = hmp_nbd_server_stop,
15804057725fSPaolo Bonzini    },
15814057725fSPaolo BonziniSTEXI
15824057725fSPaolo Bonzini@item nbd_server_stop
15834057725fSPaolo Bonzini@findex nbd_server_stop
15844057725fSPaolo BonziniStop the QEMU embedded NBD server.
15854057725fSPaolo BonziniETEXI
15864057725fSPaolo Bonzini
15874057725fSPaolo Bonzini
158879c4f6b0SHuang Ying#if defined(TARGET_I386)
1589d7f9b689SLuiz Capitulino
1590d7f9b689SLuiz Capitulino    {
1591d7f9b689SLuiz Capitulino        .name       = "mce",
159231ce5e0cSJin Dongming        .args_type  = "broadcast:-b,cpu_index:i,bank:i,status:l,mcg_status:l,addr:l,misc:l",
159331ce5e0cSJin Dongming        .params     = "[-b] cpu bank status mcgstatus addr misc",
159431ce5e0cSJin Dongming        .help       = "inject a MCE on the given CPU [and broadcast to other CPUs with -b option]",
15952b9e3576SMarc-André Lureau        .cmd        = hmp_mce,
1596d7f9b689SLuiz Capitulino    },
1597d7f9b689SLuiz Capitulino
159879c4f6b0SHuang Ying#endif
159979c4f6b0SHuang YingSTEXI
160079c4f6b0SHuang Ying@item mce @var{cpu} @var{bank} @var{status} @var{mcgstatus} @var{addr} @var{misc}
160170fcbbe7SStefan Weil@findex mce (x86)
160279c4f6b0SHuang YingInject an MCE on the given CPU (x86 only).
160379c4f6b0SHuang YingETEXI
160479c4f6b0SHuang Ying
1605d7f9b689SLuiz Capitulino    {
1606d7f9b689SLuiz Capitulino        .name       = "getfd",
1607d7f9b689SLuiz Capitulino        .args_type  = "fdname:s",
1608d7f9b689SLuiz Capitulino        .params     = "getfd name",
1609d7f9b689SLuiz Capitulino        .help       = "receive a file descriptor via SCM rights and assign it a name",
16102b9e3576SMarc-André Lureau        .cmd        = hmp_getfd,
1611d7f9b689SLuiz Capitulino    },
1612d7f9b689SLuiz Capitulino
1613f07918fdSMark McLoughlinSTEXI
1614f07918fdSMark McLoughlin@item getfd @var{fdname}
161570fcbbe7SStefan Weil@findex getfd
1616f07918fdSMark McLoughlinIf a file descriptor is passed alongside this command using the SCM_RIGHTS
1617f07918fdSMark McLoughlinmechanism on unix sockets, it is stored using the name @var{fdname} for
1618f07918fdSMark McLoughlinlater use by other monitor commands.
1619f07918fdSMark McLoughlinETEXI
1620f07918fdSMark McLoughlin
1621d7f9b689SLuiz Capitulino    {
1622d7f9b689SLuiz Capitulino        .name       = "closefd",
1623d7f9b689SLuiz Capitulino        .args_type  = "fdname:s",
1624d7f9b689SLuiz Capitulino        .params     = "closefd name",
1625d7f9b689SLuiz Capitulino        .help       = "close a file descriptor previously passed via SCM rights",
16262b9e3576SMarc-André Lureau        .cmd        = hmp_closefd,
1627d7f9b689SLuiz Capitulino    },
1628d7f9b689SLuiz Capitulino
1629f07918fdSMark McLoughlinSTEXI
1630f07918fdSMark McLoughlin@item closefd @var{fdname}
163170fcbbe7SStefan Weil@findex closefd
1632f07918fdSMark McLoughlinClose the file descriptor previously assigned to @var{fdname} using the
1633f07918fdSMark McLoughlin@code{getfd} command. This is only needed if the file descriptor was never
1634f07918fdSMark McLoughlinused by another monitor command.
1635f07918fdSMark McLoughlinETEXI
1636f07918fdSMark McLoughlin
1637a3a55a2eSLuiz Capitulino    {
1638a3a55a2eSLuiz Capitulino        .name       = "block_passwd",
1639a3a55a2eSLuiz Capitulino        .args_type  = "device:B,password:s",
1640a3a55a2eSLuiz Capitulino        .params     = "block_passwd device password",
1641a3a55a2eSLuiz Capitulino        .help       = "set the password of encrypted block devices",
16422b9e3576SMarc-André Lureau        .cmd        = hmp_block_passwd,
1643a3a55a2eSLuiz Capitulino    },
1644a3a55a2eSLuiz Capitulino
1645a3a55a2eSLuiz CapitulinoSTEXI
1646b76d799eSMarkus Armbruster@item block_passwd @var{device} @var{password}
1647b76d799eSMarkus Armbruster@findex block_passwd
1648b76d799eSMarkus ArmbrusterSet the encrypted device @var{device} password to @var{password}
1649c01c214bSDaniel P. Berrange
1650c01c214bSDaniel P. BerrangeThis command is now obsolete and will always return an error since 2.10
1651727f005eSZhi Yong WuETEXI
1652727f005eSZhi Yong Wu
1653727f005eSZhi Yong Wu    {
1654727f005eSZhi Yong Wu        .name       = "block_set_io_throttle",
1655727f005eSZhi Yong Wu        .args_type  = "device:B,bps:l,bps_rd:l,bps_wr:l,iops:l,iops_rd:l,iops_wr:l",
1656727f005eSZhi Yong Wu        .params     = "device bps bps_rd bps_wr iops iops_rd iops_wr",
1657727f005eSZhi Yong Wu        .help       = "change I/O throttle limits for a block drive",
16582b9e3576SMarc-André Lureau        .cmd        = hmp_block_set_io_throttle,
1659727f005eSZhi Yong Wu    },
1660727f005eSZhi Yong Wu
1661727f005eSZhi Yong WuSTEXI
1662b76d799eSMarkus Armbruster@item block_set_io_throttle @var{device} @var{bps} @var{bps_rd} @var{bps_wr} @var{iops} @var{iops_rd} @var{iops_wr}
1663b76d799eSMarkus Armbruster@findex block_set_io_throttle
166483592184SAlberto GarciaChange 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}.
166583592184SAlberto Garcia@var{device} can be a block device name, a qdev ID or a QOM path.
1666a3a55a2eSLuiz CapitulinoETEXI
1667b40292e7SJan Kiszka
166833572eceSJan Kiszka    {
16697572150cSGerd Hoffmann        .name       = "set_password",
16707572150cSGerd Hoffmann        .args_type  = "protocol:s,password:s,connected:s?",
16717572150cSGerd Hoffmann        .params     = "protocol password action-if-connected",
16727572150cSGerd Hoffmann        .help       = "set spice/vnc password",
16732b9e3576SMarc-André Lureau        .cmd        = hmp_set_password,
16747572150cSGerd Hoffmann    },
16757572150cSGerd Hoffmann
16767572150cSGerd HoffmannSTEXI
16777572150cSGerd Hoffmann@item set_password [ vnc | spice ] password [ action-if-connected ]
16787572150cSGerd Hoffmann@findex set_password
16797572150cSGerd HoffmannChange spice/vnc password.  Use zero to make the password stay valid
16807572150cSGerd Hoffmannforever.  @var{action-if-connected} specifies what should happen in
16817572150cSGerd Hoffmanncase a connection is established: @var{fail} makes the password change
16827572150cSGerd Hoffmannfail.  @var{disconnect} changes the password and disconnects the
16837572150cSGerd Hoffmannclient.  @var{keep} changes the password and keeps the connection up.
16847572150cSGerd Hoffmann@var{keep} is the default.
16857572150cSGerd HoffmannETEXI
16867572150cSGerd Hoffmann
16877572150cSGerd Hoffmann    {
16887572150cSGerd Hoffmann        .name       = "expire_password",
16897572150cSGerd Hoffmann        .args_type  = "protocol:s,time:s",
16907572150cSGerd Hoffmann        .params     = "protocol time",
16917572150cSGerd Hoffmann        .help       = "set spice/vnc password expire-time",
16922b9e3576SMarc-André Lureau        .cmd        = hmp_expire_password,
16937572150cSGerd Hoffmann    },
16947572150cSGerd Hoffmann
16957572150cSGerd HoffmannSTEXI
16967572150cSGerd Hoffmann@item expire_password [ vnc | spice ] expire-time
16977572150cSGerd Hoffmann@findex expire_password
16987572150cSGerd HoffmannSpecify when a password for spice/vnc becomes
16997572150cSGerd Hoffmanninvalid. @var{expire-time} accepts:
17007572150cSGerd Hoffmann
17017572150cSGerd Hoffmann@table @var
17027572150cSGerd Hoffmann@item now
17037572150cSGerd HoffmannInvalidate password instantly.
17047572150cSGerd Hoffmann
17057572150cSGerd Hoffmann@item never
17067572150cSGerd HoffmannPassword stays valid forever.
17077572150cSGerd Hoffmann
17087572150cSGerd Hoffmann@item +nsec
17097572150cSGerd HoffmannPassword stays valid for @var{nsec} seconds starting now.
17107572150cSGerd Hoffmann
17117572150cSGerd Hoffmann@item nsec
17127572150cSGerd HoffmannPassword is invalidated at the given time.  @var{nsec} are the seconds
17137572150cSGerd Hoffmannpassed since 1970, i.e. unix epoch.
17147572150cSGerd Hoffmann
17157572150cSGerd Hoffmann@end table
17167572150cSGerd HoffmannETEXI
17177572150cSGerd Hoffmann
171846920825SGerd Hoffmann    {
171946920825SGerd Hoffmann        .name       = "chardev-add",
172046920825SGerd Hoffmann        .args_type  = "args:s",
172146920825SGerd Hoffmann        .params     = "args",
172246920825SGerd Hoffmann        .help       = "add chardev",
17232b9e3576SMarc-André Lureau        .cmd        = hmp_chardev_add,
172413e315daSHani Benhabiles        .command_completion = chardev_add_completion,
172546920825SGerd Hoffmann    },
172646920825SGerd Hoffmann
172746920825SGerd HoffmannSTEXI
1728b76d799eSMarkus Armbruster@item chardev-add args
1729b76d799eSMarkus Armbruster@findex chardev-add
173075b60160SAnton Nefedovchardev-add accepts the same parameters as the -chardev command line switch.
173175b60160SAnton Nefedov
173275b60160SAnton NefedovETEXI
173375b60160SAnton Nefedov
173475b60160SAnton Nefedov    {
173575b60160SAnton Nefedov        .name       = "chardev-change",
173675b60160SAnton Nefedov        .args_type  = "id:s,args:s",
173775b60160SAnton Nefedov        .params     = "id args",
173875b60160SAnton Nefedov        .help       = "change chardev",
173975b60160SAnton Nefedov        .cmd        = hmp_chardev_change,
174075b60160SAnton Nefedov    },
174175b60160SAnton Nefedov
174275b60160SAnton NefedovSTEXI
174375b60160SAnton Nefedov@item chardev-change args
174475b60160SAnton Nefedov@findex chardev-change
174575b60160SAnton Nefedovchardev-change accepts existing chardev @var{id} and then the same arguments
174675b60160SAnton Nefedovas the -chardev command line switch (except for "id").
174746920825SGerd Hoffmann
174846920825SGerd HoffmannETEXI
174946920825SGerd Hoffmann
175046920825SGerd Hoffmann    {
175146920825SGerd Hoffmann        .name       = "chardev-remove",
175246920825SGerd Hoffmann        .args_type  = "id:s",
175346920825SGerd Hoffmann        .params     = "id",
175446920825SGerd Hoffmann        .help       = "remove chardev",
17552b9e3576SMarc-André Lureau        .cmd        = hmp_chardev_remove,
17566297d9a2SHani Benhabiles        .command_completion = chardev_remove_completion,
175746920825SGerd Hoffmann    },
175846920825SGerd Hoffmann
175946920825SGerd HoffmannSTEXI
1760b76d799eSMarkus Armbruster@item chardev-remove id
1761b76d799eSMarkus Armbruster@findex chardev-remove
176246920825SGerd HoffmannRemoves the chardev @var{id}.
176346920825SGerd Hoffmann
176446920825SGerd HoffmannETEXI
1765f1088908SGerd Hoffmann
1766f1088908SGerd Hoffmann    {
1767bd1d5ad9SStefan Fritsch        .name       = "chardev-send-break",
1768bd1d5ad9SStefan Fritsch        .args_type  = "id:s",
1769bd1d5ad9SStefan Fritsch        .params     = "id",
1770bd1d5ad9SStefan Fritsch        .help       = "send a break on chardev",
1771bd1d5ad9SStefan Fritsch        .cmd        = hmp_chardev_send_break,
1772bd1d5ad9SStefan Fritsch        .command_completion = chardev_remove_completion,
1773bd1d5ad9SStefan Fritsch    },
1774bd1d5ad9SStefan Fritsch
1775bd1d5ad9SStefan FritschSTEXI
1776bd1d5ad9SStefan Fritsch@item chardev-send-break id
1777bd1d5ad9SStefan Fritsch@findex chardev-send-break
1778bd1d5ad9SStefan FritschSend a break on the chardev @var{id}.
1779bd1d5ad9SStefan Fritsch
1780bd1d5ad9SStefan FritschETEXI
1781bd1d5ad9SStefan Fritsch
1782bd1d5ad9SStefan Fritsch    {
1783587da2c3SKevin Wolf        .name       = "qemu-io",
1784587da2c3SKevin Wolf        .args_type  = "device:B,command:s",
1785587da2c3SKevin Wolf        .params     = "[device] \"[command]\"",
1786587da2c3SKevin Wolf        .help       = "run a qemu-io command on a block device",
17872b9e3576SMarc-André Lureau        .cmd        = hmp_qemu_io,
1788587da2c3SKevin Wolf    },
1789587da2c3SKevin Wolf
1790587da2c3SKevin WolfSTEXI
1791587da2c3SKevin Wolf@item qemu-io @var{device} @var{command}
1792587da2c3SKevin Wolf@findex qemu-io
1793587da2c3SKevin WolfExecutes a qemu-io command on the given block device.
1794587da2c3SKevin Wolf
1795587da2c3SKevin WolfETEXI
1796587da2c3SKevin Wolf
1797587da2c3SKevin Wolf    {
1798abf23329SJason J. Herne        .name       = "cpu-add",
1799abf23329SJason J. Herne        .args_type  = "id:i",
1800abf23329SJason J. Herne        .params     = "id",
1801abf23329SJason J. Herne        .help       = "add cpu",
18022b9e3576SMarc-André Lureau        .cmd        = hmp_cpu_add,
1803abf23329SJason J. Herne    },
1804abf23329SJason J. Herne
1805abf23329SJason J. HerneSTEXI
1806abf23329SJason J. Herne@item cpu-add @var{id}
1807b76d799eSMarkus Armbruster@findex cpu-add
1808abf23329SJason J. HerneAdd CPU with id @var{id}
1809abf23329SJason J. HerneETEXI
1810abf23329SJason J. Herne
1811abf23329SJason J. Herne    {
181289d7fa9eSAndreas Färber        .name       = "qom-list",
181389d7fa9eSAndreas Färber        .args_type  = "path:s?",
181489d7fa9eSAndreas Färber        .params     = "path",
181589d7fa9eSAndreas Färber        .help       = "list QOM properties",
18162b9e3576SMarc-André Lureau        .cmd        = hmp_qom_list,
181789d7fa9eSAndreas Färber    },
181889d7fa9eSAndreas Färber
181989d7fa9eSAndreas FärberSTEXI
182089d7fa9eSAndreas Färber@item qom-list [@var{path}]
182189d7fa9eSAndreas FärberPrint QOM properties of object at location @var{path}
182289d7fa9eSAndreas FärberETEXI
182389d7fa9eSAndreas Färber
182489d7fa9eSAndreas Färber    {
1825c0e6ee9eSAndreas Färber        .name       = "qom-set",
1826c0e6ee9eSAndreas Färber        .args_type  = "path:s,property:s,value:s",
1827c0e6ee9eSAndreas Färber        .params     = "path property value",
1828c0e6ee9eSAndreas Färber        .help       = "set QOM property",
18292b9e3576SMarc-André Lureau        .cmd        = hmp_qom_set,
1830c0e6ee9eSAndreas Färber    },
1831c0e6ee9eSAndreas Färber
1832c0e6ee9eSAndreas FärberSTEXI
1833c0e6ee9eSAndreas Färber@item qom-set @var{path} @var{property} @var{value}
1834c0e6ee9eSAndreas FärberSet QOM property @var{property} of object at location @var{path} to value @var{value}
1835c0e6ee9eSAndreas FärberETEXI
1836c0e6ee9eSAndreas Färber
1837c0e6ee9eSAndreas Färber    {
183833572eceSJan Kiszka        .name       = "info",
183933572eceSJan Kiszka        .args_type  = "item:s?",
184033572eceSJan Kiszka        .params     = "[subcommand]",
184133572eceSJan Kiszka        .help       = "show various information about the system state",
18422b9e3576SMarc-André Lureau        .cmd        = hmp_info_help,
184384c44613SWenchao Xia        .sub_table  = info_cmds,
184433572eceSJan Kiszka    },
184533572eceSJan Kiszka
184633572eceSJan KiszkaSTEXI
184770703344SPavel Butsykin@end table
184870703344SPavel ButsykinETEXI
1849