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