]> git.proxmox.com Git - mirror_qemu.git/blob - hmp-commands.hx
qmp: add block_job_set_speed command
[mirror_qemu.git] / hmp-commands.hx
1 HXCOMM Use DEFHEADING() to define headings in both help text and texi
2 HXCOMM Text between STEXI and ETEXI are copied to texi version and
3 HXCOMM discarded from C version
4 HXCOMM DEF(command, args, callback, arg_string, help) is used to construct
5 HXCOMM monitor commands
6 HXCOMM HXCOMM can be used for comments, discarded from both texi and C
7
8 STEXI
9 @table @option
10 ETEXI
11
12 {
13 .name = "help|?",
14 .args_type = "name:s?",
15 .params = "[cmd]",
16 .help = "show the help",
17 .mhandler.cmd = do_help_cmd,
18 },
19
20 STEXI
21 @item help or ? [@var{cmd}]
22 @findex help
23 Show the help for all commands or just for command @var{cmd}.
24 ETEXI
25
26 {
27 .name = "commit",
28 .args_type = "device:B",
29 .params = "device|all",
30 .help = "commit changes to the disk images (if -snapshot is used) or backing files",
31 .mhandler.cmd = do_commit,
32 },
33
34 STEXI
35 @item commit
36 @findex commit
37 Commit changes to the disk images (if -snapshot is used) or backing files.
38 ETEXI
39
40 {
41 .name = "q|quit",
42 .args_type = "",
43 .params = "",
44 .help = "quit the emulator",
45 .user_print = monitor_user_noop,
46 .mhandler.cmd = hmp_quit,
47 },
48
49 STEXI
50 @item q or quit
51 @findex quit
52 Quit the emulator.
53 ETEXI
54
55 {
56 .name = "block_resize",
57 .args_type = "device:B,size:o",
58 .params = "device size",
59 .help = "resize a block image",
60 .mhandler.cmd = hmp_block_resize,
61 },
62
63 STEXI
64 @item block_resize
65 @findex block_resize
66 Resize a block image while a guest is running. Usually requires guest
67 action to see the updated size. Resize to a lower size is supported,
68 but should be used with extreme caution. Note that this command only
69 resizes image files, it can not resize block devices like LVM volumes.
70 ETEXI
71
72 {
73 .name = "block_stream",
74 .args_type = "device:B,base:s?",
75 .params = "device [base]",
76 .help = "copy data from a backing file into a block device",
77 .mhandler.cmd = hmp_block_stream,
78 },
79
80 STEXI
81 @item block_stream
82 @findex block_stream
83 Copy data from a backing file into a block device.
84 ETEXI
85
86 {
87 .name = "block_job_set_speed",
88 .args_type = "device:B,value:o",
89 .params = "device value",
90 .help = "set maximum speed for a background block operation",
91 .mhandler.cmd = hmp_block_job_set_speed,
92 },
93
94 STEXI
95 @item block_job_set_stream
96 @findex block_job_set_stream
97 Set maximum speed for a background block operation.
98 ETEXI
99
100 {
101 .name = "eject",
102 .args_type = "force:-f,device:B",
103 .params = "[-f] device",
104 .help = "eject a removable medium (use -f to force it)",
105 .mhandler.cmd = hmp_eject,
106 },
107
108 STEXI
109 @item eject [-f] @var{device}
110 @findex eject
111 Eject a removable medium (use -f to force it).
112 ETEXI
113
114 {
115 .name = "drive_del",
116 .args_type = "id:s",
117 .params = "device",
118 .help = "remove host block device",
119 .user_print = monitor_user_noop,
120 .mhandler.cmd_new = do_drive_del,
121 },
122
123 STEXI
124 @item drive_del @var{device}
125 @findex drive_del
126 Remove host block device. The result is that guest generated IO is no longer
127 submitted against the host device underlying the disk. Once a drive has
128 been deleted, the QEMU Block layer returns -EIO which results in IO
129 errors in the guest for applications that are reading/writing to the device.
130 ETEXI
131
132 {
133 .name = "change",
134 .args_type = "device:B,target:F,arg:s?",
135 .params = "device filename [format]",
136 .help = "change a removable medium, optional format",
137 .mhandler.cmd = hmp_change,
138 },
139
140 STEXI
141 @item change @var{device} @var{setting}
142 @findex change
143
144 Change the configuration of a device.
145
146 @table @option
147 @item change @var{diskdevice} @var{filename} [@var{format}]
148 Change the medium for a removable disk device to point to @var{filename}. eg
149
150 @example
151 (qemu) change ide1-cd0 /path/to/some.iso
152 @end example
153
154 @var{format} is optional.
155
156 @item change vnc @var{display},@var{options}
157 Change the configuration of the VNC server. The valid syntax for @var{display}
158 and @var{options} are described at @ref{sec_invocation}. eg
159
160 @example
161 (qemu) change vnc localhost:1
162 @end example
163
164 @item change vnc password [@var{password}]
165
166 Change the password associated with the VNC server. If the new password is not
167 supplied, the monitor will prompt for it to be entered. VNC passwords are only
168 significant up to 8 letters. eg
169
170 @example
171 (qemu) change vnc password
172 Password: ********
173 @end example
174
175 @end table
176 ETEXI
177
178 {
179 .name = "screendump",
180 .args_type = "filename:F",
181 .params = "filename",
182 .help = "save screen into PPM image 'filename'",
183 .user_print = monitor_user_noop,
184 .mhandler.cmd_new = do_screen_dump,
185 },
186
187 STEXI
188 @item screendump @var{filename}
189 @findex screendump
190 Save screen into PPM image @var{filename}.
191 ETEXI
192
193 {
194 .name = "logfile",
195 .args_type = "filename:F",
196 .params = "filename",
197 .help = "output logs to 'filename'",
198 .mhandler.cmd = do_logfile,
199 },
200
201 STEXI
202 @item logfile @var{filename}
203 @findex logfile
204 Output logs to @var{filename}.
205 ETEXI
206
207 {
208 .name = "trace-event",
209 .args_type = "name:s,option:b",
210 .params = "name on|off",
211 .help = "changes status of a specific trace event",
212 .mhandler.cmd = do_trace_event_set_state,
213 },
214
215 STEXI
216 @item trace-event
217 @findex trace-event
218 changes status of a trace event
219 ETEXI
220
221 #if defined(CONFIG_TRACE_SIMPLE)
222 {
223 .name = "trace-file",
224 .args_type = "op:s?,arg:F?",
225 .params = "on|off|flush|set [arg]",
226 .help = "open, close, or flush trace file, or set a new file name",
227 .mhandler.cmd = do_trace_file,
228 },
229
230 STEXI
231 @item trace-file on|off|flush
232 @findex trace-file
233 Open, close, or flush the trace file. If no argument is given, the status of the trace file is displayed.
234 ETEXI
235 #endif
236
237 {
238 .name = "log",
239 .args_type = "items:s",
240 .params = "item1[,...]",
241 .help = "activate logging of the specified items to '/tmp/qemu.log'",
242 .mhandler.cmd = do_log,
243 },
244
245 STEXI
246 @item log @var{item1}[,...]
247 @findex log
248 Activate logging of the specified items to @file{/tmp/qemu.log}.
249 ETEXI
250
251 {
252 .name = "savevm",
253 .args_type = "name:s?",
254 .params = "[tag|id]",
255 .help = "save a VM snapshot. If no tag or id are provided, a new snapshot is created",
256 .mhandler.cmd = do_savevm,
257 },
258
259 STEXI
260 @item savevm [@var{tag}|@var{id}]
261 @findex savevm
262 Create a snapshot of the whole virtual machine. If @var{tag} is
263 provided, it is used as human readable identifier. If there is already
264 a snapshot with the same tag or ID, it is replaced. More info at
265 @ref{vm_snapshots}.
266 ETEXI
267
268 {
269 .name = "loadvm",
270 .args_type = "name:s",
271 .params = "tag|id",
272 .help = "restore a VM snapshot from its tag or id",
273 .mhandler.cmd = do_loadvm,
274 },
275
276 STEXI
277 @item loadvm @var{tag}|@var{id}
278 @findex loadvm
279 Set the whole virtual machine to the snapshot identified by the tag
280 @var{tag} or the unique snapshot ID @var{id}.
281 ETEXI
282
283 {
284 .name = "delvm",
285 .args_type = "name:s",
286 .params = "tag|id",
287 .help = "delete a VM snapshot from its tag or id",
288 .mhandler.cmd = do_delvm,
289 },
290
291 STEXI
292 @item delvm @var{tag}|@var{id}
293 @findex delvm
294 Delete the snapshot identified by @var{tag} or @var{id}.
295 ETEXI
296
297 {
298 .name = "singlestep",
299 .args_type = "option:s?",
300 .params = "[on|off]",
301 .help = "run emulation in singlestep mode or switch to normal mode",
302 .mhandler.cmd = do_singlestep,
303 },
304
305 STEXI
306 @item singlestep [off]
307 @findex singlestep
308 Run the emulation in single step mode.
309 If called with option off, the emulation returns to normal mode.
310 ETEXI
311
312 {
313 .name = "stop",
314 .args_type = "",
315 .params = "",
316 .help = "stop emulation",
317 .mhandler.cmd = hmp_stop,
318 },
319
320 STEXI
321 @item stop
322 @findex stop
323 Stop emulation.
324 ETEXI
325
326 {
327 .name = "c|cont",
328 .args_type = "",
329 .params = "",
330 .help = "resume emulation",
331 .mhandler.cmd = hmp_cont,
332 },
333
334 STEXI
335 @item c or cont
336 @findex cont
337 Resume emulation.
338 ETEXI
339
340 {
341 .name = "gdbserver",
342 .args_type = "device:s?",
343 .params = "[device]",
344 .help = "start gdbserver on given device (default 'tcp::1234'), stop with 'none'",
345 .mhandler.cmd = do_gdbserver,
346 },
347
348 STEXI
349 @item gdbserver [@var{port}]
350 @findex gdbserver
351 Start gdbserver session (default @var{port}=1234)
352 ETEXI
353
354 {
355 .name = "x",
356 .args_type = "fmt:/,addr:l",
357 .params = "/fmt addr",
358 .help = "virtual memory dump starting at 'addr'",
359 .mhandler.cmd = do_memory_dump,
360 },
361
362 STEXI
363 @item x/fmt @var{addr}
364 @findex x
365 Virtual memory dump starting at @var{addr}.
366 ETEXI
367
368 {
369 .name = "xp",
370 .args_type = "fmt:/,addr:l",
371 .params = "/fmt addr",
372 .help = "physical memory dump starting at 'addr'",
373 .mhandler.cmd = do_physical_memory_dump,
374 },
375
376 STEXI
377 @item xp /@var{fmt} @var{addr}
378 @findex xp
379 Physical memory dump starting at @var{addr}.
380
381 @var{fmt} is a format which tells the command how to format the
382 data. Its syntax is: @option{/@{count@}@{format@}@{size@}}
383
384 @table @var
385 @item count
386 is the number of items to be dumped.
387
388 @item format
389 can be x (hex), d (signed decimal), u (unsigned decimal), o (octal),
390 c (char) or i (asm instruction).
391
392 @item size
393 can be b (8 bits), h (16 bits), w (32 bits) or g (64 bits). On x86,
394 @code{h} or @code{w} can be specified with the @code{i} format to
395 respectively select 16 or 32 bit code instruction size.
396
397 @end table
398
399 Examples:
400 @itemize
401 @item
402 Dump 10 instructions at the current instruction pointer:
403 @example
404 (qemu) x/10i $eip
405 0x90107063: ret
406 0x90107064: sti
407 0x90107065: lea 0x0(%esi,1),%esi
408 0x90107069: lea 0x0(%edi,1),%edi
409 0x90107070: ret
410 0x90107071: jmp 0x90107080
411 0x90107073: nop
412 0x90107074: nop
413 0x90107075: nop
414 0x90107076: nop
415 @end example
416
417 @item
418 Dump 80 16 bit values at the start of the video memory.
419 @smallexample
420 (qemu) xp/80hx 0xb8000
421 0x000b8000: 0x0b50 0x0b6c 0x0b65 0x0b78 0x0b38 0x0b36 0x0b2f 0x0b42
422 0x000b8010: 0x0b6f 0x0b63 0x0b68 0x0b73 0x0b20 0x0b56 0x0b47 0x0b41
423 0x000b8020: 0x0b42 0x0b69 0x0b6f 0x0b73 0x0b20 0x0b63 0x0b75 0x0b72
424 0x000b8030: 0x0b72 0x0b65 0x0b6e 0x0b74 0x0b2d 0x0b63 0x0b76 0x0b73
425 0x000b8040: 0x0b20 0x0b30 0x0b35 0x0b20 0x0b4e 0x0b6f 0x0b76 0x0b20
426 0x000b8050: 0x0b32 0x0b30 0x0b30 0x0b33 0x0720 0x0720 0x0720 0x0720
427 0x000b8060: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
428 0x000b8070: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
429 0x000b8080: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
430 0x000b8090: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720
431 @end smallexample
432 @end itemize
433 ETEXI
434
435 {
436 .name = "p|print",
437 .args_type = "fmt:/,val:l",
438 .params = "/fmt expr",
439 .help = "print expression value (use $reg for CPU register access)",
440 .mhandler.cmd = do_print,
441 },
442
443 STEXI
444 @item p or print/@var{fmt} @var{expr}
445 @findex print
446
447 Print expression value. Only the @var{format} part of @var{fmt} is
448 used.
449 ETEXI
450
451 {
452 .name = "i",
453 .args_type = "fmt:/,addr:i,index:i.",
454 .params = "/fmt addr",
455 .help = "I/O port read",
456 .mhandler.cmd = do_ioport_read,
457 },
458
459 STEXI
460 Read I/O port.
461 ETEXI
462
463 {
464 .name = "o",
465 .args_type = "fmt:/,addr:i,val:i",
466 .params = "/fmt addr value",
467 .help = "I/O port write",
468 .mhandler.cmd = do_ioport_write,
469 },
470
471 STEXI
472 Write to I/O port.
473 ETEXI
474
475 {
476 .name = "sendkey",
477 .args_type = "string:s,hold_time:i?",
478 .params = "keys [hold_ms]",
479 .help = "send keys to the VM (e.g. 'sendkey ctrl-alt-f1', default hold time=100 ms)",
480 .mhandler.cmd = do_sendkey,
481 },
482
483 STEXI
484 @item sendkey @var{keys}
485 @findex sendkey
486
487 Send @var{keys} to the emulator. @var{keys} could be the name of the
488 key or @code{#} followed by the raw value in either decimal or hexadecimal
489 format. Use @code{-} to press several keys simultaneously. Example:
490 @example
491 sendkey ctrl-alt-f1
492 @end example
493
494 This command is useful to send keys that your graphical user interface
495 intercepts at low level, such as @code{ctrl-alt-f1} in X Window.
496 ETEXI
497
498 {
499 .name = "system_reset",
500 .args_type = "",
501 .params = "",
502 .help = "reset the system",
503 .mhandler.cmd = hmp_system_reset,
504 },
505
506 STEXI
507 @item system_reset
508 @findex system_reset
509
510 Reset the system.
511 ETEXI
512
513 {
514 .name = "system_powerdown",
515 .args_type = "",
516 .params = "",
517 .help = "send system power down event",
518 .mhandler.cmd = hmp_system_powerdown,
519 },
520
521 STEXI
522 @item system_powerdown
523 @findex system_powerdown
524
525 Power down the system (if supported).
526 ETEXI
527
528 {
529 .name = "sum",
530 .args_type = "start:i,size:i",
531 .params = "addr size",
532 .help = "compute the checksum of a memory region",
533 .mhandler.cmd = do_sum,
534 },
535
536 STEXI
537 @item sum @var{addr} @var{size}
538 @findex sum
539
540 Compute the checksum of a memory region.
541 ETEXI
542
543 {
544 .name = "usb_add",
545 .args_type = "devname:s",
546 .params = "device",
547 .help = "add USB device (e.g. 'host:bus.addr' or 'host:vendor_id:product_id')",
548 .mhandler.cmd = do_usb_add,
549 },
550
551 STEXI
552 @item usb_add @var{devname}
553 @findex usb_add
554
555 Add the USB device @var{devname}. For details of available devices see
556 @ref{usb_devices}
557 ETEXI
558
559 {
560 .name = "usb_del",
561 .args_type = "devname:s",
562 .params = "device",
563 .help = "remove USB device 'bus.addr'",
564 .mhandler.cmd = do_usb_del,
565 },
566
567 STEXI
568 @item usb_del @var{devname}
569 @findex usb_del
570
571 Remove the USB device @var{devname} from the QEMU virtual USB
572 hub. @var{devname} has the syntax @code{bus.addr}. Use the monitor
573 command @code{info usb} to see the devices you can remove.
574 ETEXI
575
576 {
577 .name = "device_add",
578 .args_type = "device:O",
579 .params = "driver[,prop=value][,...]",
580 .help = "add device, like -device on the command line",
581 .user_print = monitor_user_noop,
582 .mhandler.cmd_new = do_device_add,
583 },
584
585 STEXI
586 @item device_add @var{config}
587 @findex device_add
588
589 Add device.
590 ETEXI
591
592 {
593 .name = "device_del",
594 .args_type = "id:s",
595 .params = "device",
596 .help = "remove device",
597 .user_print = monitor_user_noop,
598 .mhandler.cmd_new = do_device_del,
599 },
600
601 STEXI
602 @item device_del @var{id}
603 @findex device_del
604
605 Remove device @var{id}.
606 ETEXI
607
608 {
609 .name = "cpu",
610 .args_type = "index:i",
611 .params = "index",
612 .help = "set the default CPU",
613 .mhandler.cmd = hmp_cpu,
614 },
615
616 STEXI
617 @item cpu @var{index}
618 @findex cpu
619 Set the default CPU.
620 ETEXI
621
622 {
623 .name = "mouse_move",
624 .args_type = "dx_str:s,dy_str:s,dz_str:s?",
625 .params = "dx dy [dz]",
626 .help = "send mouse move events",
627 .mhandler.cmd = do_mouse_move,
628 },
629
630 STEXI
631 @item mouse_move @var{dx} @var{dy} [@var{dz}]
632 @findex mouse_move
633 Move the active mouse to the specified coordinates @var{dx} @var{dy}
634 with optional scroll axis @var{dz}.
635 ETEXI
636
637 {
638 .name = "mouse_button",
639 .args_type = "button_state:i",
640 .params = "state",
641 .help = "change mouse button state (1=L, 2=M, 4=R)",
642 .mhandler.cmd = do_mouse_button,
643 },
644
645 STEXI
646 @item mouse_button @var{val}
647 @findex mouse_button
648 Change the active mouse button state @var{val} (1=L, 2=M, 4=R).
649 ETEXI
650
651 {
652 .name = "mouse_set",
653 .args_type = "index:i",
654 .params = "index",
655 .help = "set which mouse device receives events",
656 .mhandler.cmd = do_mouse_set,
657 },
658
659 STEXI
660 @item mouse_set @var{index}
661 @findex mouse_set
662 Set which mouse device receives events at given @var{index}, index
663 can be obtained with
664 @example
665 info mice
666 @end example
667 ETEXI
668
669 #ifdef HAS_AUDIO
670 {
671 .name = "wavcapture",
672 .args_type = "path:F,freq:i?,bits:i?,nchannels:i?",
673 .params = "path [frequency [bits [channels]]]",
674 .help = "capture audio to a wave file (default frequency=44100 bits=16 channels=2)",
675 .mhandler.cmd = do_wav_capture,
676 },
677 #endif
678 STEXI
679 @item wavcapture @var{filename} [@var{frequency} [@var{bits} [@var{channels}]]]
680 @findex wavcapture
681 Capture audio into @var{filename}. Using sample rate @var{frequency}
682 bits per sample @var{bits} and number of channels @var{channels}.
683
684 Defaults:
685 @itemize @minus
686 @item Sample rate = 44100 Hz - CD quality
687 @item Bits = 16
688 @item Number of channels = 2 - Stereo
689 @end itemize
690 ETEXI
691
692 #ifdef HAS_AUDIO
693 {
694 .name = "stopcapture",
695 .args_type = "n:i",
696 .params = "capture index",
697 .help = "stop capture",
698 .mhandler.cmd = do_stop_capture,
699 },
700 #endif
701 STEXI
702 @item stopcapture @var{index}
703 @findex stopcapture
704 Stop capture with a given @var{index}, index can be obtained with
705 @example
706 info capture
707 @end example
708 ETEXI
709
710 {
711 .name = "memsave",
712 .args_type = "val:l,size:i,filename:s",
713 .params = "addr size file",
714 .help = "save to disk virtual memory dump starting at 'addr' of size 'size'",
715 .mhandler.cmd = hmp_memsave,
716 },
717
718 STEXI
719 @item memsave @var{addr} @var{size} @var{file}
720 @findex memsave
721 save to disk virtual memory dump starting at @var{addr} of size @var{size}.
722 ETEXI
723
724 {
725 .name = "pmemsave",
726 .args_type = "val:l,size:i,filename:s",
727 .params = "addr size file",
728 .help = "save to disk physical memory dump starting at 'addr' of size 'size'",
729 .mhandler.cmd = hmp_pmemsave,
730 },
731
732 STEXI
733 @item pmemsave @var{addr} @var{size} @var{file}
734 @findex pmemsave
735 save to disk physical memory dump starting at @var{addr} of size @var{size}.
736 ETEXI
737
738 {
739 .name = "boot_set",
740 .args_type = "bootdevice:s",
741 .params = "bootdevice",
742 .help = "define new values for the boot device list",
743 .mhandler.cmd = do_boot_set,
744 },
745
746 STEXI
747 @item boot_set @var{bootdevicelist}
748 @findex boot_set
749
750 Define new values for the boot device list. Those values will override
751 the values specified on the command line through the @code{-boot} option.
752
753 The values that can be specified here depend on the machine type, but are
754 the same that can be specified in the @code{-boot} command line option.
755 ETEXI
756
757 #if defined(TARGET_I386)
758 {
759 .name = "nmi",
760 .args_type = "",
761 .params = "",
762 .help = "inject an NMI on all guest's CPUs",
763 .mhandler.cmd = hmp_inject_nmi,
764 },
765 #endif
766 STEXI
767 @item nmi @var{cpu}
768 @findex nmi
769 Inject an NMI on the given CPU (x86 only).
770 ETEXI
771
772 {
773 .name = "migrate",
774 .args_type = "detach:-d,blk:-b,inc:-i,uri:s",
775 .params = "[-d] [-b] [-i] uri",
776 .help = "migrate to URI (using -d to not wait for completion)"
777 "\n\t\t\t -b for migration without shared storage with"
778 " full copy of disk\n\t\t\t -i for migration without "
779 "shared storage with incremental copy of disk "
780 "(base image shared between src and destination)",
781 .user_print = monitor_user_noop,
782 .mhandler.cmd_new = do_migrate,
783 },
784
785
786 STEXI
787 @item migrate [-d] [-b] [-i] @var{uri}
788 @findex migrate
789 Migrate to @var{uri} (using -d to not wait for completion).
790 -b for migration with full copy of disk
791 -i for migration with incremental copy of disk (base image is shared)
792 ETEXI
793
794 {
795 .name = "migrate_cancel",
796 .args_type = "",
797 .params = "",
798 .help = "cancel the current VM migration",
799 .mhandler.cmd = hmp_migrate_cancel,
800 },
801
802 STEXI
803 @item migrate_cancel
804 @findex migrate_cancel
805 Cancel the current VM migration.
806 ETEXI
807
808 {
809 .name = "migrate_set_speed",
810 .args_type = "value:o",
811 .params = "value",
812 .help = "set maximum speed (in bytes) for migrations. "
813 "Defaults to MB if no size suffix is specified, ie. B/K/M/G/T",
814 .mhandler.cmd = hmp_migrate_set_speed,
815 },
816
817 STEXI
818 @item migrate_set_speed @var{value}
819 @findex migrate_set_speed
820 Set maximum speed to @var{value} (in bytes) for migrations.
821 ETEXI
822
823 {
824 .name = "migrate_set_downtime",
825 .args_type = "value:T",
826 .params = "value",
827 .help = "set maximum tolerated downtime (in seconds) for migrations",
828 .mhandler.cmd = hmp_migrate_set_downtime,
829 },
830
831 STEXI
832 @item migrate_set_downtime @var{second}
833 @findex migrate_set_downtime
834 Set maximum tolerated downtime (in seconds) for migration.
835 ETEXI
836
837 {
838 .name = "client_migrate_info",
839 .args_type = "protocol:s,hostname:s,port:i?,tls-port:i?,cert-subject:s?",
840 .params = "protocol hostname port tls-port cert-subject",
841 .help = "send migration info to spice/vnc client",
842 .user_print = monitor_user_noop,
843 .mhandler.cmd_async = client_migrate_info,
844 .flags = MONITOR_CMD_ASYNC,
845 },
846
847 STEXI
848 @item client_migrate_info @var{protocol} @var{hostname} @var{port} @var{tls-port} @var{cert-subject}
849 @findex client_migrate_info
850 Set the spice/vnc connection info for the migration target. The spice/vnc
851 server will ask the spice/vnc client to automatically reconnect using the
852 new parameters (if specified) once the vm migration finished successfully.
853 ETEXI
854
855 {
856 .name = "snapshot_blkdev",
857 .args_type = "device:B,snapshot-file:s?,format:s?",
858 .params = "device [new-image-file] [format]",
859 .help = "initiates a live snapshot\n\t\t\t"
860 "of device. If a new image file is specified, the\n\t\t\t"
861 "new image file will become the new root image.\n\t\t\t"
862 "If format is specified, the snapshot file will\n\t\t\t"
863 "be created in that format. Otherwise the\n\t\t\t"
864 "snapshot will be internal! (currently unsupported)",
865 .mhandler.cmd = hmp_snapshot_blkdev,
866 },
867
868 STEXI
869 @item snapshot_blkdev
870 @findex snapshot_blkdev
871 Snapshot device, using snapshot file as target if provided
872 ETEXI
873
874 {
875 .name = "drive_add",
876 .args_type = "pci_addr:s,opts:s",
877 .params = "[[<domain>:]<bus>:]<slot>\n"
878 "[file=file][,if=type][,bus=n]\n"
879 "[,unit=m][,media=d][,index=i]\n"
880 "[,cyls=c,heads=h,secs=s[,trans=t]]\n"
881 "[,snapshot=on|off][,cache=on|off]\n"
882 "[,readonly=on|off][,copy-on-read=on|off]",
883 .help = "add drive to PCI storage controller",
884 .mhandler.cmd = drive_hot_add,
885 },
886
887 STEXI
888 @item drive_add
889 @findex drive_add
890 Add drive to PCI storage controller.
891 ETEXI
892
893 #if defined(TARGET_I386)
894 {
895 .name = "pci_add",
896 .args_type = "pci_addr:s,type:s,opts:s?",
897 .params = "auto|[[<domain>:]<bus>:]<slot> nic|storage [[vlan=n][,macaddr=addr][,model=type]] [file=file][,if=type][,bus=nr]...",
898 .help = "hot-add PCI device",
899 .mhandler.cmd = pci_device_hot_add,
900 },
901 #endif
902
903 STEXI
904 @item pci_add
905 @findex pci_add
906 Hot-add PCI device.
907 ETEXI
908
909 #if defined(TARGET_I386)
910 {
911 .name = "pci_del",
912 .args_type = "pci_addr:s",
913 .params = "[[<domain>:]<bus>:]<slot>",
914 .help = "hot remove PCI device",
915 .mhandler.cmd = do_pci_device_hot_remove,
916 },
917 #endif
918
919 STEXI
920 @item pci_del
921 @findex pci_del
922 Hot remove PCI device.
923 ETEXI
924
925 {
926 .name = "pcie_aer_inject_error",
927 .args_type = "advisory_non_fatal:-a,correctable:-c,"
928 "id:s,error_status:s,"
929 "header0:i?,header1:i?,header2:i?,header3:i?,"
930 "prefix0:i?,prefix1:i?,prefix2:i?,prefix3:i?",
931 .params = "[-a] [-c] id "
932 "<error_status> [<tlp header> [<tlp header prefix>]]",
933 .help = "inject pcie aer error\n\t\t\t"
934 " -a for advisory non fatal error\n\t\t\t"
935 " -c for correctable error\n\t\t\t"
936 "<id> = qdev device id\n\t\t\t"
937 "<error_status> = error string or 32bit\n\t\t\t"
938 "<tlb header> = 32bit x 4\n\t\t\t"
939 "<tlb header prefix> = 32bit x 4",
940 .user_print = pcie_aer_inject_error_print,
941 .mhandler.cmd_new = do_pcie_aer_inject_error,
942 },
943
944 STEXI
945 @item pcie_aer_inject_error
946 @findex pcie_aer_inject_error
947 Inject PCIe AER error
948 ETEXI
949
950 {
951 .name = "host_net_add",
952 .args_type = "device:s,opts:s?",
953 .params = "tap|user|socket|vde|dump [options]",
954 .help = "add host VLAN client",
955 .mhandler.cmd = net_host_device_add,
956 },
957
958 STEXI
959 @item host_net_add
960 @findex host_net_add
961 Add host VLAN client.
962 ETEXI
963
964 {
965 .name = "host_net_remove",
966 .args_type = "vlan_id:i,device:s",
967 .params = "vlan_id name",
968 .help = "remove host VLAN client",
969 .mhandler.cmd = net_host_device_remove,
970 },
971
972 STEXI
973 @item host_net_remove
974 @findex host_net_remove
975 Remove host VLAN client.
976 ETEXI
977
978 {
979 .name = "netdev_add",
980 .args_type = "netdev:O",
981 .params = "[user|tap|socket],id=str[,prop=value][,...]",
982 .help = "add host network device",
983 .user_print = monitor_user_noop,
984 .mhandler.cmd_new = do_netdev_add,
985 },
986
987 STEXI
988 @item netdev_add
989 @findex netdev_add
990 Add host network device.
991 ETEXI
992
993 {
994 .name = "netdev_del",
995 .args_type = "id:s",
996 .params = "id",
997 .help = "remove host network device",
998 .user_print = monitor_user_noop,
999 .mhandler.cmd_new = do_netdev_del,
1000 },
1001
1002 STEXI
1003 @item netdev_del
1004 @findex netdev_del
1005 Remove host network device.
1006 ETEXI
1007
1008 #ifdef CONFIG_SLIRP
1009 {
1010 .name = "hostfwd_add",
1011 .args_type = "arg1:s,arg2:s?,arg3:s?",
1012 .params = "[vlan_id name] [tcp|udp]:[hostaddr]:hostport-[guestaddr]:guestport",
1013 .help = "redirect TCP or UDP connections from host to guest (requires -net user)",
1014 .mhandler.cmd = net_slirp_hostfwd_add,
1015 },
1016 #endif
1017 STEXI
1018 @item hostfwd_add
1019 @findex hostfwd_add
1020 Redirect TCP or UDP connections from host to guest (requires -net user).
1021 ETEXI
1022
1023 #ifdef CONFIG_SLIRP
1024 {
1025 .name = "hostfwd_remove",
1026 .args_type = "arg1:s,arg2:s?,arg3:s?",
1027 .params = "[vlan_id name] [tcp|udp]:[hostaddr]:hostport",
1028 .help = "remove host-to-guest TCP or UDP redirection",
1029 .mhandler.cmd = net_slirp_hostfwd_remove,
1030 },
1031
1032 #endif
1033 STEXI
1034 @item hostfwd_remove
1035 @findex hostfwd_remove
1036 Remove host-to-guest TCP or UDP redirection.
1037 ETEXI
1038
1039 {
1040 .name = "balloon",
1041 .args_type = "value:M",
1042 .params = "target",
1043 .help = "request VM to change its memory allocation (in MB)",
1044 .mhandler.cmd = hmp_balloon,
1045 },
1046
1047 STEXI
1048 @item balloon @var{value}
1049 @findex balloon
1050 Request VM to change its memory allocation to @var{value} (in MB).
1051 ETEXI
1052
1053 {
1054 .name = "set_link",
1055 .args_type = "name:s,up:b",
1056 .params = "name on|off",
1057 .help = "change the link status of a network adapter",
1058 .mhandler.cmd = hmp_set_link,
1059 },
1060
1061 STEXI
1062 @item set_link @var{name} [on|off]
1063 @findex set_link
1064 Switch link @var{name} on (i.e. up) or off (i.e. down).
1065 ETEXI
1066
1067 {
1068 .name = "watchdog_action",
1069 .args_type = "action:s",
1070 .params = "[reset|shutdown|poweroff|pause|debug|none]",
1071 .help = "change watchdog action",
1072 .mhandler.cmd = do_watchdog_action,
1073 },
1074
1075 STEXI
1076 @item watchdog_action
1077 @findex watchdog_action
1078 Change watchdog action.
1079 ETEXI
1080
1081 {
1082 .name = "acl_show",
1083 .args_type = "aclname:s",
1084 .params = "aclname",
1085 .help = "list rules in the access control list",
1086 .mhandler.cmd = do_acl_show,
1087 },
1088
1089 STEXI
1090 @item acl_show @var{aclname}
1091 @findex acl_show
1092 List all the matching rules in the access control list, and the default
1093 policy. There are currently two named access control lists,
1094 @var{vnc.x509dname} and @var{vnc.username} matching on the x509 client
1095 certificate distinguished name, and SASL username respectively.
1096 ETEXI
1097
1098 {
1099 .name = "acl_policy",
1100 .args_type = "aclname:s,policy:s",
1101 .params = "aclname allow|deny",
1102 .help = "set default access control list policy",
1103 .mhandler.cmd = do_acl_policy,
1104 },
1105
1106 STEXI
1107 @item acl_policy @var{aclname} @code{allow|deny}
1108 @findex acl_policy
1109 Set the default access control list policy, used in the event that
1110 none of the explicit rules match. The default policy at startup is
1111 always @code{deny}.
1112 ETEXI
1113
1114 {
1115 .name = "acl_add",
1116 .args_type = "aclname:s,match:s,policy:s,index:i?",
1117 .params = "aclname match allow|deny [index]",
1118 .help = "add a match rule to the access control list",
1119 .mhandler.cmd = do_acl_add,
1120 },
1121
1122 STEXI
1123 @item acl_add @var{aclname} @var{match} @code{allow|deny} [@var{index}]
1124 @findex acl_add
1125 Add a match rule to the access control list, allowing or denying access.
1126 The match will normally be an exact username or x509 distinguished name,
1127 but can optionally include wildcard globs. eg @code{*@@EXAMPLE.COM} to
1128 allow all users in the @code{EXAMPLE.COM} kerberos realm. The match will
1129 normally be appended to the end of the ACL, but can be inserted
1130 earlier in the list if the optional @var{index} parameter is supplied.
1131 ETEXI
1132
1133 {
1134 .name = "acl_remove",
1135 .args_type = "aclname:s,match:s",
1136 .params = "aclname match",
1137 .help = "remove a match rule from the access control list",
1138 .mhandler.cmd = do_acl_remove,
1139 },
1140
1141 STEXI
1142 @item acl_remove @var{aclname} @var{match}
1143 @findex acl_remove
1144 Remove the specified match rule from the access control list.
1145 ETEXI
1146
1147 {
1148 .name = "acl_reset",
1149 .args_type = "aclname:s",
1150 .params = "aclname",
1151 .help = "reset the access control list",
1152 .mhandler.cmd = do_acl_reset,
1153 },
1154
1155 STEXI
1156 @item acl_reset @var{aclname}
1157 @findex acl_reset
1158 Remove all matches from the access control list, and set the default
1159 policy back to @code{deny}.
1160 ETEXI
1161
1162 #if defined(TARGET_I386)
1163
1164 {
1165 .name = "mce",
1166 .args_type = "broadcast:-b,cpu_index:i,bank:i,status:l,mcg_status:l,addr:l,misc:l",
1167 .params = "[-b] cpu bank status mcgstatus addr misc",
1168 .help = "inject a MCE on the given CPU [and broadcast to other CPUs with -b option]",
1169 .mhandler.cmd = do_inject_mce,
1170 },
1171
1172 #endif
1173 STEXI
1174 @item mce @var{cpu} @var{bank} @var{status} @var{mcgstatus} @var{addr} @var{misc}
1175 @findex mce (x86)
1176 Inject an MCE on the given CPU (x86 only).
1177 ETEXI
1178
1179 {
1180 .name = "getfd",
1181 .args_type = "fdname:s",
1182 .params = "getfd name",
1183 .help = "receive a file descriptor via SCM rights and assign it a name",
1184 .user_print = monitor_user_noop,
1185 .mhandler.cmd_new = do_getfd,
1186 },
1187
1188 STEXI
1189 @item getfd @var{fdname}
1190 @findex getfd
1191 If a file descriptor is passed alongside this command using the SCM_RIGHTS
1192 mechanism on unix sockets, it is stored using the name @var{fdname} for
1193 later use by other monitor commands.
1194 ETEXI
1195
1196 {
1197 .name = "closefd",
1198 .args_type = "fdname:s",
1199 .params = "closefd name",
1200 .help = "close a file descriptor previously passed via SCM rights",
1201 .user_print = monitor_user_noop,
1202 .mhandler.cmd_new = do_closefd,
1203 },
1204
1205 STEXI
1206 @item closefd @var{fdname}
1207 @findex closefd
1208 Close the file descriptor previously assigned to @var{fdname} using the
1209 @code{getfd} command. This is only needed if the file descriptor was never
1210 used by another monitor command.
1211 ETEXI
1212
1213 {
1214 .name = "block_passwd",
1215 .args_type = "device:B,password:s",
1216 .params = "block_passwd device password",
1217 .help = "set the password of encrypted block devices",
1218 .mhandler.cmd = hmp_block_passwd,
1219 },
1220
1221 STEXI
1222 @item block_set_io_throttle @var{device} @var{bps} @var{bps_rd} @var{bps_wr} @var{iops} @var{iops_rd} @var{iops_wr}
1223 @findex block_set_io_throttle
1224 Change I/O throttle limits for a block drive to @var{bps} @var{bps_rd} @var{bps_wr} @var{iops} @var{iops_rd} @var{iops_wr}
1225 ETEXI
1226
1227 {
1228 .name = "block_set_io_throttle",
1229 .args_type = "device:B,bps:l,bps_rd:l,bps_wr:l,iops:l,iops_rd:l,iops_wr:l",
1230 .params = "device bps bps_rd bps_wr iops iops_rd iops_wr",
1231 .help = "change I/O throttle limits for a block drive",
1232 .mhandler.cmd = hmp_block_set_io_throttle,
1233 },
1234
1235 STEXI
1236 @item block_passwd @var{device} @var{password}
1237 @findex block_passwd
1238 Set the encrypted device @var{device} password to @var{password}
1239 ETEXI
1240
1241 {
1242 .name = "set_password",
1243 .args_type = "protocol:s,password:s,connected:s?",
1244 .params = "protocol password action-if-connected",
1245 .help = "set spice/vnc password",
1246 .mhandler.cmd = hmp_set_password,
1247 },
1248
1249 STEXI
1250 @item set_password [ vnc | spice ] password [ action-if-connected ]
1251 @findex set_password
1252
1253 Change spice/vnc password. Use zero to make the password stay valid
1254 forever. @var{action-if-connected} specifies what should happen in
1255 case a connection is established: @var{fail} makes the password change
1256 fail. @var{disconnect} changes the password and disconnects the
1257 client. @var{keep} changes the password and keeps the connection up.
1258 @var{keep} is the default.
1259 ETEXI
1260
1261 {
1262 .name = "expire_password",
1263 .args_type = "protocol:s,time:s",
1264 .params = "protocol time",
1265 .help = "set spice/vnc password expire-time",
1266 .mhandler.cmd = hmp_expire_password,
1267 },
1268
1269 STEXI
1270 @item expire_password [ vnc | spice ] expire-time
1271 @findex expire_password
1272
1273 Specify when a password for spice/vnc becomes
1274 invalid. @var{expire-time} accepts:
1275
1276 @table @var
1277 @item now
1278 Invalidate password instantly.
1279
1280 @item never
1281 Password stays valid forever.
1282
1283 @item +nsec
1284 Password stays valid for @var{nsec} seconds starting now.
1285
1286 @item nsec
1287 Password is invalidated at the given time. @var{nsec} are the seconds
1288 passed since 1970, i.e. unix epoch.
1289
1290 @end table
1291 ETEXI
1292
1293 {
1294 .name = "info",
1295 .args_type = "item:s?",
1296 .params = "[subcommand]",
1297 .help = "show various information about the system state",
1298 .mhandler.cmd = do_info,
1299 },
1300
1301 STEXI
1302 @item info @var{subcommand}
1303 @findex info
1304 Show various information about the system state.
1305
1306 @table @option
1307 @item info version
1308 show the version of QEMU
1309 @item info network
1310 show the various VLANs and the associated devices
1311 @item info chardev
1312 show the character devices
1313 @item info block
1314 show the block devices
1315 @item info blockstats
1316 show block device statistics
1317 @item info registers
1318 show the cpu registers
1319 @item info cpus
1320 show infos for each CPU
1321 @item info history
1322 show the command line history
1323 @item info irq
1324 show the interrupts statistics (if available)
1325 @item info pic
1326 show i8259 (PIC) state
1327 @item info pci
1328 show emulated PCI device info
1329 @item info tlb
1330 show virtual to physical memory mappings (i386, SH4, SPARC, and PPC only)
1331 @item info mem
1332 show the active virtual memory mappings (i386 only)
1333 @item info jit
1334 show dynamic compiler info
1335 @item info numa
1336 show NUMA information
1337 @item info kvm
1338 show KVM information
1339 @item info usb
1340 show USB devices plugged on the virtual USB hub
1341 @item info usbhost
1342 show all USB host devices
1343 @item info profile
1344 show profiling information
1345 @item info capture
1346 show information about active capturing
1347 @item info snapshots
1348 show list of VM snapshots
1349 @item info status
1350 show the current VM status (running|paused)
1351 @item info pcmcia
1352 show guest PCMCIA status
1353 @item info mice
1354 show which guest mouse is receiving events
1355 @item info vnc
1356 show the vnc server status
1357 @item info name
1358 show the current VM name
1359 @item info uuid
1360 show the current VM UUID
1361 @item info cpustats
1362 show CPU statistics
1363 @item info usernet
1364 show user network stack connection states
1365 @item info migrate
1366 show migration status
1367 @item info balloon
1368 show balloon information
1369 @item info qtree
1370 show device tree
1371 @item info qdm
1372 show qdev device model list
1373 @item info roms
1374 show roms
1375 @end table
1376 ETEXI
1377
1378 #ifdef CONFIG_TRACE_SIMPLE
1379 STEXI
1380 @item info trace
1381 show contents of trace buffer
1382 ETEXI
1383 #endif
1384
1385 STEXI
1386 @item info trace-events
1387 show available trace events and their state
1388 ETEXI
1389
1390 STEXI
1391 @end table
1392 ETEXI