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