blob: 73e0832ea1711783fa09b32b482f412da1c933dd [file] [log] [blame]
Peter Maydell3c95fde2020-03-06 17:17:44 +00001HXCOMM Use DEFHEADING() to define headings in both help text and rST.
2HXCOMM Text between SRST and ERST is copied to the rST version and
3HXCOMM discarded from C version.
Blue Swirl23130862009-06-06 08:22:04 +00004HXCOMM DEF(command, args, callback, arg_string, help) is used to construct
5HXCOMM monitor commands
Peter Maydell3c95fde2020-03-06 17:17:44 +00006HXCOMM HXCOMM can be used for comments, discarded from both rST and C.
Blue Swirl23130862009-06-06 08:22:04 +00007
Blue Swirl23130862009-06-06 08:22:04 +00008
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03009 {
10 .name = "help|?",
Wenchao Xia129be002013-08-27 20:38:26 +080011 .args_type = "name:S?",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -030012 .params = "[cmd]",
13 .help = "show the help",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +040014 .cmd = do_help_cmd,
Dr. David Alan Gilbert31785f12018-06-20 16:39:42 +010015 .flags = "p",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -030016 },
17
Peter Maydella6b30bc2020-02-28 15:36:06 +000018SRST
19``help`` or ``?`` [*cmd*]
20 Show the help for all commands or just for command *cmd*.
21ERST
Blue Swirl23130862009-06-06 08:22:04 +000022
Luiz Capitulinod7f9b682009-10-07 13:41:50 -030023 {
24 .name = "commit",
25 .args_type = "device:B",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -030026 .params = "device|all",
27 .help = "commit changes to the disk images (if -snapshot is used) or backing files",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +040028 .cmd = hmp_commit,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -030029 },
30
Peter Maydella6b30bc2020-02-28 15:36:06 +000031SRST
32``commit``
33 Commit changes to the disk images (if -snapshot is used) or backing files.
34 If the backing file is smaller than the snapshot, then the backing file
35 will be resized to be the same size as the snapshot. If the snapshot is
36 smaller than the backing file, the backing file will not be truncated.
37 If you want the backing file to match the size of the smaller snapshot,
38 you can safely truncate it yourself once the commit operation successfully
39 completes.
40ERST
Blue Swirl23130862009-06-06 08:22:04 +000041
Luiz Capitulinod7f9b682009-10-07 13:41:50 -030042 {
Peter Maydellff688cd2020-11-21 15:17:11 +000043 .name = "quit|q",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -030044 .args_type = "",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -030045 .params = "",
46 .help = "quit the emulator",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +040047 .cmd = hmp_quit,
Paolo Bonziniebe34442020-10-27 06:56:32 -040048 .flags = "p",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -030049 },
50
Peter Maydella6b30bc2020-02-28 15:36:06 +000051SRST
Peter Maydellff688cd2020-11-21 15:17:11 +000052``quit`` or ``q``
Peter Maydella6b30bc2020-02-28 15:36:06 +000053 Quit the emulator.
54ERST
Blue Swirl23130862009-06-06 08:22:04 +000055
Luiz Capitulinod7f9b682009-10-07 13:41:50 -030056 {
Dr. David Alan Gilbert8e8581e2018-06-20 16:39:46 +010057 .name = "exit_preconfig",
58 .args_type = "",
59 .params = "",
60 .help = "exit the preconfig state",
61 .cmd = hmp_exit_preconfig,
62 .flags = "p",
63 },
64
Peter Maydella6b30bc2020-02-28 15:36:06 +000065SRST
66``exit_preconfig``
67 This command makes QEMU exit the preconfig state and proceed with
68 VM initialization using configuration data provided on the command line
69 and via the QMP monitor during the preconfig state. The command is only
70 available during the preconfig state (i.e. when the --preconfig command
71 line option was in use).
72ERST
Dr. David Alan Gilbert8e8581e2018-06-20 16:39:46 +010073
74 {
Christoph Hellwig6d4a2b32011-01-24 13:32:33 +010075 .name = "block_resize",
76 .args_type = "device:B,size:o",
77 .params = "device size",
78 .help = "resize a block image",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +040079 .cmd = hmp_block_resize,
Kevin Wolfeb94b812020-10-05 17:58:55 +020080 .coroutine = true,
Christoph Hellwig6d4a2b32011-01-24 13:32:33 +010081 },
82
Peter Maydella6b30bc2020-02-28 15:36:06 +000083SRST
84``block_resize``
85 Resize a block image while a guest is running. Usually requires guest
86 action to see the updated size. Resize to a lower size is supported,
87 but should be used with extreme caution. Note that this command only
88 resizes image files, it can not resize block devices like LVM volumes.
89ERST
Christoph Hellwig6d4a2b32011-01-24 13:32:33 +010090
Stefan Hajnoczi12bd4512012-01-18 14:40:46 +000091 {
92 .name = "block_stream",
Stefan Hajnoczic83c66c2012-04-25 16:51:03 +010093 .args_type = "device:B,speed:o?,base:s?",
94 .params = "device [speed [base]]",
Stefan Hajnoczi12bd4512012-01-18 14:40:46 +000095 .help = "copy data from a backing file into a block device",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +040096 .cmd = hmp_block_stream,
Stefan Hajnoczi12bd4512012-01-18 14:40:46 +000097 },
98
Peter Maydella6b30bc2020-02-28 15:36:06 +000099SRST
100``block_stream``
101 Copy data from a backing file into a block device.
102ERST
Christoph Hellwig6d4a2b32011-01-24 13:32:33 +0100103
104 {
Stefan Hajnoczi2d47c6e2012-01-18 14:40:47 +0000105 .name = "block_job_set_speed",
Stefan Hajnoczi882ec7c2012-04-25 16:51:02 +0100106 .args_type = "device:B,speed:o",
107 .params = "device speed",
Stefan Hajnoczi2d47c6e2012-01-18 14:40:47 +0000108 .help = "set maximum speed for a background block operation",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +0400109 .cmd = hmp_block_job_set_speed,
Stefan Hajnoczi2d47c6e2012-01-18 14:40:47 +0000110 },
111
Peter Maydella6b30bc2020-02-28 15:36:06 +0000112SRST
113``block_job_set_speed``
114 Set maximum speed for a background block operation.
115ERST
Stefan Hajnoczi2d47c6e2012-01-18 14:40:47 +0000116
117 {
Stefan Hajnoczi370521a2012-01-18 14:40:48 +0000118 .name = "block_job_cancel",
Paolo Bonzini6e37fb82012-09-28 17:22:51 +0200119 .args_type = "force:-f,device:B",
120 .params = "[-f] device",
121 .help = "stop an active background block operation (use -f"
Liang Lib76e4452018-03-13 08:12:16 -0400122 "\n\t\t\t if you want to abort the operation immediately"
123 "\n\t\t\t instead of keep running until data is in sync)",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +0400124 .cmd = hmp_block_job_cancel,
Stefan Hajnoczi370521a2012-01-18 14:40:48 +0000125 },
126
Peter Maydella6b30bc2020-02-28 15:36:06 +0000127SRST
128``block_job_cancel``
129 Stop an active background block operation (streaming, mirroring).
130ERST
Paolo Bonziniaeae8832012-10-18 16:49:21 +0200131
132 {
133 .name = "block_job_complete",
134 .args_type = "device:B",
135 .params = "device",
136 .help = "stop an active background block operation",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +0400137 .cmd = hmp_block_job_complete,
Paolo Bonziniaeae8832012-10-18 16:49:21 +0200138 },
139
Peter Maydella6b30bc2020-02-28 15:36:06 +0000140SRST
141``block_job_complete``
142 Manually trigger completion of an active background block operation.
143 For mirroring, this will switch the device to the destination path.
144ERST
Stefan Hajnoczi370521a2012-01-18 14:40:48 +0000145
146 {
Paolo Bonzini6e37fb82012-09-28 17:22:51 +0200147 .name = "block_job_pause",
148 .args_type = "device:B",
149 .params = "device",
150 .help = "pause an active background block operation",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +0400151 .cmd = hmp_block_job_pause,
Paolo Bonzini6e37fb82012-09-28 17:22:51 +0200152 },
153
Peter Maydella6b30bc2020-02-28 15:36:06 +0000154SRST
155``block_job_pause``
156 Pause an active block streaming operation.
157ERST
Paolo Bonzini6e37fb82012-09-28 17:22:51 +0200158
159 {
160 .name = "block_job_resume",
161 .args_type = "device:B",
162 .params = "device",
163 .help = "resume a paused background block operation",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +0400164 .cmd = hmp_block_job_resume,
Paolo Bonzini6e37fb82012-09-28 17:22:51 +0200165 },
166
Peter Maydella6b30bc2020-02-28 15:36:06 +0000167SRST
168``block_job_resume``
169 Resume a paused block streaming operation.
170ERST
Paolo Bonzini6e37fb82012-09-28 17:22:51 +0200171
172 {
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300173 .name = "eject",
Luiz Capitulino78d714e2009-12-14 18:53:21 -0200174 .args_type = "force:-f,device:B",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300175 .params = "[-f] device",
176 .help = "eject a removable medium (use -f to force it)",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +0400177 .cmd = hmp_eject,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300178 },
179
Peter Maydella6b30bc2020-02-28 15:36:06 +0000180SRST
181``eject [-f]`` *device*
182 Eject a removable medium (use -f to force it).
183ERST
Blue Swirl23130862009-06-06 08:22:04 +0000184
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300185 {
Ryan Harper9063f812010-11-12 11:07:13 -0600186 .name = "drive_del",
Hani Benhabilesf7bdc412014-04-13 16:25:05 +0100187 .args_type = "id:B",
Ryan Harper9063f812010-11-12 11:07:13 -0600188 .params = "device",
189 .help = "remove host block device",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +0400190 .cmd = hmp_drive_del,
Ryan Harper9063f812010-11-12 11:07:13 -0600191 },
192
Peter Maydella6b30bc2020-02-28 15:36:06 +0000193SRST
194``drive_del`` *device*
195 Remove host block device. The result is that guest generated IO is no longer
196 submitted against the host device underlying the disk. Once a drive has
197 been deleted, the QEMU Block layer returns -EIO which results in IO
198 errors in the guest for applications that are reading/writing to the device.
199 These errors are always reported to the guest, regardless of the drive's error
200 actions (drive options rerror, werror).
201ERST
Ryan Harper9063f812010-11-12 11:07:13 -0600202
203 {
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300204 .name = "change",
Max Reitzbaead0a2015-10-26 21:39:18 +0100205 .args_type = "device:B,target:F,arg:s?,read-only-mode:s?",
206 .params = "device filename [format [read-only-mode]]",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300207 .help = "change a removable medium, optional format",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +0400208 .cmd = hmp_change,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300209 },
210
Peter Maydella6b30bc2020-02-28 15:36:06 +0000211SRST
212``change`` *device* *setting*
213 Change the configuration of a device.
214
215 ``change`` *diskdevice* *filename* [*format* [*read-only-mode*]]
216 Change the medium for a removable disk device to point to *filename*. eg::
217
218 (qemu) change ide1-cd0 /path/to/some.iso
219
220 *format* is optional.
221
222 *read-only-mode* may be used to change the read-only status of the device.
223 It accepts the following values:
224
225 retain
226 Retains the current status; this is the default.
227
228 read-only
229 Makes the device read-only.
230
231 read-write
232 Makes the device writable.
233
234 ``change vnc`` *display*,\ *options*
235 Change the configuration of the VNC server. The valid syntax for *display*
236 and *options* are described at :ref:`sec_005finvocation`. eg::
237
238 (qemu) change vnc localhost:1
239
240 ``change vnc password`` [*password*]
241
242 Change the password associated with the VNC server. If the new password
243 is not supplied, the monitor will prompt for it to be entered. VNC
244 passwords are only significant up to 8 letters. eg::
245
246 (qemu) change vnc password
247 Password: ********
248
249ERST
Blue Swirl23130862009-06-06 08:22:04 +0000250
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300251 {
252 .name = "screendump",
Thomas Huthf771c542018-03-05 17:37:48 +0100253 .args_type = "filename:F,device:s?,head:i?",
254 .params = "filename [device [head]]",
255 .help = "save screen from head 'head' of display device 'device' "
256 "into PPM image 'filename'",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +0400257 .cmd = hmp_screendump,
Marc-André Lureau0d9b90c2020-10-27 17:36:02 +0400258 .coroutine = true,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300259 },
260
Peter Maydella6b30bc2020-02-28 15:36:06 +0000261SRST
262``screendump`` *filename*
263 Save screen into PPM image *filename*.
264ERST
Blue Swirl23130862009-06-06 08:22:04 +0000265
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300266 {
267 .name = "logfile",
268 .args_type = "filename:F",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300269 .params = "filename",
270 .help = "output logs to 'filename'",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +0400271 .cmd = hmp_logfile,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300272 },
273
Peter Maydella6b30bc2020-02-28 15:36:06 +0000274SRST
275``logfile`` *filename*
276 Output logs to *filename*.
277ERST
Blue Swirl23130862009-06-06 08:22:04 +0000278
Prerna Saxena22890ab2010-06-24 17:04:53 +0530279 {
280 .name = "trace-event",
Lluís Vilanova77e2b172016-07-11 12:53:57 +0200281 .args_type = "name:s,option:b,vcpu:i?",
282 .params = "name on|off [vcpu]",
283 .help = "changes status of a specific trace event "
284 "(vcpu: vCPU to set, default is all)",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +0400285 .cmd = hmp_trace_event,
Dr. David Alan Gilbert987bd272015-08-14 11:27:43 +0100286 .command_completion = trace_event_completion,
Prerna Saxena22890ab2010-06-24 17:04:53 +0530287 },
288
Peter Maydella6b30bc2020-02-28 15:36:06 +0000289SRST
290``trace-event``
291 changes status of a trace event
292ERST
Stefan Hajnoczic5ceb522010-07-13 09:26:33 +0100293
Michael Rothc45a8162011-10-02 08:44:37 -0500294#if defined(CONFIG_TRACE_SIMPLE)
Stefan Hajnoczic5ceb522010-07-13 09:26:33 +0100295 {
296 .name = "trace-file",
297 .args_type = "op:s?,arg:F?",
298 .params = "on|off|flush|set [arg]",
299 .help = "open, close, or flush trace file, or set a new file name",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +0400300 .cmd = hmp_trace_file,
Stefan Hajnoczic5ceb522010-07-13 09:26:33 +0100301 },
302
Peter Maydella6b30bc2020-02-28 15:36:06 +0000303SRST
304``trace-file on|off|flush``
305 Open, close, or flush the trace file. If no argument is given, the
306 status of the trace file is displayed.
307ERST
Prerna Saxena22890ab2010-06-24 17:04:53 +0530308#endif
309
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300310 {
311 .name = "log",
312 .args_type = "items:s",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300313 .params = "item1[,...]",
Peter Maydell989b6972013-02-26 17:52:40 +0000314 .help = "activate logging of the specified items",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +0400315 .cmd = hmp_log,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300316 },
317
Peter Maydella6b30bc2020-02-28 15:36:06 +0000318SRST
319``log`` *item1*\ [,...]
320 Activate logging of the specified items.
321ERST
Blue Swirl23130862009-06-06 08:22:04 +0000322
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300323 {
324 .name = "savevm",
325 .args_type = "name:s?",
Daniel Henrique Barboza6ca08042018-11-07 11:09:58 -0200326 .params = "tag",
327 .help = "save a VM snapshot. If no tag is provided, a new snapshot is created",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +0400328 .cmd = hmp_savevm,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300329 },
330
Peter Maydella6b30bc2020-02-28 15:36:06 +0000331SRST
332``savevm`` *tag*
333 Create a snapshot of the whole virtual machine. If *tag* is
334 provided, it is used as human readable identifier. If there is already
335 a snapshot with the same tag, it is replaced. More info at
336 :ref:`vm_005fsnapshots`.
337
338 Since 4.0, savevm stopped allowing the snapshot id to be set, accepting
339 only *tag* as parameter.
340ERST
Blue Swirl23130862009-06-06 08:22:04 +0000341
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300342 {
343 .name = "loadvm",
344 .args_type = "name:s",
Daniel Henrique Barboza6ca08042018-11-07 11:09:58 -0200345 .params = "tag",
346 .help = "restore a VM snapshot from its tag",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +0400347 .cmd = hmp_loadvm,
Hani Benhabilesb21631f2014-05-27 23:39:37 +0100348 .command_completion = loadvm_completion,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300349 },
350
Peter Maydella6b30bc2020-02-28 15:36:06 +0000351SRST
352``loadvm`` *tag*
353 Set the whole virtual machine to the snapshot identified by the tag
354 *tag*.
355
356 Since 4.0, loadvm stopped accepting snapshot id as parameter.
357ERST
Blue Swirl23130862009-06-06 08:22:04 +0000358
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300359 {
360 .name = "delvm",
361 .args_type = "name:s",
Daniel Henrique Barboza6ca08042018-11-07 11:09:58 -0200362 .params = "tag",
363 .help = "delete a VM snapshot from its tag",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +0400364 .cmd = hmp_delvm,
Hani Benhabilesb21631f2014-05-27 23:39:37 +0100365 .command_completion = delvm_completion,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300366 },
367
Peter Maydella6b30bc2020-02-28 15:36:06 +0000368SRST
369``delvm`` *tag*
370 Delete the snapshot identified by *tag*.
371
372 Since 4.0, delvm stopped deleting snapshots by snapshot id, accepting
373 only *tag* as parameter.
374ERST
Blue Swirl23130862009-06-06 08:22:04 +0000375
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300376 {
377 .name = "singlestep",
378 .args_type = "option:s?",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300379 .params = "[on|off]",
380 .help = "run emulation in singlestep mode or switch to normal mode",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +0400381 .cmd = hmp_singlestep,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300382 },
383
Peter Maydella6b30bc2020-02-28 15:36:06 +0000384SRST
385``singlestep [off]``
386 Run the emulation in single step mode.
387 If called with option off, the emulation returns to normal mode.
388ERST
Blue Swirl23130862009-06-06 08:22:04 +0000389
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300390 {
391 .name = "stop",
392 .args_type = "",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300393 .params = "",
394 .help = "stop emulation",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +0400395 .cmd = hmp_stop,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300396 },
397
Peter Maydella6b30bc2020-02-28 15:36:06 +0000398SRST
399``stop``
400 Stop emulation.
401ERST
Blue Swirl23130862009-06-06 08:22:04 +0000402
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300403 {
Peter Maydellff688cd2020-11-21 15:17:11 +0000404 .name = "cont|c",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300405 .args_type = "",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300406 .params = "",
407 .help = "resume emulation",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +0400408 .cmd = hmp_cont,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300409 },
410
Peter Maydella6b30bc2020-02-28 15:36:06 +0000411SRST
Peter Maydellff688cd2020-11-21 15:17:11 +0000412``cont`` or ``c``
Peter Maydella6b30bc2020-02-28 15:36:06 +0000413 Resume emulation.
414ERST
Blue Swirl23130862009-06-06 08:22:04 +0000415
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300416 {
Gerd Hoffmann9b9df252012-02-23 13:45:21 +0100417 .name = "system_wakeup",
418 .args_type = "",
419 .params = "",
420 .help = "wakeup guest from suspend",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +0400421 .cmd = hmp_system_wakeup,
Gerd Hoffmann9b9df252012-02-23 13:45:21 +0100422 },
423
Peter Maydella6b30bc2020-02-28 15:36:06 +0000424SRST
425``system_wakeup``
426 Wakeup guest from suspend.
427ERST
Gerd Hoffmann9b9df252012-02-23 13:45:21 +0100428
429 {
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300430 .name = "gdbserver",
431 .args_type = "device:s?",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300432 .params = "[device]",
433 .help = "start gdbserver on given device (default 'tcp::1234'), stop with 'none'",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +0400434 .cmd = hmp_gdbserver,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300435 },
436
Peter Maydella6b30bc2020-02-28 15:36:06 +0000437SRST
438``gdbserver`` [*port*]
439 Start gdbserver session (default *port*\=1234)
440ERST
Blue Swirl23130862009-06-06 08:22:04 +0000441
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300442 {
443 .name = "x",
444 .args_type = "fmt:/,addr:l",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300445 .params = "/fmt addr",
446 .help = "virtual memory dump starting at 'addr'",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +0400447 .cmd = hmp_memory_dump,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300448 },
449
Peter Maydella6b30bc2020-02-28 15:36:06 +0000450SRST
451``x/``\ *fmt* *addr*
452 Virtual memory dump starting at *addr*.
453ERST
Blue Swirl23130862009-06-06 08:22:04 +0000454
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300455 {
456 .name = "xp",
457 .args_type = "fmt:/,addr:l",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300458 .params = "/fmt addr",
459 .help = "physical memory dump starting at 'addr'",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +0400460 .cmd = hmp_physical_memory_dump,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300461 },
462
Peter Maydella6b30bc2020-02-28 15:36:06 +0000463SRST
464``xp /``\ *fmt* *addr*
465 Physical memory dump starting at *addr*.
466
467 *fmt* is a format which tells the command how to format the
468 data. Its syntax is: ``/{count}{format}{size}``
469
470 *count*
471 is the number of items to be dumped.
472 *format*
473 can be x (hex), d (signed decimal), u (unsigned decimal), o (octal),
474 c (char) or i (asm instruction).
475 *size*
476 can be b (8 bits), h (16 bits), w (32 bits) or g (64 bits). On x86,
477 ``h`` or ``w`` can be specified with the ``i`` format to
478 respectively select 16 or 32 bit code instruction size.
479
480 Examples:
481
482 Dump 10 instructions at the current instruction pointer::
483
484 (qemu) x/10i $eip
485 0x90107063: ret
486 0x90107064: sti
487 0x90107065: lea 0x0(%esi,1),%esi
488 0x90107069: lea 0x0(%edi,1),%edi
489 0x90107070: ret
490 0x90107071: jmp 0x90107080
491 0x90107073: nop
492 0x90107074: nop
493 0x90107075: nop
494 0x90107076: nop
495
496 Dump 80 16 bit values at the start of the video memory::
497
498 (qemu) xp/80hx 0xb8000
499 0x000b8000: 0x0b50 0x0b6c 0x0b65 0x0b78 0x0b38 0x0b36 0x0b2f 0x0b42
500 0x000b8010: 0x0b6f 0x0b63 0x0b68 0x0b73 0x0b20 0x0b56 0x0b47 0x0b41
501 0x000b8020: 0x0b42 0x0b69 0x0b6f 0x0b73 0x0b20 0x0b63 0x0b75 0x0b72
502 0x000b8030: 0x0b72 0x0b65 0x0b6e 0x0b74 0x0b2d 0x0b63 0x0b76 0x0b73
503 0x000b8040: 0x0b20 0x0b30 0x0b35 0x0b20 0x0b4e 0x0b6f 0x0b76 0x0b20
504 0x000b8050: 0x0b32 0x0b30 0x0b30 0x0b33 0x0720 0x0720 0x0720 0x0720
505 0x000b8060: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
506 0x000b8070: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
507 0x000b8080: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
508 0x000b8090: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
509
510ERST
Blue Swirl23130862009-06-06 08:22:04 +0000511
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300512 {
Paolo Bonzinie9628442017-04-20 15:30:58 +0200513 .name = "gpa2hva",
514 .args_type = "addr:l",
515 .params = "addr",
516 .help = "print the host virtual address corresponding to a guest physical address",
517 .cmd = hmp_gpa2hva,
518 },
519
Peter Maydella6b30bc2020-02-28 15:36:06 +0000520SRST
521``gpa2hva`` *addr*
522 Print the host virtual address at which the guest's physical address *addr*
523 is mapped.
524ERST
Paolo Bonzinie9628442017-04-20 15:30:58 +0200525
526#ifdef CONFIG_LINUX
527 {
528 .name = "gpa2hpa",
529 .args_type = "addr:l",
530 .params = "addr",
531 .help = "print the host physical address corresponding to a guest physical address",
532 .cmd = hmp_gpa2hpa,
533 },
534#endif
535
Peter Maydella6b30bc2020-02-28 15:36:06 +0000536SRST
537``gpa2hpa`` *addr*
538 Print the host physical address at which the guest's physical address *addr*
539 is mapped.
540ERST
Paolo Bonzinie9628442017-04-20 15:30:58 +0200541
542 {
Dr. David Alan Gilbert574d9692019-04-12 16:26:52 +0100543 .name = "gva2gpa",
544 .args_type = "addr:l",
545 .params = "addr",
546 .help = "print the guest physical address corresponding to a guest virtual address",
547 .cmd = hmp_gva2gpa,
548 },
549
Peter Maydella6b30bc2020-02-28 15:36:06 +0000550SRST
551``gva2gpa`` *addr*
552 Print the guest physical address at which the guest's virtual address *addr*
553 is mapped based on the mapping for the current CPU.
554ERST
Dr. David Alan Gilbert574d9692019-04-12 16:26:52 +0100555
556 {
Peter Maydellff688cd2020-11-21 15:17:11 +0000557 .name = "print|p",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300558 .args_type = "fmt:/,val:l",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300559 .params = "/fmt expr",
560 .help = "print expression value (use $reg for CPU register access)",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +0400561 .cmd = do_print,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300562 },
563
Peter Maydella6b30bc2020-02-28 15:36:06 +0000564SRST
Peter Maydellff688cd2020-11-21 15:17:11 +0000565``print`` or ``p/``\ *fmt* *expr*
Peter Maydella6b30bc2020-02-28 15:36:06 +0000566 Print expression value. Only the *format* part of *fmt* is
567 used.
568ERST
Blue Swirl23130862009-06-06 08:22:04 +0000569
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300570 {
571 .name = "i",
572 .args_type = "fmt:/,addr:i,index:i.",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300573 .params = "/fmt addr",
574 .help = "I/O port read",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +0400575 .cmd = hmp_ioport_read,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300576 },
577
Peter Maydella6b30bc2020-02-28 15:36:06 +0000578SRST
579``i/``\ *fmt* *addr* [.\ *index*\ ]
580 Read I/O port.
581ERST
Blue Swirl23130862009-06-06 08:22:04 +0000582
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300583 {
584 .name = "o",
585 .args_type = "fmt:/,addr:i,val:i",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300586 .params = "/fmt addr value",
587 .help = "I/O port write",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +0400588 .cmd = hmp_ioport_write,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300589 },
590
Peter Maydella6b30bc2020-02-28 15:36:06 +0000591SRST
592``o/``\ *fmt* *addr* *val*
593 Write to I/O port.
594ERST
Blue Swirl23130862009-06-06 08:22:04 +0000595
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300596 {
597 .name = "sendkey",
Amos Kong2ef20c12012-08-31 10:56:22 +0800598 .args_type = "keys:s,hold-time:i?",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300599 .params = "keys [hold_ms]",
600 .help = "send keys to the VM (e.g. 'sendkey ctrl-alt-f1', default hold time=100 ms)",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +0400601 .cmd = hmp_sendkey,
Hani Benhabiles29136cd2014-05-07 23:41:27 +0100602 .command_completion = sendkey_completion,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300603 },
604
Peter Maydella6b30bc2020-02-28 15:36:06 +0000605SRST
606``sendkey`` *keys*
607 Send *keys* to the guest. *keys* could be the name of the
608 key or the raw value in hexadecimal format. Use ``-`` to press
609 several keys simultaneously. Example::
610
611 sendkey ctrl-alt-f1
612
613 This command is useful to send keys that your graphical user interface
614 intercepts at low level, such as ``ctrl-alt-f1`` in X Window.
615ERST
Emilio G. Cotadd12e1b2018-08-15 16:00:03 -0400616 {
617 .name = "sync-profile",
618 .args_type = "op:s?",
619 .params = "[on|off|reset]",
620 .help = "enable, disable or reset synchronization profiling. "
621 "With no arguments, prints whether profiling is on or off.",
622 .cmd = hmp_sync_profile,
623 },
624
Peter Maydella6b30bc2020-02-28 15:36:06 +0000625SRST
626``sync-profile [on|off|reset]``
627 Enable, disable or reset synchronization profiling. With no arguments, prints
628 whether profiling is on or off.
629ERST
Blue Swirl23130862009-06-06 08:22:04 +0000630
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300631 {
632 .name = "system_reset",
633 .args_type = "",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300634 .params = "",
635 .help = "reset the system",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +0400636 .cmd = hmp_system_reset,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300637 },
638
Peter Maydella6b30bc2020-02-28 15:36:06 +0000639SRST
640``system_reset``
641 Reset the system.
642ERST
Blue Swirl23130862009-06-06 08:22:04 +0000643
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300644 {
645 .name = "system_powerdown",
646 .args_type = "",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300647 .params = "",
648 .help = "send system power down event",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +0400649 .cmd = hmp_system_powerdown,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300650 },
651
Peter Maydella6b30bc2020-02-28 15:36:06 +0000652SRST
653``system_powerdown``
654 Power down the system (if supported).
655ERST
Blue Swirl23130862009-06-06 08:22:04 +0000656
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300657 {
658 .name = "sum",
659 .args_type = "start:i,size:i",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300660 .params = "addr size",
661 .help = "compute the checksum of a memory region",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +0400662 .cmd = hmp_sum,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300663 },
664
Peter Maydella6b30bc2020-02-28 15:36:06 +0000665SRST
666``sum`` *addr* *size*
667 Compute the checksum of a memory region.
668ERST
Blue Swirl23130862009-06-06 08:22:04 +0000669
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300670 {
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300671 .name = "device_add",
Markus Armbrusterc7e4e8c2010-02-10 20:47:28 +0100672 .args_type = "device:O",
673 .params = "driver[,prop=value][,...]",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300674 .help = "add device, like -device on the command line",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +0400675 .cmd = hmp_device_add,
Hani Benhabiles2da1b3a2014-04-13 16:25:07 +0100676 .command_completion = device_add_completion,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300677 },
678
Peter Maydella6b30bc2020-02-28 15:36:06 +0000679SRST
680``device_add`` *config*
681 Add device.
682ERST
Gerd Hoffmann3418bd22009-09-25 21:42:41 +0200683
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300684 {
685 .name = "device_del",
686 .args_type = "id:s",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300687 .params = "device",
688 .help = "remove device",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +0400689 .cmd = hmp_device_del,
Hani Benhabiles2da1b3a2014-04-13 16:25:07 +0100690 .command_completion = device_del_completion,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300691 },
692
Peter Maydella6b30bc2020-02-28 15:36:06 +0000693SRST
694``device_del`` *id*
695 Remove device *id*. *id* may be a short ID
696 or a QOM object path.
697ERST
Gerd Hoffmann3418bd22009-09-25 21:42:41 +0200698
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300699 {
700 .name = "cpu",
701 .args_type = "index:i",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300702 .params = "index",
703 .help = "set the default CPU",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +0400704 .cmd = hmp_cpu,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300705 },
Gerd Hoffmann3418bd22009-09-25 21:42:41 +0200706
Peter Maydella6b30bc2020-02-28 15:36:06 +0000707SRST
708``cpu`` *index*
709 Set the default CPU.
710ERST
Blue Swirl23130862009-06-06 08:22:04 +0000711
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300712 {
713 .name = "mouse_move",
714 .args_type = "dx_str:s,dy_str:s,dz_str:s?",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300715 .params = "dx dy [dz]",
716 .help = "send mouse move events",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +0400717 .cmd = hmp_mouse_move,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300718 },
719
Peter Maydella6b30bc2020-02-28 15:36:06 +0000720SRST
721``mouse_move`` *dx* *dy* [*dz*]
722 Move the active mouse to the specified coordinates *dx* *dy*
723 with optional scroll axis *dz*.
724ERST
Blue Swirl23130862009-06-06 08:22:04 +0000725
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300726 {
727 .name = "mouse_button",
728 .args_type = "button_state:i",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300729 .params = "state",
730 .help = "change mouse button state (1=L, 2=M, 4=R)",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +0400731 .cmd = hmp_mouse_button,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300732 },
733
Peter Maydella6b30bc2020-02-28 15:36:06 +0000734SRST
735``mouse_button`` *val*
736 Change the active mouse button state *val* (1=L, 2=M, 4=R).
737ERST
Blue Swirl23130862009-06-06 08:22:04 +0000738
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300739 {
740 .name = "mouse_set",
741 .args_type = "index:i",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300742 .params = "index",
743 .help = "set which mouse device receives events",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +0400744 .cmd = hmp_mouse_set,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300745 },
746
Peter Maydella6b30bc2020-02-28 15:36:06 +0000747SRST
748``mouse_set`` *index*
749 Set which mouse device receives events at given *index*, index
750 can be obtained with::
751
752 info mice
753
754ERST
Blue Swirl23130862009-06-06 08:22:04 +0000755
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300756 {
757 .name = "wavcapture",
Kővágó, Zoltánf0b9f362019-08-19 01:06:48 +0200758 .args_type = "path:F,audiodev:s,freq:i?,bits:i?,nchannels:i?",
759 .params = "path audiodev [frequency [bits [channels]]]",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300760 .help = "capture audio to a wave file (default frequency=44100 bits=16 channels=2)",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +0400761 .cmd = hmp_wavcapture,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300762 },
Peter Maydella6b30bc2020-02-28 15:36:06 +0000763SRST
764``wavcapture`` *filename* *audiodev* [*frequency* [*bits* [*channels*]]]
765 Capture audio into *filename* from *audiodev*, using sample rate
766 *frequency* bits per sample *bits* and number of channels
767 *channels*.
768
769 Defaults:
770
771 - Sample rate = 44100 Hz - CD quality
772 - Bits = 16
773 - Number of channels = 2 - Stereo
774ERST
Blue Swirl23130862009-06-06 08:22:04 +0000775
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300776 {
777 .name = "stopcapture",
778 .args_type = "n:i",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300779 .params = "capture index",
780 .help = "stop capture",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +0400781 .cmd = hmp_stopcapture,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300782 },
Peter Maydella6b30bc2020-02-28 15:36:06 +0000783SRST
784``stopcapture`` *index*
785 Stop capture with a given *index*, index can be obtained with::
786
787 info capture
788
789ERST
Blue Swirl23130862009-06-06 08:22:04 +0000790
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300791 {
792 .name = "memsave",
793 .args_type = "val:l,size:i,filename:s",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300794 .params = "addr size file",
795 .help = "save to disk virtual memory dump starting at 'addr' of size 'size'",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +0400796 .cmd = hmp_memsave,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300797 },
798
Peter Maydella6b30bc2020-02-28 15:36:06 +0000799SRST
800``memsave`` *addr* *size* *file*
801 save to disk virtual memory dump starting at *addr* of size *size*.
802ERST
Blue Swirl23130862009-06-06 08:22:04 +0000803
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300804 {
805 .name = "pmemsave",
806 .args_type = "val:l,size:i,filename:s",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300807 .params = "addr size file",
808 .help = "save to disk physical memory dump starting at 'addr' of size 'size'",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +0400809 .cmd = hmp_pmemsave,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300810 },
811
Peter Maydella6b30bc2020-02-28 15:36:06 +0000812SRST
813``pmemsave`` *addr* *size* *file*
814 save to disk physical memory dump starting at *addr* of size *size*.
815ERST
Blue Swirl23130862009-06-06 08:22:04 +0000816
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300817 {
818 .name = "boot_set",
819 .args_type = "bootdevice:s",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300820 .params = "bootdevice",
821 .help = "define new values for the boot device list",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +0400822 .cmd = hmp_boot_set,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300823 },
824
Peter Maydella6b30bc2020-02-28 15:36:06 +0000825SRST
826``boot_set`` *bootdevicelist*
827 Define new values for the boot device list. Those values will override
828 the values specified on the command line through the ``-boot`` option.
829
830 The values that can be specified here depend on the machine type, but are
831 the same that can be specified in the ``-boot`` command line option.
832ERST
Blue Swirl23130862009-06-06 08:22:04 +0000833
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300834 {
835 .name = "nmi",
Luiz Capitulinoe9b4b432011-04-29 12:11:50 -0300836 .args_type = "",
837 .params = "",
Alexey Kardashevskiy9cb805f2014-08-20 22:16:33 +1000838 .help = "inject an NMI",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +0400839 .cmd = hmp_nmi,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300840 },
Peter Maydella6b30bc2020-02-28 15:36:06 +0000841SRST
842``nmi`` *cpu*
843 Inject an NMI on the default CPU (x86/s390) or all CPUs (ppc64).
844ERST
Lei Li1f590cf2013-01-25 00:03:20 +0800845
846 {
Markus Armbruster3949e592013-02-06 21:27:24 +0100847 .name = "ringbuf_write",
Lei Li1f590cf2013-01-25 00:03:20 +0800848 .args_type = "device:s,data:s",
849 .params = "device data",
Markus Armbruster3949e592013-02-06 21:27:24 +0100850 .help = "Write to a ring buffer character device",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +0400851 .cmd = hmp_ringbuf_write,
Hani Benhabiles8e597772014-05-27 23:39:30 +0100852 .command_completion = ringbuf_write_completion,
Lei Li1f590cf2013-01-25 00:03:20 +0800853 },
854
Peter Maydella6b30bc2020-02-28 15:36:06 +0000855SRST
856``ringbuf_write`` *device* *data*
857 Write *data* to ring buffer character device *device*.
858 *data* must be a UTF-8 string.
859ERST
Blue Swirl23130862009-06-06 08:22:04 +0000860
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300861 {
Markus Armbruster3949e592013-02-06 21:27:24 +0100862 .name = "ringbuf_read",
Lei Li49b6d722013-01-25 00:03:21 +0800863 .args_type = "device:s,size:i",
864 .params = "device size",
Markus Armbruster3949e592013-02-06 21:27:24 +0100865 .help = "Read from a ring buffer character device",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +0400866 .cmd = hmp_ringbuf_read,
Hani Benhabiles8e597772014-05-27 23:39:30 +0100867 .command_completion = ringbuf_write_completion,
Lei Li49b6d722013-01-25 00:03:21 +0800868 },
869
Peter Maydella6b30bc2020-02-28 15:36:06 +0000870SRST
871``ringbuf_read`` *device*
872 Read and print up to *size* bytes from ring buffer character
873 device *device*.
874 Certain non-printable characters are printed ``\uXXXX``, where ``XXXX`` is the
875 character code in hexadecimal. Character ``\`` is printed ``\\``.
876 Bug: can screw up when the buffer contains invalid UTF-8 sequences,
877 NUL characters, after the ring buffer lost data, and when reading
878 stops because the size limit is reached.
879ERST
Lei Li49b6d722013-01-25 00:03:21 +0800880
881 {
Dr. David Alan Gilbert544f6ea2019-02-27 13:24:12 +0000882 .name = "announce_self",
Dr. David Alan Gilbertc6644542019-06-20 19:47:05 +0100883 .args_type = "interfaces:s?,id:s?",
884 .params = "[interfaces] [id]",
Dr. David Alan Gilbert544f6ea2019-02-27 13:24:12 +0000885 .help = "Trigger GARP/RARP announcements",
886 .cmd = hmp_announce_self,
887 },
888
Peter Maydella6b30bc2020-02-28 15:36:06 +0000889SRST
890``announce_self``
891 Trigger a round of GARP/RARP broadcasts; this is useful for explicitly
892 updating the network infrastructure after a reconfiguration or some forms
893 of migration. The timings of the round are set by the migration announce
894 parameters. An optional comma separated *interfaces* list restricts the
895 announce to the named set of interfaces. An optional *id* can be used to
896 start a separate announce timer and to change the parameters of it later.
897ERST
Dr. David Alan Gilbert544f6ea2019-02-27 13:24:12 +0000898
899 {
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300900 .name = "migrate",
Peter Xu7a4da282018-05-02 18:47:23 +0800901 .args_type = "detach:-d,blk:-b,inc:-i,resume:-r,uri:s",
902 .params = "[-d] [-b] [-i] [-r] uri",
lirans@il.ibm.comfbc3d962009-11-02 15:41:13 +0200903 .help = "migrate to URI (using -d to not wait for completion)"
904 "\n\t\t\t -b for migration without shared storage with"
905 " full copy of disk\n\t\t\t -i for migration without "
906 "shared storage with incremental copy of disk "
Peter Xu7a4da282018-05-02 18:47:23 +0800907 "(base image shared between src and destination)"
908 "\n\t\t\t -r to resume a paused migration",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +0400909 .cmd = hmp_migrate,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300910 },
911
lirans@il.ibm.comfbc3d962009-11-02 15:41:13 +0200912
Peter Maydella6b30bc2020-02-28 15:36:06 +0000913SRST
914``migrate [-d] [-b] [-i]`` *uri*
915 Migrate to *uri* (using -d to not wait for completion).
916
917 ``-b``
918 for migration with full copy of disk
919 ``-i``
920 for migration with incremental copy of disk (base image is shared)
921ERST
Blue Swirl23130862009-06-06 08:22:04 +0000922
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300923 {
924 .name = "migrate_cancel",
925 .args_type = "",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300926 .params = "",
927 .help = "cancel the current VM migration",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +0400928 .cmd = hmp_migrate_cancel,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -0300929 },
930
Peter Maydella6b30bc2020-02-28 15:36:06 +0000931SRST
932``migrate_cancel``
933 Cancel the current VM migration.
934ERST
Orit Wasserman9e1ba4c2012-08-06 21:42:54 +0300935
Dr. David Alan Gilbert94ae12c2017-10-20 10:05:54 +0100936 {
937 .name = "migrate_continue",
938 .args_type = "state:s",
939 .params = "state",
940 .help = "Continue migration from the given paused state",
941 .cmd = hmp_migrate_continue,
942 },
Peter Maydella6b30bc2020-02-28 15:36:06 +0000943SRST
944``migrate_continue`` *state*
945 Continue migration from the paused state *state*
946ERST
Orit Wasserman9e1ba4c2012-08-06 21:42:54 +0300947
948 {
Dr. David Alan Gilbertbf1ae1f2015-02-19 11:40:28 +0000949 .name = "migrate_incoming",
950 .args_type = "uri:s",
951 .params = "uri",
952 .help = "Continue an incoming migration from an -incoming defer",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +0400953 .cmd = hmp_migrate_incoming,
Dr. David Alan Gilbertbf1ae1f2015-02-19 11:40:28 +0000954 },
955
Peter Maydella6b30bc2020-02-28 15:36:06 +0000956SRST
957``migrate_incoming`` *uri*
958 Continue an incoming migration using the *uri* (that has the same syntax
959 as the ``-incoming`` option).
960ERST
Dr. David Alan Gilbertbf1ae1f2015-02-19 11:40:28 +0000961
Peter Xu3b563c42018-05-02 18:47:37 +0800962 {
963 .name = "migrate_recover",
964 .args_type = "uri:s",
965 .params = "uri",
966 .help = "Continue a paused incoming postcopy migration",
967 .cmd = hmp_migrate_recover,
968 },
969
Peter Maydella6b30bc2020-02-28 15:36:06 +0000970SRST
971``migrate_recover`` *uri*
972 Continue a paused incoming postcopy migration using the *uri*.
973ERST
Dr. David Alan Gilbertbf1ae1f2015-02-19 11:40:28 +0000974
975 {
Peter Xud37297d2018-05-02 18:47:40 +0800976 .name = "migrate_pause",
977 .args_type = "",
978 .params = "",
979 .help = "Pause an ongoing migration (postcopy-only)",
980 .cmd = hmp_migrate_pause,
981 },
982
Peter Maydella6b30bc2020-02-28 15:36:06 +0000983SRST
984``migrate_pause``
985 Pause an ongoing migration. Currently it only supports postcopy.
986ERST
Peter Xud37297d2018-05-02 18:47:40 +0800987
988 {
Orit Wasserman9e1ba4c2012-08-06 21:42:54 +0300989 .name = "migrate_set_cache_size",
990 .args_type = "value:o",
991 .params = "value",
992 .help = "set cache size (in bytes) for XBZRLE migrations,"
993 "the cache size will be rounded down to the nearest "
994 "power of 2.\n"
995 "The cache size affects the number of cache misses."
996 "In case of a high cache miss ratio you need to increase"
997 " the cache size",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +0400998 .cmd = hmp_migrate_set_cache_size,
Orit Wasserman9e1ba4c2012-08-06 21:42:54 +0300999 },
1000
Peter Maydella6b30bc2020-02-28 15:36:06 +00001001SRST
1002``migrate_set_cache_size`` *value*
1003 Set cache size to *value* (in bytes) for xbzrle migrations.
1004ERST
Blue Swirl23130862009-06-06 08:22:04 +00001005
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001006 {
1007 .name = "migrate_set_speed",
Jes Sorensened3d4a82010-10-21 17:15:48 +02001008 .args_type = "value:o",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001009 .params = "value",
Jes Sorensened3d4a82010-10-21 17:15:48 +02001010 .help = "set maximum speed (in bytes) for migrations. "
1011 "Defaults to MB if no size suffix is specified, ie. B/K/M/G/T",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +04001012 .cmd = hmp_migrate_set_speed,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001013 },
1014
Peter Maydella6b30bc2020-02-28 15:36:06 +00001015SRST
1016``migrate_set_speed`` *value*
1017 Set maximum speed to *value* (in bytes) for migrations.
1018ERST
Blue Swirl23130862009-06-06 08:22:04 +00001019
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001020 {
1021 .name = "migrate_set_downtime",
Markus Armbrusterb0fbf7d2010-01-25 14:23:07 +01001022 .args_type = "value:T",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001023 .params = "value",
1024 .help = "set maximum tolerated downtime (in seconds) for migrations",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +04001025 .cmd = hmp_migrate_set_downtime,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001026 },
Glauber Costa2ea42952009-05-28 15:22:58 -04001027
Peter Maydella6b30bc2020-02-28 15:36:06 +00001028SRST
1029``migrate_set_downtime`` *second*
1030 Set maximum tolerated downtime (in seconds) for migration.
1031ERST
Glauber Costa2ea42952009-05-28 15:22:58 -04001032
Jes Sorensenf8882562010-12-16 13:52:16 +01001033 {
Orit Wasserman00458432012-08-06 21:42:48 +03001034 .name = "migrate_set_capability",
1035 .args_type = "capability:s,state:b",
1036 .params = "capability state",
1037 .help = "Enable/Disable the usage of a capability for migration",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +04001038 .cmd = hmp_migrate_set_capability,
Hani Benhabilesc68a0402014-05-27 23:39:32 +01001039 .command_completion = migrate_set_capability_completion,
Orit Wasserman00458432012-08-06 21:42:48 +03001040 },
1041
Peter Maydella6b30bc2020-02-28 15:36:06 +00001042SRST
1043``migrate_set_capability`` *capability* *state*
1044 Enable/Disable the usage of a capability *capability* for migration.
1045ERST
Orit Wasserman00458432012-08-06 21:42:48 +03001046
1047 {
Liang Li50e9a622015-03-23 16:32:29 +08001048 .name = "migrate_set_parameter",
Daniel P. Berrange69ef1f32016-04-27 11:05:15 +01001049 .args_type = "parameter:s,value:s",
Liang Li50e9a622015-03-23 16:32:29 +08001050 .params = "parameter value",
1051 .help = "Set the parameter for migration",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +04001052 .cmd = hmp_migrate_set_parameter,
Liang Li50e9a622015-03-23 16:32:29 +08001053 .command_completion = migrate_set_parameter_completion,
1054 },
1055
Peter Maydella6b30bc2020-02-28 15:36:06 +00001056SRST
1057``migrate_set_parameter`` *parameter* *value*
1058 Set the parameter *parameter* for migration.
1059ERST
Liang Li50e9a622015-03-23 16:32:29 +08001060
1061 {
Dr. David Alan Gilbert4886a1b2015-11-05 18:10:56 +00001062 .name = "migrate_start_postcopy",
1063 .args_type = "",
1064 .params = "",
Dr. David Alan Gilberta54d3402015-11-12 11:34:44 +00001065 .help = "Followup to a migration command to switch the migration"
Dr. David Alan Gilbert32c3db52016-03-11 09:53:36 +00001066 " to postcopy mode. The postcopy-ram capability must "
Greg Kurzc2eb7f22018-02-07 16:41:43 +01001067 "be set on both source and destination before the "
1068 "original migration command .",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +04001069 .cmd = hmp_migrate_start_postcopy,
Dr. David Alan Gilbert4886a1b2015-11-05 18:10:56 +00001070 },
1071
Peter Maydella6b30bc2020-02-28 15:36:06 +00001072SRST
1073``migrate_start_postcopy``
1074 Switch in-progress migration to postcopy mode. Ignored after the end of
1075 migration (or once already in postcopy).
1076ERST
Dr. David Alan Gilbert4886a1b2015-11-05 18:10:56 +00001077
1078 {
zhanghailiangd89e6662016-10-27 14:43:03 +08001079 .name = "x_colo_lost_heartbeat",
1080 .args_type = "",
1081 .params = "",
1082 .help = "Tell COLO that heartbeat is lost,\n\t\t\t"
1083 "a failover or takeover is needed.",
1084 .cmd = hmp_x_colo_lost_heartbeat,
1085 },
1086
Peter Maydella6b30bc2020-02-28 15:36:06 +00001087SRST
1088``x_colo_lost_heartbeat``
1089 Tell COLO that heartbeat is lost, a failover or takeover is needed.
1090ERST
zhanghailiangd89e6662016-10-27 14:43:03 +08001091
1092 {
Jes Sorensen2ea720d2011-03-09 16:54:34 +01001093 .name = "client_migrate_info",
1094 .args_type = "protocol:s,hostname:s,port:i?,tls-port:i?,cert-subject:s?",
1095 .params = "protocol hostname port tls-port cert-subject",
Markus Armbruster13cadef2015-03-05 19:16:58 +01001096 .help = "set migration information for remote display",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +04001097 .cmd = hmp_client_migrate_info,
Jes Sorensenf8882562010-12-16 13:52:16 +01001098 },
1099
Peter Maydella6b30bc2020-02-28 15:36:06 +00001100SRST
1101``client_migrate_info`` *protocol* *hostname* *port* *tls-port* *cert-subject*
1102 Set migration information for remote display. This makes the server
1103 ask the client to automatically reconnect using the new parameters
1104 once migration finished successfully. Only implemented for SPICE.
1105ERST
Gerd Hoffmanne866e232010-04-23 13:28:21 +02001106
Wen Congyang783e9b42012-05-07 12:10:47 +08001107 {
1108 .name = "dump-guest-memory",
Viktor Prutyanov2da91b52018-05-17 19:23:39 +03001109 .args_type = "paging:-p,detach:-d,windmp:-w,zlib:-z,lzo:-l,snappy:-s,filename:F,begin:l?,length:l?",
1110 .params = "[-p] [-d] [-z|-l|-s|-w] filename [begin length]",
Qiao Nuohanc20499d2014-04-17 16:15:06 +08001111 .help = "dump guest memory into file 'filename'.\n\t\t\t"
1112 "-p: do paging to get guest's memory mapping.\n\t\t\t"
Peter Xu228de9c2016-02-18 13:16:47 +08001113 "-d: return immediately (do not wait for completion).\n\t\t\t"
Qiao Nuohan1b7a0f72014-04-17 16:15:07 +08001114 "-z: dump in kdump-compressed format, with zlib compression.\n\t\t\t"
1115 "-l: dump in kdump-compressed format, with lzo compression.\n\t\t\t"
1116 "-s: dump in kdump-compressed format, with snappy compression.\n\t\t\t"
Viktor Prutyanov2da91b52018-05-17 19:23:39 +03001117 "-w: dump in Windows crashdump format (can be used instead of ELF-dump converting),\n\t\t\t"
1118 " for Windows x64 guests with vmcoreinfo driver only.\n\t\t\t"
Qiao Nuohanc20499d2014-04-17 16:15:06 +08001119 "begin: the starting physical address.\n\t\t\t"
1120 "length: the memory size, in bytes.",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +04001121 .cmd = hmp_dump_guest_memory,
Wen Congyang783e9b42012-05-07 12:10:47 +08001122 },
1123
Peter Maydella6b30bc2020-02-28 15:36:06 +00001124SRST
1125``dump-guest-memory [-p]`` *filename* *begin* *length*
1126 \
1127``dump-guest-memory [-z|-l|-s|-w]`` *filename*
1128 Dump guest memory to *protocol*. The file can be processed with crash or
1129 gdb. Without ``-z|-l|-s|-w``, the dump format is ELF.
1130
1131 ``-p``
1132 do paging to get guest's memory mapping.
1133 ``-z``
1134 dump in kdump-compressed format, with zlib compression.
1135 ``-l``
1136 dump in kdump-compressed format, with lzo compression.
1137 ``-s``
1138 dump in kdump-compressed format, with snappy compression.
1139 ``-w``
1140 dump in Windows crashdump format (can be used instead of ELF-dump converting),
1141 for Windows x64 guests with vmcoreinfo driver only
1142 *filename*
1143 dump file name.
1144 *begin*
1145 the starting physical address. It's optional, and should be
1146 specified together with *length*.
1147 *length*
1148 the memory size, in bytes. It's optional, and should be specified
1149 together with *begin*.
1150
1151ERST
Wen Congyang783e9b42012-05-07 12:10:47 +08001152
Jason J. Hernea4538a52015-06-26 14:07:21 -04001153#if defined(TARGET_S390X)
1154 {
1155 .name = "dump-skeys",
1156 .args_type = "filename:F",
1157 .params = "",
1158 .help = "Save guest storage keys into file 'filename'.\n",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +04001159 .cmd = hmp_dump_skeys,
Jason J. Hernea4538a52015-06-26 14:07:21 -04001160 },
1161#endif
1162
Peter Maydella6b30bc2020-02-28 15:36:06 +00001163SRST
1164``dump-skeys`` *filename*
1165 Save guest storage keys to a file.
1166ERST
Jason J. Hernea4538a52015-06-26 14:07:21 -04001167
Claudio Imbrendaf860d492016-08-15 18:44:04 +02001168#if defined(TARGET_S390X)
1169 {
1170 .name = "migration_mode",
1171 .args_type = "mode:i",
1172 .params = "mode",
1173 .help = "Enables or disables migration mode\n",
1174 .cmd = hmp_migrationmode,
1175 },
1176#endif
1177
Peter Maydella6b30bc2020-02-28 15:36:06 +00001178SRST
1179``migration_mode`` *mode*
1180 Enables or disables migration mode.
1181ERST
Claudio Imbrendaf860d492016-08-15 18:44:04 +02001182
Gerd Hoffmanne866e232010-04-23 13:28:21 +02001183 {
Jes Sorensen2ea720d2011-03-09 16:54:34 +01001184 .name = "snapshot_blkdev",
Paolo Bonzini6cc2a412012-03-06 18:55:59 +01001185 .args_type = "reuse:-n,device:B,snapshot-file:s?,format:s?",
1186 .params = "[-n] device [new-image-file] [format]",
Jes Sorensen2ea720d2011-03-09 16:54:34 +01001187 .help = "initiates a live snapshot\n\t\t\t"
1188 "of device. If a new image file is specified, the\n\t\t\t"
1189 "new image file will become the new root image.\n\t\t\t"
1190 "If format is specified, the snapshot file will\n\t\t\t"
Wenchao Xia775ca882013-09-11 14:04:37 +08001191 "be created in that format.\n\t\t\t"
Paolo Bonzini6cc2a412012-03-06 18:55:59 +01001192 "The default format is qcow2. The -n flag requests QEMU\n\t\t\t"
1193 "to reuse the image found in new-image-file, instead of\n\t\t\t"
1194 "recreating it from scratch.",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +04001195 .cmd = hmp_snapshot_blkdev,
Gerd Hoffmanne866e232010-04-23 13:28:21 +02001196 },
1197
Peter Maydella6b30bc2020-02-28 15:36:06 +00001198SRST
1199``snapshot_blkdev``
1200 Snapshot device, using snapshot file as target if provided
1201ERST
Jes Sorensenf8882562010-12-16 13:52:16 +01001202
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001203 {
Wenchao Xia775ca882013-09-11 14:04:37 +08001204 .name = "snapshot_blkdev_internal",
1205 .args_type = "device:B,name:s",
1206 .params = "device name",
1207 .help = "take an internal snapshot of device.\n\t\t\t"
1208 "The format of the image used by device must\n\t\t\t"
1209 "support it, such as qcow2.\n\t\t\t",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +04001210 .cmd = hmp_snapshot_blkdev_internal,
Wenchao Xia775ca882013-09-11 14:04:37 +08001211 },
1212
Peter Maydella6b30bc2020-02-28 15:36:06 +00001213SRST
1214``snapshot_blkdev_internal``
1215 Take an internal snapshot on device if it support
1216ERST
Wenchao Xia775ca882013-09-11 14:04:37 +08001217
1218 {
Wenchao Xia7a4ed2e2013-09-11 14:04:38 +08001219 .name = "snapshot_delete_blkdev_internal",
1220 .args_type = "device:B,name:s,id:s?",
1221 .params = "device name [id]",
1222 .help = "delete an internal snapshot of device.\n\t\t\t"
1223 "If id is specified, qemu will try delete\n\t\t\t"
1224 "the snapshot matching both id and name.\n\t\t\t"
1225 "The format of the image used by device must\n\t\t\t"
1226 "support it, such as qcow2.\n\t\t\t",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +04001227 .cmd = hmp_snapshot_delete_blkdev_internal,
Wenchao Xia7a4ed2e2013-09-11 14:04:38 +08001228 },
1229
Peter Maydella6b30bc2020-02-28 15:36:06 +00001230SRST
1231``snapshot_delete_blkdev_internal``
1232 Delete an internal snapshot on device if it support
1233ERST
Wenchao Xia7a4ed2e2013-09-11 14:04:38 +08001234
1235 {
Paolo Bonzinid9b902d2012-10-18 16:49:24 +02001236 .name = "drive_mirror",
1237 .args_type = "reuse:-n,full:-f,device:B,target:s,format:s?",
1238 .params = "[-n] [-f] device target [format]",
1239 .help = "initiates live storage\n\t\t\t"
1240 "migration for a device. The device's contents are\n\t\t\t"
1241 "copied to the new image file, including data that\n\t\t\t"
1242 "is written after the command is started.\n\t\t\t"
1243 "The -n flag requests QEMU to reuse the image found\n\t\t\t"
1244 "in new-image-file, instead of recreating it from scratch.\n\t\t\t"
1245 "The -f flag requests QEMU to copy the whole disk,\n\t\t\t"
1246 "so that the result does not need a backing file.\n\t\t\t",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +04001247 .cmd = hmp_drive_mirror,
Paolo Bonzinid9b902d2012-10-18 16:49:24 +02001248 },
Peter Maydella6b30bc2020-02-28 15:36:06 +00001249SRST
1250``drive_mirror``
1251 Start mirroring a block device's writes to a new destination,
1252 using the specified target.
1253ERST
Paolo Bonzinid9b902d2012-10-18 16:49:24 +02001254
1255 {
Stefan Hajnoczide909302013-06-26 14:11:58 +02001256 .name = "drive_backup",
Pavel Butsykin13b94142016-07-22 11:17:52 +03001257 .args_type = "reuse:-n,full:-f,compress:-c,device:B,target:s,format:s?",
1258 .params = "[-n] [-f] [-c] device target [format]",
Stefan Hajnoczide909302013-06-26 14:11:58 +02001259 .help = "initiates a point-in-time\n\t\t\t"
1260 "copy for a device. The device's contents are\n\t\t\t"
1261 "copied to the new image file, excluding data that\n\t\t\t"
1262 "is written after the command is started.\n\t\t\t"
1263 "The -n flag requests QEMU to reuse the image found\n\t\t\t"
1264 "in new-image-file, instead of recreating it from scratch.\n\t\t\t"
1265 "The -f flag requests QEMU to copy the whole disk,\n\t\t\t"
Pavel Butsykin13b94142016-07-22 11:17:52 +03001266 "so that the result does not need a backing file.\n\t\t\t"
1267 "The -c flag requests QEMU to compress backup data\n\t\t\t"
1268 "(if the target format supports it).\n\t\t\t",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +04001269 .cmd = hmp_drive_backup,
Stefan Hajnoczide909302013-06-26 14:11:58 +02001270 },
Peter Maydella6b30bc2020-02-28 15:36:06 +00001271SRST
1272``drive_backup``
zhaolichange3a6e0d2020-09-17 15:50:20 +08001273 Start a point-in-time copy of a block device to a specified target.
Peter Maydella6b30bc2020-02-28 15:36:06 +00001274ERST
Stefan Hajnoczide909302013-06-26 14:11:58 +02001275
1276 {
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001277 .name = "drive_add",
Kevin Wolfabb21ac2016-02-23 17:33:24 +01001278 .args_type = "node:-n,pci_addr:s,opts:s",
1279 .params = "[-n] [[<domain>:]<bus>:]<slot>\n"
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001280 "[file=file][,if=type][,bus=n]\n"
Stefan Hajnoczifb0490f2011-11-17 13:40:32 +00001281 "[,unit=m][,media=d][,index=i]\n"
Stefan Hajnoczifb0490f2011-11-17 13:40:32 +00001282 "[,snapshot=on|off][,cache=on|off]\n"
1283 "[,readonly=on|off][,copy-on-read=on|off]",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001284 .help = "add drive to PCI storage controller",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +04001285 .cmd = hmp_drive_add,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001286 },
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001287
Peter Maydella6b30bc2020-02-28 15:36:06 +00001288SRST
1289``drive_add``
1290 Add drive to PCI storage controller.
1291ERST
Blue Swirl23130862009-06-06 08:22:04 +00001292
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001293 {
Isaku Yamahata2ae63bd2010-12-24 12:14:14 +09001294 .name = "pcie_aer_inject_error",
1295 .args_type = "advisory_non_fatal:-a,correctable:-c,"
1296 "id:s,error_status:s,"
1297 "header0:i?,header1:i?,header2:i?,header3:i?,"
1298 "prefix0:i?,prefix1:i?,prefix2:i?,prefix3:i?",
1299 .params = "[-a] [-c] id "
1300 "<error_status> [<tlp header> [<tlp header prefix>]]",
1301 .help = "inject pcie aer error\n\t\t\t"
1302 " -a for advisory non fatal error\n\t\t\t"
1303 " -c for correctable error\n\t\t\t"
1304 "<id> = qdev device id\n\t\t\t"
1305 "<error_status> = error string or 32bit\n\t\t\t"
Zenghui Yu8ad4e452020-12-04 11:09:53 +08001306 "<tlp header> = 32bit x 4\n\t\t\t"
1307 "<tlp header prefix> = 32bit x 4",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +04001308 .cmd = hmp_pcie_aer_inject_error,
Isaku Yamahata2ae63bd2010-12-24 12:14:14 +09001309 },
1310
Peter Maydella6b30bc2020-02-28 15:36:06 +00001311SRST
1312``pcie_aer_inject_error``
1313 Inject PCIe AER error
1314ERST
Isaku Yamahata2ae63bd2010-12-24 12:14:14 +09001315
1316 {
Markus Armbrusterae82d322010-03-25 17:22:40 +01001317 .name = "netdev_add",
1318 .args_type = "netdev:O",
Nikolay Nikolaev03ce5742014-06-10 13:02:16 +03001319 .params = "[user|tap|socket|vde|bridge|hubport|netmap|vhost-user],id=str[,prop=value][,...]",
Markus Armbrusterae82d322010-03-25 17:22:40 +01001320 .help = "add host network device",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +04001321 .cmd = hmp_netdev_add,
Hani Benhabilesb162b492014-05-07 23:41:31 +01001322 .command_completion = netdev_add_completion,
Markus Armbrusterae82d322010-03-25 17:22:40 +01001323 },
1324
Peter Maydella6b30bc2020-02-28 15:36:06 +00001325SRST
1326``netdev_add``
1327 Add host network device.
1328ERST
Markus Armbrusterae82d322010-03-25 17:22:40 +01001329
1330 {
1331 .name = "netdev_del",
1332 .args_type = "id:s",
1333 .params = "id",
1334 .help = "remove host network device",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +04001335 .cmd = hmp_netdev_del,
Hani Benhabiles11b389f2014-05-07 23:41:32 +01001336 .command_completion = netdev_del_completion,
Markus Armbrusterae82d322010-03-25 17:22:40 +01001337 },
1338
Peter Maydella6b30bc2020-02-28 15:36:06 +00001339SRST
1340``netdev_del``
1341 Remove host network device.
1342ERST
Markus Armbrusterae82d322010-03-25 17:22:40 +01001343
Paolo Bonziniab2d0532013-12-20 23:21:09 +01001344 {
Paolo Bonzinicff8b2c2013-12-20 23:21:10 +01001345 .name = "object_add",
1346 .args_type = "object:O",
1347 .params = "[qom-type=]type,id=str[,prop=value][,...]",
1348 .help = "create QOM object",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +04001349 .cmd = hmp_object_add,
Hani Benhabilesbfa40f72014-04-13 16:25:06 +01001350 .command_completion = object_add_completion,
Paolo Bonzinicff8b2c2013-12-20 23:21:10 +01001351 },
1352
Peter Maydella6b30bc2020-02-28 15:36:06 +00001353SRST
1354``object_add``
1355 Create QOM object.
1356ERST
Paolo Bonzinicff8b2c2013-12-20 23:21:10 +01001357
1358 {
Paolo Bonziniab2d0532013-12-20 23:21:09 +01001359 .name = "object_del",
1360 .args_type = "id:s",
1361 .params = "id",
1362 .help = "destroy QOM object",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +04001363 .cmd = hmp_object_del,
Hani Benhabilesbfa40f72014-04-13 16:25:06 +01001364 .command_completion = object_del_completion,
Paolo Bonziniab2d0532013-12-20 23:21:09 +01001365 },
1366
Peter Maydella6b30bc2020-02-28 15:36:06 +00001367SRST
1368``object_del``
1369 Destroy QOM object.
1370ERST
Paolo Bonziniab2d0532013-12-20 23:21:09 +01001371
Blue Swirl23130862009-06-06 08:22:04 +00001372#ifdef CONFIG_SLIRP
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001373 {
1374 .name = "hostfwd_add",
Thomas Huthb4983c52019-12-05 11:41:09 +01001375 .args_type = "arg1:s,arg2:s?",
1376 .params = "[netdev_id] [tcp|udp]:[hostaddr]:hostport-[guestaddr]:guestport",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001377 .help = "redirect TCP or UDP connections from host to guest (requires -net user)",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +04001378 .cmd = hmp_hostfwd_add,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001379 },
Markus Armbruster21413d62010-05-04 13:20:30 +02001380#endif
Peter Maydella6b30bc2020-02-28 15:36:06 +00001381SRST
1382``hostfwd_add``
1383 Redirect TCP or UDP connections from host to guest (requires -net user).
1384ERST
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001385
Markus Armbruster21413d62010-05-04 13:20:30 +02001386#ifdef CONFIG_SLIRP
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001387 {
1388 .name = "hostfwd_remove",
Thomas Huthb4983c52019-12-05 11:41:09 +01001389 .args_type = "arg1:s,arg2:s?",
1390 .params = "[netdev_id] [tcp|udp]:[hostaddr]:hostport",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001391 .help = "remove host-to-guest TCP or UDP redirection",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +04001392 .cmd = hmp_hostfwd_remove,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001393 },
1394
Blue Swirl23130862009-06-06 08:22:04 +00001395#endif
Peter Maydella6b30bc2020-02-28 15:36:06 +00001396SRST
1397``hostfwd_remove``
1398 Remove host-to-guest TCP or UDP redirection.
1399ERST
Blue Swirl23130862009-06-06 08:22:04 +00001400
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001401 {
1402 .name = "balloon",
Luiz Capitulino3b0bd6e2009-12-18 13:25:05 -02001403 .args_type = "value:M",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001404 .params = "target",
Riccardo Magliocchetti3c056132010-05-19 18:49:28 +02001405 .help = "request VM to change its memory allocation (in MB)",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +04001406 .cmd = hmp_balloon,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001407 },
1408
Peter Maydella6b30bc2020-02-28 15:36:06 +00001409SRST
1410``balloon`` *value*
1411 Request VM to change its memory allocation to *value* (in MB).
1412ERST
Blue Swirl23130862009-06-06 08:22:04 +00001413
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001414 {
1415 .name = "set_link",
Markus Armbrusterc9b26a42010-03-26 09:07:10 +01001416 .args_type = "name:s,up:b",
1417 .params = "name on|off",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001418 .help = "change the link status of a network adapter",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +04001419 .cmd = hmp_set_link,
Hani Benhabiles40d19392014-05-07 23:41:30 +01001420 .command_completion = set_link_completion,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001421 },
1422
Peter Maydella6b30bc2020-02-28 15:36:06 +00001423SRST
1424``set_link`` *name* ``[on|off]``
1425 Switch link *name* on (i.e. up) or off (i.e. down).
1426ERST
Blue Swirl23130862009-06-06 08:22:04 +00001427
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001428 {
1429 .name = "watchdog_action",
1430 .args_type = "action:s",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001431 .params = "[reset|shutdown|poweroff|pause|debug|none]",
1432 .help = "change watchdog action",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +04001433 .cmd = hmp_watchdog_action,
Hani Benhabilesd0ece342014-05-27 23:39:31 +01001434 .command_completion = watchdog_action_completion,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001435 },
1436
Peter Maydella6b30bc2020-02-28 15:36:06 +00001437SRST
1438``watchdog_action``
1439 Change watchdog action.
1440ERST
Blue Swirl23130862009-06-06 08:22:04 +00001441
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001442 {
1443 .name = "acl_show",
1444 .args_type = "aclname:s",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001445 .params = "aclname",
1446 .help = "list rules in the access control list",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +04001447 .cmd = hmp_acl_show,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001448 },
1449
Peter Maydella6b30bc2020-02-28 15:36:06 +00001450SRST
1451``acl_show`` *aclname*
1452 List all the matching rules in the access control list, and the default
1453 policy. There are currently two named access control lists,
1454 *vnc.x509dname* and *vnc.username* matching on the x509 client
1455 certificate distinguished name, and SASL username respectively.
1456ERST
Blue Swirl23130862009-06-06 08:22:04 +00001457
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001458 {
1459 .name = "acl_policy",
1460 .args_type = "aclname:s,policy:s",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001461 .params = "aclname allow|deny",
1462 .help = "set default access control list policy",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +04001463 .cmd = hmp_acl_policy,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001464 },
1465
Peter Maydella6b30bc2020-02-28 15:36:06 +00001466SRST
1467``acl_policy`` *aclname* ``allow|deny``
1468 Set the default access control list policy, used in the event that
1469 none of the explicit rules match. The default policy at startup is
1470 always ``deny``.
1471ERST
Jan Kiszka15dfcd42009-06-25 08:22:08 +02001472
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001473 {
1474 .name = "acl_add",
1475 .args_type = "aclname:s,match:s,policy:s,index:i?",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001476 .params = "aclname match allow|deny [index]",
1477 .help = "add a match rule to the access control list",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +04001478 .cmd = hmp_acl_add,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001479 },
1480
Peter Maydella6b30bc2020-02-28 15:36:06 +00001481SRST
1482``acl_add`` *aclname* *match* ``allow|deny`` [*index*]
1483 Add a match rule to the access control list, allowing or denying access.
1484 The match will normally be an exact username or x509 distinguished name,
1485 but can optionally include wildcard globs. eg ``*@EXAMPLE.COM`` to
1486 allow all users in the ``EXAMPLE.COM`` kerberos realm. The match will
1487 normally be appended to the end of the ACL, but can be inserted
1488 earlier in the list if the optional *index* parameter is supplied.
1489ERST
Jan Kiszka15dfcd42009-06-25 08:22:08 +02001490
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001491 {
1492 .name = "acl_remove",
1493 .args_type = "aclname:s,match:s",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001494 .params = "aclname match",
1495 .help = "remove a match rule from the access control list",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +04001496 .cmd = hmp_acl_remove,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001497 },
1498
Peter Maydella6b30bc2020-02-28 15:36:06 +00001499SRST
1500``acl_remove`` *aclname* *match*
1501 Remove the specified match rule from the access control list.
1502ERST
Jan Kiszka15dfcd42009-06-25 08:22:08 +02001503
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001504 {
1505 .name = "acl_reset",
1506 .args_type = "aclname:s",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001507 .params = "aclname",
1508 .help = "reset the access control list",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +04001509 .cmd = hmp_acl_reset,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001510 },
1511
Peter Maydella6b30bc2020-02-28 15:36:06 +00001512SRST
1513``acl_reset`` *aclname*
1514 Remove all matches from the access control list, and set the default
1515 policy back to ``deny``.
1516ERST
Blue Swirl23130862009-06-06 08:22:04 +00001517
Paolo Bonzini40577252012-08-23 11:53:04 +02001518 {
1519 .name = "nbd_server_start",
1520 .args_type = "all:-a,writable:-w,uri:s",
1521 .params = "nbd_server_start [-a] [-w] host:port",
1522 .help = "serve block devices on the given host and port",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +04001523 .cmd = hmp_nbd_server_start,
Paolo Bonzini40577252012-08-23 11:53:04 +02001524 },
Peter Maydella6b30bc2020-02-28 15:36:06 +00001525SRST
1526``nbd_server_start`` *host*:*port*
1527 Start an NBD server on the given host and/or port. If the ``-a``
1528 option is included, all of the virtual machine's block devices that
1529 have an inserted media on them are automatically exported; in this case,
1530 the ``-w`` option makes the devices writable too.
1531ERST
Paolo Bonzini40577252012-08-23 11:53:04 +02001532
1533 {
1534 .name = "nbd_server_add",
Eric Blakedba49322018-01-09 13:28:02 -06001535 .args_type = "writable:-w,device:B,name:s?",
1536 .params = "nbd_server_add [-w] device [name]",
Paolo Bonzini40577252012-08-23 11:53:04 +02001537 .help = "export a block device via NBD",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +04001538 .cmd = hmp_nbd_server_add,
Paolo Bonzini40577252012-08-23 11:53:04 +02001539 },
Peter Maydella6b30bc2020-02-28 15:36:06 +00001540SRST
1541``nbd_server_add`` *device* [ *name* ]
1542 Export a block device through QEMU's NBD server, which must be started
1543 beforehand with ``nbd_server_start``. The ``-w`` option makes the
1544 exported device writable too. The export name is controlled by *name*,
1545 defaulting to *device*.
1546ERST
Paolo Bonzini40577252012-08-23 11:53:04 +02001547
1548 {
Eric Blake08fb10a2018-01-25 08:45:57 -06001549 .name = "nbd_server_remove",
1550 .args_type = "force:-f,name:s",
1551 .params = "nbd_server_remove [-f] name",
1552 .help = "remove an export previously exposed via NBD",
1553 .cmd = hmp_nbd_server_remove,
1554 },
Peter Maydella6b30bc2020-02-28 15:36:06 +00001555SRST
1556``nbd_server_remove [-f]`` *name*
1557 Stop exporting a block device through QEMU's NBD server, which was
1558 previously started with ``nbd_server_add``. The ``-f``
1559 option forces the server to drop the export immediately even if
1560 clients are connected; otherwise the command fails unless there are no
1561 clients.
1562ERST
Eric Blake08fb10a2018-01-25 08:45:57 -06001563
1564 {
Paolo Bonzini40577252012-08-23 11:53:04 +02001565 .name = "nbd_server_stop",
1566 .args_type = "",
1567 .params = "nbd_server_stop",
1568 .help = "stop serving block devices using the NBD protocol",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +04001569 .cmd = hmp_nbd_server_stop,
Paolo Bonzini40577252012-08-23 11:53:04 +02001570 },
Peter Maydella6b30bc2020-02-28 15:36:06 +00001571SRST
1572``nbd_server_stop``
1573 Stop the QEMU embedded NBD server.
1574ERST
Paolo Bonzini40577252012-08-23 11:53:04 +02001575
1576
Huang Ying79c4f6b2009-06-23 10:05:14 +08001577#if defined(TARGET_I386)
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001578
1579 {
1580 .name = "mce",
Jin Dongming31ce5e02010-12-10 17:21:02 +09001581 .args_type = "broadcast:-b,cpu_index:i,bank:i,status:l,mcg_status:l,addr:l,misc:l",
1582 .params = "[-b] cpu bank status mcgstatus addr misc",
1583 .help = "inject a MCE on the given CPU [and broadcast to other CPUs with -b option]",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +04001584 .cmd = hmp_mce,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001585 },
1586
Huang Ying79c4f6b2009-06-23 10:05:14 +08001587#endif
Peter Maydella6b30bc2020-02-28 15:36:06 +00001588SRST
1589``mce`` *cpu* *bank* *status* *mcgstatus* *addr* *misc*
1590 Inject an MCE on the given CPU (x86 only).
1591ERST
Huang Ying79c4f6b2009-06-23 10:05:14 +08001592
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001593 {
1594 .name = "getfd",
1595 .args_type = "fdname:s",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001596 .params = "getfd name",
1597 .help = "receive a file descriptor via SCM rights and assign it a name",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +04001598 .cmd = hmp_getfd,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001599 },
1600
Peter Maydella6b30bc2020-02-28 15:36:06 +00001601SRST
1602``getfd`` *fdname*
1603 If a file descriptor is passed alongside this command using the SCM_RIGHTS
1604 mechanism on unix sockets, it is stored using the name *fdname* for
1605 later use by other monitor commands.
1606ERST
Mark McLoughlinf07918f2009-07-22 09:11:40 +01001607
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001608 {
1609 .name = "closefd",
1610 .args_type = "fdname:s",
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001611 .params = "closefd name",
1612 .help = "close a file descriptor previously passed via SCM rights",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +04001613 .cmd = hmp_closefd,
Luiz Capitulinod7f9b682009-10-07 13:41:50 -03001614 },
1615
Peter Maydella6b30bc2020-02-28 15:36:06 +00001616SRST
1617``closefd`` *fdname*
1618 Close the file descriptor previously assigned to *fdname* using the
1619 ``getfd`` command. This is only needed if the file descriptor was never
1620 used by another monitor command.
1621ERST
Mark McLoughlinf07918f2009-07-22 09:11:40 +01001622
Luiz Capitulinoa3a55a22009-12-04 15:24:09 -02001623 {
1624 .name = "block_passwd",
1625 .args_type = "device:B,password:s",
1626 .params = "block_passwd device password",
1627 .help = "set the password of encrypted block devices",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +04001628 .cmd = hmp_block_passwd,
Luiz Capitulinoa3a55a22009-12-04 15:24:09 -02001629 },
1630
Peter Maydella6b30bc2020-02-28 15:36:06 +00001631SRST
1632``block_passwd`` *device* *password*
1633 Set the encrypted device *device* password to *password*
1634
1635 This command is now obsolete and will always return an error since 2.10
1636ERST
Zhi Yong Wu727f0052011-11-08 13:00:31 +08001637
1638 {
1639 .name = "block_set_io_throttle",
1640 .args_type = "device:B,bps:l,bps_rd:l,bps_wr:l,iops:l,iops_rd:l,iops_wr:l",
1641 .params = "device bps bps_rd bps_wr iops iops_rd iops_wr",
1642 .help = "change I/O throttle limits for a block drive",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +04001643 .cmd = hmp_block_set_io_throttle,
Zhi Yong Wu727f0052011-11-08 13:00:31 +08001644 },
1645
Peter Maydella6b30bc2020-02-28 15:36:06 +00001646SRST
1647``block_set_io_throttle`` *device* *bps* *bps_rd* *bps_wr* *iops* *iops_rd* *iops_wr*
1648 Change I/O throttle limits for a block drive to
1649 *bps* *bps_rd* *bps_wr* *iops* *iops_rd* *iops_wr*.
1650 *device* can be a block device name, a qdev ID or a QOM path.
1651ERST
Jan Kiszkab40292e2010-05-31 14:43:31 -03001652
Jan Kiszka33572ec2010-05-31 14:43:30 -03001653 {
Gerd Hoffmann75721502010-10-07 12:22:54 +02001654 .name = "set_password",
1655 .args_type = "protocol:s,password:s,connected:s?",
1656 .params = "protocol password action-if-connected",
1657 .help = "set spice/vnc password",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +04001658 .cmd = hmp_set_password,
Gerd Hoffmann75721502010-10-07 12:22:54 +02001659 },
1660
Peter Maydella6b30bc2020-02-28 15:36:06 +00001661SRST
1662``set_password [ vnc | spice ] password [ action-if-connected ]``
1663 Change spice/vnc password. Use zero to make the password stay valid
1664 forever. *action-if-connected* specifies what should happen in
1665 case a connection is established: *fail* makes the password change
1666 fail. *disconnect* changes the password and disconnects the
1667 client. *keep* changes the password and keeps the connection up.
1668 *keep* is the default.
1669ERST
Gerd Hoffmann75721502010-10-07 12:22:54 +02001670
1671 {
1672 .name = "expire_password",
1673 .args_type = "protocol:s,time:s",
1674 .params = "protocol time",
1675 .help = "set spice/vnc password expire-time",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +04001676 .cmd = hmp_expire_password,
Gerd Hoffmann75721502010-10-07 12:22:54 +02001677 },
1678
Peter Maydella6b30bc2020-02-28 15:36:06 +00001679SRST
1680``expire_password [ vnc | spice ]`` *expire-time*
1681 Specify when a password for spice/vnc becomes
1682 invalid. *expire-time* accepts:
1683
1684 ``now``
1685 Invalidate password instantly.
1686 ``never``
1687 Password stays valid forever.
1688 ``+``\ *nsec*
1689 Password stays valid for *nsec* seconds starting now.
1690 *nsec*
1691 Password is invalidated at the given time. *nsec* are the seconds
1692 passed since 1970, i.e. unix epoch.
1693
1694ERST
Gerd Hoffmann75721502010-10-07 12:22:54 +02001695
Gerd Hoffmann46920822013-02-28 08:46:10 +01001696 {
1697 .name = "chardev-add",
1698 .args_type = "args:s",
1699 .params = "args",
1700 .help = "add chardev",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +04001701 .cmd = hmp_chardev_add,
Hani Benhabiles13e315d2014-05-07 23:41:29 +01001702 .command_completion = chardev_add_completion,
Gerd Hoffmann46920822013-02-28 08:46:10 +01001703 },
1704
Peter Maydella6b30bc2020-02-28 15:36:06 +00001705SRST
1706``chardev-add`` *args*
1707 chardev-add accepts the same parameters as the -chardev command line switch.
1708ERST
Anton Nefedov75b60162017-07-06 15:08:57 +03001709
1710 {
1711 .name = "chardev-change",
1712 .args_type = "id:s,args:s",
1713 .params = "id args",
1714 .help = "change chardev",
1715 .cmd = hmp_chardev_change,
1716 },
1717
Peter Maydella6b30bc2020-02-28 15:36:06 +00001718SRST
1719``chardev-change`` *args*
1720 chardev-change accepts existing chardev *id* and then the same arguments
1721 as the -chardev command line switch (except for "id").
1722ERST
Gerd Hoffmann46920822013-02-28 08:46:10 +01001723
1724 {
1725 .name = "chardev-remove",
1726 .args_type = "id:s",
1727 .params = "id",
1728 .help = "remove chardev",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +04001729 .cmd = hmp_chardev_remove,
Hani Benhabiles6297d9a2014-05-07 23:41:28 +01001730 .command_completion = chardev_remove_completion,
Gerd Hoffmann46920822013-02-28 08:46:10 +01001731 },
1732
Peter Maydella6b30bc2020-02-28 15:36:06 +00001733SRST
1734``chardev-remove`` *id*
1735 Removes the chardev *id*.
1736ERST
Gerd Hoffmannf1088902012-12-19 10:33:40 +01001737
1738 {
Stefan Fritschbd1d5ad2017-06-11 09:48:17 +02001739 .name = "chardev-send-break",
1740 .args_type = "id:s",
1741 .params = "id",
1742 .help = "send a break on chardev",
1743 .cmd = hmp_chardev_send_break,
1744 .command_completion = chardev_remove_completion,
1745 },
1746
Peter Maydella6b30bc2020-02-28 15:36:06 +00001747SRST
1748``chardev-send-break`` *id*
1749 Send a break on the chardev *id*.
1750ERST
Stefan Fritschbd1d5ad2017-06-11 09:48:17 +02001751
1752 {
Kevin Wolf587da2c2013-06-05 14:19:41 +02001753 .name = "qemu-io",
Kevin Wolf89b6fc42019-12-17 15:13:34 +01001754 .args_type = "qdev:-d,device:B,command:s",
1755 .params = "[-d] [device] \"[command]\"",
1756 .help = "run a qemu-io command on a block device\n\t\t\t"
1757 "-d: [device] is a device ID rather than a "
1758 "drive ID or node name",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +04001759 .cmd = hmp_qemu_io,
Kevin Wolf587da2c2013-06-05 14:19:41 +02001760 },
1761
Peter Maydella6b30bc2020-02-28 15:36:06 +00001762SRST
1763``qemu-io`` *device* *command*
1764 Executes a qemu-io command on the given block device.
1765ERST
Kevin Wolf587da2c2013-06-05 14:19:41 +02001766
1767 {
Andreas Färber89d7fa92014-05-07 18:08:29 +02001768 .name = "qom-list",
1769 .args_type = "path:s?",
1770 .params = "path",
1771 .help = "list QOM properties",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +04001772 .cmd = hmp_qom_list,
Dr. David Alan Gilbert8c7c7ec2018-06-20 16:39:45 +01001773 .flags = "p",
Andreas Färber89d7fa92014-05-07 18:08:29 +02001774 },
1775
Peter Maydella6b30bc2020-02-28 15:36:06 +00001776SRST
1777``qom-list`` [*path*]
1778 Print QOM properties of object at location *path*
1779ERST
Andreas Färber89d7fa92014-05-07 18:08:29 +02001780
1781 {
Dr. David Alan Gilbert89cf4fe2020-05-20 16:11:07 +01001782 .name = "qom-get",
1783 .args_type = "path:s,property:s",
1784 .params = "path property",
1785 .help = "print QOM property",
1786 .cmd = hmp_qom_get,
1787 .flags = "p",
1788 },
1789
1790SRST
1791``qom-get`` *path* *property*
1792 Print QOM property *property* of object at location *path*
1793ERST
1794
1795 {
Andreas Färberc0e6ee92014-05-07 19:48:15 +02001796 .name = "qom-set",
David Hildenbrand2d9e3dd2020-06-10 09:51:53 +02001797 .args_type = "json:-j,path:s,property:s,value:S",
1798 .params = "[-j] path property value",
1799 .help = "set QOM property.\n\t\t\t"
1800 "-j: the value is specified in json format.",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +04001801 .cmd = hmp_qom_set,
Dr. David Alan Gilbert8c7c7ec2018-06-20 16:39:45 +01001802 .flags = "p",
Andreas Färberc0e6ee92014-05-07 19:48:15 +02001803 },
1804
Peter Maydella6b30bc2020-02-28 15:36:06 +00001805SRST
1806``qom-set`` *path* *property* *value*
1807 Set QOM property *property* of object at location *path* to value *value*
1808ERST
Andreas Färberc0e6ee92014-05-07 19:48:15 +02001809
1810 {
Pavel Dovgalyuke7510672020-10-03 20:13:26 +03001811 .name = "replay_break",
1812 .args_type = "icount:i",
1813 .params = "icount",
1814 .help = "set breakpoint at the specified instruction count",
1815 .cmd = hmp_replay_break,
1816 },
1817
1818SRST
1819``replay_break`` *icount*
1820 Set replay breakpoint at instruction count *icount*.
1821 Execution stops when the specified instruction is reached.
1822 There can be at most one breakpoint. When breakpoint is set, any prior
1823 one is removed. The breakpoint may be set only in replay mode and only
1824 "in the future", i.e. at instruction counts greater than the current one.
1825 The current instruction count can be observed with ``info replay``.
1826ERST
1827
1828 {
1829 .name = "replay_delete_break",
1830 .args_type = "",
1831 .params = "",
1832 .help = "remove replay breakpoint",
1833 .cmd = hmp_replay_delete_break,
1834 },
1835
1836SRST
1837``replay_delete_break``
1838 Remove replay breakpoint which was previously set with ``replay_break``.
1839 The command is ignored when there are no replay breakpoints.
1840ERST
1841
1842 {
Pavel Dovgalyukf6baed32020-10-03 20:13:31 +03001843 .name = "replay_seek",
1844 .args_type = "icount:i",
1845 .params = "icount",
1846 .help = "replay execution to the specified instruction count",
1847 .cmd = hmp_replay_seek,
1848 },
1849
1850SRST
1851``replay_seek`` *icount*
1852 Automatically proceed to the instruction count *icount*, when
1853 replaying the execution. The command automatically loads nearest
1854 snapshot and replays the execution to find the desired instruction.
1855 When there is no preceding snapshot or the execution is not replayed,
1856 then the command fails.
1857 *icount* for the reference may be observed with ``info replay`` command.
1858ERST
1859
1860 {
Jan Kiszka33572ec2010-05-31 14:43:30 -03001861 .name = "info",
1862 .args_type = "item:s?",
1863 .params = "[subcommand]",
1864 .help = "show various information about the system state",
Marc-André Lureau2b9e3572016-09-12 13:19:06 +04001865 .cmd = hmp_info_help,
Kevin Wolfa0cd5e12019-06-13 17:33:56 +02001866 .sub_table = hmp_info_cmds,
Dr. David Alan Gilbert8c7c7ec2018-06-20 16:39:45 +01001867 .flags = "p",
Jan Kiszka33572ec2010-05-31 14:43:30 -03001868 },
1869