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 { "help|?", "s?", help_cmd, "[cmd]", "show the help" }, 13STEXI 14@item help or ? [@var{cmd}] 15Show the help for all commands or just for command @var{cmd}. 16ETEXI 17 18 { "commit", "s", do_commit, 19 "device|all", "commit changes to the disk images (if -snapshot is used) or backing files" }, 20STEXI 21@item commit 22Commit changes to the disk images (if -snapshot is used) or backing files. 23ETEXI 24 25 { "info", "s?", do_info, 26 "[subcommand]", "show various information about the system state" }, 27STEXI 28@item info @var{subcommand} 29Show various information about the system state. 30 31@table @option 32@item info version 33show the version of QEMU 34@item info network 35show the various VLANs and the associated devices 36@item info chardev 37show the character devices 38@item info block 39show the block devices 40@item info block 41show block device statistics 42@item info registers 43show the cpu registers 44@item info cpus 45show infos for each CPU 46@item info history 47show the command line history 48@item info irq 49show the interrupts statistics (if available) 50@item info pic 51show i8259 (PIC) state 52@item info pci 53show emulated PCI device info 54@item info tlb 55show virtual to physical memory mappings (i386 only) 56@item info mem 57show the active virtual memory mappings (i386 only) 58@item info hpet 59show state of HPET (i386 only) 60@item info kqemu 61show KQEMU information 62@item info kvm 63show KVM information 64@item info usb 65show USB devices plugged on the virtual USB hub 66@item info usbhost 67show all USB host devices 68@item info profile 69show profiling information 70@item info capture 71show information about active capturing 72@item info snapshots 73show list of VM snapshots 74@item info status 75show the current VM status (running|paused) 76@item info pcmcia 77show guest PCMCIA status 78@item info mice 79show which guest mouse is receiving events 80@item info vnc 81show the vnc server status 82@item info name 83show the current VM name 84@item info uuid 85show the current VM UUID 86@item info cpustats 87show CPU statistics 88@item info slirp 89show SLIRP statistics (if available) 90@item info migrate 91show migration status 92@item info balloon 93show balloon information 94@item info qtree 95show device tree 96@end table 97ETEXI 98 99 { "q|quit", "", do_quit, 100 "", "quit the emulator" }, 101STEXI 102@item q or quit 103Quit the emulator. 104ETEXI 105 106 { "eject", "-fB", do_eject, 107 "[-f] device", "eject a removable medium (use -f to force it)" }, 108STEXI 109@item eject [-f] @var{device} 110Eject a removable medium (use -f to force it). 111ETEXI 112 113 { "change", "BFs?", do_change, 114 "device filename [format]", "change a removable medium, optional format" }, 115STEXI 116@item change @var{device} @var{setting} 117 118Change the configuration of a device. 119 120@table @option 121@item change @var{diskdevice} @var{filename} [@var{format}] 122Change the medium for a removable disk device to point to @var{filename}. eg 123 124@example 125(qemu) change ide1-cd0 /path/to/some.iso 126@end example 127 128@var{format} is optional. 129 130@item change vnc @var{display},@var{options} 131Change the configuration of the VNC server. The valid syntax for @var{display} 132and @var{options} are described at @ref{sec_invocation}. eg 133 134@example 135(qemu) change vnc localhost:1 136@end example 137 138@item change vnc password [@var{password}] 139 140Change the password associated with the VNC server. If the new password is not 141supplied, the monitor will prompt for it to be entered. VNC passwords are only 142significant up to 8 letters. eg 143 144@example 145(qemu) change vnc password 146Password: ******** 147@end example 148 149@end table 150ETEXI 151 152 { "screendump", "F", do_screen_dump, 153 "filename", "save screen into PPM image 'filename'" }, 154STEXI 155@item screendump @var{filename} 156Save screen into PPM image @var{filename}. 157ETEXI 158 159 { "logfile", "F", do_logfile, 160 "filename", "output logs to 'filename'" }, 161STEXI 162@item logfile @var{filename} 163Output logs to @var{filename}. 164ETEXI 165 166 { "log", "s", do_log, 167 "item1[,...]", "activate logging of the specified items to '/tmp/qemu.log'" }, 168STEXI 169@item log @var{item1}[,...] 170Activate logging of the specified items to @file{/tmp/qemu.log}. 171ETEXI 172 173 { "savevm", "s?", do_savevm, 174 "[tag|id]", "save a VM snapshot. If no tag or id are provided, a new snapshot is created" }, 175STEXI 176@item savevm [@var{tag}|@var{id}] 177Create a snapshot of the whole virtual machine. If @var{tag} is 178provided, it is used as human readable identifier. If there is already 179a snapshot with the same tag or ID, it is replaced. More info at 180@ref{vm_snapshots}. 181ETEXI 182 183 { "loadvm", "s", do_loadvm, 184 "tag|id", "restore a VM snapshot from its tag or id" }, 185STEXI 186@item loadvm @var{tag}|@var{id} 187Set the whole virtual machine to the snapshot identified by the tag 188@var{tag} or the unique snapshot ID @var{id}. 189ETEXI 190 191 { "delvm", "s", do_delvm, 192 "tag|id", "delete a VM snapshot from its tag or id" }, 193STEXI 194@item delvm @var{tag}|@var{id} 195Delete the snapshot identified by @var{tag} or @var{id}. 196ETEXI 197 198 { "singlestep", "s?", do_singlestep, 199 "[on|off]", "run emulation in singlestep mode or switch to normal mode", }, 200STEXI 201@item singlestep [off] 202Run the emulation in single step mode. 203If called with option off, the emulation returns to normal mode. 204ETEXI 205 206 { "stop", "", do_stop, 207 "", "stop emulation", }, 208STEXI 209@item stop 210Stop emulation. 211ETEXI 212 213 { "c|cont", "", do_cont, 214 "", "resume emulation", }, 215STEXI 216@item c or cont 217Resume emulation. 218ETEXI 219 220 { "gdbserver", "s?", do_gdbserver, 221 "[device]", "start gdbserver on given device (default 'tcp::1234'), stop with 'none'", }, 222STEXI 223@item gdbserver [@var{port}] 224Start gdbserver session (default @var{port}=1234) 225ETEXI 226 227 { "x", "/l", do_memory_dump, 228 "/fmt addr", "virtual memory dump starting at 'addr'", }, 229STEXI 230@item x/fmt @var{addr} 231Virtual memory dump starting at @var{addr}. 232ETEXI 233 234 { "xp", "/l", do_physical_memory_dump, 235 "/fmt addr", "physical memory dump starting at 'addr'", }, 236STEXI 237@item xp /@var{fmt} @var{addr} 238Physical memory dump starting at @var{addr}. 239 240@var{fmt} is a format which tells the command how to format the 241data. Its syntax is: @option{/@{count@}@{format@}@{size@}} 242 243@table @var 244@item count 245is the number of items to be dumped. 246 247@item format 248can be x (hex), d (signed decimal), u (unsigned decimal), o (octal), 249c (char) or i (asm instruction). 250 251@item size 252can be b (8 bits), h (16 bits), w (32 bits) or g (64 bits). On x86, 253@code{h} or @code{w} can be specified with the @code{i} format to 254respectively select 16 or 32 bit code instruction size. 255 256@end table 257 258Examples: 259@itemize 260@item 261Dump 10 instructions at the current instruction pointer: 262@example 263(qemu) x/10i $eip 2640x90107063: ret 2650x90107064: sti 2660x90107065: lea 0x0(%esi,1),%esi 2670x90107069: lea 0x0(%edi,1),%edi 2680x90107070: ret 2690x90107071: jmp 0x90107080 2700x90107073: nop 2710x90107074: nop 2720x90107075: nop 2730x90107076: nop 274@end example 275 276@item 277Dump 80 16 bit values at the start of the video memory. 278@smallexample 279(qemu) xp/80hx 0xb8000 2800x000b8000: 0x0b50 0x0b6c 0x0b65 0x0b78 0x0b38 0x0b36 0x0b2f 0x0b42 2810x000b8010: 0x0b6f 0x0b63 0x0b68 0x0b73 0x0b20 0x0b56 0x0b47 0x0b41 2820x000b8020: 0x0b42 0x0b69 0x0b6f 0x0b73 0x0b20 0x0b63 0x0b75 0x0b72 2830x000b8030: 0x0b72 0x0b65 0x0b6e 0x0b74 0x0b2d 0x0b63 0x0b76 0x0b73 2840x000b8040: 0x0b20 0x0b30 0x0b35 0x0b20 0x0b4e 0x0b6f 0x0b76 0x0b20 2850x000b8050: 0x0b32 0x0b30 0x0b30 0x0b33 0x0720 0x0720 0x0720 0x0720 2860x000b8060: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 2870x000b8070: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 2880x000b8080: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 2890x000b8090: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 290@end smallexample 291@end itemize 292ETEXI 293 294 { "p|print", "/l", do_print, 295 "/fmt expr", "print expression value (use $reg for CPU register access)", }, 296STEXI 297@item p or print/@var{fmt} @var{expr} 298 299Print expression value. Only the @var{format} part of @var{fmt} is 300used. 301ETEXI 302 303 { "i", "/ii.", do_ioport_read, 304 "/fmt addr", "I/O port read" }, 305STEXI 306Read I/O port. 307ETEXI 308 309 310 { "sendkey", "si?", do_sendkey, 311 "keys [hold_ms]", "send keys to the VM (e.g. 'sendkey ctrl-alt-f1', default hold time=100 ms)" }, 312STEXI 313@item sendkey @var{keys} 314 315Send @var{keys} to the emulator. @var{keys} could be the name of the 316key or @code{#} followed by the raw value in either decimal or hexadecimal 317format. Use @code{-} to press several keys simultaneously. Example: 318@example 319sendkey ctrl-alt-f1 320@end example 321 322This command is useful to send keys that your graphical user interface 323intercepts at low level, such as @code{ctrl-alt-f1} in X Window. 324ETEXI 325 326 { "system_reset", "", do_system_reset, 327 "", "reset the system" }, 328STEXI 329@item system_reset 330 331Reset the system. 332ETEXI 333 334 { "system_powerdown", "", do_system_powerdown, 335 "", "send system power down event" }, 336STEXI 337@item system_powerdown 338 339Power down the system (if supported). 340ETEXI 341 342 { "sum", "ii", do_sum, 343 "addr size", "compute the checksum of a memory region" }, 344STEXI 345@item sum @var{addr} @var{size} 346 347Compute the checksum of a memory region. 348ETEXI 349 350 { "usb_add", "s", do_usb_add, 351 "device", "add USB device (e.g. 'host:bus.addr' or 'host:vendor_id:product_id')" }, 352STEXI 353@item usb_add @var{devname} 354 355Add the USB device @var{devname}. For details of available devices see 356@ref{usb_devices} 357ETEXI 358 359 { "usb_del", "s", do_usb_del, 360 "device", "remove USB device 'bus.addr'" }, 361STEXI 362@item usb_del @var{devname} 363 364Remove the USB device @var{devname} from the QEMU virtual USB 365hub. @var{devname} has the syntax @code{bus.addr}. Use the monitor 366command @code{info usb} to see the devices you can remove. 367ETEXI 368 369 { "cpu", "i", do_cpu_set, 370 "index", "set the default CPU" }, 371STEXI 372Set the default CPU. 373ETEXI 374 375 { "mouse_move", "sss?", do_mouse_move, 376 "dx dy [dz]", "send mouse move events" }, 377STEXI 378@item mouse_move @var{dx} @var{dy} [@var{dz}] 379Move the active mouse to the specified coordinates @var{dx} @var{dy} 380with optional scroll axis @var{dz}. 381ETEXI 382 383 { "mouse_button", "i", do_mouse_button, 384 "state", "change mouse button state (1=L, 2=M, 4=R)" }, 385STEXI 386@item mouse_button @var{val} 387Change the active mouse button state @var{val} (1=L, 2=M, 4=R). 388ETEXI 389 390 { "mouse_set", "i", do_mouse_set, 391 "index", "set which mouse device receives events" }, 392STEXI 393@item mouse_set @var{index} 394Set which mouse device receives events at given @var{index}, index 395can be obtained with 396@example 397info mice 398@end example 399ETEXI 400 401#ifdef HAS_AUDIO 402 { "wavcapture", "si?i?i?", do_wav_capture, 403 "path [frequency [bits [channels]]]", 404 "capture audio to a wave file (default frequency=44100 bits=16 channels=2)" }, 405#endif 406STEXI 407@item wavcapture @var{filename} [@var{frequency} [@var{bits} [@var{channels}]]] 408Capture audio into @var{filename}. Using sample rate @var{frequency} 409bits per sample @var{bits} and number of channels @var{channels}. 410 411Defaults: 412@itemize @minus 413@item Sample rate = 44100 Hz - CD quality 414@item Bits = 16 415@item Number of channels = 2 - Stereo 416@end itemize 417ETEXI 418 419#ifdef HAS_AUDIO 420 { "stopcapture", "i", do_stop_capture, 421 "capture index", "stop capture" }, 422#endif 423STEXI 424@item stopcapture @var{index} 425Stop capture with a given @var{index}, index can be obtained with 426@example 427info capture 428@end example 429ETEXI 430 431 { "memsave", "lis", do_memory_save, 432 "addr size file", "save to disk virtual memory dump starting at 'addr' of size 'size'", }, 433STEXI 434@item memsave @var{addr} @var{size} @var{file} 435save to disk virtual memory dump starting at @var{addr} of size @var{size}. 436ETEXI 437 438 { "pmemsave", "lis", do_physical_memory_save, 439 "addr size file", "save to disk physical memory dump starting at 'addr' of size 'size'", }, 440STEXI 441@item pmemsave @var{addr} @var{size} @var{file} 442save to disk physical memory dump starting at @var{addr} of size @var{size}. 443ETEXI 444 445 { "boot_set", "s", do_boot_set, 446 "bootdevice", "define new values for the boot device list" }, 447STEXI 448@item boot_set @var{bootdevicelist} 449 450Define new values for the boot device list. Those values will override 451the values specified on the command line through the @code{-boot} option. 452 453The values that can be specified here depend on the machine type, but are 454the same that can be specified in the @code{-boot} command line option. 455ETEXI 456 457#if defined(TARGET_I386) 458 { "nmi", "i", do_inject_nmi, 459 "cpu", "inject an NMI on the given CPU", }, 460#endif 461STEXI 462@item nmi @var{cpu} 463Inject an NMI on the given CPU (x86 only). 464ETEXI 465 466 { "migrate", "-ds", do_migrate, 467 "[-d] uri", "migrate to URI (using -d to not wait for completion)" }, 468STEXI 469@item migrate [-d] @var{uri} 470Migrate to @var{uri} (using -d to not wait for completion). 471ETEXI 472 473 { "migrate_cancel", "", do_migrate_cancel, 474 "", "cancel the current VM migration" }, 475STEXI 476@item migrate_cancel 477Cancel the current VM migration. 478ETEXI 479 480 { "migrate_set_speed", "s", do_migrate_set_speed, 481 "value", "set maximum speed (in bytes) for migrations" }, 482STEXI 483@item migrate_set_speed @var{value} 484Set maximum speed to @var{value} (in bytes) for migrations. 485ETEXI 486 487 { "migrate_set_downtime", "s", do_migrate_set_downtime, 488 "value", "set maximum tolerated downtime (in seconds) for migrations" }, 489 490STEXI 491@item migrate_set_downtime @var{second} 492Set maximum tolerated downtime (in seconds) for migration. 493ETEXI 494#ifndef CONFIG_ANDROID 495#if defined(TARGET_I386) 496 { "drive_add", "ss", drive_hot_add, "pci_addr=[[<domain>:]<bus>:]<slot>\n" 497 "[file=file][,if=type][,bus=n]\n" 498 "[,unit=m][,media=d][index=i]\n" 499 "[,cyls=c,heads=h,secs=s[,trans=t]]\n" 500 "[snapshot=on|off][,cache=on|off]", 501 "add drive to PCI storage controller" }, 502#endif 503#endif 504STEXI 505@item drive_add 506Add drive to PCI storage controller. 507ETEXI 508 509#ifndef CONFIG_ANDROID 510#if defined(TARGET_I386) 511 { "pci_add", "sss", pci_device_hot_add, "pci_addr=auto|[[<domain>:]<bus>:]<slot> nic|storage [[vlan=n][,macaddr=addr][,model=type]] [file=file][,if=type][,bus=nr]...", "hot-add PCI device" }, 512#endif 513#endif 514 515STEXI 516@item pci_add 517Hot-add PCI device. 518ETEXI 519 520#ifndef CONFIG_ANDROID 521#if defined(TARGET_I386) 522 { "pci_del", "s", pci_device_hot_remove, "pci_addr=[[<domain>:]<bus>:]<slot>", "hot remove PCI device" }, 523#endif 524#endif 525STEXI 526@item pci_del 527Hot remove PCI device. 528ETEXI 529 530 { "host_net_add", "ss?", net_host_device_add, 531 "tap|user|socket|vde|dump [options]", "add host VLAN client" }, 532STEXI 533@item host_net_add 534Add host VLAN client. 535ETEXI 536 537 { "host_net_remove", "is", net_host_device_remove, 538 "vlan_id name", "remove host VLAN client" }, 539STEXI 540@item host_net_remove 541Remove host VLAN client. 542ETEXI 543 544#ifdef CONFIG_SLIRP 545 { "host_net_redir", "ss?", net_slirp_redir, 546 "[tcp|udp]:host-port:[guest-host]:guest-port", "redirect TCP or UDP connections from host to guest (requires -net user)\n" 547 "host_net_redir remove [tcp:|udp:]host-port -- remove redirection\n" 548 "host_net_redir list -- show all redirections" }, 549#endif 550STEXI 551@item host_net_redir 552Redirect TCP or UDP connections from host to guest (requires -net user). 553ETEXI 554 555 { "balloon", "i", do_balloon, 556 "target", "request VM to change it's memory allocation (in MB)" }, 557STEXI 558@item balloon @var{value} 559Request VM to change its memory allocation to @var{value} (in MB). 560ETEXI 561 562 { "set_link", "ss", do_set_link, 563 "name up|down", "change the link status of a network adapter" }, 564STEXI 565@item set_link @var{name} [up|down] 566Set link @var{name} up or down. 567ETEXI 568 569 { "watchdog_action", "s", do_watchdog_action, 570 "[reset|shutdown|poweroff|pause|debug|none]", "change watchdog action" }, 571STEXI 572@item watchdog_action 573Change watchdog action. 574ETEXI 575 576 { "acl", "sss?i?", do_acl, "<command> <aclname> [<match> [<index>]]\n", 577 "acl show vnc.username\n" 578 "acl policy vnc.username deny\n" 579 "acl allow vnc.username fred\n" 580 "acl deny vnc.username bob\n" 581 "acl reset vnc.username\n" }, 582STEXI 583@item acl @var{subcommand} @var{aclname} @var{match} @var{index} 584 585Manage access control lists for network services. There are currently 586two named access control lists, @var{vnc.x509dname} and @var{vnc.username} 587matching on the x509 client certificate distinguished name, and SASL 588username respectively. 589 590@table @option 591@item acl show <aclname> 592list all the match rules in the access control list, and the default 593policy 594@item acl policy <aclname> @code{allow|deny} 595set the default access control list policy, used in the event that 596none of the explicit rules match. The default policy at startup is 597always @code{deny} 598@item acl allow <aclname> <match> [<index>] 599add a match to the access control list, allowing access. The match will 600normally be an exact username or x509 distinguished name, but can 601optionally include wildcard globs. eg @code{*@@EXAMPLE.COM} to allow 602all users in the @code{EXAMPLE.COM} kerberos realm. The match will 603normally be appended to the end of the ACL, but can be inserted 604earlier in the list if the optional @code{index} parameter is supplied. 605@item acl deny <aclname> <match> [<index>] 606add a match to the access control list, denying access. The match will 607normally be an exact username or x509 distinguished name, but can 608optionally include wildcard globs. eg @code{*@@EXAMPLE.COM} to allow 609all users in the @code{EXAMPLE.COM} kerberos realm. The match will 610normally be appended to the end of the ACL, but can be inserted 611earlier in the list if the optional @code{index} parameter is supplied. 612@item acl remove <aclname> <match> 613remove the specified match rule from the access control list. 614@item acl reset <aclname> 615remove all matches from the access control list, and set the default 616policy back to @code{deny}. 617@end table 618ETEXI 619 620#if defined(TARGET_I386) 621 { "mce", "iillll", do_inject_mce, "cpu bank status mcgstatus addr misc", "inject a MCE on the given CPU"}, 622#endif 623STEXI 624@item mce @var{cpu} @var{bank} @var{status} @var{mcgstatus} @var{addr} @var{misc} 625Inject an MCE on the given CPU (x86 only). 626ETEXI 627 628STEXI 629@end table 630ETEXI 631