]> git.proxmox.com Git - mirror_qemu.git/blame - hmp-commands.hx
Merge remote-tracking branch 'remotes/kraxel/tags/audio-20201215-pull-request' into...
[mirror_qemu.git] / hmp-commands.hx
CommitLineData
3c95fdef
PM
1HXCOMM 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.
2313086a
BS
4HXCOMM DEF(command, args, callback, arg_string, help) is used to construct
5HXCOMM monitor commands
3c95fdef 6HXCOMM HXCOMM can be used for comments, discarded from both rST and C.
2313086a 7
2313086a 8
d7f9b689
LC
9 {
10 .name = "help|?",
129be006 11 .args_type = "name:S?",
d7f9b689
LC
12 .params = "[cmd]",
13 .help = "show the help",
2b9e3576 14 .cmd = do_help_cmd,
31785f1b 15 .flags = "p",
d7f9b689
LC
16 },
17
a6b30bca
PM
18SRST
19``help`` or ``?`` [*cmd*]
20 Show the help for all commands or just for command *cmd*.
21ERST
2313086a 22
d7f9b689
LC
23 {
24 .name = "commit",
25 .args_type = "device:B",
d7f9b689
LC
26 .params = "device|all",
27 .help = "commit changes to the disk images (if -snapshot is used) or backing files",
2b9e3576 28 .cmd = hmp_commit,
d7f9b689
LC
29 },
30
a6b30bca
PM
31SRST
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
2313086a 41
d7f9b689
LC
42 {
43 .name = "q|quit",
44 .args_type = "",
d7f9b689
LC
45 .params = "",
46 .help = "quit the emulator",
2b9e3576 47 .cmd = hmp_quit,
d7f9b689
LC
48 },
49
a6b30bca
PM
50SRST
51``q`` or ``quit``
52 Quit the emulator.
53ERST
8e8581e6
DDAG
54
55 {
56 .name = "exit_preconfig",
57 .args_type = "",
58 .params = "",
59 .help = "exit the preconfig state",
60 .cmd = hmp_exit_preconfig,
61 .flags = "p",
62 },
63
a6b30bca
PM
64SRST
65``exit_preconfig``
66 This command makes QEMU exit the preconfig state and proceed with
67 VM initialization using configuration data provided on the command line
68 and via the QMP monitor during the preconfig state. The command is only
69 available during the preconfig state (i.e. when the --preconfig command
70 line option was in use).
71ERST
2313086a 72
6d4a2b3a
CH
73 {
74 .name = "block_resize",
75 .args_type = "device:B,size:o",
76 .params = "device size",
77 .help = "resize a block image",
2b9e3576 78 .cmd = hmp_block_resize,
eb94b81a 79 .coroutine = true,
6d4a2b3a
CH
80 },
81
a6b30bca
PM
82SRST
83``block_resize``
84 Resize a block image while a guest is running. Usually requires guest
85 action to see the updated size. Resize to a lower size is supported,
86 but should be used with extreme caution. Note that this command only
87 resizes image files, it can not resize block devices like LVM volumes.
88ERST
6d4a2b3a 89
12bd451f
SH
90 {
91 .name = "block_stream",
c83c66c3
SH
92 .args_type = "device:B,speed:o?,base:s?",
93 .params = "device [speed [base]]",
12bd451f 94 .help = "copy data from a backing file into a block device",
2b9e3576 95 .cmd = hmp_block_stream,
12bd451f
SH
96 },
97
a6b30bca
PM
98SRST
99``block_stream``
100 Copy data from a backing file into a block device.
101ERST
2d47c6e9
SH
102
103 {
104 .name = "block_job_set_speed",
882ec7ce
SH
105 .args_type = "device:B,speed:o",
106 .params = "device speed",
2d47c6e9 107 .help = "set maximum speed for a background block operation",
2b9e3576 108 .cmd = hmp_block_job_set_speed,
2d47c6e9
SH
109 },
110
a6b30bca
PM
111SRST
112``block_job_set_speed``
113 Set maximum speed for a background block operation.
114ERST
370521a1
SH
115
116 {
117 .name = "block_job_cancel",
6e37fb81
PB
118 .args_type = "force:-f,device:B",
119 .params = "[-f] device",
120 .help = "stop an active background block operation (use -f"
b76e4458
LL
121 "\n\t\t\t if you want to abort the operation immediately"
122 "\n\t\t\t instead of keep running until data is in sync)",
2b9e3576 123 .cmd = hmp_block_job_cancel,
370521a1
SH
124 },
125
a6b30bca
PM
126SRST
127``block_job_cancel``
128 Stop an active background block operation (streaming, mirroring).
129ERST
aeae883b
PB
130
131 {
132 .name = "block_job_complete",
133 .args_type = "device:B",
134 .params = "device",
135 .help = "stop an active background block operation",
2b9e3576 136 .cmd = hmp_block_job_complete,
aeae883b
PB
137 },
138
a6b30bca
PM
139SRST
140``block_job_complete``
141 Manually trigger completion of an active background block operation.
142 For mirroring, this will switch the device to the destination path.
143ERST
6e37fb81
PB
144
145 {
146 .name = "block_job_pause",
147 .args_type = "device:B",
148 .params = "device",
149 .help = "pause an active background block operation",
2b9e3576 150 .cmd = hmp_block_job_pause,
6e37fb81
PB
151 },
152
a6b30bca
PM
153SRST
154``block_job_pause``
155 Pause an active block streaming operation.
156ERST
6e37fb81
PB
157
158 {
159 .name = "block_job_resume",
160 .args_type = "device:B",
161 .params = "device",
162 .help = "resume a paused background block operation",
2b9e3576 163 .cmd = hmp_block_job_resume,
6e37fb81
PB
164 },
165
a6b30bca
PM
166SRST
167``block_job_resume``
168 Resume a paused block streaming operation.
169ERST
6d4a2b3a 170
d7f9b689
LC
171 {
172 .name = "eject",
78d714e0 173 .args_type = "force:-f,device:B",
d7f9b689
LC
174 .params = "[-f] device",
175 .help = "eject a removable medium (use -f to force it)",
2b9e3576 176 .cmd = hmp_eject,
d7f9b689
LC
177 },
178
a6b30bca
PM
179SRST
180``eject [-f]`` *device*
181 Eject a removable medium (use -f to force it).
182ERST
9063f814
RH
183
184 {
185 .name = "drive_del",
f7bdc41a 186 .args_type = "id:B",
9063f814
RH
187 .params = "device",
188 .help = "remove host block device",
2b9e3576 189 .cmd = hmp_drive_del,
9063f814
RH
190 },
191
a6b30bca
PM
192SRST
193``drive_del`` *device*
194 Remove host block device. The result is that guest generated IO is no longer
195 submitted against the host device underlying the disk. Once a drive has
196 been deleted, the QEMU Block layer returns -EIO which results in IO
197 errors in the guest for applications that are reading/writing to the device.
198 These errors are always reported to the guest, regardless of the drive's error
199 actions (drive options rerror, werror).
200ERST
2313086a 201
d7f9b689
LC
202 {
203 .name = "change",
baead0ab
HR
204 .args_type = "device:B,target:F,arg:s?,read-only-mode:s?",
205 .params = "device filename [format [read-only-mode]]",
d7f9b689 206 .help = "change a removable medium, optional format",
2b9e3576 207 .cmd = hmp_change,
d7f9b689
LC
208 },
209
a6b30bca
PM
210SRST
211``change`` *device* *setting*
212 Change the configuration of a device.
213
214 ``change`` *diskdevice* *filename* [*format* [*read-only-mode*]]
215 Change the medium for a removable disk device to point to *filename*. eg::
216
217 (qemu) change ide1-cd0 /path/to/some.iso
218
219 *format* is optional.
220
221 *read-only-mode* may be used to change the read-only status of the device.
222 It accepts the following values:
223
224 retain
225 Retains the current status; this is the default.
226
227 read-only
228 Makes the device read-only.
229
230 read-write
231 Makes the device writable.
232
233 ``change vnc`` *display*,\ *options*
234 Change the configuration of the VNC server. The valid syntax for *display*
235 and *options* are described at :ref:`sec_005finvocation`. eg::
236
237 (qemu) change vnc localhost:1
238
239 ``change vnc password`` [*password*]
240
241 Change the password associated with the VNC server. If the new password
242 is not supplied, the monitor will prompt for it to be entered. VNC
243 passwords are only significant up to 8 letters. eg::
244
245 (qemu) change vnc password
246 Password: ********
247
248ERST
2313086a 249
d7f9b689
LC
250 {
251 .name = "screendump",
f771c544
TH
252 .args_type = "filename:F,device:s?,head:i?",
253 .params = "filename [device [head]]",
254 .help = "save screen from head 'head' of display device 'device' "
255 "into PPM image 'filename'",
2b9e3576 256 .cmd = hmp_screendump,
0d9b90ce 257 .coroutine = true,
d7f9b689
LC
258 },
259
a6b30bca
PM
260SRST
261``screendump`` *filename*
262 Save screen into PPM image *filename*.
263ERST
2313086a 264
d7f9b689
LC
265 {
266 .name = "logfile",
267 .args_type = "filename:F",
d7f9b689
LC
268 .params = "filename",
269 .help = "output logs to 'filename'",
2b9e3576 270 .cmd = hmp_logfile,
d7f9b689
LC
271 },
272
a6b30bca
PM
273SRST
274``logfile`` *filename*
275 Output logs to *filename*.
276ERST
2313086a 277
22890ab5
PS
278 {
279 .name = "trace-event",
77e2b172
LV
280 .args_type = "name:s,option:b,vcpu:i?",
281 .params = "name on|off [vcpu]",
282 .help = "changes status of a specific trace event "
283 "(vcpu: vCPU to set, default is all)",
2b9e3576 284 .cmd = hmp_trace_event,
987bd270 285 .command_completion = trace_event_completion,
22890ab5
PS
286 },
287
a6b30bca
PM
288SRST
289``trace-event``
290 changes status of a trace event
291ERST
c5ceb523 292
c45a8168 293#if defined(CONFIG_TRACE_SIMPLE)
c5ceb523
SH
294 {
295 .name = "trace-file",
296 .args_type = "op:s?,arg:F?",
297 .params = "on|off|flush|set [arg]",
298 .help = "open, close, or flush trace file, or set a new file name",
2b9e3576 299 .cmd = hmp_trace_file,
c5ceb523
SH
300 },
301
a6b30bca
PM
302SRST
303``trace-file on|off|flush``
304 Open, close, or flush the trace file. If no argument is given, the
305 status of the trace file is displayed.
306ERST
22890ab5
PS
307#endif
308
d7f9b689
LC
309 {
310 .name = "log",
311 .args_type = "items:s",
d7f9b689 312 .params = "item1[,...]",
989b697d 313 .help = "activate logging of the specified items",
2b9e3576 314 .cmd = hmp_log,
d7f9b689
LC
315 },
316
a6b30bca
PM
317SRST
318``log`` *item1*\ [,...]
319 Activate logging of the specified items.
320ERST
2313086a 321
d7f9b689
LC
322 {
323 .name = "savevm",
324 .args_type = "name:s?",
6ca08045
DHB
325 .params = "tag",
326 .help = "save a VM snapshot. If no tag is provided, a new snapshot is created",
2b9e3576 327 .cmd = hmp_savevm,
d7f9b689
LC
328 },
329
a6b30bca
PM
330SRST
331``savevm`` *tag*
332 Create a snapshot of the whole virtual machine. If *tag* is
333 provided, it is used as human readable identifier. If there is already
334 a snapshot with the same tag, it is replaced. More info at
335 :ref:`vm_005fsnapshots`.
336
337 Since 4.0, savevm stopped allowing the snapshot id to be set, accepting
338 only *tag* as parameter.
339ERST
2313086a 340
d7f9b689
LC
341 {
342 .name = "loadvm",
343 .args_type = "name:s",
6ca08045
DHB
344 .params = "tag",
345 .help = "restore a VM snapshot from its tag",
2b9e3576 346 .cmd = hmp_loadvm,
b21631f3 347 .command_completion = loadvm_completion,
d7f9b689
LC
348 },
349
a6b30bca
PM
350SRST
351``loadvm`` *tag*
352 Set the whole virtual machine to the snapshot identified by the tag
353 *tag*.
354
355 Since 4.0, loadvm stopped accepting snapshot id as parameter.
356ERST
2313086a 357
d7f9b689
LC
358 {
359 .name = "delvm",
360 .args_type = "name:s",
6ca08045
DHB
361 .params = "tag",
362 .help = "delete a VM snapshot from its tag",
2b9e3576 363 .cmd = hmp_delvm,
b21631f3 364 .command_completion = delvm_completion,
d7f9b689
LC
365 },
366
a6b30bca
PM
367SRST
368``delvm`` *tag*
369 Delete the snapshot identified by *tag*.
370
371 Since 4.0, delvm stopped deleting snapshots by snapshot id, accepting
372 only *tag* as parameter.
373ERST
2313086a 374
d7f9b689
LC
375 {
376 .name = "singlestep",
377 .args_type = "option:s?",
d7f9b689
LC
378 .params = "[on|off]",
379 .help = "run emulation in singlestep mode or switch to normal mode",
2b9e3576 380 .cmd = hmp_singlestep,
d7f9b689
LC
381 },
382
a6b30bca
PM
383SRST
384``singlestep [off]``
385 Run the emulation in single step mode.
386 If called with option off, the emulation returns to normal mode.
387ERST
2313086a 388
d7f9b689
LC
389 {
390 .name = "stop",
391 .args_type = "",
d7f9b689
LC
392 .params = "",
393 .help = "stop emulation",
2b9e3576 394 .cmd = hmp_stop,
d7f9b689
LC
395 },
396
a6b30bca
PM
397SRST
398``stop``
399 Stop emulation.
400ERST
2313086a 401
d7f9b689
LC
402 {
403 .name = "c|cont",
404 .args_type = "",
d7f9b689
LC
405 .params = "",
406 .help = "resume emulation",
2b9e3576 407 .cmd = hmp_cont,
d7f9b689
LC
408 },
409
a6b30bca
PM
410SRST
411``c`` or ``cont``
412 Resume emulation.
413ERST
9b9df25a
GH
414
415 {
416 .name = "system_wakeup",
417 .args_type = "",
418 .params = "",
419 .help = "wakeup guest from suspend",
2b9e3576 420 .cmd = hmp_system_wakeup,
9b9df25a
GH
421 },
422
a6b30bca
PM
423SRST
424``system_wakeup``
425 Wakeup guest from suspend.
426ERST
2313086a 427
d7f9b689
LC
428 {
429 .name = "gdbserver",
430 .args_type = "device:s?",
d7f9b689
LC
431 .params = "[device]",
432 .help = "start gdbserver on given device (default 'tcp::1234'), stop with 'none'",
2b9e3576 433 .cmd = hmp_gdbserver,
d7f9b689
LC
434 },
435
a6b30bca
PM
436SRST
437``gdbserver`` [*port*]
438 Start gdbserver session (default *port*\=1234)
439ERST
2313086a 440
d7f9b689
LC
441 {
442 .name = "x",
443 .args_type = "fmt:/,addr:l",
d7f9b689
LC
444 .params = "/fmt addr",
445 .help = "virtual memory dump starting at 'addr'",
2b9e3576 446 .cmd = hmp_memory_dump,
d7f9b689
LC
447 },
448
a6b30bca
PM
449SRST
450``x/``\ *fmt* *addr*
451 Virtual memory dump starting at *addr*.
452ERST
2313086a 453
d7f9b689
LC
454 {
455 .name = "xp",
456 .args_type = "fmt:/,addr:l",
d7f9b689
LC
457 .params = "/fmt addr",
458 .help = "physical memory dump starting at 'addr'",
2b9e3576 459 .cmd = hmp_physical_memory_dump,
d7f9b689
LC
460 },
461
a6b30bca
PM
462SRST
463``xp /``\ *fmt* *addr*
464 Physical memory dump starting at *addr*.
465
466 *fmt* is a format which tells the command how to format the
467 data. Its syntax is: ``/{count}{format}{size}``
468
469 *count*
470 is the number of items to be dumped.
471 *format*
472 can be x (hex), d (signed decimal), u (unsigned decimal), o (octal),
473 c (char) or i (asm instruction).
474 *size*
475 can be b (8 bits), h (16 bits), w (32 bits) or g (64 bits). On x86,
476 ``h`` or ``w`` can be specified with the ``i`` format to
477 respectively select 16 or 32 bit code instruction size.
478
479 Examples:
480
481 Dump 10 instructions at the current instruction pointer::
482
483 (qemu) x/10i $eip
484 0x90107063: ret
485 0x90107064: sti
486 0x90107065: lea 0x0(%esi,1),%esi
487 0x90107069: lea 0x0(%edi,1),%edi
488 0x90107070: ret
489 0x90107071: jmp 0x90107080
490 0x90107073: nop
491 0x90107074: nop
492 0x90107075: nop
493 0x90107076: nop
494
495 Dump 80 16 bit values at the start of the video memory::
496
497 (qemu) xp/80hx 0xb8000
498 0x000b8000: 0x0b50 0x0b6c 0x0b65 0x0b78 0x0b38 0x0b36 0x0b2f 0x0b42
499 0x000b8010: 0x0b6f 0x0b63 0x0b68 0x0b73 0x0b20 0x0b56 0x0b47 0x0b41
500 0x000b8020: 0x0b42 0x0b69 0x0b6f 0x0b73 0x0b20 0x0b63 0x0b75 0x0b72
501 0x000b8030: 0x0b72 0x0b65 0x0b6e 0x0b74 0x0b2d 0x0b63 0x0b76 0x0b73
502 0x000b8040: 0x0b20 0x0b30 0x0b35 0x0b20 0x0b4e 0x0b6f 0x0b76 0x0b20
503 0x000b8050: 0x0b32 0x0b30 0x0b30 0x0b33 0x0720 0x0720 0x0720 0x0720
504 0x000b8060: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
505 0x000b8070: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
506 0x000b8080: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
507 0x000b8090: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
508
509ERST
e9628441
PB
510
511 {
512 .name = "gpa2hva",
513 .args_type = "addr:l",
514 .params = "addr",
515 .help = "print the host virtual address corresponding to a guest physical address",
516 .cmd = hmp_gpa2hva,
517 },
518
a6b30bca
PM
519SRST
520``gpa2hva`` *addr*
521 Print the host virtual address at which the guest's physical address *addr*
522 is mapped.
523ERST
e9628441
PB
524
525#ifdef CONFIG_LINUX
526 {
527 .name = "gpa2hpa",
528 .args_type = "addr:l",
529 .params = "addr",
530 .help = "print the host physical address corresponding to a guest physical address",
531 .cmd = hmp_gpa2hpa,
532 },
533#endif
534
a6b30bca
PM
535SRST
536``gpa2hpa`` *addr*
537 Print the host physical address at which the guest's physical address *addr*
538 is mapped.
539ERST
574d9693
DDAG
540
541 {
542 .name = "gva2gpa",
543 .args_type = "addr:l",
544 .params = "addr",
545 .help = "print the guest physical address corresponding to a guest virtual address",
546 .cmd = hmp_gva2gpa,
547 },
548
a6b30bca
PM
549SRST
550``gva2gpa`` *addr*
551 Print the guest physical address at which the guest's virtual address *addr*
552 is mapped based on the mapping for the current CPU.
553ERST
2313086a 554
d7f9b689
LC
555 {
556 .name = "p|print",
557 .args_type = "fmt:/,val:l",
d7f9b689
LC
558 .params = "/fmt expr",
559 .help = "print expression value (use $reg for CPU register access)",
2b9e3576 560 .cmd = do_print,
d7f9b689
LC
561 },
562
a6b30bca
PM
563SRST
564``p`` or ``print/``\ *fmt* *expr*
565 Print expression value. Only the *format* part of *fmt* is
566 used.
567ERST
2313086a 568
d7f9b689
LC
569 {
570 .name = "i",
571 .args_type = "fmt:/,addr:i,index:i.",
d7f9b689
LC
572 .params = "/fmt addr",
573 .help = "I/O port read",
2b9e3576 574 .cmd = hmp_ioport_read,
d7f9b689
LC
575 },
576
a6b30bca
PM
577SRST
578``i/``\ *fmt* *addr* [.\ *index*\ ]
579 Read I/O port.
580ERST
2313086a 581
d7f9b689
LC
582 {
583 .name = "o",
584 .args_type = "fmt:/,addr:i,val:i",
d7f9b689
LC
585 .params = "/fmt addr value",
586 .help = "I/O port write",
2b9e3576 587 .cmd = hmp_ioport_write,
d7f9b689
LC
588 },
589
a6b30bca
PM
590SRST
591``o/``\ *fmt* *addr* *val*
592 Write to I/O port.
593ERST
2313086a 594
d7f9b689
LC
595 {
596 .name = "sendkey",
2ef20c15 597 .args_type = "keys:s,hold-time:i?",
d7f9b689
LC
598 .params = "keys [hold_ms]",
599 .help = "send keys to the VM (e.g. 'sendkey ctrl-alt-f1', default hold time=100 ms)",
2b9e3576 600 .cmd = hmp_sendkey,
29136cd8 601 .command_completion = sendkey_completion,
d7f9b689
LC
602 },
603
a6b30bca
PM
604SRST
605``sendkey`` *keys*
606 Send *keys* to the guest. *keys* could be the name of the
607 key or the raw value in hexadecimal format. Use ``-`` to press
608 several keys simultaneously. Example::
609
610 sendkey ctrl-alt-f1
611
612 This command is useful to send keys that your graphical user interface
613 intercepts at low level, such as ``ctrl-alt-f1`` in X Window.
614ERST
dd12e1bb
EC
615 {
616 .name = "sync-profile",
617 .args_type = "op:s?",
618 .params = "[on|off|reset]",
619 .help = "enable, disable or reset synchronization profiling. "
620 "With no arguments, prints whether profiling is on or off.",
621 .cmd = hmp_sync_profile,
622 },
623
a6b30bca
PM
624SRST
625``sync-profile [on|off|reset]``
626 Enable, disable or reset synchronization profiling. With no arguments, prints
627 whether profiling is on or off.
628ERST
2313086a 629
d7f9b689
LC
630 {
631 .name = "system_reset",
632 .args_type = "",
d7f9b689
LC
633 .params = "",
634 .help = "reset the system",
2b9e3576 635 .cmd = hmp_system_reset,
d7f9b689
LC
636 },
637
a6b30bca
PM
638SRST
639``system_reset``
640 Reset the system.
641ERST
2313086a 642
d7f9b689
LC
643 {
644 .name = "system_powerdown",
645 .args_type = "",
d7f9b689
LC
646 .params = "",
647 .help = "send system power down event",
2b9e3576 648 .cmd = hmp_system_powerdown,
d7f9b689
LC
649 },
650
a6b30bca
PM
651SRST
652``system_powerdown``
653 Power down the system (if supported).
654ERST
2313086a 655
d7f9b689
LC
656 {
657 .name = "sum",
658 .args_type = "start:i,size:i",
d7f9b689
LC
659 .params = "addr size",
660 .help = "compute the checksum of a memory region",
2b9e3576 661 .cmd = hmp_sum,
d7f9b689
LC
662 },
663
a6b30bca
PM
664SRST
665``sum`` *addr* *size*
666 Compute the checksum of a memory region.
667ERST
2313086a 668
d7f9b689
LC
669 {
670 .name = "device_add",
c7e4e8ce
MA
671 .args_type = "device:O",
672 .params = "driver[,prop=value][,...]",
d7f9b689 673 .help = "add device, like -device on the command line",
2b9e3576 674 .cmd = hmp_device_add,
2da1b3ab 675 .command_completion = device_add_completion,
d7f9b689
LC
676 },
677
a6b30bca
PM
678SRST
679``device_add`` *config*
680 Add device.
681ERST
3418bd25 682
d7f9b689
LC
683 {
684 .name = "device_del",
685 .args_type = "id:s",
d7f9b689
LC
686 .params = "device",
687 .help = "remove device",
2b9e3576 688 .cmd = hmp_device_del,
2da1b3ab 689 .command_completion = device_del_completion,
d7f9b689
LC
690 },
691
a6b30bca
PM
692SRST
693``device_del`` *id*
694 Remove device *id*. *id* may be a short ID
695 or a QOM object path.
696ERST
3418bd25 697
d7f9b689
LC
698 {
699 .name = "cpu",
700 .args_type = "index:i",
d7f9b689
LC
701 .params = "index",
702 .help = "set the default CPU",
2b9e3576 703 .cmd = hmp_cpu,
d7f9b689 704 },
3418bd25 705
a6b30bca
PM
706SRST
707``cpu`` *index*
708 Set the default CPU.
709ERST
2313086a 710
d7f9b689
LC
711 {
712 .name = "mouse_move",
713 .args_type = "dx_str:s,dy_str:s,dz_str:s?",
d7f9b689
LC
714 .params = "dx dy [dz]",
715 .help = "send mouse move events",
2b9e3576 716 .cmd = hmp_mouse_move,
d7f9b689
LC
717 },
718
a6b30bca
PM
719SRST
720``mouse_move`` *dx* *dy* [*dz*]
721 Move the active mouse to the specified coordinates *dx* *dy*
722 with optional scroll axis *dz*.
723ERST
2313086a 724
d7f9b689
LC
725 {
726 .name = "mouse_button",
727 .args_type = "button_state:i",
d7f9b689
LC
728 .params = "state",
729 .help = "change mouse button state (1=L, 2=M, 4=R)",
2b9e3576 730 .cmd = hmp_mouse_button,
d7f9b689
LC
731 },
732
a6b30bca
PM
733SRST
734``mouse_button`` *val*
735 Change the active mouse button state *val* (1=L, 2=M, 4=R).
736ERST
2313086a 737
d7f9b689
LC
738 {
739 .name = "mouse_set",
740 .args_type = "index:i",
d7f9b689
LC
741 .params = "index",
742 .help = "set which mouse device receives events",
2b9e3576 743 .cmd = hmp_mouse_set,
d7f9b689
LC
744 },
745
a6b30bca
PM
746SRST
747``mouse_set`` *index*
748 Set which mouse device receives events at given *index*, index
749 can be obtained with::
750
751 info mice
752
753ERST
2313086a 754
d7f9b689
LC
755 {
756 .name = "wavcapture",
f0b9f36d
KZ
757 .args_type = "path:F,audiodev:s,freq:i?,bits:i?,nchannels:i?",
758 .params = "path audiodev [frequency [bits [channels]]]",
d7f9b689 759 .help = "capture audio to a wave file (default frequency=44100 bits=16 channels=2)",
2b9e3576 760 .cmd = hmp_wavcapture,
d7f9b689 761 },
a6b30bca
PM
762SRST
763``wavcapture`` *filename* *audiodev* [*frequency* [*bits* [*channels*]]]
764 Capture audio into *filename* from *audiodev*, using sample rate
765 *frequency* bits per sample *bits* and number of channels
766 *channels*.
767
768 Defaults:
769
770 - Sample rate = 44100 Hz - CD quality
771 - Bits = 16
772 - Number of channels = 2 - Stereo
773ERST
2313086a 774
d7f9b689
LC
775 {
776 .name = "stopcapture",
777 .args_type = "n:i",
d7f9b689
LC
778 .params = "capture index",
779 .help = "stop capture",
2b9e3576 780 .cmd = hmp_stopcapture,
d7f9b689 781 },
a6b30bca
PM
782SRST
783``stopcapture`` *index*
784 Stop capture with a given *index*, index can be obtained with::
785
786 info capture
787
788ERST
2313086a 789
d7f9b689
LC
790 {
791 .name = "memsave",
792 .args_type = "val:l,size:i,filename:s",
d7f9b689
LC
793 .params = "addr size file",
794 .help = "save to disk virtual memory dump starting at 'addr' of size 'size'",
2b9e3576 795 .cmd = hmp_memsave,
d7f9b689
LC
796 },
797
a6b30bca
PM
798SRST
799``memsave`` *addr* *size* *file*
800 save to disk virtual memory dump starting at *addr* of size *size*.
801ERST
2313086a 802
d7f9b689
LC
803 {
804 .name = "pmemsave",
805 .args_type = "val:l,size:i,filename:s",
d7f9b689
LC
806 .params = "addr size file",
807 .help = "save to disk physical memory dump starting at 'addr' of size 'size'",
2b9e3576 808 .cmd = hmp_pmemsave,
d7f9b689
LC
809 },
810
a6b30bca
PM
811SRST
812``pmemsave`` *addr* *size* *file*
813 save to disk physical memory dump starting at *addr* of size *size*.
814ERST
2313086a 815
d7f9b689
LC
816 {
817 .name = "boot_set",
818 .args_type = "bootdevice:s",
d7f9b689
LC
819 .params = "bootdevice",
820 .help = "define new values for the boot device list",
2b9e3576 821 .cmd = hmp_boot_set,
d7f9b689
LC
822 },
823
a6b30bca
PM
824SRST
825``boot_set`` *bootdevicelist*
826 Define new values for the boot device list. Those values will override
827 the values specified on the command line through the ``-boot`` option.
828
829 The values that can be specified here depend on the machine type, but are
830 the same that can be specified in the ``-boot`` command line option.
831ERST
2313086a 832
d7f9b689
LC
833 {
834 .name = "nmi",
e9b4b432
LC
835 .args_type = "",
836 .params = "",
9cb805fd 837 .help = "inject an NMI",
2b9e3576 838 .cmd = hmp_nmi,
d7f9b689 839 },
a6b30bca
PM
840SRST
841``nmi`` *cpu*
842 Inject an NMI on the default CPU (x86/s390) or all CPUs (ppc64).
843ERST
1f590cf9
LL
844
845 {
3949e594 846 .name = "ringbuf_write",
1f590cf9
LL
847 .args_type = "device:s,data:s",
848 .params = "device data",
3949e594 849 .help = "Write to a ring buffer character device",
2b9e3576 850 .cmd = hmp_ringbuf_write,
8e597779 851 .command_completion = ringbuf_write_completion,
1f590cf9
LL
852 },
853
a6b30bca
PM
854SRST
855``ringbuf_write`` *device* *data*
856 Write *data* to ring buffer character device *device*.
857 *data* must be a UTF-8 string.
858ERST
49b6d722
LL
859
860 {
3949e594 861 .name = "ringbuf_read",
49b6d722
LL
862 .args_type = "device:s,size:i",
863 .params = "device size",
3949e594 864 .help = "Read from a ring buffer character device",
2b9e3576 865 .cmd = hmp_ringbuf_read,
8e597779 866 .command_completion = ringbuf_write_completion,
49b6d722
LL
867 },
868
a6b30bca
PM
869SRST
870``ringbuf_read`` *device*
871 Read and print up to *size* bytes from ring buffer character
872 device *device*.
873 Certain non-printable characters are printed ``\uXXXX``, where ``XXXX`` is the
874 character code in hexadecimal. Character ``\`` is printed ``\\``.
875 Bug: can screw up when the buffer contains invalid UTF-8 sequences,
876 NUL characters, after the ring buffer lost data, and when reading
877 stops because the size limit is reached.
878ERST
544f6ea3
DDAG
879
880 {
881 .name = "announce_self",
c6644548
DDAG
882 .args_type = "interfaces:s?,id:s?",
883 .params = "[interfaces] [id]",
544f6ea3
DDAG
884 .help = "Trigger GARP/RARP announcements",
885 .cmd = hmp_announce_self,
886 },
887
a6b30bca
PM
888SRST
889``announce_self``
890 Trigger a round of GARP/RARP broadcasts; this is useful for explicitly
891 updating the network infrastructure after a reconfiguration or some forms
892 of migration. The timings of the round are set by the migration announce
893 parameters. An optional comma separated *interfaces* list restricts the
894 announce to the named set of interfaces. An optional *id* can be used to
895 start a separate announce timer and to change the parameters of it later.
896ERST
2313086a 897
d7f9b689
LC
898 {
899 .name = "migrate",
7a4da28b
PX
900 .args_type = "detach:-d,blk:-b,inc:-i,resume:-r,uri:s",
901 .params = "[-d] [-b] [-i] [-r] uri",
fbc3d96c
LS
902 .help = "migrate to URI (using -d to not wait for completion)"
903 "\n\t\t\t -b for migration without shared storage with"
904 " full copy of disk\n\t\t\t -i for migration without "
905 "shared storage with incremental copy of disk "
7a4da28b
PX
906 "(base image shared between src and destination)"
907 "\n\t\t\t -r to resume a paused migration",
2b9e3576 908 .cmd = hmp_migrate,
d7f9b689
LC
909 },
910
fbc3d96c 911
a6b30bca
PM
912SRST
913``migrate [-d] [-b] [-i]`` *uri*
914 Migrate to *uri* (using -d to not wait for completion).
915
916 ``-b``
917 for migration with full copy of disk
918 ``-i``
919 for migration with incremental copy of disk (base image is shared)
920ERST
2313086a 921
d7f9b689
LC
922 {
923 .name = "migrate_cancel",
924 .args_type = "",
d7f9b689
LC
925 .params = "",
926 .help = "cancel the current VM migration",
2b9e3576 927 .cmd = hmp_migrate_cancel,
d7f9b689
LC
928 },
929
a6b30bca
PM
930SRST
931``migrate_cancel``
932 Cancel the current VM migration.
933ERST
9e1ba4cc 934
94ae12cb
DDAG
935 {
936 .name = "migrate_continue",
937 .args_type = "state:s",
938 .params = "state",
939 .help = "Continue migration from the given paused state",
940 .cmd = hmp_migrate_continue,
941 },
a6b30bca
PM
942SRST
943``migrate_continue`` *state*
944 Continue migration from the paused state *state*
945ERST
bf1ae1f4
DDAG
946
947 {
948 .name = "migrate_incoming",
949 .args_type = "uri:s",
950 .params = "uri",
951 .help = "Continue an incoming migration from an -incoming defer",
2b9e3576 952 .cmd = hmp_migrate_incoming,
bf1ae1f4
DDAG
953 },
954
a6b30bca
PM
955SRST
956``migrate_incoming`` *uri*
957 Continue an incoming migration using the *uri* (that has the same syntax
958 as the ``-incoming`` option).
959ERST
bf1ae1f4 960
3b563c4b
PX
961 {
962 .name = "migrate_recover",
963 .args_type = "uri:s",
964 .params = "uri",
965 .help = "Continue a paused incoming postcopy migration",
966 .cmd = hmp_migrate_recover,
967 },
968
a6b30bca
PM
969SRST
970``migrate_recover`` *uri*
971 Continue a paused incoming postcopy migration using the *uri*.
972ERST
d37297dc
PX
973
974 {
975 .name = "migrate_pause",
976 .args_type = "",
977 .params = "",
978 .help = "Pause an ongoing migration (postcopy-only)",
979 .cmd = hmp_migrate_pause,
980 },
981
a6b30bca
PM
982SRST
983``migrate_pause``
984 Pause an ongoing migration. Currently it only supports postcopy.
985ERST
9e1ba4cc
OW
986
987 {
988 .name = "migrate_set_cache_size",
989 .args_type = "value:o",
990 .params = "value",
991 .help = "set cache size (in bytes) for XBZRLE migrations,"
992 "the cache size will be rounded down to the nearest "
993 "power of 2.\n"
994 "The cache size affects the number of cache misses."
995 "In case of a high cache miss ratio you need to increase"
996 " the cache size",
2b9e3576 997 .cmd = hmp_migrate_set_cache_size,
9e1ba4cc
OW
998 },
999
a6b30bca
PM
1000SRST
1001``migrate_set_cache_size`` *value*
1002 Set cache size to *value* (in bytes) for xbzrle migrations.
1003ERST
2313086a 1004
d7f9b689
LC
1005 {
1006 .name = "migrate_set_speed",
ed3d4a80 1007 .args_type = "value:o",
d7f9b689 1008 .params = "value",
ed3d4a80
JS
1009 .help = "set maximum speed (in bytes) for migrations. "
1010 "Defaults to MB if no size suffix is specified, ie. B/K/M/G/T",
2b9e3576 1011 .cmd = hmp_migrate_set_speed,
d7f9b689
LC
1012 },
1013
a6b30bca
PM
1014SRST
1015``migrate_set_speed`` *value*
1016 Set maximum speed to *value* (in bytes) for migrations.
1017ERST
2ea42952 1018
d7f9b689
LC
1019 {
1020 .name = "migrate_set_downtime",
b0fbf7d3 1021 .args_type = "value:T",
d7f9b689
LC
1022 .params = "value",
1023 .help = "set maximum tolerated downtime (in seconds) for migrations",
2b9e3576 1024 .cmd = hmp_migrate_set_downtime,
d7f9b689 1025 },
2ea42952 1026
a6b30bca
PM
1027SRST
1028``migrate_set_downtime`` *second*
1029 Set maximum tolerated downtime (in seconds) for migration.
1030ERST
00458433
OW
1031
1032 {
1033 .name = "migrate_set_capability",
1034 .args_type = "capability:s,state:b",
1035 .params = "capability state",
1036 .help = "Enable/Disable the usage of a capability for migration",
2b9e3576 1037 .cmd = hmp_migrate_set_capability,
c68a0409 1038 .command_completion = migrate_set_capability_completion,
00458433
OW
1039 },
1040
a6b30bca
PM
1041SRST
1042``migrate_set_capability`` *capability* *state*
1043 Enable/Disable the usage of a capability *capability* for migration.
1044ERST
50e9a629
LL
1045
1046 {
1047 .name = "migrate_set_parameter",
69ef1f36 1048 .args_type = "parameter:s,value:s",
50e9a629
LL
1049 .params = "parameter value",
1050 .help = "Set the parameter for migration",
2b9e3576 1051 .cmd = hmp_migrate_set_parameter,
50e9a629
LL
1052 .command_completion = migrate_set_parameter_completion,
1053 },
1054
a6b30bca
PM
1055SRST
1056``migrate_set_parameter`` *parameter* *value*
1057 Set the parameter *parameter* for migration.
1058ERST
4886a1bc
DDAG
1059
1060 {
1061 .name = "migrate_start_postcopy",
1062 .args_type = "",
1063 .params = "",
a54d340b 1064 .help = "Followup to a migration command to switch the migration"
32c3db5b 1065 " to postcopy mode. The postcopy-ram capability must "
c2eb7f21
GK
1066 "be set on both source and destination before the "
1067 "original migration command .",
2b9e3576 1068 .cmd = hmp_migrate_start_postcopy,
4886a1bc
DDAG
1069 },
1070
a6b30bca
PM
1071SRST
1072``migrate_start_postcopy``
1073 Switch in-progress migration to postcopy mode. Ignored after the end of
1074 migration (or once already in postcopy).
1075ERST
d89e666e
HZ
1076
1077 {
1078 .name = "x_colo_lost_heartbeat",
1079 .args_type = "",
1080 .params = "",
1081 .help = "Tell COLO that heartbeat is lost,\n\t\t\t"
1082 "a failover or takeover is needed.",
1083 .cmd = hmp_x_colo_lost_heartbeat,
1084 },
1085
a6b30bca
PM
1086SRST
1087``x_colo_lost_heartbeat``
1088 Tell COLO that heartbeat is lost, a failover or takeover is needed.
1089ERST
f8882568
JS
1090
1091 {
2ea720db
JS
1092 .name = "client_migrate_info",
1093 .args_type = "protocol:s,hostname:s,port:i?,tls-port:i?,cert-subject:s?",
1094 .params = "protocol hostname port tls-port cert-subject",
13cadefb 1095 .help = "set migration information for remote display",
2b9e3576 1096 .cmd = hmp_client_migrate_info,
f8882568
JS
1097 },
1098
a6b30bca
PM
1099SRST
1100``client_migrate_info`` *protocol* *hostname* *port* *tls-port* *cert-subject*
1101 Set migration information for remote display. This makes the server
1102 ask the client to automatically reconnect using the new parameters
1103 once migration finished successfully. Only implemented for SPICE.
1104ERST
e866e239 1105
783e9b48
WC
1106 {
1107 .name = "dump-guest-memory",
2da91b54
VP
1108 .args_type = "paging:-p,detach:-d,windmp:-w,zlib:-z,lzo:-l,snappy:-s,filename:F,begin:l?,length:l?",
1109 .params = "[-p] [-d] [-z|-l|-s|-w] filename [begin length]",
c20499d9
QN
1110 .help = "dump guest memory into file 'filename'.\n\t\t\t"
1111 "-p: do paging to get guest's memory mapping.\n\t\t\t"
228de9cf 1112 "-d: return immediately (do not wait for completion).\n\t\t\t"
1b7a0f75
QN
1113 "-z: dump in kdump-compressed format, with zlib compression.\n\t\t\t"
1114 "-l: dump in kdump-compressed format, with lzo compression.\n\t\t\t"
1115 "-s: dump in kdump-compressed format, with snappy compression.\n\t\t\t"
2da91b54
VP
1116 "-w: dump in Windows crashdump format (can be used instead of ELF-dump converting),\n\t\t\t"
1117 " for Windows x64 guests with vmcoreinfo driver only.\n\t\t\t"
c20499d9
QN
1118 "begin: the starting physical address.\n\t\t\t"
1119 "length: the memory size, in bytes.",
2b9e3576 1120 .cmd = hmp_dump_guest_memory,
783e9b48
WC
1121 },
1122
a6b30bca
PM
1123SRST
1124``dump-guest-memory [-p]`` *filename* *begin* *length*
1125 \
1126``dump-guest-memory [-z|-l|-s|-w]`` *filename*
1127 Dump guest memory to *protocol*. The file can be processed with crash or
1128 gdb. Without ``-z|-l|-s|-w``, the dump format is ELF.
1129
1130 ``-p``
1131 do paging to get guest's memory mapping.
1132 ``-z``
1133 dump in kdump-compressed format, with zlib compression.
1134 ``-l``
1135 dump in kdump-compressed format, with lzo compression.
1136 ``-s``
1137 dump in kdump-compressed format, with snappy compression.
1138 ``-w``
1139 dump in Windows crashdump format (can be used instead of ELF-dump converting),
1140 for Windows x64 guests with vmcoreinfo driver only
1141 *filename*
1142 dump file name.
1143 *begin*
1144 the starting physical address. It's optional, and should be
1145 specified together with *length*.
1146 *length*
1147 the memory size, in bytes. It's optional, and should be specified
1148 together with *begin*.
1149
1150ERST
783e9b48 1151
a4538a5c
JH
1152#if defined(TARGET_S390X)
1153 {
1154 .name = "dump-skeys",
1155 .args_type = "filename:F",
1156 .params = "",
1157 .help = "Save guest storage keys into file 'filename'.\n",
2b9e3576 1158 .cmd = hmp_dump_skeys,
a4538a5c
JH
1159 },
1160#endif
1161
a6b30bca
PM
1162SRST
1163``dump-skeys`` *filename*
1164 Save guest storage keys to a file.
1165ERST
f860d497
CI
1166
1167#if defined(TARGET_S390X)
1168 {
1169 .name = "migration_mode",
1170 .args_type = "mode:i",
1171 .params = "mode",
1172 .help = "Enables or disables migration mode\n",
1173 .cmd = hmp_migrationmode,
1174 },
1175#endif
1176
a6b30bca
PM
1177SRST
1178``migration_mode`` *mode*
1179 Enables or disables migration mode.
1180ERST
a4538a5c 1181
e866e239 1182 {
2ea720db 1183 .name = "snapshot_blkdev",
6cc2a415
PB
1184 .args_type = "reuse:-n,device:B,snapshot-file:s?,format:s?",
1185 .params = "[-n] device [new-image-file] [format]",
2ea720db
JS
1186 .help = "initiates a live snapshot\n\t\t\t"
1187 "of device. If a new image file is specified, the\n\t\t\t"
1188 "new image file will become the new root image.\n\t\t\t"
1189 "If format is specified, the snapshot file will\n\t\t\t"
775ca88e 1190 "be created in that format.\n\t\t\t"
6cc2a415
PB
1191 "The default format is qcow2. The -n flag requests QEMU\n\t\t\t"
1192 "to reuse the image found in new-image-file, instead of\n\t\t\t"
1193 "recreating it from scratch.",
2b9e3576 1194 .cmd = hmp_snapshot_blkdev,
e866e239
GH
1195 },
1196
a6b30bca
PM
1197SRST
1198``snapshot_blkdev``
1199 Snapshot device, using snapshot file as target if provided
1200ERST
775ca88e
WX
1201
1202 {
1203 .name = "snapshot_blkdev_internal",
1204 .args_type = "device:B,name:s",
1205 .params = "device name",
1206 .help = "take an internal snapshot of device.\n\t\t\t"
1207 "The format of the image used by device must\n\t\t\t"
1208 "support it, such as qcow2.\n\t\t\t",
2b9e3576 1209 .cmd = hmp_snapshot_blkdev_internal,
775ca88e
WX
1210 },
1211
a6b30bca
PM
1212SRST
1213``snapshot_blkdev_internal``
1214 Take an internal snapshot on device if it support
1215ERST
7a4ed2ee
WX
1216
1217 {
1218 .name = "snapshot_delete_blkdev_internal",
1219 .args_type = "device:B,name:s,id:s?",
1220 .params = "device name [id]",
1221 .help = "delete an internal snapshot of device.\n\t\t\t"
1222 "If id is specified, qemu will try delete\n\t\t\t"
1223 "the snapshot matching both id and name.\n\t\t\t"
1224 "The format of the image used by device must\n\t\t\t"
1225 "support it, such as qcow2.\n\t\t\t",
2b9e3576 1226 .cmd = hmp_snapshot_delete_blkdev_internal,
7a4ed2ee
WX
1227 },
1228
a6b30bca
PM
1229SRST
1230``snapshot_delete_blkdev_internal``
1231 Delete an internal snapshot on device if it support
1232ERST
d9b902db
PB
1233
1234 {
1235 .name = "drive_mirror",
1236 .args_type = "reuse:-n,full:-f,device:B,target:s,format:s?",
1237 .params = "[-n] [-f] device target [format]",
1238 .help = "initiates live storage\n\t\t\t"
1239 "migration for a device. The device's contents are\n\t\t\t"
1240 "copied to the new image file, including data that\n\t\t\t"
1241 "is written after the command is started.\n\t\t\t"
1242 "The -n flag requests QEMU to reuse the image found\n\t\t\t"
1243 "in new-image-file, instead of recreating it from scratch.\n\t\t\t"
1244 "The -f flag requests QEMU to copy the whole disk,\n\t\t\t"
1245 "so that the result does not need a backing file.\n\t\t\t",
2b9e3576 1246 .cmd = hmp_drive_mirror,
d9b902db 1247 },
a6b30bca
PM
1248SRST
1249``drive_mirror``
1250 Start mirroring a block device's writes to a new destination,
1251 using the specified target.
1252ERST
de90930a
SH
1253
1254 {
1255 .name = "drive_backup",
13b9414b
PB
1256 .args_type = "reuse:-n,full:-f,compress:-c,device:B,target:s,format:s?",
1257 .params = "[-n] [-f] [-c] device target [format]",
de90930a
SH
1258 .help = "initiates a point-in-time\n\t\t\t"
1259 "copy for a device. The device's contents are\n\t\t\t"
1260 "copied to the new image file, excluding data that\n\t\t\t"
1261 "is written after the command is started.\n\t\t\t"
1262 "The -n flag requests QEMU to reuse the image found\n\t\t\t"
1263 "in new-image-file, instead of recreating it from scratch.\n\t\t\t"
1264 "The -f flag requests QEMU to copy the whole disk,\n\t\t\t"
13b9414b
PB
1265 "so that the result does not need a backing file.\n\t\t\t"
1266 "The -c flag requests QEMU to compress backup data\n\t\t\t"
1267 "(if the target format supports it).\n\t\t\t",
2b9e3576 1268 .cmd = hmp_drive_backup,
de90930a 1269 },
a6b30bca
PM
1270SRST
1271``drive_backup``
e3a6e0da 1272 Start a point-in-time copy of a block device to a specified target.
a6b30bca 1273ERST
2313086a 1274
d7f9b689
LC
1275 {
1276 .name = "drive_add",
abb21ac3
KW
1277 .args_type = "node:-n,pci_addr:s,opts:s",
1278 .params = "[-n] [[<domain>:]<bus>:]<slot>\n"
d7f9b689 1279 "[file=file][,if=type][,bus=n]\n"
fb0490f6 1280 "[,unit=m][,media=d][,index=i]\n"
fb0490f6
SH
1281 "[,snapshot=on|off][,cache=on|off]\n"
1282 "[,readonly=on|off][,copy-on-read=on|off]",
d7f9b689 1283 .help = "add drive to PCI storage controller",
2b9e3576 1284 .cmd = hmp_drive_add,
d7f9b689 1285 },
d7f9b689 1286
a6b30bca
PM
1287SRST
1288``drive_add``
1289 Add drive to PCI storage controller.
1290ERST
2ae63bda
IY
1291
1292 {
1293 .name = "pcie_aer_inject_error",
1294 .args_type = "advisory_non_fatal:-a,correctable:-c,"
1295 "id:s,error_status:s,"
1296 "header0:i?,header1:i?,header2:i?,header3:i?,"
1297 "prefix0:i?,prefix1:i?,prefix2:i?,prefix3:i?",
1298 .params = "[-a] [-c] id "
1299 "<error_status> [<tlp header> [<tlp header prefix>]]",
1300 .help = "inject pcie aer error\n\t\t\t"
1301 " -a for advisory non fatal error\n\t\t\t"
1302 " -c for correctable error\n\t\t\t"
1303 "<id> = qdev device id\n\t\t\t"
1304 "<error_status> = error string or 32bit\n\t\t\t"
8ad4e451
ZY
1305 "<tlp header> = 32bit x 4\n\t\t\t"
1306 "<tlp header prefix> = 32bit x 4",
2b9e3576 1307 .cmd = hmp_pcie_aer_inject_error,
2ae63bda
IY
1308 },
1309
a6b30bca
PM
1310SRST
1311``pcie_aer_inject_error``
1312 Inject PCIe AER error
1313ERST
ae82d324
MA
1314
1315 {
1316 .name = "netdev_add",
1317 .args_type = "netdev:O",
03ce5744 1318 .params = "[user|tap|socket|vde|bridge|hubport|netmap|vhost-user],id=str[,prop=value][,...]",
ae82d324 1319 .help = "add host network device",
2b9e3576 1320 .cmd = hmp_netdev_add,
b162b49a 1321 .command_completion = netdev_add_completion,
ae82d324
MA
1322 },
1323
a6b30bca
PM
1324SRST
1325``netdev_add``
1326 Add host network device.
1327ERST
ae82d324
MA
1328
1329 {
1330 .name = "netdev_del",
1331 .args_type = "id:s",
1332 .params = "id",
1333 .help = "remove host network device",
2b9e3576 1334 .cmd = hmp_netdev_del,
11b389f2 1335 .command_completion = netdev_del_completion,
ae82d324
MA
1336 },
1337
a6b30bca
PM
1338SRST
1339``netdev_del``
1340 Remove host network device.
1341ERST
cff8b2c6
PB
1342
1343 {
1344 .name = "object_add",
1345 .args_type = "object:O",
1346 .params = "[qom-type=]type,id=str[,prop=value][,...]",
1347 .help = "create QOM object",
2b9e3576 1348 .cmd = hmp_object_add,
bfa40f77 1349 .command_completion = object_add_completion,
cff8b2c6
PB
1350 },
1351
a6b30bca
PM
1352SRST
1353``object_add``
1354 Create QOM object.
1355ERST
ab2d0531
PB
1356
1357 {
1358 .name = "object_del",
1359 .args_type = "id:s",
1360 .params = "id",
1361 .help = "destroy QOM object",
2b9e3576 1362 .cmd = hmp_object_del,
bfa40f77 1363 .command_completion = object_del_completion,
ab2d0531
PB
1364 },
1365
a6b30bca
PM
1366SRST
1367``object_del``
1368 Destroy QOM object.
1369ERST
2313086a
BS
1370
1371#ifdef CONFIG_SLIRP
d7f9b689
LC
1372 {
1373 .name = "hostfwd_add",
b4983c57
TH
1374 .args_type = "arg1:s,arg2:s?",
1375 .params = "[netdev_id] [tcp|udp]:[hostaddr]:hostport-[guestaddr]:guestport",
d7f9b689 1376 .help = "redirect TCP or UDP connections from host to guest (requires -net user)",
2b9e3576 1377 .cmd = hmp_hostfwd_add,
d7f9b689 1378 },
21413d68 1379#endif
a6b30bca
PM
1380SRST
1381``hostfwd_add``
1382 Redirect TCP or UDP connections from host to guest (requires -net user).
1383ERST
d7f9b689 1384
21413d68 1385#ifdef CONFIG_SLIRP
d7f9b689
LC
1386 {
1387 .name = "hostfwd_remove",
b4983c57
TH
1388 .args_type = "arg1:s,arg2:s?",
1389 .params = "[netdev_id] [tcp|udp]:[hostaddr]:hostport",
d7f9b689 1390 .help = "remove host-to-guest TCP or UDP redirection",
2b9e3576 1391 .cmd = hmp_hostfwd_remove,
d7f9b689
LC
1392 },
1393
2313086a 1394#endif
a6b30bca
PM
1395SRST
1396``hostfwd_remove``
1397 Remove host-to-guest TCP or UDP redirection.
1398ERST
2313086a 1399
d7f9b689
LC
1400 {
1401 .name = "balloon",
3b0bd6ec 1402 .args_type = "value:M",
d7f9b689 1403 .params = "target",
3c05613a 1404 .help = "request VM to change its memory allocation (in MB)",
2b9e3576 1405 .cmd = hmp_balloon,
d7f9b689
LC
1406 },
1407
a6b30bca
PM
1408SRST
1409``balloon`` *value*
1410 Request VM to change its memory allocation to *value* (in MB).
1411ERST
2313086a 1412
d7f9b689
LC
1413 {
1414 .name = "set_link",
c9b26a4c
MA
1415 .args_type = "name:s,up:b",
1416 .params = "name on|off",
d7f9b689 1417 .help = "change the link status of a network adapter",
2b9e3576 1418 .cmd = hmp_set_link,
40d19394 1419 .command_completion = set_link_completion,
d7f9b689
LC
1420 },
1421
a6b30bca
PM
1422SRST
1423``set_link`` *name* ``[on|off]``
1424 Switch link *name* on (i.e. up) or off (i.e. down).
1425ERST
2313086a 1426
d7f9b689
LC
1427 {
1428 .name = "watchdog_action",
1429 .args_type = "action:s",
d7f9b689
LC
1430 .params = "[reset|shutdown|poweroff|pause|debug|none]",
1431 .help = "change watchdog action",
2b9e3576 1432 .cmd = hmp_watchdog_action,
d0ece345 1433 .command_completion = watchdog_action_completion,
d7f9b689
LC
1434 },
1435
a6b30bca
PM
1436SRST
1437``watchdog_action``
1438 Change watchdog action.
1439ERST
2313086a 1440
d7f9b689
LC
1441 {
1442 .name = "acl_show",
1443 .args_type = "aclname:s",
d7f9b689
LC
1444 .params = "aclname",
1445 .help = "list rules in the access control list",
2b9e3576 1446 .cmd = hmp_acl_show,
d7f9b689
LC
1447 },
1448
a6b30bca
PM
1449SRST
1450``acl_show`` *aclname*
1451 List all the matching rules in the access control list, and the default
1452 policy. There are currently two named access control lists,
1453 *vnc.x509dname* and *vnc.username* matching on the x509 client
1454 certificate distinguished name, and SASL username respectively.
1455ERST
2313086a 1456
d7f9b689
LC
1457 {
1458 .name = "acl_policy",
1459 .args_type = "aclname:s,policy:s",
d7f9b689
LC
1460 .params = "aclname allow|deny",
1461 .help = "set default access control list policy",
2b9e3576 1462 .cmd = hmp_acl_policy,
d7f9b689
LC
1463 },
1464
a6b30bca
PM
1465SRST
1466``acl_policy`` *aclname* ``allow|deny``
1467 Set the default access control list policy, used in the event that
1468 none of the explicit rules match. The default policy at startup is
1469 always ``deny``.
1470ERST
15dfcd45 1471
d7f9b689
LC
1472 {
1473 .name = "acl_add",
1474 .args_type = "aclname:s,match:s,policy:s,index:i?",
d7f9b689
LC
1475 .params = "aclname match allow|deny [index]",
1476 .help = "add a match rule to the access control list",
2b9e3576 1477 .cmd = hmp_acl_add,
d7f9b689
LC
1478 },
1479
a6b30bca
PM
1480SRST
1481``acl_add`` *aclname* *match* ``allow|deny`` [*index*]
1482 Add a match rule to the access control list, allowing or denying access.
1483 The match will normally be an exact username or x509 distinguished name,
1484 but can optionally include wildcard globs. eg ``*@EXAMPLE.COM`` to
1485 allow all users in the ``EXAMPLE.COM`` kerberos realm. The match will
1486 normally be appended to the end of the ACL, but can be inserted
1487 earlier in the list if the optional *index* parameter is supplied.
1488ERST
15dfcd45 1489
d7f9b689
LC
1490 {
1491 .name = "acl_remove",
1492 .args_type = "aclname:s,match:s",
d7f9b689
LC
1493 .params = "aclname match",
1494 .help = "remove a match rule from the access control list",
2b9e3576 1495 .cmd = hmp_acl_remove,
d7f9b689
LC
1496 },
1497
a6b30bca
PM
1498SRST
1499``acl_remove`` *aclname* *match*
1500 Remove the specified match rule from the access control list.
1501ERST
15dfcd45 1502
d7f9b689
LC
1503 {
1504 .name = "acl_reset",
1505 .args_type = "aclname:s",
d7f9b689
LC
1506 .params = "aclname",
1507 .help = "reset the access control list",
2b9e3576 1508 .cmd = hmp_acl_reset,
d7f9b689
LC
1509 },
1510
a6b30bca
PM
1511SRST
1512``acl_reset`` *aclname*
1513 Remove all matches from the access control list, and set the default
1514 policy back to ``deny``.
1515ERST
2313086a 1516
4057725f
PB
1517 {
1518 .name = "nbd_server_start",
1519 .args_type = "all:-a,writable:-w,uri:s",
1520 .params = "nbd_server_start [-a] [-w] host:port",
1521 .help = "serve block devices on the given host and port",
2b9e3576 1522 .cmd = hmp_nbd_server_start,
4057725f 1523 },
a6b30bca
PM
1524SRST
1525``nbd_server_start`` *host*:*port*
1526 Start an NBD server on the given host and/or port. If the ``-a``
1527 option is included, all of the virtual machine's block devices that
1528 have an inserted media on them are automatically exported; in this case,
1529 the ``-w`` option makes the devices writable too.
1530ERST
4057725f
PB
1531
1532 {
1533 .name = "nbd_server_add",
dba49323
EB
1534 .args_type = "writable:-w,device:B,name:s?",
1535 .params = "nbd_server_add [-w] device [name]",
4057725f 1536 .help = "export a block device via NBD",
2b9e3576 1537 .cmd = hmp_nbd_server_add,
4057725f 1538 },
a6b30bca
PM
1539SRST
1540``nbd_server_add`` *device* [ *name* ]
1541 Export a block device through QEMU's NBD server, which must be started
1542 beforehand with ``nbd_server_start``. The ``-w`` option makes the
1543 exported device writable too. The export name is controlled by *name*,
1544 defaulting to *device*.
1545ERST
08fb10a7
EB
1546
1547 {
1548 .name = "nbd_server_remove",
1549 .args_type = "force:-f,name:s",
1550 .params = "nbd_server_remove [-f] name",
1551 .help = "remove an export previously exposed via NBD",
1552 .cmd = hmp_nbd_server_remove,
1553 },
a6b30bca
PM
1554SRST
1555``nbd_server_remove [-f]`` *name*
1556 Stop exporting a block device through QEMU's NBD server, which was
1557 previously started with ``nbd_server_add``. The ``-f``
1558 option forces the server to drop the export immediately even if
1559 clients are connected; otherwise the command fails unless there are no
1560 clients.
1561ERST
4057725f
PB
1562
1563 {
1564 .name = "nbd_server_stop",
1565 .args_type = "",
1566 .params = "nbd_server_stop",
1567 .help = "stop serving block devices using the NBD protocol",
2b9e3576 1568 .cmd = hmp_nbd_server_stop,
4057725f 1569 },
a6b30bca
PM
1570SRST
1571``nbd_server_stop``
1572 Stop the QEMU embedded NBD server.
1573ERST
4057725f
PB
1574
1575
79c4f6b0 1576#if defined(TARGET_I386)
d7f9b689
LC
1577
1578 {
1579 .name = "mce",
31ce5e0c
JD
1580 .args_type = "broadcast:-b,cpu_index:i,bank:i,status:l,mcg_status:l,addr:l,misc:l",
1581 .params = "[-b] cpu bank status mcgstatus addr misc",
1582 .help = "inject a MCE on the given CPU [and broadcast to other CPUs with -b option]",
2b9e3576 1583 .cmd = hmp_mce,
d7f9b689
LC
1584 },
1585
79c4f6b0 1586#endif
a6b30bca
PM
1587SRST
1588``mce`` *cpu* *bank* *status* *mcgstatus* *addr* *misc*
1589 Inject an MCE on the given CPU (x86 only).
1590ERST
f07918fd 1591
d7f9b689
LC
1592 {
1593 .name = "getfd",
1594 .args_type = "fdname:s",
d7f9b689
LC
1595 .params = "getfd name",
1596 .help = "receive a file descriptor via SCM rights and assign it a name",
2b9e3576 1597 .cmd = hmp_getfd,
d7f9b689
LC
1598 },
1599
a6b30bca
PM
1600SRST
1601``getfd`` *fdname*
1602 If a file descriptor is passed alongside this command using the SCM_RIGHTS
1603 mechanism on unix sockets, it is stored using the name *fdname* for
1604 later use by other monitor commands.
1605ERST
f07918fd 1606
d7f9b689
LC
1607 {
1608 .name = "closefd",
1609 .args_type = "fdname:s",
d7f9b689
LC
1610 .params = "closefd name",
1611 .help = "close a file descriptor previously passed via SCM rights",
2b9e3576 1612 .cmd = hmp_closefd,
d7f9b689
LC
1613 },
1614
a6b30bca
PM
1615SRST
1616``closefd`` *fdname*
1617 Close the file descriptor previously assigned to *fdname* using the
1618 ``getfd`` command. This is only needed if the file descriptor was never
1619 used by another monitor command.
1620ERST
a3a55a2e
LC
1621
1622 {
1623 .name = "block_passwd",
1624 .args_type = "device:B,password:s",
1625 .params = "block_passwd device password",
1626 .help = "set the password of encrypted block devices",
2b9e3576 1627 .cmd = hmp_block_passwd,
a3a55a2e
LC
1628 },
1629
a6b30bca
PM
1630SRST
1631``block_passwd`` *device* *password*
1632 Set the encrypted device *device* password to *password*
1633
1634 This command is now obsolete and will always return an error since 2.10
1635ERST
727f005e
ZYW
1636
1637 {
1638 .name = "block_set_io_throttle",
1639 .args_type = "device:B,bps:l,bps_rd:l,bps_wr:l,iops:l,iops_rd:l,iops_wr:l",
1640 .params = "device bps bps_rd bps_wr iops iops_rd iops_wr",
1641 .help = "change I/O throttle limits for a block drive",
2b9e3576 1642 .cmd = hmp_block_set_io_throttle,
727f005e
ZYW
1643 },
1644
a6b30bca
PM
1645SRST
1646``block_set_io_throttle`` *device* *bps* *bps_rd* *bps_wr* *iops* *iops_rd* *iops_wr*
1647 Change I/O throttle limits for a block drive to
1648 *bps* *bps_rd* *bps_wr* *iops* *iops_rd* *iops_wr*.
1649 *device* can be a block device name, a qdev ID or a QOM path.
1650ERST
7572150c
GH
1651
1652 {
1653 .name = "set_password",
1654 .args_type = "protocol:s,password:s,connected:s?",
1655 .params = "protocol password action-if-connected",
1656 .help = "set spice/vnc password",
2b9e3576 1657 .cmd = hmp_set_password,
7572150c
GH
1658 },
1659
a6b30bca
PM
1660SRST
1661``set_password [ vnc | spice ] password [ action-if-connected ]``
1662 Change spice/vnc password. Use zero to make the password stay valid
1663 forever. *action-if-connected* specifies what should happen in
1664 case a connection is established: *fail* makes the password change
1665 fail. *disconnect* changes the password and disconnects the
1666 client. *keep* changes the password and keeps the connection up.
1667 *keep* is the default.
1668ERST
7572150c
GH
1669
1670 {
1671 .name = "expire_password",
1672 .args_type = "protocol:s,time:s",
1673 .params = "protocol time",
1674 .help = "set spice/vnc password expire-time",
2b9e3576 1675 .cmd = hmp_expire_password,
7572150c
GH
1676 },
1677
a6b30bca
PM
1678SRST
1679``expire_password [ vnc | spice ]`` *expire-time*
1680 Specify when a password for spice/vnc becomes
1681 invalid. *expire-time* accepts:
1682
1683 ``now``
1684 Invalidate password instantly.
1685 ``never``
1686 Password stays valid forever.
1687 ``+``\ *nsec*
1688 Password stays valid for *nsec* seconds starting now.
1689 *nsec*
1690 Password is invalidated at the given time. *nsec* are the seconds
1691 passed since 1970, i.e. unix epoch.
1692
1693ERST
f1088908 1694
46920825
GH
1695 {
1696 .name = "chardev-add",
1697 .args_type = "args:s",
1698 .params = "args",
1699 .help = "add chardev",
2b9e3576 1700 .cmd = hmp_chardev_add,
13e315da 1701 .command_completion = chardev_add_completion,
46920825
GH
1702 },
1703
a6b30bca
PM
1704SRST
1705``chardev-add`` *args*
1706 chardev-add accepts the same parameters as the -chardev command line switch.
1707ERST
75b60160
AN
1708
1709 {
1710 .name = "chardev-change",
1711 .args_type = "id:s,args:s",
1712 .params = "id args",
1713 .help = "change chardev",
1714 .cmd = hmp_chardev_change,
1715 },
1716
a6b30bca
PM
1717SRST
1718``chardev-change`` *args*
1719 chardev-change accepts existing chardev *id* and then the same arguments
1720 as the -chardev command line switch (except for "id").
1721ERST
46920825
GH
1722
1723 {
1724 .name = "chardev-remove",
1725 .args_type = "id:s",
1726 .params = "id",
1727 .help = "remove chardev",
2b9e3576 1728 .cmd = hmp_chardev_remove,
6297d9a2 1729 .command_completion = chardev_remove_completion,
46920825
GH
1730 },
1731
a6b30bca
PM
1732SRST
1733``chardev-remove`` *id*
1734 Removes the chardev *id*.
1735ERST
bd1d5ad9
SF
1736
1737 {
1738 .name = "chardev-send-break",
1739 .args_type = "id:s",
1740 .params = "id",
1741 .help = "send a break on chardev",
1742 .cmd = hmp_chardev_send_break,
1743 .command_completion = chardev_remove_completion,
1744 },
1745
a6b30bca
PM
1746SRST
1747``chardev-send-break`` *id*
1748 Send a break on the chardev *id*.
1749ERST
587da2c3
KW
1750
1751 {
1752 .name = "qemu-io",
89b6fc45
KW
1753 .args_type = "qdev:-d,device:B,command:s",
1754 .params = "[-d] [device] \"[command]\"",
1755 .help = "run a qemu-io command on a block device\n\t\t\t"
1756 "-d: [device] is a device ID rather than a "
1757 "drive ID or node name",
2b9e3576 1758 .cmd = hmp_qemu_io,
587da2c3
KW
1759 },
1760
a6b30bca
PM
1761SRST
1762``qemu-io`` *device* *command*
1763 Executes a qemu-io command on the given block device.
1764ERST
abf23329 1765
89d7fa9e
AF
1766 {
1767 .name = "qom-list",
1768 .args_type = "path:s?",
1769 .params = "path",
1770 .help = "list QOM properties",
2b9e3576 1771 .cmd = hmp_qom_list,
8c7c7ecb 1772 .flags = "p",
89d7fa9e
AF
1773 },
1774
a6b30bca
PM
1775SRST
1776``qom-list`` [*path*]
1777 Print QOM properties of object at location *path*
1778ERST
c0e6ee9e 1779
89cf4fe3
DDAG
1780 {
1781 .name = "qom-get",
1782 .args_type = "path:s,property:s",
1783 .params = "path property",
1784 .help = "print QOM property",
1785 .cmd = hmp_qom_get,
1786 .flags = "p",
1787 },
1788
1789SRST
1790``qom-get`` *path* *property*
1791 Print QOM property *property* of object at location *path*
1792ERST
1793
c0e6ee9e
AF
1794 {
1795 .name = "qom-set",
2d9e3dd9
DH
1796 .args_type = "json:-j,path:s,property:s,value:S",
1797 .params = "[-j] path property value",
1798 .help = "set QOM property.\n\t\t\t"
1799 "-j: the value is specified in json format.",
2b9e3576 1800 .cmd = hmp_qom_set,
8c7c7ecb 1801 .flags = "p",
c0e6ee9e
AF
1802 },
1803
a6b30bca
PM
1804SRST
1805``qom-set`` *path* *property* *value*
1806 Set QOM property *property* of object at location *path* to value *value*
1807ERST
b40292e7 1808
e7510671
PD
1809 {
1810 .name = "replay_break",
1811 .args_type = "icount:i",
1812 .params = "icount",
1813 .help = "set breakpoint at the specified instruction count",
1814 .cmd = hmp_replay_break,
1815 },
1816
1817SRST
1818``replay_break`` *icount*
1819 Set replay breakpoint at instruction count *icount*.
1820 Execution stops when the specified instruction is reached.
1821 There can be at most one breakpoint. When breakpoint is set, any prior
1822 one is removed. The breakpoint may be set only in replay mode and only
1823 "in the future", i.e. at instruction counts greater than the current one.
1824 The current instruction count can be observed with ``info replay``.
1825ERST
1826
1827 {
1828 .name = "replay_delete_break",
1829 .args_type = "",
1830 .params = "",
1831 .help = "remove replay breakpoint",
1832 .cmd = hmp_replay_delete_break,
1833 },
1834
1835SRST
1836``replay_delete_break``
1837 Remove replay breakpoint which was previously set with ``replay_break``.
1838 The command is ignored when there are no replay breakpoints.
1839ERST
1840
f6baed3d
PD
1841 {
1842 .name = "replay_seek",
1843 .args_type = "icount:i",
1844 .params = "icount",
1845 .help = "replay execution to the specified instruction count",
1846 .cmd = hmp_replay_seek,
1847 },
1848
1849SRST
1850``replay_seek`` *icount*
1851 Automatically proceed to the instruction count *icount*, when
1852 replaying the execution. The command automatically loads nearest
1853 snapshot and replays the execution to find the desired instruction.
1854 When there is no preceding snapshot or the execution is not replayed,
1855 then the command fails.
1856 *icount* for the reference may be observed with ``info replay`` command.
1857ERST
1858
33572ece
JK
1859 {
1860 .name = "info",
1861 .args_type = "item:s?",
1862 .params = "[subcommand]",
1863 .help = "show various information about the system state",
2b9e3576 1864 .cmd = hmp_info_help,
a0cd5e1c 1865 .sub_table = hmp_info_cmds,
8c7c7ecb 1866 .flags = "p",
33572ece
JK
1867 },
1868