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