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