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