Home | History | Annotate | Download | only in qemu
      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 
    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 STEXI
    504 @item drive_add
    505 Add drive to PCI storage controller.
    506 ETEXI
    507 
    508 #if defined(TARGET_I386)
    509     { "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" },
    510 #endif
    511 STEXI
    512 @item pci_add
    513 Hot-add PCI device.
    514 ETEXI
    515 
    516 #if defined(TARGET_I386)
    517     { "pci_del", "s", pci_device_hot_remove, "pci_addr=[[<domain>:]<bus>:]<slot>", "hot remove PCI device" },
    518 #endif
    519 STEXI
    520 @item pci_del
    521 Hot remove PCI device.
    522 ETEXI
    523 
    524     { "host_net_add", "ss?", net_host_device_add,
    525       "tap|user|socket|vde|dump [options]", "add host VLAN client" },
    526 STEXI
    527 @item host_net_add
    528 Add host VLAN client.
    529 ETEXI
    530 
    531     { "host_net_remove", "is", net_host_device_remove,
    532       "vlan_id name", "remove host VLAN client" },
    533 STEXI
    534 @item host_net_remove
    535 Remove host VLAN client.
    536 ETEXI
    537 
    538 #ifdef CONFIG_SLIRP
    539     { "host_net_redir", "ss?", net_slirp_redir,
    540       "[tcp|udp]:host-port:[guest-host]:guest-port", "redirect TCP or UDP connections from host to guest (requires -net user)\n"
    541       "host_net_redir remove [tcp:|udp:]host-port -- remove redirection\n"
    542       "host_net_redir list -- show all redirections" },
    543 #endif
    544 STEXI
    545 @item host_net_redir
    546 Redirect TCP or UDP connections from host to guest (requires -net user).
    547 ETEXI
    548 
    549     { "balloon", "i", do_balloon,
    550       "target", "request VM to change it's memory allocation (in MB)" },
    551 STEXI
    552 @item balloon @var{value}
    553 Request VM to change its memory allocation to @var{value} (in MB).
    554 ETEXI
    555 
    556     { "set_link", "ss", do_set_link,
    557       "name up|down", "change the link status of a network adapter" },
    558 STEXI
    559 @item set_link @var{name} [up|down]
    560 Set link @var{name} up or down.
    561 ETEXI
    562 
    563     { "watchdog_action", "s", do_watchdog_action,
    564       "[reset|shutdown|poweroff|pause|debug|none]", "change watchdog action" },
    565 STEXI
    566 @item watchdog_action
    567 Change watchdog action.
    568 ETEXI
    569 
    570     { "acl", "sss?i?", do_acl, "<command> <aclname> [<match> [<index>]]\n",
    571                                "acl show vnc.username\n"
    572                                "acl policy vnc.username deny\n"
    573                                "acl allow vnc.username fred\n"
    574                                "acl deny vnc.username bob\n"
    575                                "acl reset vnc.username\n" },
    576 STEXI
    577 @item acl @var{subcommand} @var{aclname} @var{match} @var{index}
    578 
    579 Manage access control lists for network services. There are currently
    580 two named access control lists, @var{vnc.x509dname} and @var{vnc.username}
    581 matching on the x509 client certificate distinguished name, and SASL
    582 username respectively.
    583 
    584 @table @option
    585 @item acl show <aclname>
    586 list all the match rules in the access control list, and the default
    587 policy
    588 @item acl policy <aclname> @code{allow|deny}
    589 set the default access control list policy, used in the event that
    590 none of the explicit rules match. The default policy at startup is
    591 always @code{deny}
    592 @item acl allow <aclname> <match> [<index>]
    593 add a match to the access control list, allowing access. The match will
    594 normally be an exact username or x509 distinguished name, but can
    595 optionally include wildcard globs. eg @code{*@@EXAMPLE.COM} to allow
    596 all users in the @code{EXAMPLE.COM} kerberos realm. The match will
    597 normally be appended to the end of the ACL, but can be inserted
    598 earlier in the list if the optional @code{index} parameter is supplied.
    599 @item acl deny <aclname> <match> [<index>]
    600 add a match to the access control list, denying access. The match will
    601 normally be an exact username or x509 distinguished name, but can
    602 optionally include wildcard globs. eg @code{*@@EXAMPLE.COM} to allow
    603 all users in the @code{EXAMPLE.COM} kerberos realm. The match will
    604 normally be appended to the end of the ACL, but can be inserted
    605 earlier in the list if the optional @code{index} parameter is supplied.
    606 @item acl remove <aclname> <match>
    607 remove the specified match rule from the access control list.
    608 @item acl reset <aclname>
    609 remove all matches from the access control list, and set the default
    610 policy back to @code{deny}.
    611 @end table
    612 ETEXI
    613 
    614 STEXI
    615 @end table
    616 ETEXI
    617