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