xref: /openbmc/qemu/hmp-commands.hx (revision 29136cd8a4883f2ce97387f3a01c156ac1c43869)
1acd0a093SLuiz CapitulinoHXCOMM Use DEFHEADING() to define headings in both help text and texi
2acd0a093SLuiz CapitulinoHXCOMM Text between STEXI and ETEXI are copied to texi version and
3acd0a093SLuiz CapitulinoHXCOMM discarded from C version
4acd0a093SLuiz CapitulinoHXCOMM DEF(command, args, callback, arg_string, help) is used to construct
5acd0a093SLuiz CapitulinoHXCOMM monitor commands
6acd0a093SLuiz CapitulinoHXCOMM HXCOMM can be used for comments, discarded from both texi and C
7acd0a093SLuiz Capitulino
8acd0a093SLuiz CapitulinoSTEXI
9acd0a093SLuiz Capitulino@table @option
10acd0a093SLuiz CapitulinoETEXI
11acd0a093SLuiz Capitulino
12acd0a093SLuiz Capitulino    {
13acd0a093SLuiz Capitulino        .name       = "help|?",
14129be006SWenchao Xia        .args_type  = "name:S?",
15acd0a093SLuiz Capitulino        .params     = "[cmd]",
16acd0a093SLuiz Capitulino        .help       = "show the help",
17acd0a093SLuiz Capitulino        .mhandler.cmd = do_help_cmd,
18acd0a093SLuiz Capitulino    },
19acd0a093SLuiz Capitulino
20acd0a093SLuiz CapitulinoSTEXI
21acd0a093SLuiz Capitulino@item help or ? [@var{cmd}]
22acd0a093SLuiz Capitulino@findex help
23acd0a093SLuiz CapitulinoShow the help for all commands or just for command @var{cmd}.
24acd0a093SLuiz CapitulinoETEXI
25acd0a093SLuiz Capitulino
26acd0a093SLuiz Capitulino    {
27acd0a093SLuiz Capitulino        .name       = "commit",
28acd0a093SLuiz Capitulino        .args_type  = "device:B",
29acd0a093SLuiz Capitulino        .params     = "device|all",
30acd0a093SLuiz Capitulino        .help       = "commit changes to the disk images (if -snapshot is used) or backing files",
31acd0a093SLuiz Capitulino        .mhandler.cmd = do_commit,
32acd0a093SLuiz Capitulino    },
33acd0a093SLuiz Capitulino
34acd0a093SLuiz CapitulinoSTEXI
35acd0a093SLuiz Capitulino@item commit
36acd0a093SLuiz Capitulino@findex commit
37acd0a093SLuiz CapitulinoCommit 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.
43acd0a093SLuiz CapitulinoETEXI
44acd0a093SLuiz Capitulino
45acd0a093SLuiz Capitulino    {
46acd0a093SLuiz Capitulino        .name       = "q|quit",
47acd0a093SLuiz Capitulino        .args_type  = "",
48acd0a093SLuiz Capitulino        .params     = "",
49acd0a093SLuiz Capitulino        .help       = "quit the emulator",
50acd0a093SLuiz Capitulino        .user_print = monitor_user_noop,
517a7f325eSLuiz Capitulino        .mhandler.cmd = hmp_quit,
52acd0a093SLuiz Capitulino    },
53acd0a093SLuiz Capitulino
54acd0a093SLuiz CapitulinoSTEXI
55acd0a093SLuiz Capitulino@item q or quit
56acd0a093SLuiz Capitulino@findex quit
57acd0a093SLuiz CapitulinoQuit the emulator.
58acd0a093SLuiz CapitulinoETEXI
59acd0a093SLuiz Capitulino
60acd0a093SLuiz Capitulino    {
616d4a2b3aSChristoph Hellwig        .name       = "block_resize",
626d4a2b3aSChristoph Hellwig        .args_type  = "device:B,size:o",
636d4a2b3aSChristoph Hellwig        .params     = "device size",
646d4a2b3aSChristoph Hellwig        .help       = "resize a block image",
655e7caacbSLuiz Capitulino        .mhandler.cmd = hmp_block_resize,
666d4a2b3aSChristoph Hellwig    },
676d4a2b3aSChristoph Hellwig
686d4a2b3aSChristoph HellwigSTEXI
696d4a2b3aSChristoph Hellwig@item block_resize
706d4a2b3aSChristoph Hellwig@findex block_resize
716d4a2b3aSChristoph HellwigResize a block image while a guest is running.  Usually requires guest
726d4a2b3aSChristoph Hellwigaction to see the updated size.  Resize to a lower size is supported,
736d4a2b3aSChristoph Hellwigbut should be used with extreme caution.  Note that this command only
746d4a2b3aSChristoph Hellwigresizes image files, it can not resize block devices like LVM volumes.
756d4a2b3aSChristoph HellwigETEXI
766d4a2b3aSChristoph Hellwig
7712bd451fSStefan Hajnoczi    {
7812bd451fSStefan Hajnoczi        .name       = "block_stream",
79c83c66c3SStefan Hajnoczi        .args_type  = "device:B,speed:o?,base:s?",
80c83c66c3SStefan Hajnoczi        .params     = "device [speed [base]]",
8112bd451fSStefan Hajnoczi        .help       = "copy data from a backing file into a block device",
8212bd451fSStefan Hajnoczi        .mhandler.cmd = hmp_block_stream,
8312bd451fSStefan Hajnoczi    },
8412bd451fSStefan Hajnoczi
8512bd451fSStefan HajnocziSTEXI
8612bd451fSStefan Hajnoczi@item block_stream
8712bd451fSStefan Hajnoczi@findex block_stream
8812bd451fSStefan HajnocziCopy data from a backing file into a block device.
8912bd451fSStefan HajnocziETEXI
906d4a2b3aSChristoph Hellwig
916d4a2b3aSChristoph Hellwig    {
922d47c6e9SStefan Hajnoczi        .name       = "block_job_set_speed",
93882ec7ceSStefan Hajnoczi        .args_type  = "device:B,speed:o",
94882ec7ceSStefan Hajnoczi        .params     = "device speed",
952d47c6e9SStefan Hajnoczi        .help       = "set maximum speed for a background block operation",
962d47c6e9SStefan Hajnoczi        .mhandler.cmd = hmp_block_job_set_speed,
972d47c6e9SStefan Hajnoczi    },
982d47c6e9SStefan Hajnoczi
992d47c6e9SStefan HajnocziSTEXI
1004451b799SPaolo Bonzini@item block_job_set_speed
1014451b799SPaolo Bonzini@findex block_job_set_speed
1022d47c6e9SStefan HajnocziSet maximum speed for a background block operation.
1032d47c6e9SStefan HajnocziETEXI
1042d47c6e9SStefan Hajnoczi
1052d47c6e9SStefan Hajnoczi    {
106370521a1SStefan Hajnoczi        .name       = "block_job_cancel",
1076e37fb81SPaolo Bonzini        .args_type  = "force:-f,device:B",
1086e37fb81SPaolo Bonzini        .params     = "[-f] device",
1096e37fb81SPaolo Bonzini        .help       = "stop an active background block operation (use -f"
1106e37fb81SPaolo Bonzini                      "\n\t\t\t if the operation is currently paused)",
111370521a1SStefan Hajnoczi        .mhandler.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",
125aeae883bSPaolo Bonzini        .mhandler.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",
1406e37fb81SPaolo Bonzini        .mhandler.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",
1546e37fb81SPaolo Bonzini        .mhandler.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    {
164acd0a093SLuiz Capitulino        .name       = "eject",
165acd0a093SLuiz Capitulino        .args_type  = "force:-f,device:B",
166acd0a093SLuiz Capitulino        .params     = "[-f] device",
167acd0a093SLuiz Capitulino        .help       = "eject a removable medium (use -f to force it)",
168c245b6a3SLuiz Capitulino        .mhandler.cmd = hmp_eject,
169acd0a093SLuiz Capitulino    },
170acd0a093SLuiz Capitulino
171acd0a093SLuiz CapitulinoSTEXI
172acd0a093SLuiz Capitulino@item eject [-f] @var{device}
173acd0a093SLuiz Capitulino@findex eject
174acd0a093SLuiz CapitulinoEject a removable medium (use -f to force it).
175acd0a093SLuiz CapitulinoETEXI
176acd0a093SLuiz Capitulino
177acd0a093SLuiz Capitulino    {
1789063f814SRyan Harper        .name       = "drive_del",
179f7bdc41aSHani Benhabiles        .args_type  = "id:B",
1809063f814SRyan Harper        .params     = "device",
1819063f814SRyan Harper        .help       = "remove host block device",
1829063f814SRyan Harper        .user_print = monitor_user_noop,
1839063f814SRyan Harper        .mhandler.cmd_new = do_drive_del,
1849063f814SRyan Harper    },
1859063f814SRyan Harper
1869063f814SRyan HarperSTEXI
1879063f814SRyan Harper@item drive_del @var{device}
1889063f814SRyan Harper@findex drive_del
1899063f814SRyan HarperRemove host block device.  The result is that guest generated IO is no longer
1909063f814SRyan Harpersubmitted against the host device underlying the disk.  Once a drive has
1919063f814SRyan Harperbeen deleted, the QEMU Block layer returns -EIO which results in IO
1929063f814SRyan Harpererrors in the guest for applications that are reading/writing to the device.
193293c51a6SStefan HajnocziThese errors are always reported to the guest, regardless of the drive's error
194293c51a6SStefan Hajnocziactions (drive options rerror, werror).
1959063f814SRyan HarperETEXI
1969063f814SRyan Harper
1979063f814SRyan Harper    {
198acd0a093SLuiz Capitulino        .name       = "change",
199acd0a093SLuiz Capitulino        .args_type  = "device:B,target:F,arg:s?",
200acd0a093SLuiz Capitulino        .params     = "device filename [format]",
201acd0a093SLuiz Capitulino        .help       = "change a removable medium, optional format",
202333a96ecSLuiz Capitulino        .mhandler.cmd = hmp_change,
203acd0a093SLuiz Capitulino    },
204acd0a093SLuiz Capitulino
205acd0a093SLuiz CapitulinoSTEXI
206acd0a093SLuiz Capitulino@item change @var{device} @var{setting}
207acd0a093SLuiz Capitulino@findex change
208acd0a093SLuiz Capitulino
209acd0a093SLuiz CapitulinoChange the configuration of a device.
210acd0a093SLuiz Capitulino
211acd0a093SLuiz Capitulino@table @option
212acd0a093SLuiz Capitulino@item change @var{diskdevice} @var{filename} [@var{format}]
213acd0a093SLuiz CapitulinoChange the medium for a removable disk device to point to @var{filename}. eg
214acd0a093SLuiz Capitulino
215acd0a093SLuiz Capitulino@example
216acd0a093SLuiz Capitulino(qemu) change ide1-cd0 /path/to/some.iso
217acd0a093SLuiz Capitulino@end example
218acd0a093SLuiz Capitulino
219acd0a093SLuiz Capitulino@var{format} is optional.
220acd0a093SLuiz Capitulino
221acd0a093SLuiz Capitulino@item change vnc @var{display},@var{options}
222acd0a093SLuiz CapitulinoChange the configuration of the VNC server. The valid syntax for @var{display}
223acd0a093SLuiz Capitulinoand @var{options} are described at @ref{sec_invocation}. eg
224acd0a093SLuiz Capitulino
225acd0a093SLuiz Capitulino@example
226acd0a093SLuiz Capitulino(qemu) change vnc localhost:1
227acd0a093SLuiz Capitulino@end example
228acd0a093SLuiz Capitulino
229acd0a093SLuiz Capitulino@item change vnc password [@var{password}]
230acd0a093SLuiz Capitulino
231acd0a093SLuiz CapitulinoChange the password associated with the VNC server. If the new password is not
232acd0a093SLuiz Capitulinosupplied, the monitor will prompt for it to be entered. VNC passwords are only
233acd0a093SLuiz Capitulinosignificant up to 8 letters. eg
234acd0a093SLuiz Capitulino
235acd0a093SLuiz Capitulino@example
236acd0a093SLuiz Capitulino(qemu) change vnc password
237acd0a093SLuiz CapitulinoPassword: ********
238acd0a093SLuiz Capitulino@end example
239acd0a093SLuiz Capitulino
240acd0a093SLuiz Capitulino@end table
241acd0a093SLuiz CapitulinoETEXI
242acd0a093SLuiz Capitulino
243acd0a093SLuiz Capitulino    {
244acd0a093SLuiz Capitulino        .name       = "screendump",
245acd0a093SLuiz Capitulino        .args_type  = "filename:F",
246acd0a093SLuiz Capitulino        .params     = "filename",
247acd0a093SLuiz Capitulino        .help       = "save screen into PPM image 'filename'",
248ad39cf6dSLuiz Capitulino        .mhandler.cmd = hmp_screen_dump,
249acd0a093SLuiz Capitulino    },
250acd0a093SLuiz Capitulino
251acd0a093SLuiz CapitulinoSTEXI
252acd0a093SLuiz Capitulino@item screendump @var{filename}
253acd0a093SLuiz Capitulino@findex screendump
254acd0a093SLuiz CapitulinoSave screen into PPM image @var{filename}.
255acd0a093SLuiz CapitulinoETEXI
256acd0a093SLuiz Capitulino
257acd0a093SLuiz Capitulino    {
258acd0a093SLuiz Capitulino        .name       = "logfile",
259acd0a093SLuiz Capitulino        .args_type  = "filename:F",
260acd0a093SLuiz Capitulino        .params     = "filename",
261acd0a093SLuiz Capitulino        .help       = "output logs to 'filename'",
262acd0a093SLuiz Capitulino        .mhandler.cmd = do_logfile,
263acd0a093SLuiz Capitulino    },
264acd0a093SLuiz Capitulino
265acd0a093SLuiz CapitulinoSTEXI
266acd0a093SLuiz Capitulino@item logfile @var{filename}
267acd0a093SLuiz Capitulino@findex logfile
268acd0a093SLuiz CapitulinoOutput logs to @var{filename}.
269acd0a093SLuiz CapitulinoETEXI
270acd0a093SLuiz Capitulino
271acd0a093SLuiz Capitulino    {
272acd0a093SLuiz Capitulino        .name       = "trace-event",
273acd0a093SLuiz Capitulino        .args_type  = "name:s,option:b",
274acd0a093SLuiz Capitulino        .params     = "name on|off",
275acd0a093SLuiz Capitulino        .help       = "changes status of a specific trace event",
276fc764105SLluís        .mhandler.cmd = do_trace_event_set_state,
277acd0a093SLuiz Capitulino    },
278acd0a093SLuiz Capitulino
279acd0a093SLuiz CapitulinoSTEXI
280acd0a093SLuiz Capitulino@item trace-event
281acd0a093SLuiz Capitulino@findex trace-event
282acd0a093SLuiz Capitulinochanges status of a trace event
283acd0a093SLuiz CapitulinoETEXI
284acd0a093SLuiz Capitulino
285c45a8168SMichael Roth#if defined(CONFIG_TRACE_SIMPLE)
286acd0a093SLuiz Capitulino    {
287acd0a093SLuiz Capitulino        .name       = "trace-file",
288acd0a093SLuiz Capitulino        .args_type  = "op:s?,arg:F?",
289acd0a093SLuiz Capitulino        .params     = "on|off|flush|set [arg]",
290acd0a093SLuiz Capitulino        .help       = "open, close, or flush trace file, or set a new file name",
291acd0a093SLuiz Capitulino        .mhandler.cmd = do_trace_file,
292acd0a093SLuiz Capitulino    },
293acd0a093SLuiz Capitulino
294acd0a093SLuiz CapitulinoSTEXI
295acd0a093SLuiz Capitulino@item trace-file on|off|flush
296acd0a093SLuiz Capitulino@findex trace-file
297acd0a093SLuiz CapitulinoOpen, close, or flush the trace file.  If no argument is given, the status of the trace file is displayed.
298acd0a093SLuiz CapitulinoETEXI
299acd0a093SLuiz Capitulino#endif
300acd0a093SLuiz Capitulino
301acd0a093SLuiz Capitulino    {
302acd0a093SLuiz Capitulino        .name       = "log",
303acd0a093SLuiz Capitulino        .args_type  = "items:s",
304acd0a093SLuiz Capitulino        .params     = "item1[,...]",
305989b697dSPeter Maydell        .help       = "activate logging of the specified items",
306acd0a093SLuiz Capitulino        .mhandler.cmd = do_log,
307acd0a093SLuiz Capitulino    },
308acd0a093SLuiz Capitulino
309acd0a093SLuiz CapitulinoSTEXI
310acd0a093SLuiz Capitulino@item log @var{item1}[,...]
311acd0a093SLuiz Capitulino@findex log
312989b697dSPeter MaydellActivate logging of the specified items.
313acd0a093SLuiz CapitulinoETEXI
314acd0a093SLuiz Capitulino
315acd0a093SLuiz Capitulino    {
316acd0a093SLuiz Capitulino        .name       = "savevm",
317acd0a093SLuiz Capitulino        .args_type  = "name:s?",
318acd0a093SLuiz Capitulino        .params     = "[tag|id]",
319acd0a093SLuiz Capitulino        .help       = "save a VM snapshot. If no tag or id are provided, a new snapshot is created",
320acd0a093SLuiz Capitulino        .mhandler.cmd = do_savevm,
321acd0a093SLuiz Capitulino    },
322acd0a093SLuiz Capitulino
323acd0a093SLuiz CapitulinoSTEXI
324acd0a093SLuiz Capitulino@item savevm [@var{tag}|@var{id}]
325acd0a093SLuiz Capitulino@findex savevm
326acd0a093SLuiz CapitulinoCreate a snapshot of the whole virtual machine. If @var{tag} is
327acd0a093SLuiz Capitulinoprovided, it is used as human readable identifier. If there is already
328acd0a093SLuiz Capitulinoa snapshot with the same tag or ID, it is replaced. More info at
329acd0a093SLuiz Capitulino@ref{vm_snapshots}.
330acd0a093SLuiz CapitulinoETEXI
331acd0a093SLuiz Capitulino
332acd0a093SLuiz Capitulino    {
333acd0a093SLuiz Capitulino        .name       = "loadvm",
334acd0a093SLuiz Capitulino        .args_type  = "name:s",
335acd0a093SLuiz Capitulino        .params     = "tag|id",
336acd0a093SLuiz Capitulino        .help       = "restore a VM snapshot from its tag or id",
337acd0a093SLuiz Capitulino        .mhandler.cmd = do_loadvm,
338acd0a093SLuiz Capitulino    },
339acd0a093SLuiz Capitulino
340acd0a093SLuiz CapitulinoSTEXI
341acd0a093SLuiz Capitulino@item loadvm @var{tag}|@var{id}
342acd0a093SLuiz Capitulino@findex loadvm
343acd0a093SLuiz CapitulinoSet the whole virtual machine to the snapshot identified by the tag
344acd0a093SLuiz Capitulino@var{tag} or the unique snapshot ID @var{id}.
345acd0a093SLuiz CapitulinoETEXI
346acd0a093SLuiz Capitulino
347acd0a093SLuiz Capitulino    {
348acd0a093SLuiz Capitulino        .name       = "delvm",
349acd0a093SLuiz Capitulino        .args_type  = "name:s",
350acd0a093SLuiz Capitulino        .params     = "tag|id",
351acd0a093SLuiz Capitulino        .help       = "delete a VM snapshot from its tag or id",
352acd0a093SLuiz Capitulino        .mhandler.cmd = do_delvm,
353acd0a093SLuiz Capitulino    },
354acd0a093SLuiz Capitulino
355acd0a093SLuiz CapitulinoSTEXI
356acd0a093SLuiz Capitulino@item delvm @var{tag}|@var{id}
357acd0a093SLuiz Capitulino@findex delvm
358acd0a093SLuiz CapitulinoDelete the snapshot identified by @var{tag} or @var{id}.
359acd0a093SLuiz CapitulinoETEXI
360acd0a093SLuiz Capitulino
361acd0a093SLuiz Capitulino    {
362acd0a093SLuiz Capitulino        .name       = "singlestep",
363acd0a093SLuiz Capitulino        .args_type  = "option:s?",
364acd0a093SLuiz Capitulino        .params     = "[on|off]",
365acd0a093SLuiz Capitulino        .help       = "run emulation in singlestep mode or switch to normal mode",
366acd0a093SLuiz Capitulino        .mhandler.cmd = do_singlestep,
367acd0a093SLuiz Capitulino    },
368acd0a093SLuiz Capitulino
369acd0a093SLuiz CapitulinoSTEXI
370acd0a093SLuiz Capitulino@item singlestep [off]
371acd0a093SLuiz Capitulino@findex singlestep
372acd0a093SLuiz CapitulinoRun the emulation in single step mode.
373acd0a093SLuiz CapitulinoIf called with option off, the emulation returns to normal mode.
374acd0a093SLuiz CapitulinoETEXI
375acd0a093SLuiz Capitulino
376acd0a093SLuiz Capitulino    {
377acd0a093SLuiz Capitulino        .name       = "stop",
378acd0a093SLuiz Capitulino        .args_type  = "",
379acd0a093SLuiz Capitulino        .params     = "",
380acd0a093SLuiz Capitulino        .help       = "stop emulation",
3815f158f21SLuiz Capitulino        .mhandler.cmd = hmp_stop,
382acd0a093SLuiz Capitulino    },
383acd0a093SLuiz Capitulino
384acd0a093SLuiz CapitulinoSTEXI
385acd0a093SLuiz Capitulino@item stop
386acd0a093SLuiz Capitulino@findex stop
387acd0a093SLuiz CapitulinoStop emulation.
388acd0a093SLuiz CapitulinoETEXI
389acd0a093SLuiz Capitulino
390acd0a093SLuiz Capitulino    {
391acd0a093SLuiz Capitulino        .name       = "c|cont",
392acd0a093SLuiz Capitulino        .args_type  = "",
393acd0a093SLuiz Capitulino        .params     = "",
394acd0a093SLuiz Capitulino        .help       = "resume emulation",
395e42e818bSLuiz Capitulino        .mhandler.cmd = hmp_cont,
396acd0a093SLuiz Capitulino    },
397acd0a093SLuiz Capitulino
398acd0a093SLuiz CapitulinoSTEXI
399acd0a093SLuiz Capitulino@item c or cont
400acd0a093SLuiz Capitulino@findex cont
401acd0a093SLuiz CapitulinoResume emulation.
402acd0a093SLuiz CapitulinoETEXI
403acd0a093SLuiz Capitulino
404acd0a093SLuiz Capitulino    {
4059b9df25aSGerd Hoffmann        .name       = "system_wakeup",
4069b9df25aSGerd Hoffmann        .args_type  = "",
4079b9df25aSGerd Hoffmann        .params     = "",
4089b9df25aSGerd Hoffmann        .help       = "wakeup guest from suspend",
4099b9df25aSGerd Hoffmann        .mhandler.cmd = hmp_system_wakeup,
4109b9df25aSGerd Hoffmann    },
4119b9df25aSGerd Hoffmann
4129b9df25aSGerd HoffmannSTEXI
4139b9df25aSGerd Hoffmann@item system_wakeup
4149b9df25aSGerd Hoffmann@findex system_wakeup
4159b9df25aSGerd HoffmannWakeup guest from suspend.
4169b9df25aSGerd HoffmannETEXI
4179b9df25aSGerd Hoffmann
4189b9df25aSGerd Hoffmann    {
419acd0a093SLuiz Capitulino        .name       = "gdbserver",
420acd0a093SLuiz Capitulino        .args_type  = "device:s?",
421acd0a093SLuiz Capitulino        .params     = "[device]",
422acd0a093SLuiz Capitulino        .help       = "start gdbserver on given device (default 'tcp::1234'), stop with 'none'",
423acd0a093SLuiz Capitulino        .mhandler.cmd = do_gdbserver,
424acd0a093SLuiz Capitulino    },
425acd0a093SLuiz Capitulino
426acd0a093SLuiz CapitulinoSTEXI
427acd0a093SLuiz Capitulino@item gdbserver [@var{port}]
428acd0a093SLuiz Capitulino@findex gdbserver
429acd0a093SLuiz CapitulinoStart gdbserver session (default @var{port}=1234)
430acd0a093SLuiz CapitulinoETEXI
431acd0a093SLuiz Capitulino
432acd0a093SLuiz Capitulino    {
433acd0a093SLuiz Capitulino        .name       = "x",
434acd0a093SLuiz Capitulino        .args_type  = "fmt:/,addr:l",
435acd0a093SLuiz Capitulino        .params     = "/fmt addr",
436acd0a093SLuiz Capitulino        .help       = "virtual memory dump starting at 'addr'",
437acd0a093SLuiz Capitulino        .mhandler.cmd = do_memory_dump,
438acd0a093SLuiz Capitulino    },
439acd0a093SLuiz Capitulino
440acd0a093SLuiz CapitulinoSTEXI
441acd0a093SLuiz Capitulino@item x/fmt @var{addr}
442acd0a093SLuiz Capitulino@findex x
443acd0a093SLuiz CapitulinoVirtual memory dump starting at @var{addr}.
444acd0a093SLuiz CapitulinoETEXI
445acd0a093SLuiz Capitulino
446acd0a093SLuiz Capitulino    {
447acd0a093SLuiz Capitulino        .name       = "xp",
448acd0a093SLuiz Capitulino        .args_type  = "fmt:/,addr:l",
449acd0a093SLuiz Capitulino        .params     = "/fmt addr",
450acd0a093SLuiz Capitulino        .help       = "physical memory dump starting at 'addr'",
451acd0a093SLuiz Capitulino        .mhandler.cmd = do_physical_memory_dump,
452acd0a093SLuiz Capitulino    },
453acd0a093SLuiz Capitulino
454acd0a093SLuiz CapitulinoSTEXI
455acd0a093SLuiz Capitulino@item xp /@var{fmt} @var{addr}
456acd0a093SLuiz Capitulino@findex xp
457acd0a093SLuiz CapitulinoPhysical memory dump starting at @var{addr}.
458acd0a093SLuiz Capitulino
459acd0a093SLuiz Capitulino@var{fmt} is a format which tells the command how to format the
460acd0a093SLuiz Capitulinodata. Its syntax is: @option{/@{count@}@{format@}@{size@}}
461acd0a093SLuiz Capitulino
462acd0a093SLuiz Capitulino@table @var
463acd0a093SLuiz Capitulino@item count
464acd0a093SLuiz Capitulinois the number of items to be dumped.
465acd0a093SLuiz Capitulino
466acd0a093SLuiz Capitulino@item format
467acd0a093SLuiz Capitulinocan be x (hex), d (signed decimal), u (unsigned decimal), o (octal),
468acd0a093SLuiz Capitulinoc (char) or i (asm instruction).
469acd0a093SLuiz Capitulino
470acd0a093SLuiz Capitulino@item size
471acd0a093SLuiz Capitulinocan be b (8 bits), h (16 bits), w (32 bits) or g (64 bits). On x86,
472acd0a093SLuiz Capitulino@code{h} or @code{w} can be specified with the @code{i} format to
473acd0a093SLuiz Capitulinorespectively select 16 or 32 bit code instruction size.
474acd0a093SLuiz Capitulino
475acd0a093SLuiz Capitulino@end table
476acd0a093SLuiz Capitulino
477acd0a093SLuiz CapitulinoExamples:
478acd0a093SLuiz Capitulino@itemize
479acd0a093SLuiz Capitulino@item
480acd0a093SLuiz CapitulinoDump 10 instructions at the current instruction pointer:
481acd0a093SLuiz Capitulino@example
482acd0a093SLuiz Capitulino(qemu) x/10i $eip
483acd0a093SLuiz Capitulino0x90107063:  ret
484acd0a093SLuiz Capitulino0x90107064:  sti
485acd0a093SLuiz Capitulino0x90107065:  lea    0x0(%esi,1),%esi
486acd0a093SLuiz Capitulino0x90107069:  lea    0x0(%edi,1),%edi
487acd0a093SLuiz Capitulino0x90107070:  ret
488acd0a093SLuiz Capitulino0x90107071:  jmp    0x90107080
489acd0a093SLuiz Capitulino0x90107073:  nop
490acd0a093SLuiz Capitulino0x90107074:  nop
491acd0a093SLuiz Capitulino0x90107075:  nop
492acd0a093SLuiz Capitulino0x90107076:  nop
493acd0a093SLuiz Capitulino@end example
494acd0a093SLuiz Capitulino
495acd0a093SLuiz Capitulino@item
496acd0a093SLuiz CapitulinoDump 80 16 bit values at the start of the video memory.
497acd0a093SLuiz Capitulino@smallexample
498acd0a093SLuiz Capitulino(qemu) xp/80hx 0xb8000
499acd0a093SLuiz Capitulino0x000b8000: 0x0b50 0x0b6c 0x0b65 0x0b78 0x0b38 0x0b36 0x0b2f 0x0b42
500acd0a093SLuiz Capitulino0x000b8010: 0x0b6f 0x0b63 0x0b68 0x0b73 0x0b20 0x0b56 0x0b47 0x0b41
501acd0a093SLuiz Capitulino0x000b8020: 0x0b42 0x0b69 0x0b6f 0x0b73 0x0b20 0x0b63 0x0b75 0x0b72
502acd0a093SLuiz Capitulino0x000b8030: 0x0b72 0x0b65 0x0b6e 0x0b74 0x0b2d 0x0b63 0x0b76 0x0b73
503acd0a093SLuiz Capitulino0x000b8040: 0x0b20 0x0b30 0x0b35 0x0b20 0x0b4e 0x0b6f 0x0b76 0x0b20
504acd0a093SLuiz Capitulino0x000b8050: 0x0b32 0x0b30 0x0b30 0x0b33 0x0720 0x0720 0x0720 0x0720
505acd0a093SLuiz Capitulino0x000b8060: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
506acd0a093SLuiz Capitulino0x000b8070: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
507acd0a093SLuiz Capitulino0x000b8080: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
508acd0a093SLuiz Capitulino0x000b8090: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
509acd0a093SLuiz Capitulino@end smallexample
510acd0a093SLuiz Capitulino@end itemize
511acd0a093SLuiz CapitulinoETEXI
512acd0a093SLuiz Capitulino
513acd0a093SLuiz Capitulino    {
514acd0a093SLuiz Capitulino        .name       = "p|print",
515acd0a093SLuiz Capitulino        .args_type  = "fmt:/,val:l",
516acd0a093SLuiz Capitulino        .params     = "/fmt expr",
517acd0a093SLuiz Capitulino        .help       = "print expression value (use $reg for CPU register access)",
518acd0a093SLuiz Capitulino        .mhandler.cmd = do_print,
519acd0a093SLuiz Capitulino    },
520acd0a093SLuiz Capitulino
521acd0a093SLuiz CapitulinoSTEXI
522acd0a093SLuiz Capitulino@item p or print/@var{fmt} @var{expr}
523acd0a093SLuiz Capitulino@findex print
524acd0a093SLuiz Capitulino
525acd0a093SLuiz CapitulinoPrint expression value. Only the @var{format} part of @var{fmt} is
526acd0a093SLuiz Capitulinoused.
527acd0a093SLuiz CapitulinoETEXI
528acd0a093SLuiz Capitulino
529acd0a093SLuiz Capitulino    {
530acd0a093SLuiz Capitulino        .name       = "i",
531acd0a093SLuiz Capitulino        .args_type  = "fmt:/,addr:i,index:i.",
532acd0a093SLuiz Capitulino        .params     = "/fmt addr",
533acd0a093SLuiz Capitulino        .help       = "I/O port read",
534acd0a093SLuiz Capitulino        .mhandler.cmd = do_ioport_read,
535acd0a093SLuiz Capitulino    },
536acd0a093SLuiz Capitulino
537acd0a093SLuiz CapitulinoSTEXI
538acd0a093SLuiz CapitulinoRead I/O port.
539acd0a093SLuiz CapitulinoETEXI
540acd0a093SLuiz Capitulino
541acd0a093SLuiz Capitulino    {
542acd0a093SLuiz Capitulino        .name       = "o",
543acd0a093SLuiz Capitulino        .args_type  = "fmt:/,addr:i,val:i",
544acd0a093SLuiz Capitulino        .params     = "/fmt addr value",
545acd0a093SLuiz Capitulino        .help       = "I/O port write",
546acd0a093SLuiz Capitulino        .mhandler.cmd = do_ioport_write,
547acd0a093SLuiz Capitulino    },
548acd0a093SLuiz Capitulino
549acd0a093SLuiz CapitulinoSTEXI
550acd0a093SLuiz CapitulinoWrite to I/O port.
551acd0a093SLuiz CapitulinoETEXI
552acd0a093SLuiz Capitulino
553acd0a093SLuiz Capitulino    {
554acd0a093SLuiz Capitulino        .name       = "sendkey",
5552ef20c15SAmos Kong        .args_type  = "keys:s,hold-time:i?",
556acd0a093SLuiz Capitulino        .params     = "keys [hold_ms]",
557acd0a093SLuiz Capitulino        .help       = "send keys to the VM (e.g. 'sendkey ctrl-alt-f1', default hold time=100 ms)",
558e4c8f004SAmos Kong        .mhandler.cmd = hmp_send_key,
559*29136cd8SHani Benhabiles        .command_completion = sendkey_completion,
560acd0a093SLuiz Capitulino    },
561acd0a093SLuiz Capitulino
562acd0a093SLuiz CapitulinoSTEXI
563acd0a093SLuiz Capitulino@item sendkey @var{keys}
564acd0a093SLuiz Capitulino@findex sendkey
565acd0a093SLuiz Capitulino
566886cc706SAmos KongSend @var{keys} to the guest. @var{keys} could be the name of the
567886cc706SAmos Kongkey or the raw value in hexadecimal format. Use @code{-} to press
568886cc706SAmos Kongseveral keys simultaneously. Example:
569acd0a093SLuiz Capitulino@example
570acd0a093SLuiz Capitulinosendkey ctrl-alt-f1
571acd0a093SLuiz Capitulino@end example
572acd0a093SLuiz Capitulino
573acd0a093SLuiz CapitulinoThis command is useful to send keys that your graphical user interface
574acd0a093SLuiz Capitulinointercepts at low level, such as @code{ctrl-alt-f1} in X Window.
575acd0a093SLuiz CapitulinoETEXI
576acd0a093SLuiz Capitulino
577acd0a093SLuiz Capitulino    {
578acd0a093SLuiz Capitulino        .name       = "system_reset",
579acd0a093SLuiz Capitulino        .args_type  = "",
580acd0a093SLuiz Capitulino        .params     = "",
581acd0a093SLuiz Capitulino        .help       = "reset the system",
58238d22653SLuiz Capitulino        .mhandler.cmd = hmp_system_reset,
583acd0a093SLuiz Capitulino    },
584acd0a093SLuiz Capitulino
585acd0a093SLuiz CapitulinoSTEXI
586acd0a093SLuiz Capitulino@item system_reset
587acd0a093SLuiz Capitulino@findex system_reset
588acd0a093SLuiz Capitulino
589acd0a093SLuiz CapitulinoReset the system.
590acd0a093SLuiz CapitulinoETEXI
591acd0a093SLuiz Capitulino
592acd0a093SLuiz Capitulino    {
593acd0a093SLuiz Capitulino        .name       = "system_powerdown",
594acd0a093SLuiz Capitulino        .args_type  = "",
595acd0a093SLuiz Capitulino        .params     = "",
596acd0a093SLuiz Capitulino        .help       = "send system power down event",
5975bc465e4SLuiz Capitulino        .mhandler.cmd = hmp_system_powerdown,
598acd0a093SLuiz Capitulino    },
599acd0a093SLuiz Capitulino
600acd0a093SLuiz CapitulinoSTEXI
601acd0a093SLuiz Capitulino@item system_powerdown
602acd0a093SLuiz Capitulino@findex system_powerdown
603acd0a093SLuiz Capitulino
604acd0a093SLuiz CapitulinoPower down the system (if supported).
605acd0a093SLuiz CapitulinoETEXI
606acd0a093SLuiz Capitulino
607acd0a093SLuiz Capitulino    {
608acd0a093SLuiz Capitulino        .name       = "sum",
609acd0a093SLuiz Capitulino        .args_type  = "start:i,size:i",
610acd0a093SLuiz Capitulino        .params     = "addr size",
611acd0a093SLuiz Capitulino        .help       = "compute the checksum of a memory region",
612acd0a093SLuiz Capitulino        .mhandler.cmd = do_sum,
613acd0a093SLuiz Capitulino    },
614acd0a093SLuiz Capitulino
615acd0a093SLuiz CapitulinoSTEXI
616acd0a093SLuiz Capitulino@item sum @var{addr} @var{size}
617acd0a093SLuiz Capitulino@findex sum
618acd0a093SLuiz Capitulino
619acd0a093SLuiz CapitulinoCompute the checksum of a memory region.
620acd0a093SLuiz CapitulinoETEXI
621acd0a093SLuiz Capitulino
622acd0a093SLuiz Capitulino    {
623acd0a093SLuiz Capitulino        .name       = "usb_add",
624acd0a093SLuiz Capitulino        .args_type  = "devname:s",
625acd0a093SLuiz Capitulino        .params     = "device",
626acd0a093SLuiz Capitulino        .help       = "add USB device (e.g. 'host:bus.addr' or 'host:vendor_id:product_id')",
627acd0a093SLuiz Capitulino        .mhandler.cmd = do_usb_add,
628acd0a093SLuiz Capitulino    },
629acd0a093SLuiz Capitulino
630acd0a093SLuiz CapitulinoSTEXI
631acd0a093SLuiz Capitulino@item usb_add @var{devname}
632acd0a093SLuiz Capitulino@findex usb_add
633acd0a093SLuiz Capitulino
634acd0a093SLuiz CapitulinoAdd the USB device @var{devname}.  For details of available devices see
635acd0a093SLuiz Capitulino@ref{usb_devices}
636acd0a093SLuiz CapitulinoETEXI
637acd0a093SLuiz Capitulino
638acd0a093SLuiz Capitulino    {
639acd0a093SLuiz Capitulino        .name       = "usb_del",
640acd0a093SLuiz Capitulino        .args_type  = "devname:s",
641acd0a093SLuiz Capitulino        .params     = "device",
642acd0a093SLuiz Capitulino        .help       = "remove USB device 'bus.addr'",
643acd0a093SLuiz Capitulino        .mhandler.cmd = do_usb_del,
644acd0a093SLuiz Capitulino    },
645acd0a093SLuiz Capitulino
646acd0a093SLuiz CapitulinoSTEXI
647acd0a093SLuiz Capitulino@item usb_del @var{devname}
648acd0a093SLuiz Capitulino@findex usb_del
649acd0a093SLuiz Capitulino
650acd0a093SLuiz CapitulinoRemove the USB device @var{devname} from the QEMU virtual USB
651acd0a093SLuiz Capitulinohub. @var{devname} has the syntax @code{bus.addr}. Use the monitor
652acd0a093SLuiz Capitulinocommand @code{info usb} to see the devices you can remove.
653acd0a093SLuiz CapitulinoETEXI
654acd0a093SLuiz Capitulino
655acd0a093SLuiz Capitulino    {
656acd0a093SLuiz Capitulino        .name       = "device_add",
657acd0a093SLuiz Capitulino        .args_type  = "device:O",
658acd0a093SLuiz Capitulino        .params     = "driver[,prop=value][,...]",
659acd0a093SLuiz Capitulino        .help       = "add device, like -device on the command line",
660acd0a093SLuiz Capitulino        .user_print = monitor_user_noop,
661acd0a093SLuiz Capitulino        .mhandler.cmd_new = do_device_add,
6622da1b3abSHani Benhabiles        .command_completion = device_add_completion,
663acd0a093SLuiz Capitulino    },
664acd0a093SLuiz Capitulino
665acd0a093SLuiz CapitulinoSTEXI
666acd0a093SLuiz Capitulino@item device_add @var{config}
667acd0a093SLuiz Capitulino@findex device_add
668acd0a093SLuiz Capitulino
669acd0a093SLuiz CapitulinoAdd device.
670acd0a093SLuiz CapitulinoETEXI
671acd0a093SLuiz Capitulino
672acd0a093SLuiz Capitulino    {
673acd0a093SLuiz Capitulino        .name       = "device_del",
674acd0a093SLuiz Capitulino        .args_type  = "id:s",
675acd0a093SLuiz Capitulino        .params     = "device",
676acd0a093SLuiz Capitulino        .help       = "remove device",
677a15fef21SLuiz Capitulino        .mhandler.cmd = hmp_device_del,
6782da1b3abSHani Benhabiles        .command_completion = device_del_completion,
679acd0a093SLuiz Capitulino    },
680acd0a093SLuiz Capitulino
681acd0a093SLuiz CapitulinoSTEXI
682acd0a093SLuiz Capitulino@item device_del @var{id}
683acd0a093SLuiz Capitulino@findex device_del
684acd0a093SLuiz Capitulino
685acd0a093SLuiz CapitulinoRemove device @var{id}.
686acd0a093SLuiz CapitulinoETEXI
687acd0a093SLuiz Capitulino
688acd0a093SLuiz Capitulino    {
689acd0a093SLuiz Capitulino        .name       = "cpu",
690acd0a093SLuiz Capitulino        .args_type  = "index:i",
691acd0a093SLuiz Capitulino        .params     = "index",
692acd0a093SLuiz Capitulino        .help       = "set the default CPU",
693755f1968SLuiz Capitulino        .mhandler.cmd = hmp_cpu,
694acd0a093SLuiz Capitulino    },
695acd0a093SLuiz Capitulino
696acd0a093SLuiz CapitulinoSTEXI
697acd0a093SLuiz Capitulino@item cpu @var{index}
698acd0a093SLuiz Capitulino@findex cpu
699acd0a093SLuiz CapitulinoSet the default CPU.
700acd0a093SLuiz CapitulinoETEXI
701acd0a093SLuiz Capitulino
702acd0a093SLuiz Capitulino    {
703acd0a093SLuiz Capitulino        .name       = "mouse_move",
704acd0a093SLuiz Capitulino        .args_type  = "dx_str:s,dy_str:s,dz_str:s?",
705acd0a093SLuiz Capitulino        .params     = "dx dy [dz]",
706acd0a093SLuiz Capitulino        .help       = "send mouse move events",
707acd0a093SLuiz Capitulino        .mhandler.cmd = do_mouse_move,
708acd0a093SLuiz Capitulino    },
709acd0a093SLuiz Capitulino
710acd0a093SLuiz CapitulinoSTEXI
711acd0a093SLuiz Capitulino@item mouse_move @var{dx} @var{dy} [@var{dz}]
712acd0a093SLuiz Capitulino@findex mouse_move
713acd0a093SLuiz CapitulinoMove the active mouse to the specified coordinates @var{dx} @var{dy}
714acd0a093SLuiz Capitulinowith optional scroll axis @var{dz}.
715acd0a093SLuiz CapitulinoETEXI
716acd0a093SLuiz Capitulino
717acd0a093SLuiz Capitulino    {
718acd0a093SLuiz Capitulino        .name       = "mouse_button",
719acd0a093SLuiz Capitulino        .args_type  = "button_state:i",
720acd0a093SLuiz Capitulino        .params     = "state",
721acd0a093SLuiz Capitulino        .help       = "change mouse button state (1=L, 2=M, 4=R)",
722acd0a093SLuiz Capitulino        .mhandler.cmd = do_mouse_button,
723acd0a093SLuiz Capitulino    },
724acd0a093SLuiz Capitulino
725acd0a093SLuiz CapitulinoSTEXI
726acd0a093SLuiz Capitulino@item mouse_button @var{val}
727acd0a093SLuiz Capitulino@findex mouse_button
728acd0a093SLuiz CapitulinoChange the active mouse button state @var{val} (1=L, 2=M, 4=R).
729acd0a093SLuiz CapitulinoETEXI
730acd0a093SLuiz Capitulino
731acd0a093SLuiz Capitulino    {
732acd0a093SLuiz Capitulino        .name       = "mouse_set",
733acd0a093SLuiz Capitulino        .args_type  = "index:i",
734acd0a093SLuiz Capitulino        .params     = "index",
735acd0a093SLuiz Capitulino        .help       = "set which mouse device receives events",
736acd0a093SLuiz Capitulino        .mhandler.cmd = do_mouse_set,
737acd0a093SLuiz Capitulino    },
738acd0a093SLuiz Capitulino
739acd0a093SLuiz CapitulinoSTEXI
740acd0a093SLuiz Capitulino@item mouse_set @var{index}
741acd0a093SLuiz Capitulino@findex mouse_set
742acd0a093SLuiz CapitulinoSet which mouse device receives events at given @var{index}, index
743acd0a093SLuiz Capitulinocan be obtained with
744acd0a093SLuiz Capitulino@example
745acd0a093SLuiz Capitulinoinfo mice
746acd0a093SLuiz Capitulino@end example
747acd0a093SLuiz CapitulinoETEXI
748acd0a093SLuiz Capitulino
749acd0a093SLuiz Capitulino    {
750acd0a093SLuiz Capitulino        .name       = "wavcapture",
751acd0a093SLuiz Capitulino        .args_type  = "path:F,freq:i?,bits:i?,nchannels:i?",
752acd0a093SLuiz Capitulino        .params     = "path [frequency [bits [channels]]]",
753acd0a093SLuiz Capitulino        .help       = "capture audio to a wave file (default frequency=44100 bits=16 channels=2)",
754acd0a093SLuiz Capitulino        .mhandler.cmd = do_wav_capture,
755acd0a093SLuiz Capitulino    },
756acd0a093SLuiz CapitulinoSTEXI
757acd0a093SLuiz Capitulino@item wavcapture @var{filename} [@var{frequency} [@var{bits} [@var{channels}]]]
758acd0a093SLuiz Capitulino@findex wavcapture
759acd0a093SLuiz CapitulinoCapture audio into @var{filename}. Using sample rate @var{frequency}
760acd0a093SLuiz Capitulinobits per sample @var{bits} and number of channels @var{channels}.
761acd0a093SLuiz Capitulino
762acd0a093SLuiz CapitulinoDefaults:
763acd0a093SLuiz Capitulino@itemize @minus
764acd0a093SLuiz Capitulino@item Sample rate = 44100 Hz - CD quality
765acd0a093SLuiz Capitulino@item Bits = 16
766acd0a093SLuiz Capitulino@item Number of channels = 2 - Stereo
767acd0a093SLuiz Capitulino@end itemize
768acd0a093SLuiz CapitulinoETEXI
769acd0a093SLuiz Capitulino
770acd0a093SLuiz Capitulino    {
771acd0a093SLuiz Capitulino        .name       = "stopcapture",
772acd0a093SLuiz Capitulino        .args_type  = "n:i",
773acd0a093SLuiz Capitulino        .params     = "capture index",
774acd0a093SLuiz Capitulino        .help       = "stop capture",
775acd0a093SLuiz Capitulino        .mhandler.cmd = do_stop_capture,
776acd0a093SLuiz Capitulino    },
777acd0a093SLuiz CapitulinoSTEXI
778acd0a093SLuiz Capitulino@item stopcapture @var{index}
779acd0a093SLuiz Capitulino@findex stopcapture
780acd0a093SLuiz CapitulinoStop capture with a given @var{index}, index can be obtained with
781acd0a093SLuiz Capitulino@example
782acd0a093SLuiz Capitulinoinfo capture
783acd0a093SLuiz Capitulino@end example
784acd0a093SLuiz CapitulinoETEXI
785acd0a093SLuiz Capitulino
786acd0a093SLuiz Capitulino    {
787acd0a093SLuiz Capitulino        .name       = "memsave",
788acd0a093SLuiz Capitulino        .args_type  = "val:l,size:i,filename:s",
789acd0a093SLuiz Capitulino        .params     = "addr size file",
790acd0a093SLuiz Capitulino        .help       = "save to disk virtual memory dump starting at 'addr' of size 'size'",
7910cfd6a9aSLuiz Capitulino        .mhandler.cmd = hmp_memsave,
792acd0a093SLuiz Capitulino    },
793acd0a093SLuiz Capitulino
794acd0a093SLuiz CapitulinoSTEXI
795acd0a093SLuiz Capitulino@item memsave @var{addr} @var{size} @var{file}
796acd0a093SLuiz Capitulino@findex memsave
797acd0a093SLuiz Capitulinosave to disk virtual memory dump starting at @var{addr} of size @var{size}.
798acd0a093SLuiz CapitulinoETEXI
799acd0a093SLuiz Capitulino
800acd0a093SLuiz Capitulino    {
801acd0a093SLuiz Capitulino        .name       = "pmemsave",
802acd0a093SLuiz Capitulino        .args_type  = "val:l,size:i,filename:s",
803acd0a093SLuiz Capitulino        .params     = "addr size file",
804acd0a093SLuiz Capitulino        .help       = "save to disk physical memory dump starting at 'addr' of size 'size'",
8056d3962bfSLuiz Capitulino        .mhandler.cmd = hmp_pmemsave,
806acd0a093SLuiz Capitulino    },
807acd0a093SLuiz Capitulino
808acd0a093SLuiz CapitulinoSTEXI
809acd0a093SLuiz Capitulino@item pmemsave @var{addr} @var{size} @var{file}
810acd0a093SLuiz Capitulino@findex pmemsave
811acd0a093SLuiz Capitulinosave to disk physical memory dump starting at @var{addr} of size @var{size}.
812acd0a093SLuiz CapitulinoETEXI
813acd0a093SLuiz Capitulino
814acd0a093SLuiz Capitulino    {
815acd0a093SLuiz Capitulino        .name       = "boot_set",
816acd0a093SLuiz Capitulino        .args_type  = "bootdevice:s",
817acd0a093SLuiz Capitulino        .params     = "bootdevice",
818acd0a093SLuiz Capitulino        .help       = "define new values for the boot device list",
819acd0a093SLuiz Capitulino        .mhandler.cmd = do_boot_set,
820acd0a093SLuiz Capitulino    },
821acd0a093SLuiz Capitulino
822acd0a093SLuiz CapitulinoSTEXI
823acd0a093SLuiz Capitulino@item boot_set @var{bootdevicelist}
824acd0a093SLuiz Capitulino@findex boot_set
825acd0a093SLuiz Capitulino
826acd0a093SLuiz CapitulinoDefine new values for the boot device list. Those values will override
827acd0a093SLuiz Capitulinothe values specified on the command line through the @code{-boot} option.
828acd0a093SLuiz Capitulino
829acd0a093SLuiz CapitulinoThe values that can be specified here depend on the machine type, but are
830acd0a093SLuiz Capitulinothe same that can be specified in the @code{-boot} command line option.
831acd0a093SLuiz CapitulinoETEXI
832acd0a093SLuiz Capitulino
8337f7f9752SEugene (jno) Dvurechenski#if defined(TARGET_I386) || defined(TARGET_S390X)
834acd0a093SLuiz Capitulino    {
835acd0a093SLuiz Capitulino        .name       = "nmi",
836e9b4b432SLuiz Capitulino        .args_type  = "",
837e9b4b432SLuiz Capitulino        .params     = "",
838e9b4b432SLuiz Capitulino        .help       = "inject an NMI on all guest's CPUs",
839ab49ab5cSLuiz Capitulino        .mhandler.cmd = hmp_inject_nmi,
840acd0a093SLuiz Capitulino    },
841acd0a093SLuiz Capitulino#endif
842acd0a093SLuiz CapitulinoSTEXI
843acd0a093SLuiz Capitulino@item nmi @var{cpu}
844acd0a093SLuiz Capitulino@findex nmi
8457f7f9752SEugene (jno) DvurechenskiInject an NMI (x86) or RESTART (s390x) on the given CPU.
8461f590cf9SLei Li
8471f590cf9SLei LiETEXI
8481f590cf9SLei Li
8491f590cf9SLei Li    {
8503949e594SMarkus Armbruster        .name       = "ringbuf_write",
8511f590cf9SLei Li        .args_type  = "device:s,data:s",
8521f590cf9SLei Li        .params     = "device data",
8533949e594SMarkus Armbruster        .help       = "Write to a ring buffer character device",
8543949e594SMarkus Armbruster        .mhandler.cmd = hmp_ringbuf_write,
8551f590cf9SLei Li    },
8561f590cf9SLei Li
8571f590cf9SLei LiSTEXI
8583949e594SMarkus Armbruster@item ringbuf_write @var{device} @var{data}
8593949e594SMarkus Armbruster@findex ringbuf_write
8603949e594SMarkus ArmbrusterWrite @var{data} to ring buffer character device @var{device}.
8613949e594SMarkus Armbruster@var{data} must be a UTF-8 string.
8621f590cf9SLei Li
863acd0a093SLuiz CapitulinoETEXI
864acd0a093SLuiz Capitulino
865acd0a093SLuiz Capitulino    {
8663949e594SMarkus Armbruster        .name       = "ringbuf_read",
86749b6d722SLei Li        .args_type  = "device:s,size:i",
86849b6d722SLei Li        .params     = "device size",
8693949e594SMarkus Armbruster        .help       = "Read from a ring buffer character device",
8703949e594SMarkus Armbruster        .mhandler.cmd = hmp_ringbuf_read,
87149b6d722SLei Li    },
87249b6d722SLei Li
87349b6d722SLei LiSTEXI
8743949e594SMarkus Armbruster@item ringbuf_read @var{device}
8753949e594SMarkus Armbruster@findex ringbuf_read
8763949e594SMarkus ArmbrusterRead and print up to @var{size} bytes from ring buffer character
8773949e594SMarkus Armbrusterdevice @var{device}.
878543f3412SMarkus ArmbrusterCertain non-printable characters are printed \uXXXX, where XXXX is the
879543f3412SMarkus Armbrustercharacter code in hexadecimal.  Character \ is printed \\.
8803949e594SMarkus ArmbrusterBug: can screw up when the buffer contains invalid UTF-8 sequences,
8813949e594SMarkus ArmbrusterNUL characters, after the ring buffer lost data, and when reading
8823949e594SMarkus Armbrusterstops because the size limit is reached.
88349b6d722SLei Li
88449b6d722SLei LiETEXI
88549b6d722SLei Li
88649b6d722SLei Li    {
887acd0a093SLuiz Capitulino        .name       = "migrate",
888acd0a093SLuiz Capitulino        .args_type  = "detach:-d,blk:-b,inc:-i,uri:s",
889acd0a093SLuiz Capitulino        .params     = "[-d] [-b] [-i] uri",
890acd0a093SLuiz Capitulino        .help       = "migrate to URI (using -d to not wait for completion)"
891acd0a093SLuiz Capitulino		      "\n\t\t\t -b for migration without shared storage with"
892acd0a093SLuiz Capitulino		      " full copy of disk\n\t\t\t -i for migration without "
893acd0a093SLuiz Capitulino		      "shared storage with incremental copy of disk "
894acd0a093SLuiz Capitulino		      "(base image shared between src and destination)",
895e1c37d0eSLuiz Capitulino        .mhandler.cmd = hmp_migrate,
896acd0a093SLuiz Capitulino    },
897acd0a093SLuiz Capitulino
898acd0a093SLuiz Capitulino
899acd0a093SLuiz CapitulinoSTEXI
900acd0a093SLuiz Capitulino@item migrate [-d] [-b] [-i] @var{uri}
901acd0a093SLuiz Capitulino@findex migrate
902acd0a093SLuiz CapitulinoMigrate to @var{uri} (using -d to not wait for completion).
903acd0a093SLuiz Capitulino	-b for migration with full copy of disk
904acd0a093SLuiz Capitulino	-i for migration with incremental copy of disk (base image is shared)
905acd0a093SLuiz CapitulinoETEXI
906acd0a093SLuiz Capitulino
907acd0a093SLuiz Capitulino    {
908acd0a093SLuiz Capitulino        .name       = "migrate_cancel",
909acd0a093SLuiz Capitulino        .args_type  = "",
910acd0a093SLuiz Capitulino        .params     = "",
911acd0a093SLuiz Capitulino        .help       = "cancel the current VM migration",
9126cdedb07SLuiz Capitulino        .mhandler.cmd = hmp_migrate_cancel,
913acd0a093SLuiz Capitulino    },
914acd0a093SLuiz Capitulino
915acd0a093SLuiz CapitulinoSTEXI
916acd0a093SLuiz Capitulino@item migrate_cancel
917acd0a093SLuiz Capitulino@findex migrate_cancel
918acd0a093SLuiz CapitulinoCancel the current VM migration.
9199e1ba4ccSOrit Wasserman
9209e1ba4ccSOrit WassermanETEXI
9219e1ba4ccSOrit Wasserman
9229e1ba4ccSOrit Wasserman    {
9239e1ba4ccSOrit Wasserman        .name       = "migrate_set_cache_size",
9249e1ba4ccSOrit Wasserman        .args_type  = "value:o",
9259e1ba4ccSOrit Wasserman        .params     = "value",
9269e1ba4ccSOrit Wasserman        .help       = "set cache size (in bytes) for XBZRLE migrations,"
9279e1ba4ccSOrit Wasserman                      "the cache size will be rounded down to the nearest "
9289e1ba4ccSOrit Wasserman                      "power of 2.\n"
9299e1ba4ccSOrit Wasserman                      "The cache size affects the number of cache misses."
9309e1ba4ccSOrit Wasserman                      "In case of a high cache miss ratio you need to increase"
9319e1ba4ccSOrit Wasserman                      " the cache size",
9329e1ba4ccSOrit Wasserman        .mhandler.cmd = hmp_migrate_set_cache_size,
9339e1ba4ccSOrit Wasserman    },
9349e1ba4ccSOrit Wasserman
9359e1ba4ccSOrit WassermanSTEXI
9369e1ba4ccSOrit Wasserman@item migrate_set_cache_size @var{value}
9379e1ba4ccSOrit Wasserman@findex migrate_set_cache_size
9389e1ba4ccSOrit WassermanSet cache size to @var{value} (in bytes) for xbzrle migrations.
939acd0a093SLuiz CapitulinoETEXI
940acd0a093SLuiz Capitulino
941acd0a093SLuiz Capitulino    {
942acd0a093SLuiz Capitulino        .name       = "migrate_set_speed",
943ed3d4a80SJes Sorensen        .args_type  = "value:o",
944acd0a093SLuiz Capitulino        .params     = "value",
945ed3d4a80SJes Sorensen        .help       = "set maximum speed (in bytes) for migrations. "
946ed3d4a80SJes Sorensen	"Defaults to MB if no size suffix is specified, ie. B/K/M/G/T",
9473dc85383SLuiz Capitulino        .mhandler.cmd = hmp_migrate_set_speed,
948acd0a093SLuiz Capitulino    },
949acd0a093SLuiz Capitulino
950acd0a093SLuiz CapitulinoSTEXI
951acd0a093SLuiz Capitulino@item migrate_set_speed @var{value}
952acd0a093SLuiz Capitulino@findex migrate_set_speed
953acd0a093SLuiz CapitulinoSet maximum speed to @var{value} (in bytes) for migrations.
954acd0a093SLuiz CapitulinoETEXI
955acd0a093SLuiz Capitulino
956acd0a093SLuiz Capitulino    {
957acd0a093SLuiz Capitulino        .name       = "migrate_set_downtime",
958acd0a093SLuiz Capitulino        .args_type  = "value:T",
959acd0a093SLuiz Capitulino        .params     = "value",
960acd0a093SLuiz Capitulino        .help       = "set maximum tolerated downtime (in seconds) for migrations",
9614f0a993bSLuiz Capitulino        .mhandler.cmd = hmp_migrate_set_downtime,
962acd0a093SLuiz Capitulino    },
963acd0a093SLuiz Capitulino
964acd0a093SLuiz CapitulinoSTEXI
965acd0a093SLuiz Capitulino@item migrate_set_downtime @var{second}
966acd0a093SLuiz Capitulino@findex migrate_set_downtime
967acd0a093SLuiz CapitulinoSet maximum tolerated downtime (in seconds) for migration.
968acd0a093SLuiz CapitulinoETEXI
969acd0a093SLuiz Capitulino
970f8882568SJes Sorensen    {
97100458433SOrit Wasserman        .name       = "migrate_set_capability",
97200458433SOrit Wasserman        .args_type  = "capability:s,state:b",
97300458433SOrit Wasserman        .params     = "capability state",
97400458433SOrit Wasserman        .help       = "Enable/Disable the usage of a capability for migration",
97500458433SOrit Wasserman        .mhandler.cmd = hmp_migrate_set_capability,
97600458433SOrit Wasserman    },
97700458433SOrit Wasserman
97800458433SOrit WassermanSTEXI
97900458433SOrit Wasserman@item migrate_set_capability @var{capability} @var{state}
98000458433SOrit Wasserman@findex migrate_set_capability
98100458433SOrit WassermanEnable/Disable the usage of a capability @var{capability} for migration.
98200458433SOrit WassermanETEXI
98300458433SOrit Wasserman
98400458433SOrit Wasserman    {
9852ea720dbSJes Sorensen        .name       = "client_migrate_info",
9862ea720dbSJes Sorensen        .args_type  = "protocol:s,hostname:s,port:i?,tls-port:i?,cert-subject:s?",
9872ea720dbSJes Sorensen        .params     = "protocol hostname port tls-port cert-subject",
9882ea720dbSJes Sorensen        .help       = "send migration info to spice/vnc client",
9892ea720dbSJes Sorensen        .user_print = monitor_user_noop,
990edc5cb1aSYonit Halperin        .mhandler.cmd_async = client_migrate_info,
991edc5cb1aSYonit Halperin        .flags      = MONITOR_CMD_ASYNC,
992f8882568SJes Sorensen    },
993f8882568SJes Sorensen
994f8882568SJes SorensenSTEXI
995e866e239SGerd Hoffmann@item client_migrate_info @var{protocol} @var{hostname} @var{port} @var{tls-port} @var{cert-subject}
996e866e239SGerd Hoffmann@findex client_migrate_info
997e866e239SGerd HoffmannSet the spice/vnc connection info for the migration target.  The spice/vnc
998e866e239SGerd Hoffmannserver will ask the spice/vnc client to automatically reconnect using the
999e866e239SGerd Hoffmannnew parameters (if specified) once the vm migration finished successfully.
1000e866e239SGerd HoffmannETEXI
1001e866e239SGerd Hoffmann
1002783e9b48SWen Congyang    {
1003783e9b48SWen Congyang        .name       = "dump-guest-memory",
10041b7a0f75SQiao Nuohan        .args_type  = "paging:-p,zlib:-z,lzo:-l,snappy:-s,filename:F,begin:i?,length:i?",
10051b7a0f75SQiao Nuohan        .params     = "[-p] [-z|-l|-s] filename [begin length]",
1006c20499d9SQiao Nuohan        .help       = "dump guest memory into file 'filename'.\n\t\t\t"
1007c20499d9SQiao Nuohan                      "-p: do paging to get guest's memory mapping.\n\t\t\t"
10081b7a0f75SQiao Nuohan                      "-z: dump in kdump-compressed format, with zlib compression.\n\t\t\t"
10091b7a0f75SQiao Nuohan                      "-l: dump in kdump-compressed format, with lzo compression.\n\t\t\t"
10101b7a0f75SQiao Nuohan                      "-s: dump in kdump-compressed format, with snappy compression.\n\t\t\t"
1011c20499d9SQiao Nuohan                      "begin: the starting physical address.\n\t\t\t"
1012c20499d9SQiao Nuohan                      "length: the memory size, in bytes.",
1013783e9b48SWen Congyang        .mhandler.cmd = hmp_dump_guest_memory,
1014783e9b48SWen Congyang    },
1015783e9b48SWen Congyang
1016783e9b48SWen Congyang
1017783e9b48SWen CongyangSTEXI
1018c20499d9SQiao Nuohan@item dump-guest-memory [-p] @var{filename} @var{begin} @var{length}
10191b7a0f75SQiao Nuohan@item dump-guest-memory [-z|-l|-s] @var{filename}
1020783e9b48SWen Congyang@findex dump-guest-memory
1021783e9b48SWen CongyangDump guest memory to @var{protocol}. The file can be processed with crash or
10221b7a0f75SQiao Nuohangdb. Without -z|-l|-s, the dump format is ELF.
1023c20499d9SQiao Nuohan        -p: do paging to get guest's memory mapping.
10241b7a0f75SQiao Nuohan        -z: dump in kdump-compressed format, with zlib compression.
10251b7a0f75SQiao Nuohan        -l: dump in kdump-compressed format, with lzo compression.
10261b7a0f75SQiao Nuohan        -s: dump in kdump-compressed format, with snappy compression.
1027c20499d9SQiao Nuohan  filename: dump file name.
1028783e9b48SWen Congyang     begin: the starting physical address. It's optional, and should be
1029c20499d9SQiao Nuohan            specified together with length.
1030783e9b48SWen Congyang    length: the memory size, in bytes. It's optional, and should be specified
1031c20499d9SQiao Nuohan            together with begin.
1032783e9b48SWen CongyangETEXI
1033783e9b48SWen Congyang
1034e866e239SGerd Hoffmann    {
10352ea720dbSJes Sorensen        .name       = "snapshot_blkdev",
10366cc2a415SPaolo Bonzini        .args_type  = "reuse:-n,device:B,snapshot-file:s?,format:s?",
10376cc2a415SPaolo Bonzini        .params     = "[-n] device [new-image-file] [format]",
10382ea720dbSJes Sorensen        .help       = "initiates a live snapshot\n\t\t\t"
10392ea720dbSJes Sorensen                      "of device. If a new image file is specified, the\n\t\t\t"
10402ea720dbSJes Sorensen                      "new image file will become the new root image.\n\t\t\t"
10412ea720dbSJes Sorensen                      "If format is specified, the snapshot file will\n\t\t\t"
1042775ca88eSWenchao Xia                      "be created in that format.\n\t\t\t"
10436cc2a415SPaolo Bonzini                      "The default format is qcow2.  The -n flag requests QEMU\n\t\t\t"
10446cc2a415SPaolo Bonzini                      "to reuse the image found in new-image-file, instead of\n\t\t\t"
10456cc2a415SPaolo Bonzini                      "recreating it from scratch.",
10466106e249SLuiz Capitulino        .mhandler.cmd = hmp_snapshot_blkdev,
1047e866e239SGerd Hoffmann    },
1048e866e239SGerd Hoffmann
1049e866e239SGerd HoffmannSTEXI
1050f8882568SJes Sorensen@item snapshot_blkdev
1051f8882568SJes Sorensen@findex snapshot_blkdev
1052f8882568SJes SorensenSnapshot device, using snapshot file as target if provided
1053f8882568SJes SorensenETEXI
1054f8882568SJes Sorensen
1055acd0a093SLuiz Capitulino    {
1056775ca88eSWenchao Xia        .name       = "snapshot_blkdev_internal",
1057775ca88eSWenchao Xia        .args_type  = "device:B,name:s",
1058775ca88eSWenchao Xia        .params     = "device name",
1059775ca88eSWenchao Xia        .help       = "take an internal snapshot of device.\n\t\t\t"
1060775ca88eSWenchao Xia                      "The format of the image used by device must\n\t\t\t"
1061775ca88eSWenchao Xia                      "support it, such as qcow2.\n\t\t\t",
1062775ca88eSWenchao Xia        .mhandler.cmd = hmp_snapshot_blkdev_internal,
1063775ca88eSWenchao Xia    },
1064775ca88eSWenchao Xia
1065775ca88eSWenchao XiaSTEXI
1066775ca88eSWenchao Xia@item snapshot_blkdev_internal
1067775ca88eSWenchao Xia@findex snapshot_blkdev_internal
1068775ca88eSWenchao XiaTake an internal snapshot on device if it support
1069775ca88eSWenchao XiaETEXI
1070775ca88eSWenchao Xia
1071775ca88eSWenchao Xia    {
10727a4ed2eeSWenchao Xia        .name       = "snapshot_delete_blkdev_internal",
10737a4ed2eeSWenchao Xia        .args_type  = "device:B,name:s,id:s?",
10747a4ed2eeSWenchao Xia        .params     = "device name [id]",
10757a4ed2eeSWenchao Xia        .help       = "delete an internal snapshot of device.\n\t\t\t"
10767a4ed2eeSWenchao Xia                      "If id is specified, qemu will try delete\n\t\t\t"
10777a4ed2eeSWenchao Xia                      "the snapshot matching both id and name.\n\t\t\t"
10787a4ed2eeSWenchao Xia                      "The format of the image used by device must\n\t\t\t"
10797a4ed2eeSWenchao Xia                      "support it, such as qcow2.\n\t\t\t",
10807a4ed2eeSWenchao Xia        .mhandler.cmd = hmp_snapshot_delete_blkdev_internal,
10817a4ed2eeSWenchao Xia    },
10827a4ed2eeSWenchao Xia
10837a4ed2eeSWenchao XiaSTEXI
10847a4ed2eeSWenchao Xia@item snapshot_delete_blkdev_internal
10857a4ed2eeSWenchao Xia@findex snapshot_delete_blkdev_internal
10867a4ed2eeSWenchao XiaDelete an internal snapshot on device if it support
10877a4ed2eeSWenchao XiaETEXI
10887a4ed2eeSWenchao Xia
10897a4ed2eeSWenchao Xia    {
1090d9b902dbSPaolo Bonzini        .name       = "drive_mirror",
1091d9b902dbSPaolo Bonzini        .args_type  = "reuse:-n,full:-f,device:B,target:s,format:s?",
1092d9b902dbSPaolo Bonzini        .params     = "[-n] [-f] device target [format]",
1093d9b902dbSPaolo Bonzini        .help       = "initiates live storage\n\t\t\t"
1094d9b902dbSPaolo Bonzini                      "migration for a device. The device's contents are\n\t\t\t"
1095d9b902dbSPaolo Bonzini                      "copied to the new image file, including data that\n\t\t\t"
1096d9b902dbSPaolo Bonzini                      "is written after the command is started.\n\t\t\t"
1097d9b902dbSPaolo Bonzini                      "The -n flag requests QEMU to reuse the image found\n\t\t\t"
1098d9b902dbSPaolo Bonzini                      "in new-image-file, instead of recreating it from scratch.\n\t\t\t"
1099d9b902dbSPaolo Bonzini                      "The -f flag requests QEMU to copy the whole disk,\n\t\t\t"
1100d9b902dbSPaolo Bonzini                      "so that the result does not need a backing file.\n\t\t\t",
1101d9b902dbSPaolo Bonzini        .mhandler.cmd = hmp_drive_mirror,
1102d9b902dbSPaolo Bonzini    },
1103d9b902dbSPaolo BonziniSTEXI
1104d9b902dbSPaolo Bonzini@item drive_mirror
1105d9b902dbSPaolo Bonzini@findex drive_mirror
1106d9b902dbSPaolo BonziniStart mirroring a block device's writes to a new destination,
1107d9b902dbSPaolo Bonziniusing the specified target.
1108d9b902dbSPaolo BonziniETEXI
1109d9b902dbSPaolo Bonzini
1110d9b902dbSPaolo Bonzini    {
1111de90930aSStefan Hajnoczi        .name       = "drive_backup",
1112de90930aSStefan Hajnoczi        .args_type  = "reuse:-n,full:-f,device:B,target:s,format:s?",
1113de90930aSStefan Hajnoczi        .params     = "[-n] [-f] device target [format]",
1114de90930aSStefan Hajnoczi        .help       = "initiates a point-in-time\n\t\t\t"
1115de90930aSStefan Hajnoczi                      "copy for a device. The device's contents are\n\t\t\t"
1116de90930aSStefan Hajnoczi                      "copied to the new image file, excluding data that\n\t\t\t"
1117de90930aSStefan Hajnoczi                      "is written after the command is started.\n\t\t\t"
1118de90930aSStefan Hajnoczi                      "The -n flag requests QEMU to reuse the image found\n\t\t\t"
1119de90930aSStefan Hajnoczi                      "in new-image-file, instead of recreating it from scratch.\n\t\t\t"
1120de90930aSStefan Hajnoczi                      "The -f flag requests QEMU to copy the whole disk,\n\t\t\t"
1121de90930aSStefan Hajnoczi                      "so that the result does not need a backing file.\n\t\t\t",
1122de90930aSStefan Hajnoczi        .mhandler.cmd = hmp_drive_backup,
1123de90930aSStefan Hajnoczi    },
1124de90930aSStefan HajnocziSTEXI
1125de90930aSStefan Hajnoczi@item drive_backup
1126de90930aSStefan Hajnoczi@findex drive_backup
1127de90930aSStefan HajnocziStart a point-in-time copy of a block device to a specificed target.
1128de90930aSStefan HajnocziETEXI
1129de90930aSStefan Hajnoczi
1130de90930aSStefan Hajnoczi    {
1131acd0a093SLuiz Capitulino        .name       = "drive_add",
1132acd0a093SLuiz Capitulino        .args_type  = "pci_addr:s,opts:s",
1133acd0a093SLuiz Capitulino        .params     = "[[<domain>:]<bus>:]<slot>\n"
1134acd0a093SLuiz Capitulino                      "[file=file][,if=type][,bus=n]\n"
1135fb0490f6SStefan Hajnoczi                      "[,unit=m][,media=d][,index=i]\n"
1136acd0a093SLuiz Capitulino                      "[,cyls=c,heads=h,secs=s[,trans=t]]\n"
1137fb0490f6SStefan Hajnoczi                      "[,snapshot=on|off][,cache=on|off]\n"
1138fb0490f6SStefan Hajnoczi                      "[,readonly=on|off][,copy-on-read=on|off]",
1139acd0a093SLuiz Capitulino        .help       = "add drive to PCI storage controller",
1140acd0a093SLuiz Capitulino        .mhandler.cmd = drive_hot_add,
1141acd0a093SLuiz Capitulino    },
1142acd0a093SLuiz Capitulino
1143acd0a093SLuiz CapitulinoSTEXI
1144acd0a093SLuiz Capitulino@item drive_add
1145acd0a093SLuiz Capitulino@findex drive_add
1146acd0a093SLuiz CapitulinoAdd drive to PCI storage controller.
1147acd0a093SLuiz CapitulinoETEXI
1148acd0a093SLuiz Capitulino
114979ca616fSDavid Gibson#if defined(CONFIG_PCI_HOTPLUG_OLD)
1150acd0a093SLuiz Capitulino    {
1151acd0a093SLuiz Capitulino        .name       = "pci_add",
1152acd0a093SLuiz Capitulino        .args_type  = "pci_addr:s,type:s,opts:s?",
1153acd0a093SLuiz Capitulino        .params     = "auto|[[<domain>:]<bus>:]<slot> nic|storage [[vlan=n][,macaddr=addr][,model=type]] [file=file][,if=type][,bus=nr]...",
1154acd0a093SLuiz Capitulino        .help       = "hot-add PCI device",
1155acd0a093SLuiz Capitulino        .mhandler.cmd = pci_device_hot_add,
1156acd0a093SLuiz Capitulino    },
1157acd0a093SLuiz Capitulino#endif
1158acd0a093SLuiz Capitulino
1159acd0a093SLuiz CapitulinoSTEXI
1160acd0a093SLuiz Capitulino@item pci_add
1161acd0a093SLuiz Capitulino@findex pci_add
1162acd0a093SLuiz CapitulinoHot-add PCI device.
1163acd0a093SLuiz CapitulinoETEXI
1164acd0a093SLuiz Capitulino
116579ca616fSDavid Gibson#if defined(CONFIG_PCI_HOTPLUG_OLD)
1166acd0a093SLuiz Capitulino    {
1167acd0a093SLuiz Capitulino        .name       = "pci_del",
1168acd0a093SLuiz Capitulino        .args_type  = "pci_addr:s",
1169acd0a093SLuiz Capitulino        .params     = "[[<domain>:]<bus>:]<slot>",
1170acd0a093SLuiz Capitulino        .help       = "hot remove PCI device",
1171acd0a093SLuiz Capitulino        .mhandler.cmd = do_pci_device_hot_remove,
1172acd0a093SLuiz Capitulino    },
1173acd0a093SLuiz Capitulino#endif
1174acd0a093SLuiz Capitulino
1175acd0a093SLuiz CapitulinoSTEXI
1176acd0a093SLuiz Capitulino@item pci_del
1177acd0a093SLuiz Capitulino@findex pci_del
1178acd0a093SLuiz CapitulinoHot remove PCI device.
1179acd0a093SLuiz CapitulinoETEXI
1180acd0a093SLuiz Capitulino
1181acd0a093SLuiz Capitulino    {
11822ae63bdaSIsaku Yamahata        .name       = "pcie_aer_inject_error",
11832ae63bdaSIsaku Yamahata        .args_type  = "advisory_non_fatal:-a,correctable:-c,"
11842ae63bdaSIsaku Yamahata	              "id:s,error_status:s,"
11852ae63bdaSIsaku Yamahata	              "header0:i?,header1:i?,header2:i?,header3:i?,"
11862ae63bdaSIsaku Yamahata	              "prefix0:i?,prefix1:i?,prefix2:i?,prefix3:i?",
11872ae63bdaSIsaku Yamahata        .params     = "[-a] [-c] id "
11882ae63bdaSIsaku Yamahata                      "<error_status> [<tlp header> [<tlp header prefix>]]",
11892ae63bdaSIsaku Yamahata        .help       = "inject pcie aer error\n\t\t\t"
11902ae63bdaSIsaku Yamahata	              " -a for advisory non fatal error\n\t\t\t"
11912ae63bdaSIsaku Yamahata	              " -c for correctable error\n\t\t\t"
11922ae63bdaSIsaku Yamahata                      "<id> = qdev device id\n\t\t\t"
11932ae63bdaSIsaku Yamahata                      "<error_status> = error string or 32bit\n\t\t\t"
11942ae63bdaSIsaku Yamahata                      "<tlb header> = 32bit x 4\n\t\t\t"
11952ae63bdaSIsaku Yamahata                      "<tlb header prefix> = 32bit x 4",
11962ae63bdaSIsaku Yamahata        .user_print  = pcie_aer_inject_error_print,
11971f3392b7SZhi Yong Wu        .mhandler.cmd_new = do_pcie_aer_inject_error,
11982ae63bdaSIsaku Yamahata    },
11992ae63bdaSIsaku Yamahata
12002ae63bdaSIsaku YamahataSTEXI
12012ae63bdaSIsaku Yamahata@item pcie_aer_inject_error
12022ae63bdaSIsaku Yamahata@findex pcie_aer_inject_error
12032ae63bdaSIsaku YamahataInject PCIe AER error
12042ae63bdaSIsaku YamahataETEXI
12052ae63bdaSIsaku Yamahata
12062ae63bdaSIsaku Yamahata    {
1207acd0a093SLuiz Capitulino        .name       = "host_net_add",
1208acd0a093SLuiz Capitulino        .args_type  = "device:s,opts:s?",
120958952137SVincenzo Maffione        .params     = "tap|user|socket|vde|netmap|dump [options]",
1210acd0a093SLuiz Capitulino        .help       = "add host VLAN client",
1211acd0a093SLuiz Capitulino        .mhandler.cmd = net_host_device_add,
1212acd0a093SLuiz Capitulino    },
1213acd0a093SLuiz Capitulino
1214acd0a093SLuiz CapitulinoSTEXI
1215acd0a093SLuiz Capitulino@item host_net_add
1216acd0a093SLuiz Capitulino@findex host_net_add
1217acd0a093SLuiz CapitulinoAdd host VLAN client.
1218acd0a093SLuiz CapitulinoETEXI
1219acd0a093SLuiz Capitulino
1220acd0a093SLuiz Capitulino    {
1221acd0a093SLuiz Capitulino        .name       = "host_net_remove",
1222acd0a093SLuiz Capitulino        .args_type  = "vlan_id:i,device:s",
1223acd0a093SLuiz Capitulino        .params     = "vlan_id name",
1224acd0a093SLuiz Capitulino        .help       = "remove host VLAN client",
1225acd0a093SLuiz Capitulino        .mhandler.cmd = net_host_device_remove,
1226acd0a093SLuiz Capitulino    },
1227acd0a093SLuiz Capitulino
1228acd0a093SLuiz CapitulinoSTEXI
1229acd0a093SLuiz Capitulino@item host_net_remove
1230acd0a093SLuiz Capitulino@findex host_net_remove
1231acd0a093SLuiz CapitulinoRemove host VLAN client.
1232acd0a093SLuiz CapitulinoETEXI
1233acd0a093SLuiz Capitulino
1234acd0a093SLuiz Capitulino    {
1235acd0a093SLuiz Capitulino        .name       = "netdev_add",
1236acd0a093SLuiz Capitulino        .args_type  = "netdev:O",
123758952137SVincenzo Maffione        .params     = "[user|tap|socket|hubport|netmap],id=str[,prop=value][,...]",
1238acd0a093SLuiz Capitulino        .help       = "add host network device",
1239928059a3SLuiz Capitulino        .mhandler.cmd = hmp_netdev_add,
1240acd0a093SLuiz Capitulino    },
1241acd0a093SLuiz Capitulino
1242acd0a093SLuiz CapitulinoSTEXI
1243acd0a093SLuiz Capitulino@item netdev_add
1244acd0a093SLuiz Capitulino@findex netdev_add
1245acd0a093SLuiz CapitulinoAdd host network device.
1246acd0a093SLuiz CapitulinoETEXI
1247acd0a093SLuiz Capitulino
1248acd0a093SLuiz Capitulino    {
1249acd0a093SLuiz Capitulino        .name       = "netdev_del",
1250acd0a093SLuiz Capitulino        .args_type  = "id:s",
1251acd0a093SLuiz Capitulino        .params     = "id",
1252acd0a093SLuiz Capitulino        .help       = "remove host network device",
12535f964155SLuiz Capitulino        .mhandler.cmd = hmp_netdev_del,
1254acd0a093SLuiz Capitulino    },
1255acd0a093SLuiz Capitulino
1256acd0a093SLuiz CapitulinoSTEXI
1257acd0a093SLuiz Capitulino@item netdev_del
1258acd0a093SLuiz Capitulino@findex netdev_del
1259acd0a093SLuiz CapitulinoRemove host network device.
1260acd0a093SLuiz CapitulinoETEXI
1261acd0a093SLuiz Capitulino
1262ab2d0531SPaolo Bonzini    {
1263cff8b2c6SPaolo Bonzini        .name       = "object_add",
1264cff8b2c6SPaolo Bonzini        .args_type  = "object:O",
1265cff8b2c6SPaolo Bonzini        .params     = "[qom-type=]type,id=str[,prop=value][,...]",
1266cff8b2c6SPaolo Bonzini        .help       = "create QOM object",
1267cff8b2c6SPaolo Bonzini        .mhandler.cmd = hmp_object_add,
1268bfa40f77SHani Benhabiles        .command_completion = object_add_completion,
1269cff8b2c6SPaolo Bonzini    },
1270cff8b2c6SPaolo Bonzini
1271cff8b2c6SPaolo BonziniSTEXI
1272cff8b2c6SPaolo Bonzini@item object_add
1273cff8b2c6SPaolo Bonzini@findex object_add
1274cff8b2c6SPaolo BonziniCreate QOM object.
1275cff8b2c6SPaolo BonziniETEXI
1276cff8b2c6SPaolo Bonzini
1277cff8b2c6SPaolo Bonzini    {
1278ab2d0531SPaolo Bonzini        .name       = "object_del",
1279ab2d0531SPaolo Bonzini        .args_type  = "id:s",
1280ab2d0531SPaolo Bonzini        .params     = "id",
1281ab2d0531SPaolo Bonzini        .help       = "destroy QOM object",
1282ab2d0531SPaolo Bonzini        .mhandler.cmd = hmp_object_del,
1283bfa40f77SHani Benhabiles        .command_completion = object_del_completion,
1284ab2d0531SPaolo Bonzini    },
1285ab2d0531SPaolo Bonzini
1286ab2d0531SPaolo BonziniSTEXI
1287ab2d0531SPaolo Bonzini@item object_del
1288ab2d0531SPaolo Bonzini@findex object_del
1289ab2d0531SPaolo BonziniDestroy QOM object.
1290ab2d0531SPaolo BonziniETEXI
1291ab2d0531SPaolo Bonzini
1292acd0a093SLuiz Capitulino#ifdef CONFIG_SLIRP
1293acd0a093SLuiz Capitulino    {
1294acd0a093SLuiz Capitulino        .name       = "hostfwd_add",
1295acd0a093SLuiz Capitulino        .args_type  = "arg1:s,arg2:s?,arg3:s?",
1296acd0a093SLuiz Capitulino        .params     = "[vlan_id name] [tcp|udp]:[hostaddr]:hostport-[guestaddr]:guestport",
1297acd0a093SLuiz Capitulino        .help       = "redirect TCP or UDP connections from host to guest (requires -net user)",
1298acd0a093SLuiz Capitulino        .mhandler.cmd = net_slirp_hostfwd_add,
1299acd0a093SLuiz Capitulino    },
1300acd0a093SLuiz Capitulino#endif
1301acd0a093SLuiz CapitulinoSTEXI
1302acd0a093SLuiz Capitulino@item hostfwd_add
1303acd0a093SLuiz Capitulino@findex hostfwd_add
1304acd0a093SLuiz CapitulinoRedirect TCP or UDP connections from host to guest (requires -net user).
1305acd0a093SLuiz CapitulinoETEXI
1306acd0a093SLuiz Capitulino
1307acd0a093SLuiz Capitulino#ifdef CONFIG_SLIRP
1308acd0a093SLuiz Capitulino    {
1309acd0a093SLuiz Capitulino        .name       = "hostfwd_remove",
1310acd0a093SLuiz Capitulino        .args_type  = "arg1:s,arg2:s?,arg3:s?",
1311acd0a093SLuiz Capitulino        .params     = "[vlan_id name] [tcp|udp]:[hostaddr]:hostport",
1312acd0a093SLuiz Capitulino        .help       = "remove host-to-guest TCP or UDP redirection",
1313acd0a093SLuiz Capitulino        .mhandler.cmd = net_slirp_hostfwd_remove,
1314acd0a093SLuiz Capitulino    },
1315acd0a093SLuiz Capitulino
1316acd0a093SLuiz Capitulino#endif
1317acd0a093SLuiz CapitulinoSTEXI
1318acd0a093SLuiz Capitulino@item hostfwd_remove
1319acd0a093SLuiz Capitulino@findex hostfwd_remove
1320acd0a093SLuiz CapitulinoRemove host-to-guest TCP or UDP redirection.
1321acd0a093SLuiz CapitulinoETEXI
1322acd0a093SLuiz Capitulino
1323acd0a093SLuiz Capitulino    {
1324acd0a093SLuiz Capitulino        .name       = "balloon",
1325acd0a093SLuiz Capitulino        .args_type  = "value:M",
1326acd0a093SLuiz Capitulino        .params     = "target",
1327acd0a093SLuiz Capitulino        .help       = "request VM to change its memory allocation (in MB)",
1328d72f3264SLuiz Capitulino        .mhandler.cmd = hmp_balloon,
1329acd0a093SLuiz Capitulino    },
1330acd0a093SLuiz Capitulino
1331acd0a093SLuiz CapitulinoSTEXI
1332acd0a093SLuiz Capitulino@item balloon @var{value}
1333acd0a093SLuiz Capitulino@findex balloon
1334acd0a093SLuiz CapitulinoRequest VM to change its memory allocation to @var{value} (in MB).
1335acd0a093SLuiz CapitulinoETEXI
1336acd0a093SLuiz Capitulino
1337acd0a093SLuiz Capitulino    {
1338acd0a093SLuiz Capitulino        .name       = "set_link",
1339acd0a093SLuiz Capitulino        .args_type  = "name:s,up:b",
1340acd0a093SLuiz Capitulino        .params     = "name on|off",
1341acd0a093SLuiz Capitulino        .help       = "change the link status of a network adapter",
13424b37156cSLuiz Capitulino        .mhandler.cmd = hmp_set_link,
1343acd0a093SLuiz Capitulino    },
1344acd0a093SLuiz Capitulino
1345acd0a093SLuiz CapitulinoSTEXI
1346acd0a093SLuiz Capitulino@item set_link @var{name} [on|off]
1347acd0a093SLuiz Capitulino@findex set_link
1348acd0a093SLuiz CapitulinoSwitch link @var{name} on (i.e. up) or off (i.e. down).
1349acd0a093SLuiz CapitulinoETEXI
1350acd0a093SLuiz Capitulino
1351acd0a093SLuiz Capitulino    {
1352acd0a093SLuiz Capitulino        .name       = "watchdog_action",
1353acd0a093SLuiz Capitulino        .args_type  = "action:s",
1354acd0a093SLuiz Capitulino        .params     = "[reset|shutdown|poweroff|pause|debug|none]",
1355acd0a093SLuiz Capitulino        .help       = "change watchdog action",
1356acd0a093SLuiz Capitulino        .mhandler.cmd = do_watchdog_action,
1357acd0a093SLuiz Capitulino    },
1358acd0a093SLuiz Capitulino
1359acd0a093SLuiz CapitulinoSTEXI
1360acd0a093SLuiz Capitulino@item watchdog_action
1361acd0a093SLuiz Capitulino@findex watchdog_action
1362acd0a093SLuiz CapitulinoChange watchdog action.
1363acd0a093SLuiz CapitulinoETEXI
1364acd0a093SLuiz Capitulino
1365acd0a093SLuiz Capitulino    {
1366acd0a093SLuiz Capitulino        .name       = "acl_show",
1367acd0a093SLuiz Capitulino        .args_type  = "aclname:s",
1368acd0a093SLuiz Capitulino        .params     = "aclname",
1369acd0a093SLuiz Capitulino        .help       = "list rules in the access control list",
1370acd0a093SLuiz Capitulino        .mhandler.cmd = do_acl_show,
1371acd0a093SLuiz Capitulino    },
1372acd0a093SLuiz Capitulino
1373acd0a093SLuiz CapitulinoSTEXI
1374acd0a093SLuiz Capitulino@item acl_show @var{aclname}
1375acd0a093SLuiz Capitulino@findex acl_show
1376acd0a093SLuiz CapitulinoList all the matching rules in the access control list, and the default
1377acd0a093SLuiz Capitulinopolicy. There are currently two named access control lists,
1378acd0a093SLuiz Capitulino@var{vnc.x509dname} and @var{vnc.username} matching on the x509 client
1379acd0a093SLuiz Capitulinocertificate distinguished name, and SASL username respectively.
1380acd0a093SLuiz CapitulinoETEXI
1381acd0a093SLuiz Capitulino
1382acd0a093SLuiz Capitulino    {
1383acd0a093SLuiz Capitulino        .name       = "acl_policy",
1384acd0a093SLuiz Capitulino        .args_type  = "aclname:s,policy:s",
1385acd0a093SLuiz Capitulino        .params     = "aclname allow|deny",
1386acd0a093SLuiz Capitulino        .help       = "set default access control list policy",
1387acd0a093SLuiz Capitulino        .mhandler.cmd = do_acl_policy,
1388acd0a093SLuiz Capitulino    },
1389acd0a093SLuiz Capitulino
1390acd0a093SLuiz CapitulinoSTEXI
1391acd0a093SLuiz Capitulino@item acl_policy @var{aclname} @code{allow|deny}
1392acd0a093SLuiz Capitulino@findex acl_policy
1393acd0a093SLuiz CapitulinoSet the default access control list policy, used in the event that
1394acd0a093SLuiz Capitulinonone of the explicit rules match. The default policy at startup is
1395acd0a093SLuiz Capitulinoalways @code{deny}.
1396acd0a093SLuiz CapitulinoETEXI
1397acd0a093SLuiz Capitulino
1398acd0a093SLuiz Capitulino    {
1399acd0a093SLuiz Capitulino        .name       = "acl_add",
1400acd0a093SLuiz Capitulino        .args_type  = "aclname:s,match:s,policy:s,index:i?",
1401acd0a093SLuiz Capitulino        .params     = "aclname match allow|deny [index]",
1402acd0a093SLuiz Capitulino        .help       = "add a match rule to the access control list",
1403acd0a093SLuiz Capitulino        .mhandler.cmd = do_acl_add,
1404acd0a093SLuiz Capitulino    },
1405acd0a093SLuiz Capitulino
1406acd0a093SLuiz CapitulinoSTEXI
1407acd0a093SLuiz Capitulino@item acl_add @var{aclname} @var{match} @code{allow|deny} [@var{index}]
1408acd0a093SLuiz Capitulino@findex acl_add
1409acd0a093SLuiz CapitulinoAdd a match rule to the access control list, allowing or denying access.
1410acd0a093SLuiz CapitulinoThe match will normally be an exact username or x509 distinguished name,
1411acd0a093SLuiz Capitulinobut can optionally include wildcard globs. eg @code{*@@EXAMPLE.COM} to
1412acd0a093SLuiz Capitulinoallow all users in the @code{EXAMPLE.COM} kerberos realm. The match will
1413acd0a093SLuiz Capitulinonormally be appended to the end of the ACL, but can be inserted
1414acd0a093SLuiz Capitulinoearlier in the list if the optional @var{index} parameter is supplied.
1415acd0a093SLuiz CapitulinoETEXI
1416acd0a093SLuiz Capitulino
1417acd0a093SLuiz Capitulino    {
1418acd0a093SLuiz Capitulino        .name       = "acl_remove",
1419acd0a093SLuiz Capitulino        .args_type  = "aclname:s,match:s",
1420acd0a093SLuiz Capitulino        .params     = "aclname match",
1421acd0a093SLuiz Capitulino        .help       = "remove a match rule from the access control list",
1422acd0a093SLuiz Capitulino        .mhandler.cmd = do_acl_remove,
1423acd0a093SLuiz Capitulino    },
1424acd0a093SLuiz Capitulino
1425acd0a093SLuiz CapitulinoSTEXI
1426acd0a093SLuiz Capitulino@item acl_remove @var{aclname} @var{match}
1427acd0a093SLuiz Capitulino@findex acl_remove
1428acd0a093SLuiz CapitulinoRemove the specified match rule from the access control list.
1429acd0a093SLuiz CapitulinoETEXI
1430acd0a093SLuiz Capitulino
1431acd0a093SLuiz Capitulino    {
1432acd0a093SLuiz Capitulino        .name       = "acl_reset",
1433acd0a093SLuiz Capitulino        .args_type  = "aclname:s",
1434acd0a093SLuiz Capitulino        .params     = "aclname",
1435acd0a093SLuiz Capitulino        .help       = "reset the access control list",
1436acd0a093SLuiz Capitulino        .mhandler.cmd = do_acl_reset,
1437acd0a093SLuiz Capitulino    },
1438acd0a093SLuiz Capitulino
1439acd0a093SLuiz CapitulinoSTEXI
1440acd0a093SLuiz Capitulino@item acl_reset @var{aclname}
1441acd0a093SLuiz Capitulino@findex acl_reset
1442acd0a093SLuiz CapitulinoRemove all matches from the access control list, and set the default
1443acd0a093SLuiz Capitulinopolicy back to @code{deny}.
1444acd0a093SLuiz CapitulinoETEXI
1445acd0a093SLuiz Capitulino
14464057725fSPaolo Bonzini    {
14474057725fSPaolo Bonzini        .name       = "nbd_server_start",
14484057725fSPaolo Bonzini        .args_type  = "all:-a,writable:-w,uri:s",
14494057725fSPaolo Bonzini        .params     = "nbd_server_start [-a] [-w] host:port",
14504057725fSPaolo Bonzini        .help       = "serve block devices on the given host and port",
14514057725fSPaolo Bonzini        .mhandler.cmd = hmp_nbd_server_start,
14524057725fSPaolo Bonzini    },
14534057725fSPaolo BonziniSTEXI
14544057725fSPaolo Bonzini@item nbd_server_start @var{host}:@var{port}
14554057725fSPaolo Bonzini@findex nbd_server_start
14564057725fSPaolo BonziniStart an NBD server on the given host and/or port.  If the @option{-a}
14574057725fSPaolo Bonzinioption is included, all of the virtual machine's block devices that
14584057725fSPaolo Bonzinihave an inserted media on them are automatically exported; in this case,
14594057725fSPaolo Bonzinithe @option{-w} option makes the devices writable too.
14604057725fSPaolo BonziniETEXI
14614057725fSPaolo Bonzini
14624057725fSPaolo Bonzini    {
14634057725fSPaolo Bonzini        .name       = "nbd_server_add",
14644057725fSPaolo Bonzini        .args_type  = "writable:-w,device:B",
14654057725fSPaolo Bonzini        .params     = "nbd_server_add [-w] device",
14664057725fSPaolo Bonzini        .help       = "export a block device via NBD",
14674057725fSPaolo Bonzini        .mhandler.cmd = hmp_nbd_server_add,
14684057725fSPaolo Bonzini    },
14694057725fSPaolo BonziniSTEXI
14704057725fSPaolo Bonzini@item nbd_server_add @var{device}
14714057725fSPaolo Bonzini@findex nbd_server_add
14724057725fSPaolo BonziniExport a block device through QEMU's NBD server, which must be started
14734057725fSPaolo Bonzinibeforehand with @command{nbd_server_start}.  The @option{-w} option makes the
14744057725fSPaolo Bonziniexported device writable too.
14754057725fSPaolo BonziniETEXI
14764057725fSPaolo Bonzini
14774057725fSPaolo Bonzini    {
14784057725fSPaolo Bonzini        .name       = "nbd_server_stop",
14794057725fSPaolo Bonzini        .args_type  = "",
14804057725fSPaolo Bonzini        .params     = "nbd_server_stop",
14814057725fSPaolo Bonzini        .help       = "stop serving block devices using the NBD protocol",
14824057725fSPaolo Bonzini        .mhandler.cmd = hmp_nbd_server_stop,
14834057725fSPaolo Bonzini    },
14844057725fSPaolo BonziniSTEXI
14854057725fSPaolo Bonzini@item nbd_server_stop
14864057725fSPaolo Bonzini@findex nbd_server_stop
14874057725fSPaolo BonziniStop the QEMU embedded NBD server.
14884057725fSPaolo BonziniETEXI
14894057725fSPaolo Bonzini
14904057725fSPaolo Bonzini
1491acd0a093SLuiz Capitulino#if defined(TARGET_I386)
1492acd0a093SLuiz Capitulino
1493acd0a093SLuiz Capitulino    {
1494acd0a093SLuiz Capitulino        .name       = "mce",
149531ce5e0cSJin Dongming        .args_type  = "broadcast:-b,cpu_index:i,bank:i,status:l,mcg_status:l,addr:l,misc:l",
149631ce5e0cSJin Dongming        .params     = "[-b] cpu bank status mcgstatus addr misc",
149731ce5e0cSJin Dongming        .help       = "inject a MCE on the given CPU [and broadcast to other CPUs with -b option]",
1498acd0a093SLuiz Capitulino        .mhandler.cmd = do_inject_mce,
1499acd0a093SLuiz Capitulino    },
1500acd0a093SLuiz Capitulino
1501acd0a093SLuiz Capitulino#endif
1502acd0a093SLuiz CapitulinoSTEXI
1503acd0a093SLuiz Capitulino@item mce @var{cpu} @var{bank} @var{status} @var{mcgstatus} @var{addr} @var{misc}
1504acd0a093SLuiz Capitulino@findex mce (x86)
1505acd0a093SLuiz CapitulinoInject an MCE on the given CPU (x86 only).
1506acd0a093SLuiz CapitulinoETEXI
1507acd0a093SLuiz Capitulino
1508acd0a093SLuiz Capitulino    {
1509acd0a093SLuiz Capitulino        .name       = "getfd",
1510acd0a093SLuiz Capitulino        .args_type  = "fdname:s",
1511acd0a093SLuiz Capitulino        .params     = "getfd name",
1512acd0a093SLuiz Capitulino        .help       = "receive a file descriptor via SCM rights and assign it a name",
1513208c9d1bSCorey Bryant        .mhandler.cmd = hmp_getfd,
1514acd0a093SLuiz Capitulino    },
1515acd0a093SLuiz Capitulino
1516acd0a093SLuiz CapitulinoSTEXI
1517acd0a093SLuiz Capitulino@item getfd @var{fdname}
1518acd0a093SLuiz Capitulino@findex getfd
1519acd0a093SLuiz CapitulinoIf a file descriptor is passed alongside this command using the SCM_RIGHTS
1520acd0a093SLuiz Capitulinomechanism on unix sockets, it is stored using the name @var{fdname} for
1521acd0a093SLuiz Capitulinolater use by other monitor commands.
1522acd0a093SLuiz CapitulinoETEXI
1523acd0a093SLuiz Capitulino
1524acd0a093SLuiz Capitulino    {
1525acd0a093SLuiz Capitulino        .name       = "closefd",
1526acd0a093SLuiz Capitulino        .args_type  = "fdname:s",
1527acd0a093SLuiz Capitulino        .params     = "closefd name",
1528acd0a093SLuiz Capitulino        .help       = "close a file descriptor previously passed via SCM rights",
1529208c9d1bSCorey Bryant        .mhandler.cmd = hmp_closefd,
1530acd0a093SLuiz Capitulino    },
1531acd0a093SLuiz Capitulino
1532acd0a093SLuiz CapitulinoSTEXI
1533acd0a093SLuiz Capitulino@item closefd @var{fdname}
1534acd0a093SLuiz Capitulino@findex closefd
1535acd0a093SLuiz CapitulinoClose the file descriptor previously assigned to @var{fdname} using the
1536acd0a093SLuiz Capitulino@code{getfd} command. This is only needed if the file descriptor was never
1537acd0a093SLuiz Capitulinoused by another monitor command.
1538acd0a093SLuiz CapitulinoETEXI
1539acd0a093SLuiz Capitulino
1540acd0a093SLuiz Capitulino    {
1541acd0a093SLuiz Capitulino        .name       = "block_passwd",
1542acd0a093SLuiz Capitulino        .args_type  = "device:B,password:s",
1543acd0a093SLuiz Capitulino        .params     = "block_passwd device password",
1544acd0a093SLuiz Capitulino        .help       = "set the password of encrypted block devices",
1545a4dea8a9SLuiz Capitulino        .mhandler.cmd = hmp_block_passwd,
1546acd0a093SLuiz Capitulino    },
1547acd0a093SLuiz Capitulino
1548acd0a093SLuiz CapitulinoSTEXI
1549727f005eSZhi Yong Wu@item block_set_io_throttle @var{device} @var{bps} @var{bps_rd} @var{bps_wr} @var{iops} @var{iops_rd} @var{iops_wr}
1550727f005eSZhi Yong Wu@findex block_set_io_throttle
1551727f005eSZhi Yong WuChange I/O throttle limits for a block drive to @var{bps} @var{bps_rd} @var{bps_wr} @var{iops} @var{iops_rd} @var{iops_wr}
1552727f005eSZhi Yong WuETEXI
1553727f005eSZhi Yong Wu
1554727f005eSZhi Yong Wu    {
1555727f005eSZhi Yong Wu        .name       = "block_set_io_throttle",
1556727f005eSZhi Yong Wu        .args_type  = "device:B,bps:l,bps_rd:l,bps_wr:l,iops:l,iops_rd:l,iops_wr:l",
1557727f005eSZhi Yong Wu        .params     = "device bps bps_rd bps_wr iops iops_rd iops_wr",
1558727f005eSZhi Yong Wu        .help       = "change I/O throttle limits for a block drive",
155980047da5SLuiz Capitulino        .mhandler.cmd = hmp_block_set_io_throttle,
1560727f005eSZhi Yong Wu    },
1561727f005eSZhi Yong Wu
1562727f005eSZhi Yong WuSTEXI
1563acd0a093SLuiz Capitulino@item block_passwd @var{device} @var{password}
1564acd0a093SLuiz Capitulino@findex block_passwd
1565acd0a093SLuiz CapitulinoSet the encrypted device @var{device} password to @var{password}
1566acd0a093SLuiz CapitulinoETEXI
1567acd0a093SLuiz Capitulino
1568acd0a093SLuiz Capitulino    {
15697572150cSGerd Hoffmann        .name       = "set_password",
15707572150cSGerd Hoffmann        .args_type  = "protocol:s,password:s,connected:s?",
15717572150cSGerd Hoffmann        .params     = "protocol password action-if-connected",
15727572150cSGerd Hoffmann        .help       = "set spice/vnc password",
1573fbf796fdSLuiz Capitulino        .mhandler.cmd = hmp_set_password,
15747572150cSGerd Hoffmann    },
15757572150cSGerd Hoffmann
15767572150cSGerd HoffmannSTEXI
15777572150cSGerd Hoffmann@item set_password [ vnc | spice ] password [ action-if-connected ]
15787572150cSGerd Hoffmann@findex set_password
15797572150cSGerd Hoffmann
15807572150cSGerd HoffmannChange spice/vnc password.  Use zero to make the password stay valid
15817572150cSGerd Hoffmannforever.  @var{action-if-connected} specifies what should happen in
15827572150cSGerd Hoffmanncase a connection is established: @var{fail} makes the password change
15837572150cSGerd Hoffmannfail.  @var{disconnect} changes the password and disconnects the
15847572150cSGerd Hoffmannclient.  @var{keep} changes the password and keeps the connection up.
15857572150cSGerd Hoffmann@var{keep} is the default.
15867572150cSGerd HoffmannETEXI
15877572150cSGerd Hoffmann
15887572150cSGerd Hoffmann    {
15897572150cSGerd Hoffmann        .name       = "expire_password",
15907572150cSGerd Hoffmann        .args_type  = "protocol:s,time:s",
15917572150cSGerd Hoffmann        .params     = "protocol time",
15927572150cSGerd Hoffmann        .help       = "set spice/vnc password expire-time",
15939ad5372dSLuiz Capitulino        .mhandler.cmd = hmp_expire_password,
15947572150cSGerd Hoffmann    },
15957572150cSGerd Hoffmann
15967572150cSGerd HoffmannSTEXI
15977572150cSGerd Hoffmann@item expire_password [ vnc | spice ] expire-time
15987572150cSGerd Hoffmann@findex expire_password
15997572150cSGerd Hoffmann
16007572150cSGerd HoffmannSpecify when a password for spice/vnc becomes
16017572150cSGerd Hoffmanninvalid. @var{expire-time} accepts:
16027572150cSGerd Hoffmann
16037572150cSGerd Hoffmann@table @var
16047572150cSGerd Hoffmann@item now
16057572150cSGerd HoffmannInvalidate password instantly.
16067572150cSGerd Hoffmann
16077572150cSGerd Hoffmann@item never
16087572150cSGerd HoffmannPassword stays valid forever.
16097572150cSGerd Hoffmann
16107572150cSGerd Hoffmann@item +nsec
16117572150cSGerd HoffmannPassword stays valid for @var{nsec} seconds starting now.
16127572150cSGerd Hoffmann
16137572150cSGerd Hoffmann@item nsec
16147572150cSGerd HoffmannPassword is invalidated at the given time.  @var{nsec} are the seconds
16157572150cSGerd Hoffmannpassed since 1970, i.e. unix epoch.
16167572150cSGerd Hoffmann
16177572150cSGerd Hoffmann@end table
16187572150cSGerd HoffmannETEXI
16197572150cSGerd Hoffmann
162046920825SGerd Hoffmann    {
162146920825SGerd Hoffmann        .name       = "chardev-add",
162246920825SGerd Hoffmann        .args_type  = "args:s",
162346920825SGerd Hoffmann        .params     = "args",
162446920825SGerd Hoffmann        .help       = "add chardev",
162546920825SGerd Hoffmann        .mhandler.cmd = hmp_chardev_add,
162646920825SGerd Hoffmann    },
162746920825SGerd Hoffmann
162846920825SGerd HoffmannSTEXI
162946920825SGerd Hoffmann@item chardev_add args
163046920825SGerd Hoffmann@findex chardev_add
163146920825SGerd Hoffmann
163246920825SGerd Hoffmannchardev_add accepts the same parameters as the -chardev command line switch.
163346920825SGerd Hoffmann
163446920825SGerd HoffmannETEXI
163546920825SGerd Hoffmann
163646920825SGerd Hoffmann    {
163746920825SGerd Hoffmann        .name       = "chardev-remove",
163846920825SGerd Hoffmann        .args_type  = "id:s",
163946920825SGerd Hoffmann        .params     = "id",
164046920825SGerd Hoffmann        .help       = "remove chardev",
164146920825SGerd Hoffmann        .mhandler.cmd = hmp_chardev_remove,
164246920825SGerd Hoffmann    },
164346920825SGerd Hoffmann
164446920825SGerd HoffmannSTEXI
164546920825SGerd Hoffmann@item chardev_remove id
164646920825SGerd Hoffmann@findex chardev_remove
164746920825SGerd Hoffmann
164846920825SGerd HoffmannRemoves the chardev @var{id}.
164946920825SGerd Hoffmann
165046920825SGerd HoffmannETEXI
1651f1088908SGerd Hoffmann
1652f1088908SGerd Hoffmann    {
1653587da2c3SKevin Wolf        .name       = "qemu-io",
1654587da2c3SKevin Wolf        .args_type  = "device:B,command:s",
1655587da2c3SKevin Wolf        .params     = "[device] \"[command]\"",
1656587da2c3SKevin Wolf        .help       = "run a qemu-io command on a block device",
1657587da2c3SKevin Wolf        .mhandler.cmd = hmp_qemu_io,
1658587da2c3SKevin Wolf    },
1659587da2c3SKevin Wolf
1660587da2c3SKevin WolfSTEXI
1661587da2c3SKevin Wolf@item qemu-io @var{device} @var{command}
1662587da2c3SKevin Wolf@findex qemu-io
1663587da2c3SKevin Wolf
1664587da2c3SKevin WolfExecutes a qemu-io command on the given block device.
1665587da2c3SKevin Wolf
1666587da2c3SKevin WolfETEXI
1667587da2c3SKevin Wolf
1668587da2c3SKevin Wolf    {
1669abf23329SJason J. Herne        .name       = "cpu-add",
1670abf23329SJason J. Herne        .args_type  = "id:i",
1671abf23329SJason J. Herne        .params     = "id",
1672abf23329SJason J. Herne        .help       = "add cpu",
1673abf23329SJason J. Herne        .mhandler.cmd  = hmp_cpu_add,
1674abf23329SJason J. Herne    },
1675abf23329SJason J. Herne
1676abf23329SJason J. HerneSTEXI
1677abf23329SJason J. Herne@item cpu-add @var{id}
1678abf23329SJason J. HerneAdd CPU with id @var{id}
1679abf23329SJason J. HerneETEXI
1680abf23329SJason J. Herne
1681abf23329SJason J. Herne    {
1682acd0a093SLuiz Capitulino        .name       = "info",
1683acd0a093SLuiz Capitulino        .args_type  = "item:s?",
1684acd0a093SLuiz Capitulino        .params     = "[subcommand]",
1685acd0a093SLuiz Capitulino        .help       = "show various information about the system state",
168684c44613SWenchao Xia        .mhandler.cmd = do_info_help,
168784c44613SWenchao Xia        .sub_table = info_cmds,
1688acd0a093SLuiz Capitulino    },
1689acd0a093SLuiz Capitulino
1690acd0a093SLuiz CapitulinoSTEXI
1691acd0a093SLuiz Capitulino@item info @var{subcommand}
1692acd0a093SLuiz Capitulino@findex info
1693acd0a093SLuiz CapitulinoShow various information about the system state.
1694acd0a093SLuiz Capitulino
1695acd0a093SLuiz Capitulino@table @option
1696acd0a093SLuiz Capitulino@item info version
1697acd0a093SLuiz Capitulinoshow the version of QEMU
1698acd0a093SLuiz Capitulino@item info network
1699acd0a093SLuiz Capitulinoshow the various VLANs and the associated devices
1700acd0a093SLuiz Capitulino@item info chardev
1701acd0a093SLuiz Capitulinoshow the character devices
1702acd0a093SLuiz Capitulino@item info block
1703acd0a093SLuiz Capitulinoshow the block devices
1704acd0a093SLuiz Capitulino@item info blockstats
1705acd0a093SLuiz Capitulinoshow block device statistics
1706acd0a093SLuiz Capitulino@item info registers
1707acd0a093SLuiz Capitulinoshow the cpu registers
1708acd0a093SLuiz Capitulino@item info cpus
1709acd0a093SLuiz Capitulinoshow infos for each CPU
1710acd0a093SLuiz Capitulino@item info history
1711acd0a093SLuiz Capitulinoshow the command line history
1712acd0a093SLuiz Capitulino@item info irq
1713acd0a093SLuiz Capitulinoshow the interrupts statistics (if available)
1714acd0a093SLuiz Capitulino@item info pic
1715acd0a093SLuiz Capitulinoshow i8259 (PIC) state
1716acd0a093SLuiz Capitulino@item info pci
1717acd0a093SLuiz Capitulinoshow emulated PCI device info
1718acd0a093SLuiz Capitulino@item info tlb
1719692f737cSMax Filippovshow virtual to physical memory mappings (i386, SH4, SPARC, PPC, and Xtensa only)
1720acd0a093SLuiz Capitulino@item info mem
1721acd0a093SLuiz Capitulinoshow the active virtual memory mappings (i386 only)
1722acd0a093SLuiz Capitulino@item info jit
1723acd0a093SLuiz Capitulinoshow dynamic compiler info
1724acd0a093SLuiz Capitulino@item info numa
1725acd0a093SLuiz Capitulinoshow NUMA information
1726acd0a093SLuiz Capitulino@item info kvm
1727acd0a093SLuiz Capitulinoshow KVM information
1728acd0a093SLuiz Capitulino@item info usb
1729acd0a093SLuiz Capitulinoshow USB devices plugged on the virtual USB hub
1730acd0a093SLuiz Capitulino@item info usbhost
1731acd0a093SLuiz Capitulinoshow all USB host devices
1732acd0a093SLuiz Capitulino@item info profile
1733acd0a093SLuiz Capitulinoshow profiling information
1734acd0a093SLuiz Capitulino@item info capture
1735acd0a093SLuiz Capitulinoshow information about active capturing
1736acd0a093SLuiz Capitulino@item info snapshots
1737acd0a093SLuiz Capitulinoshow list of VM snapshots
1738acd0a093SLuiz Capitulino@item info status
1739acd0a093SLuiz Capitulinoshow the current VM status (running|paused)
1740acd0a093SLuiz Capitulino@item info pcmcia
1741acd0a093SLuiz Capitulinoshow guest PCMCIA status
1742acd0a093SLuiz Capitulino@item info mice
1743acd0a093SLuiz Capitulinoshow which guest mouse is receiving events
1744acd0a093SLuiz Capitulino@item info vnc
1745acd0a093SLuiz Capitulinoshow the vnc server status
1746acd0a093SLuiz Capitulino@item info name
1747acd0a093SLuiz Capitulinoshow the current VM name
1748acd0a093SLuiz Capitulino@item info uuid
1749acd0a093SLuiz Capitulinoshow the current VM UUID
1750acd0a093SLuiz Capitulino@item info cpustats
1751acd0a093SLuiz Capitulinoshow CPU statistics
1752acd0a093SLuiz Capitulino@item info usernet
1753acd0a093SLuiz Capitulinoshow user network stack connection states
1754acd0a093SLuiz Capitulino@item info migrate
1755acd0a093SLuiz Capitulinoshow migration status
1756bbf6da32SOrit Wasserman@item info migrate_capabilities
1757bbf6da32SOrit Wassermanshow current migration capabilities
17589e1ba4ccSOrit Wasserman@item info migrate_cache_size
17599e1ba4ccSOrit Wassermanshow current migration XBZRLE cache size
1760acd0a093SLuiz Capitulino@item info balloon
1761acd0a093SLuiz Capitulinoshow balloon information
1762acd0a093SLuiz Capitulino@item info qtree
1763acd0a093SLuiz Capitulinoshow device tree
1764acd0a093SLuiz Capitulino@item info qdm
1765acd0a093SLuiz Capitulinoshow qdev device model list
1766acd0a093SLuiz Capitulino@item info roms
1767acd0a093SLuiz Capitulinoshow roms
1768d1a0cf73SStefan Berger@item info tpm
1769d1a0cf73SStefan Bergershow the TPM device
1770acd0a093SLuiz Capitulino@end table
1771acd0a093SLuiz CapitulinoETEXI
1772acd0a093SLuiz Capitulino
177331965ae2SLluísSTEXI
1774acd0a093SLuiz Capitulino@item info trace-events
1775acd0a093SLuiz Capitulinoshow available trace events and their state
1776acd0a093SLuiz CapitulinoETEXI
1777acd0a093SLuiz Capitulino
1778acd0a093SLuiz CapitulinoSTEXI
1779acd0a093SLuiz Capitulino@end table
1780acd0a093SLuiz CapitulinoETEXI
1781