xref: /qemu/hmp-commands.hx (revision 18d154f57583dd06f0ce3e69e4952044490b2bc4)
1d95f260aSPeter MaydellHXCOMM See docs/devel/docs.rst for the format of this file.
2d95f260aSPeter MaydellHXCOMM
3d95f260aSPeter MaydellHXCOMM This file defines the contents of an array of HMPCommand structs
4d95f260aSPeter MaydellHXCOMM which specify the name, behaviour and help text for HMP commands.
5d95f260aSPeter MaydellHXCOMM Text between SRST and ERST is rST format documentation.
63c95fdefSPeter MaydellHXCOMM HXCOMM can be used for comments, discarded from both rST and C.
72313086aSBlue Swirl
82313086aSBlue Swirl
9d7f9b689SLuiz Capitulino    {
10d7f9b689SLuiz Capitulino        .name       = "help|?",
11129be006SWenchao Xia        .args_type  = "name:S?",
12d7f9b689SLuiz Capitulino        .params     = "[cmd]",
13d7f9b689SLuiz Capitulino        .help       = "show the help",
14cbf81997SMarkus Armbruster        .cmd        = hmp_help,
1531785f1bSDr. David Alan Gilbert        .flags      = "p",
16d7f9b689SLuiz Capitulino    },
17d7f9b689SLuiz Capitulino
18a6b30bcaSPeter MaydellSRST
19a6b30bcaSPeter Maydell``help`` or ``?`` [*cmd*]
20a6b30bcaSPeter Maydell  Show the help for all commands or just for command *cmd*.
21a6b30bcaSPeter MaydellERST
222313086aSBlue Swirl
23d7f9b689SLuiz Capitulino    {
24d7f9b689SLuiz Capitulino        .name       = "commit",
25d7f9b689SLuiz Capitulino        .args_type  = "device:B",
26d7f9b689SLuiz Capitulino        .params     = "device|all",
27d7f9b689SLuiz Capitulino        .help       = "commit changes to the disk images (if -snapshot is used) or backing files",
282b9e3576SMarc-André Lureau        .cmd        = hmp_commit,
29d7f9b689SLuiz Capitulino    },
30d7f9b689SLuiz Capitulino
31a6b30bcaSPeter MaydellSRST
32a6b30bcaSPeter Maydell``commit``
33a6b30bcaSPeter Maydell  Commit changes to the disk images (if -snapshot is used) or backing files.
34a6b30bcaSPeter Maydell  If the backing file is smaller than the snapshot, then the backing file
35a6b30bcaSPeter Maydell  will be resized to be the same size as the snapshot.  If the snapshot is
36a6b30bcaSPeter Maydell  smaller than the backing file, the backing file will not be truncated.
37a6b30bcaSPeter Maydell  If you want the backing file to match the size of the smaller snapshot,
38a6b30bcaSPeter Maydell  you can safely truncate it yourself once the commit operation successfully
39a6b30bcaSPeter Maydell  completes.
40a6b30bcaSPeter MaydellERST
412313086aSBlue Swirl
42d7f9b689SLuiz Capitulino    {
43ff688cd2SPeter Maydell        .name       = "quit|q",
44d7f9b689SLuiz Capitulino        .args_type  = "",
45d7f9b689SLuiz Capitulino        .params     = "",
46d7f9b689SLuiz Capitulino        .help       = "quit the emulator",
472b9e3576SMarc-André Lureau        .cmd        = hmp_quit,
48ebe34444SPaolo Bonzini        .flags      = "p",
49d7f9b689SLuiz Capitulino    },
50d7f9b689SLuiz Capitulino
51a6b30bcaSPeter MaydellSRST
52ff688cd2SPeter Maydell``quit`` or ``q``
53a6b30bcaSPeter Maydell  Quit the emulator.
54a6b30bcaSPeter MaydellERST
552313086aSBlue Swirl
56d7f9b689SLuiz Capitulino    {
578e8581e6SDr. David Alan Gilbert        .name       = "exit_preconfig",
588e8581e6SDr. David Alan Gilbert        .args_type  = "",
598e8581e6SDr. David Alan Gilbert        .params     = "",
608e8581e6SDr. David Alan Gilbert        .help       = "exit the preconfig state",
618e8581e6SDr. David Alan Gilbert        .cmd        = hmp_exit_preconfig,
628e8581e6SDr. David Alan Gilbert        .flags      = "p",
638e8581e6SDr. David Alan Gilbert    },
648e8581e6SDr. David Alan Gilbert
65a6b30bcaSPeter MaydellSRST
66a6b30bcaSPeter Maydell``exit_preconfig``
67a6b30bcaSPeter Maydell  This command makes QEMU exit the preconfig state and proceed with
68a6b30bcaSPeter Maydell  VM initialization using configuration data provided on the command line
69a6b30bcaSPeter Maydell  and via the QMP monitor during the preconfig state. The command is only
70a6b30bcaSPeter Maydell  available during the preconfig state (i.e. when the --preconfig command
71a6b30bcaSPeter Maydell  line option was in use).
72a6b30bcaSPeter MaydellERST
738e8581e6SDr. David Alan Gilbert
748e8581e6SDr. David Alan Gilbert    {
756d4a2b3aSChristoph Hellwig        .name       = "block_resize",
766d4a2b3aSChristoph Hellwig        .args_type  = "device:B,size:o",
776d4a2b3aSChristoph Hellwig        .params     = "device size",
786d4a2b3aSChristoph Hellwig        .help       = "resize a block image",
792b9e3576SMarc-André Lureau        .cmd        = hmp_block_resize,
80eb94b81aSKevin Wolf        .coroutine  = true,
81f55ba801SPaolo Bonzini        .flags      = "p",
826d4a2b3aSChristoph Hellwig    },
836d4a2b3aSChristoph Hellwig
84a6b30bcaSPeter MaydellSRST
85a6b30bcaSPeter Maydell``block_resize``
86a6b30bcaSPeter Maydell  Resize a block image while a guest is running.  Usually requires guest
87a6b30bcaSPeter Maydell  action to see the updated size.  Resize to a lower size is supported,
88a6b30bcaSPeter Maydell  but should be used with extreme caution.  Note that this command only
89a6b30bcaSPeter Maydell  resizes image files, it can not resize block devices like LVM volumes.
90a6b30bcaSPeter MaydellERST
916d4a2b3aSChristoph Hellwig
9212bd451fSStefan Hajnoczi    {
9312bd451fSStefan Hajnoczi        .name       = "block_stream",
94c83c66c3SStefan Hajnoczi        .args_type  = "device:B,speed:o?,base:s?",
95c83c66c3SStefan Hajnoczi        .params     = "device [speed [base]]",
9612bd451fSStefan Hajnoczi        .help       = "copy data from a backing file into a block device",
972b9e3576SMarc-André Lureau        .cmd        = hmp_block_stream,
98f55ba801SPaolo Bonzini        .flags      = "p",
9912bd451fSStefan Hajnoczi    },
10012bd451fSStefan Hajnoczi
101a6b30bcaSPeter MaydellSRST
102a6b30bcaSPeter Maydell``block_stream``
103a6b30bcaSPeter Maydell  Copy data from a backing file into a block device.
104a6b30bcaSPeter MaydellERST
1056d4a2b3aSChristoph Hellwig
1066d4a2b3aSChristoph Hellwig    {
1072d47c6e9SStefan Hajnoczi        .name       = "block_job_set_speed",
108882ec7ceSStefan Hajnoczi        .args_type  = "device:B,speed:o",
109882ec7ceSStefan Hajnoczi        .params     = "device speed",
1102d47c6e9SStefan Hajnoczi        .help       = "set maximum speed for a background block operation",
1112b9e3576SMarc-André Lureau        .cmd        = hmp_block_job_set_speed,
112f55ba801SPaolo Bonzini        .flags      = "p",
1132d47c6e9SStefan Hajnoczi    },
1142d47c6e9SStefan Hajnoczi
115a6b30bcaSPeter MaydellSRST
116a6b30bcaSPeter Maydell``block_job_set_speed``
117a6b30bcaSPeter Maydell  Set maximum speed for a background block operation.
118a6b30bcaSPeter MaydellERST
1192d47c6e9SStefan Hajnoczi
1202d47c6e9SStefan Hajnoczi    {
121370521a1SStefan Hajnoczi        .name       = "block_job_cancel",
1226e37fb81SPaolo Bonzini        .args_type  = "force:-f,device:B",
1236e37fb81SPaolo Bonzini        .params     = "[-f] device",
1246e37fb81SPaolo Bonzini        .help       = "stop an active background block operation (use -f"
125b76e4458SLiang Li                      "\n\t\t\t if you want to abort the operation immediately"
126b76e4458SLiang Li                      "\n\t\t\t instead of keep running until data is in sync)",
1272b9e3576SMarc-André Lureau        .cmd        = hmp_block_job_cancel,
128f55ba801SPaolo Bonzini        .flags      = "p",
129370521a1SStefan Hajnoczi    },
130370521a1SStefan Hajnoczi
131a6b30bcaSPeter MaydellSRST
132a6b30bcaSPeter Maydell``block_job_cancel``
133a6b30bcaSPeter Maydell  Stop an active background block operation (streaming, mirroring).
134a6b30bcaSPeter MaydellERST
135aeae883bSPaolo Bonzini
136aeae883bSPaolo Bonzini    {
137aeae883bSPaolo Bonzini        .name       = "block_job_complete",
138aeae883bSPaolo Bonzini        .args_type  = "device:B",
139aeae883bSPaolo Bonzini        .params     = "device",
140aeae883bSPaolo Bonzini        .help       = "stop an active background block operation",
1412b9e3576SMarc-André Lureau        .cmd        = hmp_block_job_complete,
142f55ba801SPaolo Bonzini        .flags      = "p",
143aeae883bSPaolo Bonzini    },
144aeae883bSPaolo Bonzini
145a6b30bcaSPeter MaydellSRST
146a6b30bcaSPeter Maydell``block_job_complete``
147a6b30bcaSPeter Maydell  Manually trigger completion of an active background block operation.
148a6b30bcaSPeter Maydell  For mirroring, this will switch the device to the destination path.
149a6b30bcaSPeter MaydellERST
150370521a1SStefan Hajnoczi
151370521a1SStefan Hajnoczi    {
1526e37fb81SPaolo Bonzini        .name       = "block_job_pause",
1536e37fb81SPaolo Bonzini        .args_type  = "device:B",
1546e37fb81SPaolo Bonzini        .params     = "device",
1556e37fb81SPaolo Bonzini        .help       = "pause an active background block operation",
1562b9e3576SMarc-André Lureau        .cmd        = hmp_block_job_pause,
157f55ba801SPaolo Bonzini        .flags      = "p",
1586e37fb81SPaolo Bonzini    },
1596e37fb81SPaolo Bonzini
160a6b30bcaSPeter MaydellSRST
161a6b30bcaSPeter Maydell``block_job_pause``
162a6b30bcaSPeter Maydell  Pause an active block streaming operation.
163a6b30bcaSPeter MaydellERST
1646e37fb81SPaolo Bonzini
1656e37fb81SPaolo Bonzini    {
1666e37fb81SPaolo Bonzini        .name       = "block_job_resume",
1676e37fb81SPaolo Bonzini        .args_type  = "device:B",
1686e37fb81SPaolo Bonzini        .params     = "device",
1696e37fb81SPaolo Bonzini        .help       = "resume a paused background block operation",
1702b9e3576SMarc-André Lureau        .cmd        = hmp_block_job_resume,
171f55ba801SPaolo Bonzini        .flags      = "p",
1726e37fb81SPaolo Bonzini    },
1736e37fb81SPaolo Bonzini
174a6b30bcaSPeter MaydellSRST
175a6b30bcaSPeter Maydell``block_job_resume``
176a6b30bcaSPeter Maydell  Resume a paused block streaming operation.
177a6b30bcaSPeter MaydellERST
1786e37fb81SPaolo Bonzini
1796e37fb81SPaolo Bonzini    {
180d7f9b689SLuiz Capitulino        .name       = "eject",
18178d714e0SLuiz Capitulino        .args_type  = "force:-f,device:B",
182d7f9b689SLuiz Capitulino        .params     = "[-f] device",
183d7f9b689SLuiz Capitulino        .help       = "eject a removable medium (use -f to force it)",
1842b9e3576SMarc-André Lureau        .cmd        = hmp_eject,
185d7f9b689SLuiz Capitulino    },
186d7f9b689SLuiz Capitulino
187a6b30bcaSPeter MaydellSRST
188a6b30bcaSPeter Maydell``eject [-f]`` *device*
189a6b30bcaSPeter Maydell  Eject a removable medium (use -f to force it).
190a6b30bcaSPeter MaydellERST
1912313086aSBlue Swirl
192d7f9b689SLuiz Capitulino    {
1939063f814SRyan Harper        .name       = "drive_del",
194f7bdc41aSHani Benhabiles        .args_type  = "id:B",
1959063f814SRyan Harper        .params     = "device",
1969063f814SRyan Harper        .help       = "remove host block device",
1972b9e3576SMarc-André Lureau        .cmd        = hmp_drive_del,
1989063f814SRyan Harper    },
1999063f814SRyan Harper
200a6b30bcaSPeter MaydellSRST
201a6b30bcaSPeter Maydell``drive_del`` *device*
202a6b30bcaSPeter Maydell  Remove host block device.  The result is that guest generated IO is no longer
203a6b30bcaSPeter Maydell  submitted against the host device underlying the disk.  Once a drive has
204a6b30bcaSPeter Maydell  been deleted, the QEMU Block layer returns -EIO which results in IO
205a6b30bcaSPeter Maydell  errors in the guest for applications that are reading/writing to the device.
206a6b30bcaSPeter Maydell  These errors are always reported to the guest, regardless of the drive's error
207a6b30bcaSPeter Maydell  actions (drive options rerror, werror).
208a6b30bcaSPeter MaydellERST
2099063f814SRyan Harper
2109063f814SRyan Harper    {
211d7f9b689SLuiz Capitulino        .name       = "change",
21280dd5affSDenis V. Lunev        .args_type  = "device:B,force:-f,target:F,arg:s?,read-only-mode:s?",
21380dd5affSDenis V. Lunev        .params     = "device [-f] filename [format [read-only-mode]]",
21480dd5affSDenis V. Lunev        .help       = "change a removable medium, optional format, use -f to force the operation",
2152b9e3576SMarc-André Lureau        .cmd        = hmp_change,
216d7f9b689SLuiz Capitulino    },
217d7f9b689SLuiz Capitulino
218a6b30bcaSPeter MaydellSRST
219a6b30bcaSPeter Maydell``change`` *device* *setting*
220a6b30bcaSPeter Maydell  Change the configuration of a device.
221a6b30bcaSPeter Maydell
22280dd5affSDenis V. Lunev  ``change`` *diskdevice* [-f] *filename* [*format* [*read-only-mode*]]
223a6b30bcaSPeter Maydell    Change the medium for a removable disk device to point to *filename*. eg::
224a6b30bcaSPeter Maydell
225a6b30bcaSPeter Maydell      (qemu) change ide1-cd0 /path/to/some.iso
226a6b30bcaSPeter Maydell
22780dd5affSDenis V. Lunev    ``-f``
22880dd5affSDenis V. Lunev      forces the operation even if the guest has locked the tray.
22980dd5affSDenis V. Lunev
230a6b30bcaSPeter Maydell    *format* is optional.
231a6b30bcaSPeter Maydell
232a6b30bcaSPeter Maydell    *read-only-mode* may be used to change the read-only status of the device.
233a6b30bcaSPeter Maydell    It accepts the following values:
234a6b30bcaSPeter Maydell
235a6b30bcaSPeter Maydell    retain
236a6b30bcaSPeter Maydell      Retains the current status; this is the default.
237a6b30bcaSPeter Maydell
238a6b30bcaSPeter Maydell    read-only
239a6b30bcaSPeter Maydell      Makes the device read-only.
240a6b30bcaSPeter Maydell
241a6b30bcaSPeter Maydell    read-write
242a6b30bcaSPeter Maydell      Makes the device writable.
243a6b30bcaSPeter Maydell
244a6b30bcaSPeter Maydell  ``change vnc password`` [*password*]
245a6b30bcaSPeter Maydell
246a6b30bcaSPeter Maydell    Change the password associated with the VNC server. If the new password
247a6b30bcaSPeter Maydell    is not supplied, the monitor will prompt for it to be entered. VNC
248a6b30bcaSPeter Maydell    passwords are only significant up to 8 letters. eg::
249a6b30bcaSPeter Maydell
250a6b30bcaSPeter Maydell      (qemu) change vnc password
251a6b30bcaSPeter Maydell      Password: ********
252a6b30bcaSPeter Maydell
253a6b30bcaSPeter MaydellERST
2542313086aSBlue Swirl
255f38aa2c7SMarc-André Lureau#ifdef CONFIG_PIXMAN
256d7f9b689SLuiz Capitulino    {
257d7f9b689SLuiz Capitulino        .name       = "screendump",
2589a0a119aSKshitij Suri        .args_type  = "filename:F,format:-fs,device:s?,head:i?",
2599a0a119aSKshitij Suri        .params     = "filename [-f format] [device [head]]",
260f771c544SThomas Huth        .help       = "save screen from head 'head' of display device 'device'"
2619a0a119aSKshitij Suri                      "in specified format 'format' as image 'filename'."
2629a0a119aSKshitij Suri                      "Currently only 'png' and 'ppm' formats are supported.",
2632b9e3576SMarc-André Lureau         .cmd        = hmp_screendump,
2640d9b90ceSMarc-André Lureau        .coroutine  = true,
265d7f9b689SLuiz Capitulino    },
266d7f9b689SLuiz Capitulino
267a6b30bcaSPeter MaydellSRST
268a6b30bcaSPeter Maydell``screendump`` *filename*
269a6b30bcaSPeter Maydell  Save screen into PPM image *filename*.
270a6b30bcaSPeter MaydellERST
271f38aa2c7SMarc-André Lureau#endif
2722313086aSBlue Swirl
273d7f9b689SLuiz Capitulino    {
274d7f9b689SLuiz Capitulino        .name       = "logfile",
275d7f9b689SLuiz Capitulino        .args_type  = "filename:F",
276d7f9b689SLuiz Capitulino        .params     = "filename",
277d7f9b689SLuiz Capitulino        .help       = "output logs to 'filename'",
2782b9e3576SMarc-André Lureau        .cmd        = hmp_logfile,
279d7f9b689SLuiz Capitulino    },
280d7f9b689SLuiz Capitulino
281a6b30bcaSPeter MaydellSRST
282a6b30bcaSPeter Maydell``logfile`` *filename*
283a6b30bcaSPeter Maydell  Output logs to *filename*.
284a6b30bcaSPeter MaydellERST
2852313086aSBlue Swirl
28622890ab5SPrerna Saxena    {
28722890ab5SPrerna Saxena        .name       = "trace-event",
28877e2b172SLluís Vilanova        .args_type  = "name:s,option:b,vcpu:i?",
28977e2b172SLluís Vilanova        .params     = "name on|off [vcpu]",
29077e2b172SLluís Vilanova        .help       = "changes status of a specific trace event "
29177e2b172SLluís Vilanova                      "(vcpu: vCPU to set, default is all)",
2922b9e3576SMarc-André Lureau        .cmd = hmp_trace_event,
293987bd270SDr. David Alan Gilbert        .command_completion = trace_event_completion,
29422890ab5SPrerna Saxena    },
29522890ab5SPrerna Saxena
296a6b30bcaSPeter MaydellSRST
297a6b30bcaSPeter Maydell``trace-event``
298a6b30bcaSPeter Maydell  changes status of a trace event
299a6b30bcaSPeter MaydellERST
300c5ceb523SStefan Hajnoczi
301c45a8168SMichael Roth#if defined(CONFIG_TRACE_SIMPLE)
302c5ceb523SStefan Hajnoczi    {
303c5ceb523SStefan Hajnoczi        .name       = "trace-file",
304c5ceb523SStefan Hajnoczi        .args_type  = "op:s?,arg:F?",
305c5ceb523SStefan Hajnoczi        .params     = "on|off|flush|set [arg]",
306c5ceb523SStefan Hajnoczi        .help       = "open, close, or flush trace file, or set a new file name",
3072b9e3576SMarc-André Lureau        .cmd        = hmp_trace_file,
308c5ceb523SStefan Hajnoczi    },
309c5ceb523SStefan Hajnoczi
310a6b30bcaSPeter MaydellSRST
311a6b30bcaSPeter Maydell``trace-file on|off|flush``
312a6b30bcaSPeter Maydell  Open, close, or flush the trace file.  If no argument is given, the
313a6b30bcaSPeter Maydell  status of the trace file is displayed.
314a6b30bcaSPeter MaydellERST
31522890ab5SPrerna Saxena#endif
31622890ab5SPrerna Saxena
317d7f9b689SLuiz Capitulino    {
318d7f9b689SLuiz Capitulino        .name       = "log",
319d7f9b689SLuiz Capitulino        .args_type  = "items:s",
320d7f9b689SLuiz Capitulino        .params     = "item1[,...]",
321989b697dSPeter Maydell        .help       = "activate logging of the specified items",
3222b9e3576SMarc-André Lureau        .cmd        = hmp_log,
323d7f9b689SLuiz Capitulino    },
324d7f9b689SLuiz Capitulino
325a6b30bcaSPeter MaydellSRST
326a6b30bcaSPeter Maydell``log`` *item1*\ [,...]
327a6b30bcaSPeter Maydell  Activate logging of the specified items.
328a6b30bcaSPeter MaydellERST
3292313086aSBlue Swirl
330d7f9b689SLuiz Capitulino    {
331d7f9b689SLuiz Capitulino        .name       = "savevm",
332d7f9b689SLuiz Capitulino        .args_type  = "name:s?",
3336ca08045SDaniel Henrique Barboza        .params     = "tag",
3346ca08045SDaniel Henrique Barboza        .help       = "save a VM snapshot. If no tag is provided, a new snapshot is created",
3352b9e3576SMarc-André Lureau        .cmd        = hmp_savevm,
336d7f9b689SLuiz Capitulino    },
337d7f9b689SLuiz Capitulino
338a6b30bcaSPeter MaydellSRST
339a6b30bcaSPeter Maydell``savevm`` *tag*
340a6b30bcaSPeter Maydell  Create a snapshot of the whole virtual machine. If *tag* is
341a6b30bcaSPeter Maydell  provided, it is used as human readable identifier. If there is already
342a6b30bcaSPeter Maydell  a snapshot with the same tag, it is replaced. More info at
343a6b30bcaSPeter Maydell  :ref:`vm_005fsnapshots`.
344a6b30bcaSPeter Maydell
345a6b30bcaSPeter Maydell  Since 4.0, savevm stopped allowing the snapshot id to be set, accepting
346a6b30bcaSPeter Maydell  only *tag* as parameter.
347a6b30bcaSPeter MaydellERST
3482313086aSBlue Swirl
349d7f9b689SLuiz Capitulino    {
350d7f9b689SLuiz Capitulino        .name       = "loadvm",
351d7f9b689SLuiz Capitulino        .args_type  = "name:s",
3526ca08045SDaniel Henrique Barboza        .params     = "tag",
3536ca08045SDaniel Henrique Barboza        .help       = "restore a VM snapshot from its tag",
3542b9e3576SMarc-André Lureau        .cmd        = hmp_loadvm,
355b21631f3SHani Benhabiles        .command_completion = loadvm_completion,
356d7f9b689SLuiz Capitulino    },
357d7f9b689SLuiz Capitulino
358a6b30bcaSPeter MaydellSRST
359a6b30bcaSPeter Maydell``loadvm`` *tag*
360a6b30bcaSPeter Maydell  Set the whole virtual machine to the snapshot identified by the tag
361a6b30bcaSPeter Maydell  *tag*.
362a6b30bcaSPeter Maydell
363a6b30bcaSPeter Maydell  Since 4.0, loadvm stopped accepting snapshot id as parameter.
364a6b30bcaSPeter MaydellERST
3652313086aSBlue Swirl
366d7f9b689SLuiz Capitulino    {
367d7f9b689SLuiz Capitulino        .name       = "delvm",
368d7f9b689SLuiz Capitulino        .args_type  = "name:s",
3696ca08045SDaniel Henrique Barboza        .params     = "tag",
3706ca08045SDaniel Henrique Barboza        .help       = "delete a VM snapshot from its tag",
3712b9e3576SMarc-André Lureau        .cmd        = hmp_delvm,
372b21631f3SHani Benhabiles        .command_completion = delvm_completion,
373d7f9b689SLuiz Capitulino    },
374d7f9b689SLuiz Capitulino
375a6b30bcaSPeter MaydellSRST
376a6b30bcaSPeter Maydell``delvm`` *tag*
377a6b30bcaSPeter Maydell  Delete the snapshot identified by *tag*.
378a6b30bcaSPeter Maydell
379a6b30bcaSPeter Maydell  Since 4.0, delvm stopped deleting snapshots by snapshot id, accepting
380a6b30bcaSPeter Maydell  only *tag* as parameter.
381a6b30bcaSPeter MaydellERST
3822313086aSBlue Swirl
383d7f9b689SLuiz Capitulino    {
384e9ccfdd9SPeter Maydell        .name       = "one-insn-per-tb",
385e9ccfdd9SPeter Maydell        .args_type  = "option:s?",
386e9ccfdd9SPeter Maydell        .params     = "[on|off]",
387e9ccfdd9SPeter Maydell        .help       = "run emulation with one guest instruction per translation block",
388e9ccfdd9SPeter Maydell        .cmd        = hmp_one_insn_per_tb,
389e9ccfdd9SPeter Maydell    },
390e9ccfdd9SPeter Maydell
391e9ccfdd9SPeter MaydellSRST
392e9ccfdd9SPeter Maydell``one-insn-per-tb [off]``
393e9ccfdd9SPeter Maydell  Run the emulation with one guest instruction per translation block.
394e9ccfdd9SPeter Maydell  This slows down emulation a lot, but can be useful in some situations,
395e9ccfdd9SPeter Maydell  such as when trying to analyse the logs produced by the ``-d`` option.
396e9ccfdd9SPeter Maydell  This only has an effect when using TCG, not with KVM or other accelerators.
397e9ccfdd9SPeter Maydell
398e9ccfdd9SPeter Maydell  If called with option off, the emulation returns to normal mode.
399e9ccfdd9SPeter MaydellERST
400e9ccfdd9SPeter Maydell
401e9ccfdd9SPeter Maydell    {
402de4cf848SBALATON Zoltan        .name       = "stop|s",
403d7f9b689SLuiz Capitulino        .args_type  = "",
404d7f9b689SLuiz Capitulino        .params     = "",
405d7f9b689SLuiz Capitulino        .help       = "stop emulation",
4062b9e3576SMarc-André Lureau        .cmd        = hmp_stop,
407d7f9b689SLuiz Capitulino    },
408d7f9b689SLuiz Capitulino
409a6b30bcaSPeter MaydellSRST
410de4cf848SBALATON Zoltan``stop`` or ``s``
411a6b30bcaSPeter Maydell  Stop emulation.
412a6b30bcaSPeter MaydellERST
4132313086aSBlue Swirl
414d7f9b689SLuiz Capitulino    {
415ff688cd2SPeter Maydell        .name       = "cont|c",
416d7f9b689SLuiz Capitulino        .args_type  = "",
417d7f9b689SLuiz Capitulino        .params     = "",
418d7f9b689SLuiz Capitulino        .help       = "resume emulation",
4192b9e3576SMarc-André Lureau        .cmd        = hmp_cont,
420d7f9b689SLuiz Capitulino    },
421d7f9b689SLuiz Capitulino
422a6b30bcaSPeter MaydellSRST
423ff688cd2SPeter Maydell``cont`` or ``c``
424a6b30bcaSPeter Maydell  Resume emulation.
425a6b30bcaSPeter MaydellERST
4262313086aSBlue Swirl
427d7f9b689SLuiz Capitulino    {
4289b9df25aSGerd Hoffmann        .name       = "system_wakeup",
4299b9df25aSGerd Hoffmann        .args_type  = "",
4309b9df25aSGerd Hoffmann        .params     = "",
4319b9df25aSGerd Hoffmann        .help       = "wakeup guest from suspend",
4322b9e3576SMarc-André Lureau        .cmd        = hmp_system_wakeup,
4339b9df25aSGerd Hoffmann    },
4349b9df25aSGerd Hoffmann
435a6b30bcaSPeter MaydellSRST
436a6b30bcaSPeter Maydell``system_wakeup``
437a6b30bcaSPeter Maydell  Wakeup guest from suspend.
438a6b30bcaSPeter MaydellERST
4399b9df25aSGerd Hoffmann
4409b9df25aSGerd Hoffmann    {
441d7f9b689SLuiz Capitulino        .name       = "gdbserver",
442d7f9b689SLuiz Capitulino        .args_type  = "device:s?",
443d7f9b689SLuiz Capitulino        .params     = "[device]",
444d7f9b689SLuiz Capitulino        .help       = "start gdbserver on given device (default 'tcp::1234'), stop with 'none'",
4452b9e3576SMarc-André Lureau        .cmd        = hmp_gdbserver,
446d7f9b689SLuiz Capitulino    },
447d7f9b689SLuiz Capitulino
448a6b30bcaSPeter MaydellSRST
449a6b30bcaSPeter Maydell``gdbserver`` [*port*]
450a6b30bcaSPeter Maydell  Start gdbserver session (default *port*\=1234)
451a6b30bcaSPeter MaydellERST
4522313086aSBlue Swirl
453d7f9b689SLuiz Capitulino    {
454d7f9b689SLuiz Capitulino        .name       = "x",
455d7f9b689SLuiz Capitulino        .args_type  = "fmt:/,addr:l",
456d7f9b689SLuiz Capitulino        .params     = "/fmt addr",
457d7f9b689SLuiz Capitulino        .help       = "virtual memory dump starting at 'addr'",
4582b9e3576SMarc-André Lureau        .cmd        = hmp_memory_dump,
459d7f9b689SLuiz Capitulino    },
460d7f9b689SLuiz Capitulino
461a6b30bcaSPeter MaydellSRST
462a6b30bcaSPeter Maydell``x/``\ *fmt* *addr*
463a6b30bcaSPeter Maydell  Virtual memory dump starting at *addr*.
464a6b30bcaSPeter MaydellERST
4652313086aSBlue Swirl
466d7f9b689SLuiz Capitulino    {
467d7f9b689SLuiz Capitulino        .name       = "xp",
468d7f9b689SLuiz Capitulino        .args_type  = "fmt:/,addr:l",
469d7f9b689SLuiz Capitulino        .params     = "/fmt addr",
470d7f9b689SLuiz Capitulino        .help       = "physical memory dump starting at 'addr'",
4712b9e3576SMarc-André Lureau        .cmd        = hmp_physical_memory_dump,
472d7f9b689SLuiz Capitulino    },
473d7f9b689SLuiz Capitulino
474a6b30bcaSPeter MaydellSRST
475a6b30bcaSPeter Maydell``xp /``\ *fmt* *addr*
476a6b30bcaSPeter Maydell  Physical memory dump starting at *addr*.
477a6b30bcaSPeter Maydell
478a6b30bcaSPeter Maydell  *fmt* is a format which tells the command how to format the
479a6b30bcaSPeter Maydell  data. Its syntax is: ``/{count}{format}{size}``
480a6b30bcaSPeter Maydell
481a6b30bcaSPeter Maydell  *count*
482a6b30bcaSPeter Maydell    is the number of items to be dumped.
483a6b30bcaSPeter Maydell  *format*
484a6b30bcaSPeter Maydell    can be x (hex), d (signed decimal), u (unsigned decimal), o (octal),
485a6b30bcaSPeter Maydell    c (char) or i (asm instruction).
486a6b30bcaSPeter Maydell  *size*
487a6b30bcaSPeter Maydell    can be b (8 bits), h (16 bits), w (32 bits) or g (64 bits). On x86,
488a6b30bcaSPeter Maydell    ``h`` or ``w`` can be specified with the ``i`` format to
489a6b30bcaSPeter Maydell    respectively select 16 or 32 bit code instruction size.
490a6b30bcaSPeter Maydell
491a6b30bcaSPeter Maydell  Examples:
492a6b30bcaSPeter Maydell
493a6b30bcaSPeter Maydell  Dump 10 instructions at the current instruction pointer::
494a6b30bcaSPeter Maydell
495a6b30bcaSPeter Maydell    (qemu) x/10i $eip
496a6b30bcaSPeter Maydell    0x90107063:  ret
497a6b30bcaSPeter Maydell    0x90107064:  sti
498a6b30bcaSPeter Maydell    0x90107065:  lea    0x0(%esi,1),%esi
499a6b30bcaSPeter Maydell    0x90107069:  lea    0x0(%edi,1),%edi
500a6b30bcaSPeter Maydell    0x90107070:  ret
501a6b30bcaSPeter Maydell    0x90107071:  jmp    0x90107080
502a6b30bcaSPeter Maydell    0x90107073:  nop
503a6b30bcaSPeter Maydell    0x90107074:  nop
504a6b30bcaSPeter Maydell    0x90107075:  nop
505a6b30bcaSPeter Maydell    0x90107076:  nop
506a6b30bcaSPeter Maydell
507a6b30bcaSPeter Maydell  Dump 80 16 bit values at the start of the video memory::
508a6b30bcaSPeter Maydell
509a6b30bcaSPeter Maydell    (qemu) xp/80hx 0xb8000
510a6b30bcaSPeter Maydell    0x000b8000: 0x0b50 0x0b6c 0x0b65 0x0b78 0x0b38 0x0b36 0x0b2f 0x0b42
511a6b30bcaSPeter Maydell    0x000b8010: 0x0b6f 0x0b63 0x0b68 0x0b73 0x0b20 0x0b56 0x0b47 0x0b41
512a6b30bcaSPeter Maydell    0x000b8020: 0x0b42 0x0b69 0x0b6f 0x0b73 0x0b20 0x0b63 0x0b75 0x0b72
513a6b30bcaSPeter Maydell    0x000b8030: 0x0b72 0x0b65 0x0b6e 0x0b74 0x0b2d 0x0b63 0x0b76 0x0b73
514a6b30bcaSPeter Maydell    0x000b8040: 0x0b20 0x0b30 0x0b35 0x0b20 0x0b4e 0x0b6f 0x0b76 0x0b20
515a6b30bcaSPeter Maydell    0x000b8050: 0x0b32 0x0b30 0x0b30 0x0b33 0x0720 0x0720 0x0720 0x0720
516a6b30bcaSPeter Maydell    0x000b8060: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
517a6b30bcaSPeter Maydell    0x000b8070: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
518a6b30bcaSPeter Maydell    0x000b8080: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
519a6b30bcaSPeter Maydell    0x000b8090: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
520a6b30bcaSPeter Maydell
521a6b30bcaSPeter MaydellERST
5222313086aSBlue Swirl
523d7f9b689SLuiz Capitulino    {
524e9628441SPaolo Bonzini        .name       = "gpa2hva",
525e9628441SPaolo Bonzini        .args_type  = "addr:l",
526e9628441SPaolo Bonzini        .params     = "addr",
527e9628441SPaolo Bonzini        .help       = "print the host virtual address corresponding to a guest physical address",
528e9628441SPaolo Bonzini        .cmd        = hmp_gpa2hva,
529e9628441SPaolo Bonzini    },
530e9628441SPaolo Bonzini
531a6b30bcaSPeter MaydellSRST
532a6b30bcaSPeter Maydell``gpa2hva`` *addr*
533a6b30bcaSPeter Maydell  Print the host virtual address at which the guest's physical address *addr*
534a6b30bcaSPeter Maydell  is mapped.
535a6b30bcaSPeter MaydellERST
536e9628441SPaolo Bonzini
537e9628441SPaolo Bonzini#ifdef CONFIG_LINUX
538e9628441SPaolo Bonzini    {
539e9628441SPaolo Bonzini        .name       = "gpa2hpa",
540e9628441SPaolo Bonzini        .args_type  = "addr:l",
541e9628441SPaolo Bonzini        .params     = "addr",
542e9628441SPaolo Bonzini        .help       = "print the host physical address corresponding to a guest physical address",
543e9628441SPaolo Bonzini        .cmd        = hmp_gpa2hpa,
544e9628441SPaolo Bonzini    },
545e9628441SPaolo Bonzini#endif
546e9628441SPaolo Bonzini
547a6b30bcaSPeter MaydellSRST
548a6b30bcaSPeter Maydell``gpa2hpa`` *addr*
549a6b30bcaSPeter Maydell  Print the host physical address at which the guest's physical address *addr*
550a6b30bcaSPeter Maydell  is mapped.
551a6b30bcaSPeter MaydellERST
552e9628441SPaolo Bonzini
553e9628441SPaolo Bonzini    {
554574d9693SDr. David Alan Gilbert        .name       = "gva2gpa",
555574d9693SDr. David Alan Gilbert        .args_type  = "addr:l",
556574d9693SDr. David Alan Gilbert        .params     = "addr",
557574d9693SDr. David Alan Gilbert        .help       = "print the guest physical address corresponding to a guest virtual address",
558574d9693SDr. David Alan Gilbert        .cmd        = hmp_gva2gpa,
559574d9693SDr. David Alan Gilbert    },
560574d9693SDr. David Alan Gilbert
561a6b30bcaSPeter MaydellSRST
562a6b30bcaSPeter Maydell``gva2gpa`` *addr*
563a6b30bcaSPeter Maydell  Print the guest physical address at which the guest's virtual address *addr*
564a6b30bcaSPeter Maydell  is mapped based on the mapping for the current CPU.
565a6b30bcaSPeter MaydellERST
566574d9693SDr. David Alan Gilbert
567574d9693SDr. David Alan Gilbert    {
568ff688cd2SPeter Maydell        .name       = "print|p",
569d7f9b689SLuiz Capitulino        .args_type  = "fmt:/,val:l",
570d7f9b689SLuiz Capitulino        .params     = "/fmt expr",
571d7f9b689SLuiz Capitulino        .help       = "print expression value (use $reg for CPU register access)",
572cbf81997SMarkus Armbruster        .cmd        = hmp_print,
573d7f9b689SLuiz Capitulino    },
574d7f9b689SLuiz Capitulino
575a6b30bcaSPeter MaydellSRST
576ff688cd2SPeter Maydell``print`` or ``p/``\ *fmt* *expr*
577a6b30bcaSPeter Maydell  Print expression value. Only the *format* part of *fmt* is
578a6b30bcaSPeter Maydell  used.
579a6b30bcaSPeter MaydellERST
5802313086aSBlue Swirl
581d7f9b689SLuiz Capitulino    {
582d7f9b689SLuiz Capitulino        .name       = "i",
583d7f9b689SLuiz Capitulino        .args_type  = "fmt:/,addr:i,index:i.",
584d7f9b689SLuiz Capitulino        .params     = "/fmt addr",
585d7f9b689SLuiz Capitulino        .help       = "I/O port read",
5862b9e3576SMarc-André Lureau        .cmd        = hmp_ioport_read,
587d7f9b689SLuiz Capitulino    },
588d7f9b689SLuiz Capitulino
589a6b30bcaSPeter MaydellSRST
590a6b30bcaSPeter Maydell``i/``\ *fmt* *addr* [.\ *index*\ ]
591a6b30bcaSPeter Maydell  Read I/O port.
592a6b30bcaSPeter MaydellERST
5932313086aSBlue Swirl
594d7f9b689SLuiz Capitulino    {
595d7f9b689SLuiz Capitulino        .name       = "o",
596d7f9b689SLuiz Capitulino        .args_type  = "fmt:/,addr:i,val:i",
597d7f9b689SLuiz Capitulino        .params     = "/fmt addr value",
598d7f9b689SLuiz Capitulino        .help       = "I/O port write",
5992b9e3576SMarc-André Lureau        .cmd        = hmp_ioport_write,
600d7f9b689SLuiz Capitulino    },
601d7f9b689SLuiz Capitulino
602a6b30bcaSPeter MaydellSRST
603a6b30bcaSPeter Maydell``o/``\ *fmt* *addr* *val*
604a6b30bcaSPeter Maydell  Write to I/O port.
605a6b30bcaSPeter MaydellERST
6062313086aSBlue Swirl
607d7f9b689SLuiz Capitulino    {
608d7f9b689SLuiz Capitulino        .name       = "sendkey",
6092ef20c15SAmos Kong        .args_type  = "keys:s,hold-time:i?",
610d7f9b689SLuiz Capitulino        .params     = "keys [hold_ms]",
611d7f9b689SLuiz Capitulino        .help       = "send keys to the VM (e.g. 'sendkey ctrl-alt-f1', default hold time=100 ms)",
6122b9e3576SMarc-André Lureau        .cmd        = hmp_sendkey,
61329136cd8SHani Benhabiles        .command_completion = sendkey_completion,
614d7f9b689SLuiz Capitulino    },
615d7f9b689SLuiz Capitulino
616a6b30bcaSPeter MaydellSRST
617a6b30bcaSPeter Maydell``sendkey`` *keys*
618a6b30bcaSPeter Maydell  Send *keys* to the guest. *keys* could be the name of the
619a6b30bcaSPeter Maydell  key or the raw value in hexadecimal format. Use ``-`` to press
620a6b30bcaSPeter Maydell  several keys simultaneously. Example::
621a6b30bcaSPeter Maydell
622a6b30bcaSPeter Maydell    sendkey ctrl-alt-f1
623a6b30bcaSPeter Maydell
624a6b30bcaSPeter Maydell  This command is useful to send keys that your graphical user interface
625a6b30bcaSPeter Maydell  intercepts at low level, such as ``ctrl-alt-f1`` in X Window.
626a6b30bcaSPeter MaydellERST
627dd12e1bbSEmilio G. Cota    {
628dd12e1bbSEmilio G. Cota        .name       = "sync-profile",
629dd12e1bbSEmilio G. Cota        .args_type  = "op:s?",
630dd12e1bbSEmilio G. Cota        .params     = "[on|off|reset]",
631dd12e1bbSEmilio G. Cota        .help       = "enable, disable or reset synchronization profiling. "
632dd12e1bbSEmilio G. Cota                      "With no arguments, prints whether profiling is on or off.",
633dd12e1bbSEmilio G. Cota        .cmd        = hmp_sync_profile,
634dd12e1bbSEmilio G. Cota    },
635dd12e1bbSEmilio G. Cota
636a6b30bcaSPeter MaydellSRST
637a6b30bcaSPeter Maydell``sync-profile [on|off|reset]``
638a6b30bcaSPeter Maydell  Enable, disable or reset synchronization profiling. With no arguments, prints
639a6b30bcaSPeter Maydell  whether profiling is on or off.
640a6b30bcaSPeter MaydellERST
6412313086aSBlue Swirl
642d7f9b689SLuiz Capitulino    {
643d7f9b689SLuiz Capitulino        .name       = "system_reset",
644d7f9b689SLuiz Capitulino        .args_type  = "",
645d7f9b689SLuiz Capitulino        .params     = "",
646d7f9b689SLuiz Capitulino        .help       = "reset the system",
6472b9e3576SMarc-André Lureau        .cmd        = hmp_system_reset,
648d7f9b689SLuiz Capitulino    },
649d7f9b689SLuiz Capitulino
650a6b30bcaSPeter MaydellSRST
651a6b30bcaSPeter Maydell``system_reset``
652a6b30bcaSPeter Maydell  Reset the system.
653a6b30bcaSPeter MaydellERST
6542313086aSBlue Swirl
655d7f9b689SLuiz Capitulino    {
656d7f9b689SLuiz Capitulino        .name       = "system_powerdown",
657d7f9b689SLuiz Capitulino        .args_type  = "",
658d7f9b689SLuiz Capitulino        .params     = "",
659d7f9b689SLuiz Capitulino        .help       = "send system power down event",
6602b9e3576SMarc-André Lureau        .cmd        = hmp_system_powerdown,
661d7f9b689SLuiz Capitulino    },
662d7f9b689SLuiz Capitulino
663a6b30bcaSPeter MaydellSRST
664a6b30bcaSPeter Maydell``system_powerdown``
665a6b30bcaSPeter Maydell  Power down the system (if supported).
666a6b30bcaSPeter MaydellERST
6672313086aSBlue Swirl
668d7f9b689SLuiz Capitulino    {
669d7f9b689SLuiz Capitulino        .name       = "sum",
670d7f9b689SLuiz Capitulino        .args_type  = "start:i,size:i",
671d7f9b689SLuiz Capitulino        .params     = "addr size",
672d7f9b689SLuiz Capitulino        .help       = "compute the checksum of a memory region",
6732b9e3576SMarc-André Lureau        .cmd        = hmp_sum,
674d7f9b689SLuiz Capitulino    },
675d7f9b689SLuiz Capitulino
676a6b30bcaSPeter MaydellSRST
677a6b30bcaSPeter Maydell``sum`` *addr* *size*
678a6b30bcaSPeter Maydell  Compute the checksum of a memory region.
679a6b30bcaSPeter MaydellERST
6802313086aSBlue Swirl
681d7f9b689SLuiz Capitulino    {
682d7f9b689SLuiz Capitulino        .name       = "device_add",
683c7e4e8ceSMarkus Armbruster        .args_type  = "device:O",
684c7e4e8ceSMarkus Armbruster        .params     = "driver[,prop=value][,...]",
685d7f9b689SLuiz Capitulino        .help       = "add device, like -device on the command line",
6862b9e3576SMarc-André Lureau        .cmd        = hmp_device_add,
6872da1b3abSHani Benhabiles        .command_completion = device_add_completion,
688d7f9b689SLuiz Capitulino    },
689d7f9b689SLuiz Capitulino
690a6b30bcaSPeter MaydellSRST
691a6b30bcaSPeter Maydell``device_add`` *config*
692a6b30bcaSPeter Maydell  Add device.
693a6b30bcaSPeter MaydellERST
6943418bd25SGerd Hoffmann
695d7f9b689SLuiz Capitulino    {
696d7f9b689SLuiz Capitulino        .name       = "device_del",
697d7f9b689SLuiz Capitulino        .args_type  = "id:s",
698d7f9b689SLuiz Capitulino        .params     = "device",
699d7f9b689SLuiz Capitulino        .help       = "remove device",
7002b9e3576SMarc-André Lureau        .cmd        = hmp_device_del,
7012da1b3abSHani Benhabiles        .command_completion = device_del_completion,
702d7f9b689SLuiz Capitulino    },
703d7f9b689SLuiz Capitulino
704a6b30bcaSPeter MaydellSRST
705a6b30bcaSPeter Maydell``device_del`` *id*
706a6b30bcaSPeter Maydell  Remove device *id*. *id* may be a short ID
707a6b30bcaSPeter Maydell  or a QOM object path.
708a6b30bcaSPeter MaydellERST
7093418bd25SGerd Hoffmann
710d7f9b689SLuiz Capitulino    {
711d7f9b689SLuiz Capitulino        .name       = "cpu",
712d7f9b689SLuiz Capitulino        .args_type  = "index:i",
713d7f9b689SLuiz Capitulino        .params     = "index",
714d7f9b689SLuiz Capitulino        .help       = "set the default CPU",
7152b9e3576SMarc-André Lureau        .cmd        = hmp_cpu,
716d7f9b689SLuiz Capitulino    },
7173418bd25SGerd Hoffmann
718a6b30bcaSPeter MaydellSRST
719a6b30bcaSPeter Maydell``cpu`` *index*
720a6b30bcaSPeter Maydell  Set the default CPU.
721a6b30bcaSPeter MaydellERST
7222313086aSBlue Swirl
723d7f9b689SLuiz Capitulino    {
724d7f9b689SLuiz Capitulino        .name       = "mouse_move",
725d7f9b689SLuiz Capitulino        .args_type  = "dx_str:s,dy_str:s,dz_str:s?",
726d7f9b689SLuiz Capitulino        .params     = "dx dy [dz]",
727d7f9b689SLuiz Capitulino        .help       = "send mouse move events",
7282b9e3576SMarc-André Lureau        .cmd        = hmp_mouse_move,
729d7f9b689SLuiz Capitulino    },
730d7f9b689SLuiz Capitulino
731a6b30bcaSPeter MaydellSRST
732a6b30bcaSPeter Maydell``mouse_move`` *dx* *dy* [*dz*]
733a6b30bcaSPeter Maydell  Move the active mouse to the specified coordinates *dx* *dy*
734a6b30bcaSPeter Maydell  with optional scroll axis *dz*.
735a6b30bcaSPeter MaydellERST
7362313086aSBlue Swirl
737d7f9b689SLuiz Capitulino    {
738d7f9b689SLuiz Capitulino        .name       = "mouse_button",
739d7f9b689SLuiz Capitulino        .args_type  = "button_state:i",
740d7f9b689SLuiz Capitulino        .params     = "state",
741d7f9b689SLuiz Capitulino        .help       = "change mouse button state (1=L, 2=M, 4=R)",
7422b9e3576SMarc-André Lureau        .cmd        = hmp_mouse_button,
743d7f9b689SLuiz Capitulino    },
744d7f9b689SLuiz Capitulino
745a6b30bcaSPeter MaydellSRST
746a6b30bcaSPeter Maydell``mouse_button`` *val*
747a6b30bcaSPeter Maydell  Change the active mouse button state *val* (1=L, 2=M, 4=R).
748a6b30bcaSPeter MaydellERST
7492313086aSBlue Swirl
750d7f9b689SLuiz Capitulino    {
751d7f9b689SLuiz Capitulino        .name       = "mouse_set",
752d7f9b689SLuiz Capitulino        .args_type  = "index:i",
753d7f9b689SLuiz Capitulino        .params     = "index",
754d7f9b689SLuiz Capitulino        .help       = "set which mouse device receives events",
7552b9e3576SMarc-André Lureau        .cmd        = hmp_mouse_set,
756d7f9b689SLuiz Capitulino    },
757d7f9b689SLuiz Capitulino
758a6b30bcaSPeter MaydellSRST
759a6b30bcaSPeter Maydell``mouse_set`` *index*
760a6b30bcaSPeter Maydell  Set which mouse device receives events at given *index*, index
761a6b30bcaSPeter Maydell  can be obtained with::
762a6b30bcaSPeter Maydell
763a6b30bcaSPeter Maydell    info mice
764a6b30bcaSPeter Maydell
765a6b30bcaSPeter MaydellERST
7662313086aSBlue Swirl
767d7f9b689SLuiz Capitulino    {
768d7f9b689SLuiz Capitulino        .name       = "wavcapture",
769f0b9f36dSKővágó, Zoltán        .args_type  = "path:F,audiodev:s,freq:i?,bits:i?,nchannels:i?",
770f0b9f36dSKővágó, Zoltán        .params     = "path audiodev [frequency [bits [channels]]]",
771d7f9b689SLuiz Capitulino        .help       = "capture audio to a wave file (default frequency=44100 bits=16 channels=2)",
7722b9e3576SMarc-André Lureau        .cmd        = hmp_wavcapture,
773d7f9b689SLuiz Capitulino    },
774a6b30bcaSPeter MaydellSRST
775a6b30bcaSPeter Maydell``wavcapture`` *filename* *audiodev* [*frequency* [*bits* [*channels*]]]
776a6b30bcaSPeter Maydell  Capture audio into *filename* from *audiodev*, using sample rate
777a6b30bcaSPeter Maydell  *frequency* bits per sample *bits* and number of channels
778a6b30bcaSPeter Maydell  *channels*.
779a6b30bcaSPeter Maydell
780a6b30bcaSPeter Maydell  Defaults:
781a6b30bcaSPeter Maydell
782a6b30bcaSPeter Maydell  - Sample rate = 44100 Hz - CD quality
783a6b30bcaSPeter Maydell  - Bits = 16
784a6b30bcaSPeter Maydell  - Number of channels = 2 - Stereo
785a6b30bcaSPeter MaydellERST
7862313086aSBlue Swirl
787d7f9b689SLuiz Capitulino    {
788d7f9b689SLuiz Capitulino        .name       = "stopcapture",
789d7f9b689SLuiz Capitulino        .args_type  = "n:i",
790d7f9b689SLuiz Capitulino        .params     = "capture index",
791d7f9b689SLuiz Capitulino        .help       = "stop capture",
7922b9e3576SMarc-André Lureau        .cmd        = hmp_stopcapture,
793d7f9b689SLuiz Capitulino    },
794a6b30bcaSPeter MaydellSRST
795a6b30bcaSPeter Maydell``stopcapture`` *index*
796a6b30bcaSPeter Maydell  Stop capture with a given *index*, index can be obtained with::
797a6b30bcaSPeter Maydell
798a6b30bcaSPeter Maydell    info capture
799a6b30bcaSPeter Maydell
800a6b30bcaSPeter MaydellERST
8012313086aSBlue Swirl
802d7f9b689SLuiz Capitulino    {
803d7f9b689SLuiz Capitulino        .name       = "memsave",
804d7f9b689SLuiz Capitulino        .args_type  = "val:l,size:i,filename:s",
805d7f9b689SLuiz Capitulino        .params     = "addr size file",
806d7f9b689SLuiz Capitulino        .help       = "save to disk virtual memory dump starting at 'addr' of size 'size'",
8072b9e3576SMarc-André Lureau        .cmd        = hmp_memsave,
808d7f9b689SLuiz Capitulino    },
809d7f9b689SLuiz Capitulino
810a6b30bcaSPeter MaydellSRST
811a6b30bcaSPeter Maydell``memsave`` *addr* *size* *file*
812a6b30bcaSPeter Maydell  save to disk virtual memory dump starting at *addr* of size *size*.
813a6b30bcaSPeter MaydellERST
8142313086aSBlue Swirl
815d7f9b689SLuiz Capitulino    {
816d7f9b689SLuiz Capitulino        .name       = "pmemsave",
817d7f9b689SLuiz Capitulino        .args_type  = "val:l,size:i,filename:s",
818d7f9b689SLuiz Capitulino        .params     = "addr size file",
819d7f9b689SLuiz Capitulino        .help       = "save to disk physical memory dump starting at 'addr' of size 'size'",
8202b9e3576SMarc-André Lureau        .cmd        = hmp_pmemsave,
821d7f9b689SLuiz Capitulino    },
822d7f9b689SLuiz Capitulino
823a6b30bcaSPeter MaydellSRST
824a6b30bcaSPeter Maydell``pmemsave`` *addr* *size* *file*
825a6b30bcaSPeter Maydell  save to disk physical memory dump starting at *addr* of size *size*.
826a6b30bcaSPeter MaydellERST
8272313086aSBlue Swirl
828d7f9b689SLuiz Capitulino    {
829d7f9b689SLuiz Capitulino        .name       = "boot_set",
830d7f9b689SLuiz Capitulino        .args_type  = "bootdevice:s",
831d7f9b689SLuiz Capitulino        .params     = "bootdevice",
832d7f9b689SLuiz Capitulino        .help       = "define new values for the boot device list",
8332b9e3576SMarc-André Lureau        .cmd        = hmp_boot_set,
834d7f9b689SLuiz Capitulino    },
835d7f9b689SLuiz Capitulino
836a6b30bcaSPeter MaydellSRST
837a6b30bcaSPeter Maydell``boot_set`` *bootdevicelist*
838a6b30bcaSPeter Maydell  Define new values for the boot device list. Those values will override
839a6b30bcaSPeter Maydell  the values specified on the command line through the ``-boot`` option.
840a6b30bcaSPeter Maydell
841a6b30bcaSPeter Maydell  The values that can be specified here depend on the machine type, but are
842a6b30bcaSPeter Maydell  the same that can be specified in the ``-boot`` command line option.
843a6b30bcaSPeter MaydellERST
8442313086aSBlue Swirl
845d7f9b689SLuiz Capitulino    {
846d7f9b689SLuiz Capitulino        .name       = "nmi",
847e9b4b432SLuiz Capitulino        .args_type  = "",
848e9b4b432SLuiz Capitulino        .params     = "",
8499cb805fdSAlexey Kardashevskiy        .help       = "inject an NMI",
8502b9e3576SMarc-André Lureau        .cmd        = hmp_nmi,
851d7f9b689SLuiz Capitulino    },
852a6b30bcaSPeter MaydellSRST
853a6b30bcaSPeter Maydell``nmi`` *cpu*
854a6b30bcaSPeter Maydell  Inject an NMI on the default CPU (x86/s390) or all CPUs (ppc64).
855a6b30bcaSPeter MaydellERST
8561f590cf9SLei Li
8571f590cf9SLei Li    {
8583949e594SMarkus Armbruster        .name       = "ringbuf_write",
8591f590cf9SLei Li        .args_type  = "device:s,data:s",
8601f590cf9SLei Li        .params     = "device data",
8613949e594SMarkus Armbruster        .help       = "Write to a ring buffer character device",
8622b9e3576SMarc-André Lureau        .cmd        = hmp_ringbuf_write,
8638e597779SHani Benhabiles        .command_completion = ringbuf_write_completion,
8641f590cf9SLei Li    },
8651f590cf9SLei Li
866a6b30bcaSPeter MaydellSRST
867a6b30bcaSPeter Maydell``ringbuf_write`` *device* *data*
868a6b30bcaSPeter Maydell  Write *data* to ring buffer character device *device*.
869a6b30bcaSPeter Maydell  *data* must be a UTF-8 string.
870a6b30bcaSPeter MaydellERST
8712313086aSBlue Swirl
872d7f9b689SLuiz Capitulino    {
8733949e594SMarkus Armbruster        .name       = "ringbuf_read",
87449b6d722SLei Li        .args_type  = "device:s,size:i",
87549b6d722SLei Li        .params     = "device size",
8763949e594SMarkus Armbruster        .help       = "Read from a ring buffer character device",
8772b9e3576SMarc-André Lureau        .cmd        = hmp_ringbuf_read,
8788e597779SHani Benhabiles        .command_completion = ringbuf_write_completion,
87949b6d722SLei Li    },
88049b6d722SLei Li
881a6b30bcaSPeter MaydellSRST
882a6b30bcaSPeter Maydell``ringbuf_read`` *device*
883a6b30bcaSPeter Maydell  Read and print up to *size* bytes from ring buffer character
884a6b30bcaSPeter Maydell  device *device*.
885a6b30bcaSPeter Maydell  Certain non-printable characters are printed ``\uXXXX``, where ``XXXX`` is the
886a6b30bcaSPeter Maydell  character code in hexadecimal.  Character ``\`` is printed ``\\``.
887a6b30bcaSPeter Maydell  Bug: can screw up when the buffer contains invalid UTF-8 sequences,
888a6b30bcaSPeter Maydell  NUL characters, after the ring buffer lost data, and when reading
889a6b30bcaSPeter Maydell  stops because the size limit is reached.
890a6b30bcaSPeter MaydellERST
89149b6d722SLei Li
89249b6d722SLei Li    {
893544f6ea3SDr. David Alan Gilbert        .name       = "announce_self",
894c6644548SDr. David Alan Gilbert        .args_type  = "interfaces:s?,id:s?",
895c6644548SDr. David Alan Gilbert        .params     = "[interfaces] [id]",
896544f6ea3SDr. David Alan Gilbert        .help       = "Trigger GARP/RARP announcements",
897544f6ea3SDr. David Alan Gilbert        .cmd        = hmp_announce_self,
898544f6ea3SDr. David Alan Gilbert    },
899544f6ea3SDr. David Alan Gilbert
900a6b30bcaSPeter MaydellSRST
901a6b30bcaSPeter Maydell``announce_self``
902a6b30bcaSPeter Maydell  Trigger a round of GARP/RARP broadcasts; this is useful for explicitly
903a6b30bcaSPeter Maydell  updating the network infrastructure after a reconfiguration or some forms
904a6b30bcaSPeter Maydell  of migration. The timings of the round are set by the migration announce
905a6b30bcaSPeter Maydell  parameters. An optional comma separated *interfaces* list restricts the
906a6b30bcaSPeter Maydell  announce to the named set of interfaces. An optional *id* can be used to
907a6b30bcaSPeter Maydell  start a separate announce timer and to change the parameters of it later.
908a6b30bcaSPeter MaydellERST
909544f6ea3SDr. David Alan Gilbert
910544f6ea3SDr. David Alan Gilbert    {
911d7f9b689SLuiz Capitulino        .name       = "migrate",
912*18d154f5SFabiano Rosas        .args_type  = "detach:-d,resume:-r,uri:s",
913*18d154f5SFabiano Rosas        .params     = "[-d] [-r] uri",
914fbc3d96cSlirans@il.ibm.com        .help       = "migrate to URI (using -d to not wait for completion)"
915*18d154f5SFabiano Rosas		      "\n\t\t\t -r to resume a paused migration",
9162b9e3576SMarc-André Lureau        .cmd        = hmp_migrate,
917d7f9b689SLuiz Capitulino    },
918d7f9b689SLuiz Capitulino
919fbc3d96cSlirans@il.ibm.com
920a6b30bcaSPeter MaydellSRST
921*18d154f5SFabiano Rosas``migrate [-d]`` *uri*
922a6b30bcaSPeter Maydell  Migrate to *uri* (using -d to not wait for completion).
923a6b30bcaSPeter MaydellERST
9242313086aSBlue Swirl
925d7f9b689SLuiz Capitulino    {
926d7f9b689SLuiz Capitulino        .name       = "migrate_cancel",
927d7f9b689SLuiz Capitulino        .args_type  = "",
928d7f9b689SLuiz Capitulino        .params     = "",
929d7f9b689SLuiz Capitulino        .help       = "cancel the current VM migration",
9302b9e3576SMarc-André Lureau        .cmd        = hmp_migrate_cancel,
931d7f9b689SLuiz Capitulino    },
932d7f9b689SLuiz Capitulino
933a6b30bcaSPeter MaydellSRST
934a6b30bcaSPeter Maydell``migrate_cancel``
935a6b30bcaSPeter Maydell  Cancel the current VM migration.
936a6b30bcaSPeter MaydellERST
9379e1ba4ccSOrit Wasserman
93894ae12cbSDr. David Alan Gilbert    {
93994ae12cbSDr. David Alan Gilbert        .name       = "migrate_continue",
94094ae12cbSDr. David Alan Gilbert        .args_type  = "state:s",
94194ae12cbSDr. David Alan Gilbert        .params     = "state",
94294ae12cbSDr. David Alan Gilbert        .help       = "Continue migration from the given paused state",
94394ae12cbSDr. David Alan Gilbert        .cmd        = hmp_migrate_continue,
94494ae12cbSDr. David Alan Gilbert    },
945a6b30bcaSPeter MaydellSRST
946a6b30bcaSPeter Maydell``migrate_continue`` *state*
947a6b30bcaSPeter Maydell  Continue migration from the paused state *state*
948a6b30bcaSPeter MaydellERST
9499e1ba4ccSOrit Wasserman
9509e1ba4ccSOrit Wasserman    {
951bf1ae1f4SDr. David Alan Gilbert        .name       = "migrate_incoming",
952bf1ae1f4SDr. David Alan Gilbert        .args_type  = "uri:s",
953bf1ae1f4SDr. David Alan Gilbert        .params     = "uri",
954bf1ae1f4SDr. David Alan Gilbert        .help       = "Continue an incoming migration from an -incoming defer",
9552b9e3576SMarc-André Lureau        .cmd        = hmp_migrate_incoming,
956bf1ae1f4SDr. David Alan Gilbert    },
957bf1ae1f4SDr. David Alan Gilbert
958a6b30bcaSPeter MaydellSRST
959a6b30bcaSPeter Maydell``migrate_incoming`` *uri*
960a6b30bcaSPeter Maydell  Continue an incoming migration using the *uri* (that has the same syntax
961a6b30bcaSPeter Maydell  as the ``-incoming`` option).
962a6b30bcaSPeter MaydellERST
963bf1ae1f4SDr. David Alan Gilbert
9643b563c4bSPeter Xu    {
9653b563c4bSPeter Xu        .name       = "migrate_recover",
9663b563c4bSPeter Xu        .args_type  = "uri:s",
9673b563c4bSPeter Xu        .params     = "uri",
9683b563c4bSPeter Xu        .help       = "Continue a paused incoming postcopy migration",
9693b563c4bSPeter Xu        .cmd        = hmp_migrate_recover,
9703b563c4bSPeter Xu    },
9713b563c4bSPeter Xu
972a6b30bcaSPeter MaydellSRST
973a6b30bcaSPeter Maydell``migrate_recover`` *uri*
974a6b30bcaSPeter Maydell  Continue a paused incoming postcopy migration using the *uri*.
975a6b30bcaSPeter MaydellERST
976bf1ae1f4SDr. David Alan Gilbert
977bf1ae1f4SDr. David Alan Gilbert    {
978d37297dcSPeter Xu        .name       = "migrate_pause",
979d37297dcSPeter Xu        .args_type  = "",
980d37297dcSPeter Xu        .params     = "",
981d37297dcSPeter Xu        .help       = "Pause an ongoing migration (postcopy-only)",
982d37297dcSPeter Xu        .cmd        = hmp_migrate_pause,
983d37297dcSPeter Xu    },
984d37297dcSPeter Xu
985a6b30bcaSPeter MaydellSRST
986a6b30bcaSPeter Maydell``migrate_pause``
987a6b30bcaSPeter Maydell  Pause an ongoing migration.  Currently it only supports postcopy.
988a6b30bcaSPeter MaydellERST
989d37297dcSPeter Xu
990d37297dcSPeter Xu    {
99100458433SOrit Wasserman        .name       = "migrate_set_capability",
99200458433SOrit Wasserman        .args_type  = "capability:s,state:b",
99300458433SOrit Wasserman        .params     = "capability state",
99400458433SOrit Wasserman        .help       = "Enable/Disable the usage of a capability for migration",
9952b9e3576SMarc-André Lureau        .cmd        = hmp_migrate_set_capability,
996c68a0409SHani Benhabiles        .command_completion = migrate_set_capability_completion,
99700458433SOrit Wasserman    },
99800458433SOrit Wasserman
999a6b30bcaSPeter MaydellSRST
1000a6b30bcaSPeter Maydell``migrate_set_capability`` *capability* *state*
1001a6b30bcaSPeter Maydell  Enable/Disable the usage of a capability *capability* for migration.
1002a6b30bcaSPeter MaydellERST
100300458433SOrit Wasserman
100400458433SOrit Wasserman    {
100550e9a629SLiang Li        .name       = "migrate_set_parameter",
100669ef1f36SDaniel P. Berrange        .args_type  = "parameter:s,value:s",
100750e9a629SLiang Li        .params     = "parameter value",
100850e9a629SLiang Li        .help       = "Set the parameter for migration",
10092b9e3576SMarc-André Lureau        .cmd        = hmp_migrate_set_parameter,
101050e9a629SLiang Li        .command_completion = migrate_set_parameter_completion,
101150e9a629SLiang Li    },
101250e9a629SLiang Li
1013a6b30bcaSPeter MaydellSRST
1014a6b30bcaSPeter Maydell``migrate_set_parameter`` *parameter* *value*
1015a6b30bcaSPeter Maydell  Set the parameter *parameter* for migration.
1016a6b30bcaSPeter MaydellERST
101750e9a629SLiang Li
101850e9a629SLiang Li    {
10194886a1bcSDr. David Alan Gilbert        .name       = "migrate_start_postcopy",
10204886a1bcSDr. David Alan Gilbert        .args_type  = "",
10214886a1bcSDr. David Alan Gilbert        .params     = "",
1022a54d340bSDr. David Alan Gilbert        .help       = "Followup to a migration command to switch the migration"
102332c3db5bSDr. David Alan Gilbert                      " to postcopy mode. The postcopy-ram capability must "
1024c2eb7f21SGreg Kurz                      "be set on both source and destination before the "
1025c2eb7f21SGreg Kurz                      "original migration command .",
10262b9e3576SMarc-André Lureau        .cmd        = hmp_migrate_start_postcopy,
10274886a1bcSDr. David Alan Gilbert    },
10284886a1bcSDr. David Alan Gilbert
1029a6b30bcaSPeter MaydellSRST
1030a6b30bcaSPeter Maydell``migrate_start_postcopy``
1031a6b30bcaSPeter Maydell  Switch in-progress migration to postcopy mode. Ignored after the end of
1032a6b30bcaSPeter Maydell  migration (or once already in postcopy).
1033a6b30bcaSPeter MaydellERST
10344886a1bcSDr. David Alan Gilbert
103551e47cf8SVladimir Sementsov-Ogievskiy#ifdef CONFIG_REPLICATION
10364886a1bcSDr. David Alan Gilbert    {
1037d89e666eSzhanghailiang        .name       = "x_colo_lost_heartbeat",
1038d89e666eSzhanghailiang        .args_type  = "",
1039d89e666eSzhanghailiang        .params     = "",
1040d89e666eSzhanghailiang        .help       = "Tell COLO that heartbeat is lost,\n\t\t\t"
1041d89e666eSzhanghailiang                      "a failover or takeover is needed.",
1042d89e666eSzhanghailiang        .cmd = hmp_x_colo_lost_heartbeat,
1043d89e666eSzhanghailiang    },
104451e47cf8SVladimir Sementsov-Ogievskiy#endif
1045d89e666eSzhanghailiang
1046a6b30bcaSPeter MaydellSRST
1047a6b30bcaSPeter Maydell``x_colo_lost_heartbeat``
1048a6b30bcaSPeter Maydell  Tell COLO that heartbeat is lost, a failover or takeover is needed.
1049a6b30bcaSPeter MaydellERST
1050d89e666eSzhanghailiang
1051d89e666eSzhanghailiang    {
10522ea720dbSJes Sorensen        .name       = "client_migrate_info",
10532ea720dbSJes Sorensen        .args_type  = "protocol:s,hostname:s,port:i?,tls-port:i?,cert-subject:s?",
10542ea720dbSJes Sorensen        .params     = "protocol hostname port tls-port cert-subject",
105513cadefbSMarkus Armbruster        .help       = "set migration information for remote display",
10562b9e3576SMarc-André Lureau        .cmd        = hmp_client_migrate_info,
1057f8882568SJes Sorensen    },
1058f8882568SJes Sorensen
1059a6b30bcaSPeter MaydellSRST
1060a6b30bcaSPeter Maydell``client_migrate_info`` *protocol* *hostname* *port* *tls-port* *cert-subject*
1061a6b30bcaSPeter Maydell  Set migration information for remote display.  This makes the server
1062a6b30bcaSPeter Maydell  ask the client to automatically reconnect using the new parameters
1063a6b30bcaSPeter Maydell  once migration finished successfully.  Only implemented for SPICE.
1064a6b30bcaSPeter MaydellERST
1065e866e239SGerd Hoffmann
1066783e9b48SWen Congyang    {
1067783e9b48SWen Congyang        .name       = "dump-guest-memory",
1068e6549197SStephen Brennan        .args_type  = "paging:-p,detach:-d,windmp:-w,zlib:-z,lzo:-l,snappy:-s,raw:-R,filename:F,begin:l?,length:l?",
1069e6549197SStephen Brennan        .params     = "[-p] [-d] [-z|-l|-s|-w] [-R] filename [begin length]",
1070c20499d9SQiao Nuohan        .help       = "dump guest memory into file 'filename'.\n\t\t\t"
1071c20499d9SQiao Nuohan                      "-p: do paging to get guest's memory mapping.\n\t\t\t"
1072228de9cfSPeter Xu                      "-d: return immediately (do not wait for completion).\n\t\t\t"
10731b7a0f75SQiao Nuohan                      "-z: dump in kdump-compressed format, with zlib compression.\n\t\t\t"
10741b7a0f75SQiao Nuohan                      "-l: dump in kdump-compressed format, with lzo compression.\n\t\t\t"
10751b7a0f75SQiao Nuohan                      "-s: dump in kdump-compressed format, with snappy compression.\n\t\t\t"
1076e6549197SStephen Brennan                      "-R: when using kdump (-z, -l, -s), use raw rather than makedumpfile-flattened\n\t\t\t"
1077e6549197SStephen Brennan                      "    format\n\t\t\t"
10782da91b54SViktor Prutyanov                      "-w: dump in Windows crashdump format (can be used instead of ELF-dump converting),\n\t\t\t"
1079f5daa829SViktor Prutyanov                      "    for Windows x86 and x64 guests with vmcoreinfo driver only.\n\t\t\t"
1080c20499d9SQiao Nuohan                      "begin: the starting physical address.\n\t\t\t"
1081c20499d9SQiao Nuohan                      "length: the memory size, in bytes.",
10822b9e3576SMarc-André Lureau        .cmd        = hmp_dump_guest_memory,
1083783e9b48SWen Congyang    },
1084783e9b48SWen Congyang
1085a6b30bcaSPeter MaydellSRST
1086a6b30bcaSPeter Maydell``dump-guest-memory [-p]`` *filename* *begin* *length*
1087a6b30bcaSPeter Maydell  \
1088a6b30bcaSPeter Maydell``dump-guest-memory [-z|-l|-s|-w]`` *filename*
1089a6b30bcaSPeter Maydell  Dump guest memory to *protocol*. The file can be processed with crash or
1090a6b30bcaSPeter Maydell  gdb. Without ``-z|-l|-s|-w``, the dump format is ELF.
1091a6b30bcaSPeter Maydell
1092a6b30bcaSPeter Maydell  ``-p``
1093a6b30bcaSPeter Maydell    do paging to get guest's memory mapping.
1094a6b30bcaSPeter Maydell  ``-z``
1095a6b30bcaSPeter Maydell    dump in kdump-compressed format, with zlib compression.
1096a6b30bcaSPeter Maydell  ``-l``
1097a6b30bcaSPeter Maydell    dump in kdump-compressed format, with lzo compression.
1098a6b30bcaSPeter Maydell  ``-s``
1099a6b30bcaSPeter Maydell    dump in kdump-compressed format, with snappy compression.
1100e6549197SStephen Brennan  ``-R``
1101e6549197SStephen Brennan    when using kdump (-z, -l, -s), use raw rather than makedumpfile-flattened
1102e6549197SStephen Brennan    format
1103a6b30bcaSPeter Maydell  ``-w``
1104a6b30bcaSPeter Maydell    dump in Windows crashdump format (can be used instead of ELF-dump converting),
1105a6b30bcaSPeter Maydell    for Windows x64 guests with vmcoreinfo driver only
1106a6b30bcaSPeter Maydell  *filename*
1107a6b30bcaSPeter Maydell    dump file name.
1108a6b30bcaSPeter Maydell  *begin*
1109a6b30bcaSPeter Maydell    the starting physical address. It's optional, and should be
1110a6b30bcaSPeter Maydell    specified together with *length*.
1111a6b30bcaSPeter Maydell  *length*
1112a6b30bcaSPeter Maydell    the memory size, in bytes. It's optional, and should be specified
1113a6b30bcaSPeter Maydell    together with *begin*.
1114a6b30bcaSPeter Maydell
1115a6b30bcaSPeter MaydellERST
1116783e9b48SWen Congyang
1117a4538a5cSJason J. Herne#if defined(TARGET_S390X)
1118a4538a5cSJason J. Herne    {
1119a4538a5cSJason J. Herne        .name       = "dump-skeys",
1120a4538a5cSJason J. Herne        .args_type  = "filename:F",
1121a4538a5cSJason J. Herne        .params     = "",
1122a4538a5cSJason J. Herne        .help       = "Save guest storage keys into file 'filename'.\n",
11232b9e3576SMarc-André Lureau        .cmd        = hmp_dump_skeys,
1124a4538a5cSJason J. Herne    },
1125a4538a5cSJason J. Herne#endif
1126a4538a5cSJason J. Herne
1127a6b30bcaSPeter MaydellSRST
1128a6b30bcaSPeter Maydell``dump-skeys`` *filename*
1129a6b30bcaSPeter Maydell  Save guest storage keys to a file.
1130a6b30bcaSPeter MaydellERST
1131a4538a5cSJason J. Herne
1132f860d497SClaudio Imbrenda#if defined(TARGET_S390X)
1133f860d497SClaudio Imbrenda    {
1134f860d497SClaudio Imbrenda        .name       = "migration_mode",
1135f860d497SClaudio Imbrenda        .args_type  = "mode:i",
1136f860d497SClaudio Imbrenda        .params     = "mode",
1137f860d497SClaudio Imbrenda        .help       = "Enables or disables migration mode\n",
1138f860d497SClaudio Imbrenda        .cmd        = hmp_migrationmode,
1139f860d497SClaudio Imbrenda    },
1140f860d497SClaudio Imbrenda#endif
1141f860d497SClaudio Imbrenda
1142a6b30bcaSPeter MaydellSRST
1143a6b30bcaSPeter Maydell``migration_mode`` *mode*
1144a6b30bcaSPeter Maydell  Enables or disables migration mode.
1145a6b30bcaSPeter MaydellERST
1146f860d497SClaudio Imbrenda
1147e866e239SGerd Hoffmann    {
11482ea720dbSJes Sorensen        .name       = "snapshot_blkdev",
11496cc2a415SPaolo Bonzini        .args_type  = "reuse:-n,device:B,snapshot-file:s?,format:s?",
11506cc2a415SPaolo Bonzini        .params     = "[-n] device [new-image-file] [format]",
11512ea720dbSJes Sorensen        .help       = "initiates a live snapshot\n\t\t\t"
11522ea720dbSJes Sorensen                      "of device. If a new image file is specified, the\n\t\t\t"
11532ea720dbSJes Sorensen                      "new image file will become the new root image.\n\t\t\t"
11542ea720dbSJes Sorensen                      "If format is specified, the snapshot file will\n\t\t\t"
1155775ca88eSWenchao Xia                      "be created in that format.\n\t\t\t"
11566cc2a415SPaolo Bonzini                      "The default format is qcow2.  The -n flag requests QEMU\n\t\t\t"
11576cc2a415SPaolo Bonzini                      "to reuse the image found in new-image-file, instead of\n\t\t\t"
11586cc2a415SPaolo Bonzini                      "recreating it from scratch.",
11592b9e3576SMarc-André Lureau        .cmd        = hmp_snapshot_blkdev,
1160e866e239SGerd Hoffmann    },
1161e866e239SGerd Hoffmann
1162a6b30bcaSPeter MaydellSRST
1163a6b30bcaSPeter Maydell``snapshot_blkdev``
1164a6b30bcaSPeter Maydell  Snapshot device, using snapshot file as target if provided
1165a6b30bcaSPeter MaydellERST
1166f8882568SJes Sorensen
1167d7f9b689SLuiz Capitulino    {
1168775ca88eSWenchao Xia        .name       = "snapshot_blkdev_internal",
1169775ca88eSWenchao Xia        .args_type  = "device:B,name:s",
1170775ca88eSWenchao Xia        .params     = "device name",
1171775ca88eSWenchao Xia        .help       = "take an internal snapshot of device.\n\t\t\t"
1172775ca88eSWenchao Xia                      "The format of the image used by device must\n\t\t\t"
1173775ca88eSWenchao Xia                      "support it, such as qcow2.\n\t\t\t",
11742b9e3576SMarc-André Lureau        .cmd        = hmp_snapshot_blkdev_internal,
1175775ca88eSWenchao Xia    },
1176775ca88eSWenchao Xia
1177a6b30bcaSPeter MaydellSRST
1178a6b30bcaSPeter Maydell``snapshot_blkdev_internal``
1179a6b30bcaSPeter Maydell  Take an internal snapshot on device if it support
1180a6b30bcaSPeter MaydellERST
1181775ca88eSWenchao Xia
1182775ca88eSWenchao Xia    {
11837a4ed2eeSWenchao Xia        .name       = "snapshot_delete_blkdev_internal",
11847a4ed2eeSWenchao Xia        .args_type  = "device:B,name:s,id:s?",
11857a4ed2eeSWenchao Xia        .params     = "device name [id]",
11867a4ed2eeSWenchao Xia        .help       = "delete an internal snapshot of device.\n\t\t\t"
11877a4ed2eeSWenchao Xia                      "If id is specified, qemu will try delete\n\t\t\t"
11887a4ed2eeSWenchao Xia                      "the snapshot matching both id and name.\n\t\t\t"
11897a4ed2eeSWenchao Xia                      "The format of the image used by device must\n\t\t\t"
11907a4ed2eeSWenchao Xia                      "support it, such as qcow2.\n\t\t\t",
11912b9e3576SMarc-André Lureau        .cmd        = hmp_snapshot_delete_blkdev_internal,
11927a4ed2eeSWenchao Xia    },
11937a4ed2eeSWenchao Xia
1194a6b30bcaSPeter MaydellSRST
1195a6b30bcaSPeter Maydell``snapshot_delete_blkdev_internal``
1196a6b30bcaSPeter Maydell  Delete an internal snapshot on device if it support
1197a6b30bcaSPeter MaydellERST
11987a4ed2eeSWenchao Xia
11997a4ed2eeSWenchao Xia    {
1200d9b902dbSPaolo Bonzini        .name       = "drive_mirror",
1201d9b902dbSPaolo Bonzini        .args_type  = "reuse:-n,full:-f,device:B,target:s,format:s?",
1202d9b902dbSPaolo Bonzini        .params     = "[-n] [-f] device target [format]",
1203d9b902dbSPaolo Bonzini        .help       = "initiates live storage\n\t\t\t"
1204d9b902dbSPaolo Bonzini                      "migration for a device. The device's contents are\n\t\t\t"
1205d9b902dbSPaolo Bonzini                      "copied to the new image file, including data that\n\t\t\t"
1206d9b902dbSPaolo Bonzini                      "is written after the command is started.\n\t\t\t"
1207d9b902dbSPaolo Bonzini                      "The -n flag requests QEMU to reuse the image found\n\t\t\t"
1208d9b902dbSPaolo Bonzini                      "in new-image-file, instead of recreating it from scratch.\n\t\t\t"
1209d9b902dbSPaolo Bonzini                      "The -f flag requests QEMU to copy the whole disk,\n\t\t\t"
1210d9b902dbSPaolo Bonzini                      "so that the result does not need a backing file.\n\t\t\t",
12112b9e3576SMarc-André Lureau        .cmd        = hmp_drive_mirror,
1212d9b902dbSPaolo Bonzini    },
1213a6b30bcaSPeter MaydellSRST
1214a6b30bcaSPeter Maydell``drive_mirror``
1215a6b30bcaSPeter Maydell  Start mirroring a block device's writes to a new destination,
1216a6b30bcaSPeter Maydell  using the specified target.
1217a6b30bcaSPeter MaydellERST
1218d9b902dbSPaolo Bonzini
1219d9b902dbSPaolo Bonzini    {
1220de90930aSStefan Hajnoczi        .name       = "drive_backup",
122113b9414bSPavel Butsykin        .args_type  = "reuse:-n,full:-f,compress:-c,device:B,target:s,format:s?",
122213b9414bSPavel Butsykin        .params     = "[-n] [-f] [-c] device target [format]",
1223de90930aSStefan Hajnoczi        .help       = "initiates a point-in-time\n\t\t\t"
1224de90930aSStefan Hajnoczi                      "copy for a device. The device's contents are\n\t\t\t"
1225de90930aSStefan Hajnoczi                      "copied to the new image file, excluding data that\n\t\t\t"
1226de90930aSStefan Hajnoczi                      "is written after the command is started.\n\t\t\t"
1227de90930aSStefan Hajnoczi                      "The -n flag requests QEMU to reuse the image found\n\t\t\t"
1228de90930aSStefan Hajnoczi                      "in new-image-file, instead of recreating it from scratch.\n\t\t\t"
1229de90930aSStefan Hajnoczi                      "The -f flag requests QEMU to copy the whole disk,\n\t\t\t"
123013b9414bSPavel Butsykin                      "so that the result does not need a backing file.\n\t\t\t"
123113b9414bSPavel Butsykin                      "The -c flag requests QEMU to compress backup data\n\t\t\t"
123213b9414bSPavel Butsykin                      "(if the target format supports it).\n\t\t\t",
12332b9e3576SMarc-André Lureau        .cmd        = hmp_drive_backup,
1234de90930aSStefan Hajnoczi    },
1235a6b30bcaSPeter MaydellSRST
1236a6b30bcaSPeter Maydell``drive_backup``
1237e3a6e0daSzhaolichang  Start a point-in-time copy of a block device to a specified target.
1238a6b30bcaSPeter MaydellERST
1239de90930aSStefan Hajnoczi
1240de90930aSStefan Hajnoczi    {
1241d7f9b689SLuiz Capitulino        .name       = "drive_add",
1242abb21ac3SKevin Wolf        .args_type  = "node:-n,pci_addr:s,opts:s",
1243abb21ac3SKevin Wolf        .params     = "[-n] [[<domain>:]<bus>:]<slot>\n"
12442313086aSBlue Swirl                      "[file=file][,if=type][,bus=n]\n"
1245fb0490f6SStefan Hajnoczi                      "[,unit=m][,media=d][,index=i]\n"
1246fb0490f6SStefan Hajnoczi                      "[,snapshot=on|off][,cache=on|off]\n"
1247fb0490f6SStefan Hajnoczi                      "[,readonly=on|off][,copy-on-read=on|off]",
1248d7f9b689SLuiz Capitulino        .help       = "add drive to PCI storage controller",
12492b9e3576SMarc-André Lureau        .cmd        = hmp_drive_add,
1250d7f9b689SLuiz Capitulino    },
1251d7f9b689SLuiz Capitulino
1252a6b30bcaSPeter MaydellSRST
1253a6b30bcaSPeter Maydell``drive_add``
1254a6b30bcaSPeter Maydell  Add drive to PCI storage controller.
1255a6b30bcaSPeter MaydellERST
12562313086aSBlue Swirl
1257d7f9b689SLuiz Capitulino    {
12582ae63bdaSIsaku Yamahata        .name       = "pcie_aer_inject_error",
12592ae63bdaSIsaku Yamahata        .args_type  = "advisory_non_fatal:-a,correctable:-c,"
12602ae63bdaSIsaku Yamahata	              "id:s,error_status:s,"
12612ae63bdaSIsaku Yamahata	              "header0:i?,header1:i?,header2:i?,header3:i?,"
12622ae63bdaSIsaku Yamahata	              "prefix0:i?,prefix1:i?,prefix2:i?,prefix3:i?",
12632ae63bdaSIsaku Yamahata        .params     = "[-a] [-c] id "
12642ae63bdaSIsaku Yamahata                      "<error_status> [<tlp header> [<tlp header prefix>]]",
12652ae63bdaSIsaku Yamahata        .help       = "inject pcie aer error\n\t\t\t"
12662ae63bdaSIsaku Yamahata	              " -a for advisory non fatal error\n\t\t\t"
12672ae63bdaSIsaku Yamahata	              " -c for correctable error\n\t\t\t"
12682ae63bdaSIsaku Yamahata                      "<id> = qdev device id\n\t\t\t"
12692ae63bdaSIsaku Yamahata                      "<error_status> = error string or 32bit\n\t\t\t"
12708ad4e451SZenghui Yu                      "<tlp header> = 32bit x 4\n\t\t\t"
12718ad4e451SZenghui Yu                      "<tlp header prefix> = 32bit x 4",
12722b9e3576SMarc-André Lureau        .cmd        = hmp_pcie_aer_inject_error,
12732ae63bdaSIsaku Yamahata    },
12742ae63bdaSIsaku Yamahata
1275a6b30bcaSPeter MaydellSRST
1276a6b30bcaSPeter Maydell``pcie_aer_inject_error``
1277a6b30bcaSPeter Maydell  Inject PCIe AER error
1278a6b30bcaSPeter MaydellERST
12792ae63bdaSIsaku Yamahata
12802ae63bdaSIsaku Yamahata    {
1281ae82d324SMarkus Armbruster        .name       = "netdev_add",
1282ae82d324SMarkus Armbruster        .args_type  = "netdev:O",
12835166fe0aSLaurent Vivier        .params     = "[user|tap|socket|stream|dgram|vde|bridge|hubport|netmap|vhost-user"
1284cb039ef3SIlya Maximets#ifdef CONFIG_AF_XDP
1285cb039ef3SIlya Maximets                      "|af-xdp"
1286cb039ef3SIlya Maximets#endif
1287fd8c8c05SVladislav Yaroshchuk#ifdef CONFIG_VMNET
1288fd8c8c05SVladislav Yaroshchuk                      "|vmnet-host|vmnet-shared|vmnet-bridged"
1289fd8c8c05SVladislav Yaroshchuk#endif
1290fd8c8c05SVladislav Yaroshchuk                      "],id=str[,prop=value][,...]",
1291ae82d324SMarkus Armbruster        .help       = "add host network device",
12922b9e3576SMarc-André Lureau        .cmd        = hmp_netdev_add,
1293b162b49aSHani Benhabiles        .command_completion = netdev_add_completion,
129448f596c5SPaolo Bonzini        .flags      = "p",
1295ae82d324SMarkus Armbruster    },
1296ae82d324SMarkus Armbruster
1297a6b30bcaSPeter MaydellSRST
1298a6b30bcaSPeter Maydell``netdev_add``
1299a6b30bcaSPeter Maydell  Add host network device.
1300a6b30bcaSPeter MaydellERST
1301ae82d324SMarkus Armbruster
1302ae82d324SMarkus Armbruster    {
1303ae82d324SMarkus Armbruster        .name       = "netdev_del",
1304ae82d324SMarkus Armbruster        .args_type  = "id:s",
1305ae82d324SMarkus Armbruster        .params     = "id",
1306ae82d324SMarkus Armbruster        .help       = "remove host network device",
13072b9e3576SMarc-André Lureau        .cmd        = hmp_netdev_del,
130811b389f2SHani Benhabiles        .command_completion = netdev_del_completion,
130948f596c5SPaolo Bonzini        .flags      = "p",
1310ae82d324SMarkus Armbruster    },
1311ae82d324SMarkus Armbruster
1312a6b30bcaSPeter MaydellSRST
1313a6b30bcaSPeter Maydell``netdev_del``
1314a6b30bcaSPeter Maydell  Remove host network device.
1315a6b30bcaSPeter MaydellERST
1316ae82d324SMarkus Armbruster
1317ab2d0531SPaolo Bonzini    {
1318cff8b2c6SPaolo Bonzini        .name       = "object_add",
1319da0a932bSKevin Wolf        .args_type  = "object:S",
1320cff8b2c6SPaolo Bonzini        .params     = "[qom-type=]type,id=str[,prop=value][,...]",
1321cff8b2c6SPaolo Bonzini        .help       = "create QOM object",
13222b9e3576SMarc-André Lureau        .cmd        = hmp_object_add,
1323bfa40f77SHani Benhabiles        .command_completion = object_add_completion,
13249e33013bSPaolo Bonzini        .flags      = "p",
1325cff8b2c6SPaolo Bonzini    },
1326cff8b2c6SPaolo Bonzini
1327a6b30bcaSPeter MaydellSRST
1328a6b30bcaSPeter Maydell``object_add``
1329a6b30bcaSPeter Maydell  Create QOM object.
1330a6b30bcaSPeter MaydellERST
1331cff8b2c6SPaolo Bonzini
1332cff8b2c6SPaolo Bonzini    {
1333ab2d0531SPaolo Bonzini        .name       = "object_del",
1334ab2d0531SPaolo Bonzini        .args_type  = "id:s",
1335ab2d0531SPaolo Bonzini        .params     = "id",
1336ab2d0531SPaolo Bonzini        .help       = "destroy QOM object",
13372b9e3576SMarc-André Lureau        .cmd        = hmp_object_del,
1338bfa40f77SHani Benhabiles        .command_completion = object_del_completion,
13399e33013bSPaolo Bonzini        .flags      = "p",
1340ab2d0531SPaolo Bonzini    },
1341ab2d0531SPaolo Bonzini
1342a6b30bcaSPeter MaydellSRST
1343a6b30bcaSPeter Maydell``object_del``
1344a6b30bcaSPeter Maydell  Destroy QOM object.
1345a6b30bcaSPeter MaydellERST
1346ab2d0531SPaolo Bonzini
13472313086aSBlue Swirl#ifdef CONFIG_SLIRP
1348d7f9b689SLuiz Capitulino    {
1349d7f9b689SLuiz Capitulino        .name       = "hostfwd_add",
1350b4983c57SThomas Huth        .args_type  = "arg1:s,arg2:s?",
1351b4983c57SThomas Huth        .params     = "[netdev_id] [tcp|udp]:[hostaddr]:hostport-[guestaddr]:guestport",
1352d7f9b689SLuiz Capitulino        .help       = "redirect TCP or UDP connections from host to guest (requires -net user)",
13532b9e3576SMarc-André Lureau        .cmd        = hmp_hostfwd_add,
1354d7f9b689SLuiz Capitulino    },
135521413d68SMarkus Armbruster#endif
1356a6b30bcaSPeter MaydellSRST
1357a6b30bcaSPeter Maydell``hostfwd_add``
1358a6b30bcaSPeter Maydell  Redirect TCP or UDP connections from host to guest (requires -net user).
1359a6b30bcaSPeter MaydellERST
1360d7f9b689SLuiz Capitulino
136121413d68SMarkus Armbruster#ifdef CONFIG_SLIRP
1362d7f9b689SLuiz Capitulino    {
1363d7f9b689SLuiz Capitulino        .name       = "hostfwd_remove",
1364b4983c57SThomas Huth        .args_type  = "arg1:s,arg2:s?",
1365b4983c57SThomas Huth        .params     = "[netdev_id] [tcp|udp]:[hostaddr]:hostport",
1366d7f9b689SLuiz Capitulino        .help       = "remove host-to-guest TCP or UDP redirection",
13672b9e3576SMarc-André Lureau        .cmd        = hmp_hostfwd_remove,
1368d7f9b689SLuiz Capitulino    },
1369d7f9b689SLuiz Capitulino
13702313086aSBlue Swirl#endif
1371a6b30bcaSPeter MaydellSRST
1372a6b30bcaSPeter Maydell``hostfwd_remove``
1373a6b30bcaSPeter Maydell  Remove host-to-guest TCP or UDP redirection.
1374a6b30bcaSPeter MaydellERST
13752313086aSBlue Swirl
1376d7f9b689SLuiz Capitulino    {
1377d7f9b689SLuiz Capitulino        .name       = "balloon",
13783b0bd6ecSLuiz Capitulino        .args_type  = "value:M",
1379d7f9b689SLuiz Capitulino        .params     = "target",
13803c05613aSRiccardo Magliocchetti        .help       = "request VM to change its memory allocation (in MB)",
13812b9e3576SMarc-André Lureau        .cmd        = hmp_balloon,
1382d7f9b689SLuiz Capitulino    },
1383d7f9b689SLuiz Capitulino
1384a6b30bcaSPeter MaydellSRST
1385a6b30bcaSPeter Maydell``balloon`` *value*
1386a6b30bcaSPeter Maydell  Request VM to change its memory allocation to *value* (in MB).
1387a6b30bcaSPeter MaydellERST
13882313086aSBlue Swirl
1389d7f9b689SLuiz Capitulino    {
1390d7f9b689SLuiz Capitulino        .name       = "set_link",
1391c9b26a4cSMarkus Armbruster        .args_type  = "name:s,up:b",
1392c9b26a4cSMarkus Armbruster        .params     = "name on|off",
1393d7f9b689SLuiz Capitulino        .help       = "change the link status of a network adapter",
13942b9e3576SMarc-André Lureau        .cmd        = hmp_set_link,
139540d19394SHani Benhabiles        .command_completion = set_link_completion,
1396d7f9b689SLuiz Capitulino    },
1397d7f9b689SLuiz Capitulino
1398a6b30bcaSPeter MaydellSRST
1399a6b30bcaSPeter Maydell``set_link`` *name* ``[on|off]``
1400a6b30bcaSPeter Maydell  Switch link *name* on (i.e. up) or off (i.e. down).
1401a6b30bcaSPeter MaydellERST
14022313086aSBlue Swirl
1403d7f9b689SLuiz Capitulino    {
1404d7f9b689SLuiz Capitulino        .name       = "watchdog_action",
1405d7f9b689SLuiz Capitulino        .args_type  = "action:s",
14067805132bSDayu Liu        .params     = "[reset|shutdown|poweroff|pause|debug|none|inject-nmi]",
1407d7f9b689SLuiz Capitulino        .help       = "change watchdog action",
14082b9e3576SMarc-André Lureau        .cmd        = hmp_watchdog_action,
1409d0ece345SHani Benhabiles        .command_completion = watchdog_action_completion,
1410d7f9b689SLuiz Capitulino    },
1411d7f9b689SLuiz Capitulino
1412a6b30bcaSPeter MaydellSRST
1413a6b30bcaSPeter Maydell``watchdog_action``
1414a6b30bcaSPeter Maydell  Change watchdog action.
1415a6b30bcaSPeter MaydellERST
14162313086aSBlue Swirl
1417d7f9b689SLuiz Capitulino    {
14184057725fSPaolo Bonzini        .name       = "nbd_server_start",
14194057725fSPaolo Bonzini        .args_type  = "all:-a,writable:-w,uri:s",
14204057725fSPaolo Bonzini        .params     = "nbd_server_start [-a] [-w] host:port",
14214057725fSPaolo Bonzini        .help       = "serve block devices on the given host and port",
14222b9e3576SMarc-André Lureau        .cmd        = hmp_nbd_server_start,
1423f55ba801SPaolo Bonzini        .flags      = "p",
14244057725fSPaolo Bonzini    },
1425a6b30bcaSPeter MaydellSRST
1426a6b30bcaSPeter Maydell``nbd_server_start`` *host*:*port*
1427a6b30bcaSPeter Maydell  Start an NBD server on the given host and/or port.  If the ``-a``
1428a6b30bcaSPeter Maydell  option is included, all of the virtual machine's block devices that
1429a6b30bcaSPeter Maydell  have an inserted media on them are automatically exported; in this case,
1430a6b30bcaSPeter Maydell  the ``-w`` option makes the devices writable too.
1431a6b30bcaSPeter MaydellERST
14324057725fSPaolo Bonzini
14334057725fSPaolo Bonzini    {
14344057725fSPaolo Bonzini        .name       = "nbd_server_add",
1435dba49323SEric Blake        .args_type  = "writable:-w,device:B,name:s?",
1436dba49323SEric Blake        .params     = "nbd_server_add [-w] device [name]",
14374057725fSPaolo Bonzini        .help       = "export a block device via NBD",
14382b9e3576SMarc-André Lureau        .cmd        = hmp_nbd_server_add,
1439f55ba801SPaolo Bonzini        .flags      = "p",
14404057725fSPaolo Bonzini    },
1441a6b30bcaSPeter MaydellSRST
1442a6b30bcaSPeter Maydell``nbd_server_add`` *device* [ *name* ]
1443a6b30bcaSPeter Maydell  Export a block device through QEMU's NBD server, which must be started
1444a6b30bcaSPeter Maydell  beforehand with ``nbd_server_start``.  The ``-w`` option makes the
1445a6b30bcaSPeter Maydell  exported device writable too.  The export name is controlled by *name*,
1446a6b30bcaSPeter Maydell  defaulting to *device*.
1447a6b30bcaSPeter MaydellERST
14484057725fSPaolo Bonzini
14494057725fSPaolo Bonzini    {
145008fb10a7SEric Blake        .name       = "nbd_server_remove",
145108fb10a7SEric Blake        .args_type  = "force:-f,name:s",
145208fb10a7SEric Blake        .params     = "nbd_server_remove [-f] name",
145308fb10a7SEric Blake        .help       = "remove an export previously exposed via NBD",
145408fb10a7SEric Blake        .cmd        = hmp_nbd_server_remove,
1455f55ba801SPaolo Bonzini        .flags      = "p",
145608fb10a7SEric Blake    },
1457a6b30bcaSPeter MaydellSRST
1458a6b30bcaSPeter Maydell``nbd_server_remove [-f]`` *name*
1459a6b30bcaSPeter Maydell  Stop exporting a block device through QEMU's NBD server, which was
1460a6b30bcaSPeter Maydell  previously started with ``nbd_server_add``.  The ``-f``
1461a6b30bcaSPeter Maydell  option forces the server to drop the export immediately even if
1462a6b30bcaSPeter Maydell  clients are connected; otherwise the command fails unless there are no
1463a6b30bcaSPeter Maydell  clients.
1464a6b30bcaSPeter MaydellERST
146508fb10a7SEric Blake
146608fb10a7SEric Blake    {
14674057725fSPaolo Bonzini        .name       = "nbd_server_stop",
14684057725fSPaolo Bonzini        .args_type  = "",
14694057725fSPaolo Bonzini        .params     = "nbd_server_stop",
14704057725fSPaolo Bonzini        .help       = "stop serving block devices using the NBD protocol",
14712b9e3576SMarc-André Lureau        .cmd        = hmp_nbd_server_stop,
1472f55ba801SPaolo Bonzini        .flags      = "p",
14734057725fSPaolo Bonzini    },
1474a6b30bcaSPeter MaydellSRST
1475a6b30bcaSPeter Maydell``nbd_server_stop``
1476a6b30bcaSPeter Maydell  Stop the QEMU embedded NBD server.
1477a6b30bcaSPeter MaydellERST
14784057725fSPaolo Bonzini
14794057725fSPaolo Bonzini
148079c4f6b0SHuang Ying#if defined(TARGET_I386)
1481d7f9b689SLuiz Capitulino
1482d7f9b689SLuiz Capitulino    {
1483d7f9b689SLuiz Capitulino        .name       = "mce",
148431ce5e0cSJin Dongming        .args_type  = "broadcast:-b,cpu_index:i,bank:i,status:l,mcg_status:l,addr:l,misc:l",
148531ce5e0cSJin Dongming        .params     = "[-b] cpu bank status mcgstatus addr misc",
148631ce5e0cSJin Dongming        .help       = "inject a MCE on the given CPU [and broadcast to other CPUs with -b option]",
14872b9e3576SMarc-André Lureau        .cmd        = hmp_mce,
1488d7f9b689SLuiz Capitulino    },
1489d7f9b689SLuiz Capitulino
149079c4f6b0SHuang Ying#endif
1491a6b30bcaSPeter MaydellSRST
1492a6b30bcaSPeter Maydell``mce`` *cpu* *bank* *status* *mcgstatus* *addr* *misc*
1493a6b30bcaSPeter Maydell  Inject an MCE on the given CPU (x86 only).
1494a6b30bcaSPeter MaydellERST
149579c4f6b0SHuang Ying
14964bf21c7fSMarc-André Lureau#ifdef CONFIG_POSIX
1497d7f9b689SLuiz Capitulino    {
1498d7f9b689SLuiz Capitulino        .name       = "getfd",
1499d7f9b689SLuiz Capitulino        .args_type  = "fdname:s",
1500d7f9b689SLuiz Capitulino        .params     = "getfd name",
1501d7f9b689SLuiz Capitulino        .help       = "receive a file descriptor via SCM rights and assign it a name",
15022b9e3576SMarc-André Lureau        .cmd        = hmp_getfd,
1503f55ba801SPaolo Bonzini        .flags      = "p",
1504d7f9b689SLuiz Capitulino    },
1505d7f9b689SLuiz Capitulino
1506a6b30bcaSPeter MaydellSRST
1507a6b30bcaSPeter Maydell``getfd`` *fdname*
1508a6b30bcaSPeter Maydell  If a file descriptor is passed alongside this command using the SCM_RIGHTS
1509a6b30bcaSPeter Maydell  mechanism on unix sockets, it is stored using the name *fdname* for
1510a6b30bcaSPeter Maydell  later use by other monitor commands.
1511a6b30bcaSPeter MaydellERST
15124bf21c7fSMarc-André Lureau#endif
1513f07918fdSMark McLoughlin
1514d7f9b689SLuiz Capitulino    {
1515d7f9b689SLuiz Capitulino        .name       = "closefd",
1516d7f9b689SLuiz Capitulino        .args_type  = "fdname:s",
1517d7f9b689SLuiz Capitulino        .params     = "closefd name",
1518d7f9b689SLuiz Capitulino        .help       = "close a file descriptor previously passed via SCM rights",
15192b9e3576SMarc-André Lureau        .cmd        = hmp_closefd,
1520f55ba801SPaolo Bonzini        .flags      = "p",
1521d7f9b689SLuiz Capitulino    },
1522d7f9b689SLuiz Capitulino
1523a6b30bcaSPeter MaydellSRST
1524a6b30bcaSPeter Maydell``closefd`` *fdname*
1525a6b30bcaSPeter Maydell  Close the file descriptor previously assigned to *fdname* using the
1526a6b30bcaSPeter Maydell  ``getfd`` command. This is only needed if the file descriptor was never
1527a6b30bcaSPeter Maydell  used by another monitor command.
1528a6b30bcaSPeter MaydellERST
1529f07918fdSMark McLoughlin
1530a3a55a2eSLuiz Capitulino    {
1531727f005eSZhi Yong Wu        .name       = "block_set_io_throttle",
1532727f005eSZhi Yong Wu        .args_type  = "device:B,bps:l,bps_rd:l,bps_wr:l,iops:l,iops_rd:l,iops_wr:l",
1533727f005eSZhi Yong Wu        .params     = "device bps bps_rd bps_wr iops iops_rd iops_wr",
1534727f005eSZhi Yong Wu        .help       = "change I/O throttle limits for a block drive",
15352b9e3576SMarc-André Lureau        .cmd        = hmp_block_set_io_throttle,
1536f55ba801SPaolo Bonzini        .flags      = "p",
1537727f005eSZhi Yong Wu    },
1538727f005eSZhi Yong Wu
1539a6b30bcaSPeter MaydellSRST
1540a6b30bcaSPeter Maydell``block_set_io_throttle`` *device* *bps* *bps_rd* *bps_wr* *iops* *iops_rd* *iops_wr*
1541a6b30bcaSPeter Maydell  Change I/O throttle limits for a block drive to
1542a6b30bcaSPeter Maydell  *bps* *bps_rd* *bps_wr* *iops* *iops_rd* *iops_wr*.
1543a6b30bcaSPeter Maydell  *device* can be a block device name, a qdev ID or a QOM path.
1544a6b30bcaSPeter MaydellERST
1545b40292e7SJan Kiszka
154633572eceSJan Kiszka    {
15477572150cSGerd Hoffmann        .name       = "set_password",
1548675fd3c9SStefan Reiter        .args_type  = "protocol:s,password:s,display:-ds,connected:s?",
1549675fd3c9SStefan Reiter        .params     = "protocol password [-d display] [action-if-connected]",
15507572150cSGerd Hoffmann        .help       = "set spice/vnc password",
15512b9e3576SMarc-André Lureau        .cmd        = hmp_set_password,
15527572150cSGerd Hoffmann    },
15537572150cSGerd Hoffmann
1554a6b30bcaSPeter MaydellSRST
1555675fd3c9SStefan Reiter``set_password [ vnc | spice ] password [ -d display ] [ action-if-connected ]``
1556675fd3c9SStefan Reiter  Change spice/vnc password.  *display* can be used with 'vnc' to specify
1557675fd3c9SStefan Reiter  which display to set the password on.  *action-if-connected* specifies
1558675fd3c9SStefan Reiter  what should happen in case a connection is established: *fail* makes
1559675fd3c9SStefan Reiter  the password change fail.  *disconnect* changes the password and
15608982552eSMarkus Armbruster  disconnects the client.  *keep* changes the password and keeps the
15618982552eSMarkus Armbruster  connection up.  *keep* is the default.
1562a6b30bcaSPeter MaydellERST
15637572150cSGerd Hoffmann
15647572150cSGerd Hoffmann    {
15657572150cSGerd Hoffmann        .name       = "expire_password",
1566675fd3c9SStefan Reiter        .args_type  = "protocol:s,time:s,display:-ds",
1567675fd3c9SStefan Reiter        .params     = "protocol time [-d display]",
15687572150cSGerd Hoffmann        .help       = "set spice/vnc password expire-time",
15692b9e3576SMarc-André Lureau        .cmd        = hmp_expire_password,
15707572150cSGerd Hoffmann    },
15717572150cSGerd Hoffmann
1572a6b30bcaSPeter MaydellSRST
1573675fd3c9SStefan Reiter``expire_password [ vnc | spice ] expire-time [ -d display ]``
1574675fd3c9SStefan Reiter  Specify when a password for spice/vnc becomes invalid.
1575675fd3c9SStefan Reiter  *display* behaves the same as in ``set_password``.
1576675fd3c9SStefan Reiter  *expire-time* accepts:
1577a6b30bcaSPeter Maydell
1578a6b30bcaSPeter Maydell  ``now``
1579a6b30bcaSPeter Maydell    Invalidate password instantly.
1580a6b30bcaSPeter Maydell  ``never``
1581a6b30bcaSPeter Maydell    Password stays valid forever.
1582a6b30bcaSPeter Maydell  ``+``\ *nsec*
1583a6b30bcaSPeter Maydell    Password stays valid for *nsec* seconds starting now.
1584a6b30bcaSPeter Maydell  *nsec*
1585a6b30bcaSPeter Maydell    Password is invalidated at the given time.  *nsec* are the seconds
1586a6b30bcaSPeter Maydell    passed since 1970, i.e. unix epoch.
1587a6b30bcaSPeter Maydell
1588a6b30bcaSPeter MaydellERST
15897572150cSGerd Hoffmann
159046920825SGerd Hoffmann    {
159146920825SGerd Hoffmann        .name       = "chardev-add",
159246920825SGerd Hoffmann        .args_type  = "args:s",
159346920825SGerd Hoffmann        .params     = "args",
159446920825SGerd Hoffmann        .help       = "add chardev",
15952b9e3576SMarc-André Lureau        .cmd        = hmp_chardev_add,
159613e315daSHani Benhabiles        .command_completion = chardev_add_completion,
159746920825SGerd Hoffmann    },
159846920825SGerd Hoffmann
1599a6b30bcaSPeter MaydellSRST
1600a6b30bcaSPeter Maydell``chardev-add`` *args*
1601a6b30bcaSPeter Maydell  chardev-add accepts the same parameters as the -chardev command line switch.
1602a6b30bcaSPeter MaydellERST
160375b60160SAnton Nefedov
160475b60160SAnton Nefedov    {
160575b60160SAnton Nefedov        .name       = "chardev-change",
160675b60160SAnton Nefedov        .args_type  = "id:s,args:s",
160775b60160SAnton Nefedov        .params     = "id args",
160875b60160SAnton Nefedov        .help       = "change chardev",
160975b60160SAnton Nefedov        .cmd        = hmp_chardev_change,
161075b60160SAnton Nefedov    },
161175b60160SAnton Nefedov
1612a6b30bcaSPeter MaydellSRST
1613a6b30bcaSPeter Maydell``chardev-change`` *args*
1614a6b30bcaSPeter Maydell  chardev-change accepts existing chardev *id* and then the same arguments
1615a6b30bcaSPeter Maydell  as the -chardev command line switch (except for "id").
1616a6b30bcaSPeter MaydellERST
161746920825SGerd Hoffmann
161846920825SGerd Hoffmann    {
161946920825SGerd Hoffmann        .name       = "chardev-remove",
162046920825SGerd Hoffmann        .args_type  = "id:s",
162146920825SGerd Hoffmann        .params     = "id",
162246920825SGerd Hoffmann        .help       = "remove chardev",
16232b9e3576SMarc-André Lureau        .cmd        = hmp_chardev_remove,
16246297d9a2SHani Benhabiles        .command_completion = chardev_remove_completion,
162546920825SGerd Hoffmann    },
162646920825SGerd Hoffmann
1627a6b30bcaSPeter MaydellSRST
1628a6b30bcaSPeter Maydell``chardev-remove`` *id*
1629a6b30bcaSPeter Maydell  Removes the chardev *id*.
1630a6b30bcaSPeter MaydellERST
1631f1088908SGerd Hoffmann
1632f1088908SGerd Hoffmann    {
1633bd1d5ad9SStefan Fritsch        .name       = "chardev-send-break",
1634bd1d5ad9SStefan Fritsch        .args_type  = "id:s",
1635bd1d5ad9SStefan Fritsch        .params     = "id",
1636bd1d5ad9SStefan Fritsch        .help       = "send a break on chardev",
1637bd1d5ad9SStefan Fritsch        .cmd        = hmp_chardev_send_break,
1638bd1d5ad9SStefan Fritsch        .command_completion = chardev_remove_completion,
1639bd1d5ad9SStefan Fritsch    },
1640bd1d5ad9SStefan Fritsch
1641a6b30bcaSPeter MaydellSRST
1642a6b30bcaSPeter Maydell``chardev-send-break`` *id*
1643a6b30bcaSPeter Maydell  Send a break on the chardev *id*.
1644a6b30bcaSPeter MaydellERST
1645bd1d5ad9SStefan Fritsch
1646bd1d5ad9SStefan Fritsch    {
1647587da2c3SKevin Wolf        .name       = "qemu-io",
164889b6fc45SKevin Wolf        .args_type  = "qdev:-d,device:B,command:s",
164989b6fc45SKevin Wolf        .params     = "[-d] [device] \"[command]\"",
165089b6fc45SKevin Wolf        .help       = "run a qemu-io command on a block device\n\t\t\t"
165189b6fc45SKevin Wolf                      "-d: [device] is a device ID rather than a "
165289b6fc45SKevin Wolf                      "drive ID or node name",
16532b9e3576SMarc-André Lureau        .cmd        = hmp_qemu_io,
1654587da2c3SKevin Wolf    },
1655587da2c3SKevin Wolf
1656a6b30bcaSPeter MaydellSRST
1657a6b30bcaSPeter Maydell``qemu-io`` *device* *command*
1658a6b30bcaSPeter Maydell  Executes a qemu-io command on the given block device.
1659a6b30bcaSPeter MaydellERST
1660587da2c3SKevin Wolf
1661587da2c3SKevin Wolf    {
166289d7fa9eSAndreas Färber        .name       = "qom-list",
166389d7fa9eSAndreas Färber        .args_type  = "path:s?",
166489d7fa9eSAndreas Färber        .params     = "path",
166589d7fa9eSAndreas Färber        .help       = "list QOM properties",
16662b9e3576SMarc-André Lureau        .cmd        = hmp_qom_list,
16678c7c7ecbSDr. David Alan Gilbert        .flags      = "p",
166889d7fa9eSAndreas Färber    },
166989d7fa9eSAndreas Färber
1670a6b30bcaSPeter MaydellSRST
1671a6b30bcaSPeter Maydell``qom-list`` [*path*]
1672a6b30bcaSPeter Maydell  Print QOM properties of object at location *path*
1673a6b30bcaSPeter MaydellERST
167489d7fa9eSAndreas Färber
167589d7fa9eSAndreas Färber    {
167689cf4fe3SDr. David Alan Gilbert        .name       = "qom-get",
167789cf4fe3SDr. David Alan Gilbert        .args_type  = "path:s,property:s",
167889cf4fe3SDr. David Alan Gilbert        .params     = "path property",
167989cf4fe3SDr. David Alan Gilbert        .help       = "print QOM property",
168089cf4fe3SDr. David Alan Gilbert        .cmd        = hmp_qom_get,
168189cf4fe3SDr. David Alan Gilbert        .flags      = "p",
168289cf4fe3SDr. David Alan Gilbert    },
168389cf4fe3SDr. David Alan Gilbert
168489cf4fe3SDr. David Alan GilbertSRST
168589cf4fe3SDr. David Alan Gilbert``qom-get`` *path* *property*
168689cf4fe3SDr. David Alan Gilbert  Print QOM property *property* of object at location *path*
168789cf4fe3SDr. David Alan GilbertERST
168889cf4fe3SDr. David Alan Gilbert
168989cf4fe3SDr. David Alan Gilbert    {
1690c0e6ee9eSAndreas Färber        .name       = "qom-set",
16912d9e3dd9SDavid Hildenbrand        .args_type  = "json:-j,path:s,property:s,value:S",
16922d9e3dd9SDavid Hildenbrand        .params     = "[-j] path property value",
16932d9e3dd9SDavid Hildenbrand        .help       = "set QOM property.\n\t\t\t"
16942d9e3dd9SDavid Hildenbrand                      "-j: the value is specified in json format.",
16952b9e3576SMarc-André Lureau        .cmd        = hmp_qom_set,
16968c7c7ecbSDr. David Alan Gilbert        .flags      = "p",
1697c0e6ee9eSAndreas Färber    },
1698c0e6ee9eSAndreas Färber
1699a6b30bcaSPeter MaydellSRST
1700a6b30bcaSPeter Maydell``qom-set`` *path* *property* *value*
1701a6b30bcaSPeter Maydell  Set QOM property *property* of object at location *path* to value *value*
1702a6b30bcaSPeter MaydellERST
1703c0e6ee9eSAndreas Färber
1704c0e6ee9eSAndreas Färber    {
1705e7510671SPavel Dovgalyuk        .name       = "replay_break",
1706ae49ce00SAlex Bennée        .args_type  = "icount:l",
1707e7510671SPavel Dovgalyuk        .params     = "icount",
1708e7510671SPavel Dovgalyuk        .help       = "set breakpoint at the specified instruction count",
1709e7510671SPavel Dovgalyuk        .cmd        = hmp_replay_break,
1710e7510671SPavel Dovgalyuk    },
1711e7510671SPavel Dovgalyuk
1712e7510671SPavel DovgalyukSRST
1713e7510671SPavel Dovgalyuk``replay_break`` *icount*
1714e7510671SPavel Dovgalyuk  Set replay breakpoint at instruction count *icount*.
1715e7510671SPavel Dovgalyuk  Execution stops when the specified instruction is reached.
1716e7510671SPavel Dovgalyuk  There can be at most one breakpoint. When breakpoint is set, any prior
1717e7510671SPavel Dovgalyuk  one is removed.  The breakpoint may be set only in replay mode and only
1718e7510671SPavel Dovgalyuk  "in the future", i.e. at instruction counts greater than the current one.
1719e7510671SPavel Dovgalyuk  The current instruction count can be observed with ``info replay``.
1720e7510671SPavel DovgalyukERST
1721e7510671SPavel Dovgalyuk
1722e7510671SPavel Dovgalyuk    {
1723e7510671SPavel Dovgalyuk        .name       = "replay_delete_break",
1724e7510671SPavel Dovgalyuk        .args_type  = "",
1725e7510671SPavel Dovgalyuk        .params     = "",
1726e7510671SPavel Dovgalyuk        .help       = "remove replay breakpoint",
1727e7510671SPavel Dovgalyuk        .cmd        = hmp_replay_delete_break,
1728e7510671SPavel Dovgalyuk    },
1729e7510671SPavel Dovgalyuk
1730e7510671SPavel DovgalyukSRST
1731e7510671SPavel Dovgalyuk``replay_delete_break``
1732e7510671SPavel Dovgalyuk  Remove replay breakpoint which was previously set with ``replay_break``.
1733e7510671SPavel Dovgalyuk  The command is ignored when there are no replay breakpoints.
1734e7510671SPavel DovgalyukERST
1735e7510671SPavel Dovgalyuk
1736e7510671SPavel Dovgalyuk    {
1737f6baed3dSPavel Dovgalyuk        .name       = "replay_seek",
1738ae49ce00SAlex Bennée        .args_type  = "icount:l",
1739f6baed3dSPavel Dovgalyuk        .params     = "icount",
1740f6baed3dSPavel Dovgalyuk        .help       = "replay execution to the specified instruction count",
1741f6baed3dSPavel Dovgalyuk        .cmd        = hmp_replay_seek,
1742f6baed3dSPavel Dovgalyuk    },
1743f6baed3dSPavel Dovgalyuk
1744f6baed3dSPavel DovgalyukSRST
1745f6baed3dSPavel Dovgalyuk``replay_seek`` *icount*
1746f6baed3dSPavel Dovgalyuk  Automatically proceed to the instruction count *icount*, when
1747f6baed3dSPavel Dovgalyuk  replaying the execution. The command automatically loads nearest
1748f6baed3dSPavel Dovgalyuk  snapshot and replays the execution to find the desired instruction.
1749f6baed3dSPavel Dovgalyuk  When there is no preceding snapshot or the execution is not replayed,
1750f6baed3dSPavel Dovgalyuk  then the command fails.
1751f6baed3dSPavel Dovgalyuk  *icount* for the reference may be observed with ``info replay`` command.
1752f6baed3dSPavel DovgalyukERST
1753f6baed3dSPavel Dovgalyuk
1754f6baed3dSPavel Dovgalyuk    {
1755a4a571d9SPeter Xu        .name       = "calc_dirty_rate",
1756826b8bc8SHyman Huang(黄勇)        .args_type  = "dirty_ring:-r,dirty_bitmap:-b,second:l,sample_pages_per_GB:l?",
1757826b8bc8SHyman Huang(黄勇)        .params     = "[-r] [-b] second [sample_pages_per_GB]",
1758826b8bc8SHyman Huang(黄勇)        .help       = "start a round of guest dirty rate measurement (using -r to"
1759826b8bc8SHyman Huang(黄勇)                      "\n\t\t\t specify dirty ring as the method of calculation and"
1760826b8bc8SHyman Huang(黄勇)                      "\n\t\t\t -b to specify dirty bitmap as method of calculation)",
1761a4a571d9SPeter Xu        .cmd        = hmp_calc_dirty_rate,
1762a4a571d9SPeter Xu    },
1763f3b2e38cSHyman Huang(黄勇)
1764f3b2e38cSHyman Huang(黄勇)SRST
176522269b04SDr. David Alan Gilbert``calc_dirty_rate`` *second*
176622269b04SDr. David Alan Gilbert  Start a round of dirty rate measurement with the period specified in *second*.
176722269b04SDr. David Alan Gilbert  The result of the dirty rate measurement may be observed with ``info
176822269b04SDr. David Alan Gilbert  dirty_rate`` command.
1769f3b2e38cSHyman Huang(黄勇)ERST
1770f3b2e38cSHyman Huang(黄勇)
1771f3b2e38cSHyman Huang(黄勇)    {
1772f3b2e38cSHyman Huang(黄勇)        .name       = "set_vcpu_dirty_limit",
1773f3b2e38cSHyman Huang(黄勇)        .args_type  = "dirty_rate:l,cpu_index:l?",
1774f3b2e38cSHyman Huang(黄勇)        .params     = "dirty_rate [cpu_index]",
1775f3b2e38cSHyman Huang(黄勇)        .help       = "set dirty page rate limit, use cpu_index to set limit"
1776f3b2e38cSHyman Huang(黄勇)                      "\n\t\t\t\t\t on a specified virtual cpu",
1777f3b2e38cSHyman Huang(黄勇)        .cmd        = hmp_set_vcpu_dirty_limit,
1778f3b2e38cSHyman Huang(黄勇)    },
1779f3b2e38cSHyman Huang(黄勇)
1780f3b2e38cSHyman Huang(黄勇)SRST
178122269b04SDr. David Alan Gilbert``set_vcpu_dirty_limit``
178222269b04SDr. David Alan Gilbert  Set dirty page rate limit on virtual CPU, the information about all the
1783f3b2e38cSHyman Huang(黄勇)  virtual CPU dirty limit status can be observed with ``info vcpu_dirty_limit``
1784f3b2e38cSHyman Huang(黄勇)  command.
1785f3b2e38cSHyman Huang(黄勇)ERST
1786f3b2e38cSHyman Huang(黄勇)
1787f3b2e38cSHyman Huang(黄勇)    {
1788f3b2e38cSHyman Huang(黄勇)        .name       = "cancel_vcpu_dirty_limit",
1789f3b2e38cSHyman Huang(黄勇)        .args_type  = "cpu_index:l?",
1790f3b2e38cSHyman Huang(黄勇)        .params     = "[cpu_index]",
1791f3b2e38cSHyman Huang(黄勇)        .help       = "cancel dirty page rate limit, use cpu_index to cancel"
1792f3b2e38cSHyman Huang(黄勇)                      "\n\t\t\t\t\t limit on a specified virtual cpu",
1793f3b2e38cSHyman Huang(黄勇)        .cmd        = hmp_cancel_vcpu_dirty_limit,
1794f3b2e38cSHyman Huang(黄勇)    },
179522269b04SDr. David Alan Gilbert
179622269b04SDr. David Alan GilbertSRST
179722269b04SDr. David Alan Gilbert``cancel_vcpu_dirty_limit``
179822269b04SDr. David Alan Gilbert  Cancel dirty page rate limit on virtual CPU, the information about all the
179922269b04SDr. David Alan Gilbert  virtual CPU dirty limit status can be observed with ``info vcpu_dirty_limit``
180022269b04SDr. David Alan Gilbert  command.
180122269b04SDr. David Alan GilbertERST
180222269b04SDr. David Alan Gilbert
180322269b04SDr. David Alan Gilbert    {
180422269b04SDr. David Alan Gilbert        .name       = "info",
180522269b04SDr. David Alan Gilbert        .args_type  = "item:s?",
180622269b04SDr. David Alan Gilbert        .params     = "[subcommand]",
180722269b04SDr. David Alan Gilbert        .help       = "show various information about the system state",
180822269b04SDr. David Alan Gilbert        .cmd        = hmp_info_help,
180922269b04SDr. David Alan Gilbert        .sub_table  = hmp_info_cmds,
181022269b04SDr. David Alan Gilbert        .flags      = "p",
181122269b04SDr. David Alan Gilbert    },
1812bf353ad5SDaniel Henrique Barboza
1813bf353ad5SDaniel Henrique Barboza#if defined(CONFIG_FDT)
1814bf353ad5SDaniel Henrique Barboza    {
1815bf353ad5SDaniel Henrique Barboza        .name       = "dumpdtb",
1816bf353ad5SDaniel Henrique Barboza        .args_type  = "filename:F",
1817bf353ad5SDaniel Henrique Barboza        .params     = "filename",
1818bf353ad5SDaniel Henrique Barboza        .help       = "dump the FDT in dtb format to 'filename'",
1819bf353ad5SDaniel Henrique Barboza        .cmd        = hmp_dumpdtb,
1820bf353ad5SDaniel Henrique Barboza    },
1821bf353ad5SDaniel Henrique Barboza
1822bf353ad5SDaniel Henrique BarbozaSRST
1823bf353ad5SDaniel Henrique Barboza``dumpdtb`` *filename*
1824bf353ad5SDaniel Henrique Barboza  Dump the FDT in dtb format to *filename*.
1825bf353ad5SDaniel Henrique BarbozaERST
1826bf353ad5SDaniel Henrique Barboza#endif
1827507cb64dSJoao Martins
1828507cb64dSJoao Martins#if defined(CONFIG_XEN_EMU)
1829507cb64dSJoao Martins    {
1830507cb64dSJoao Martins        .name       = "xen-event-inject",
1831507cb64dSJoao Martins        .args_type  = "port:i",
1832507cb64dSJoao Martins        .params     = "port",
1833507cb64dSJoao Martins        .help       = "inject event channel",
1834507cb64dSJoao Martins        .cmd        = hmp_xen_event_inject,
1835507cb64dSJoao Martins    },
1836507cb64dSJoao Martins
1837507cb64dSJoao MartinsSRST
1838507cb64dSJoao Martins``xen-event-inject`` *port*
1839507cb64dSJoao Martins  Notify guest via event channel on port *port*.
1840507cb64dSJoao MartinsERST
1841507cb64dSJoao Martins
1842507cb64dSJoao Martins
1843507cb64dSJoao Martins    {
1844507cb64dSJoao Martins        .name       = "xen-event-list",
1845507cb64dSJoao Martins        .args_type  = "",
1846507cb64dSJoao Martins        .params     = "",
1847507cb64dSJoao Martins        .help       = "list event channel state",
1848507cb64dSJoao Martins        .cmd        = hmp_xen_event_list,
1849507cb64dSJoao Martins    },
1850507cb64dSJoao Martins
1851507cb64dSJoao MartinsSRST
1852507cb64dSJoao Martins``xen-event-list``
1853507cb64dSJoao Martins  List event channels in the guest
1854507cb64dSJoao MartinsERST
1855507cb64dSJoao Martins#endif
1856