Commit 2313086addaf609c5f64636591818eebc213fd53
1 parent
25517f99
Use hxtool to generate monitor documentation and C structures
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Showing
5 changed files
with
624 additions
and
473 deletions
Makefile
| ... | ... | @@ -332,7 +332,10 @@ cscope: |
| 332 | 332 | qemu-options.texi: $(SRC_PATH)/qemu-options.hx |
| 333 | 333 | $(call quiet-command,sh $(SRC_PATH)/hxtool -t < $< > $@," GEN $@") |
| 334 | 334 | |
| 335 | -qemu.1: qemu-doc.texi qemu-options.texi | |
| 335 | +qemu-monitor.texi: $(SRC_PATH)/qemu-monitor.hx | |
| 336 | + $(call quiet-command,sh $(SRC_PATH)/hxtool -t < $< > $@," GEN $@") | |
| 337 | + | |
| 338 | +qemu.1: qemu-doc.texi qemu-options.texi qemu-monitor.texi | |
| 336 | 339 | $(call quiet-command, \ |
| 337 | 340 | perl -Ww -- $(SRC_PATH)/texi2pod.pl $< qemu.pod && \ |
| 338 | 341 | pod2man --section=1 --center=" " --release=" " qemu.pod > $@, \ |
| ... | ... | @@ -356,7 +359,7 @@ dvi: qemu-doc.dvi qemu-tech.dvi |
| 356 | 359 | |
| 357 | 360 | html: qemu-doc.html qemu-tech.html |
| 358 | 361 | |
| 359 | -qemu-doc.dvi qemu-doc.html qemu-doc.info: qemu-img.texi qemu-nbd.texi qemu-options.texi | |
| 362 | +qemu-doc.dvi qemu-doc.html qemu-doc.info: qemu-img.texi qemu-nbd.texi qemu-options.texi qemu-monitor.texi | |
| 360 | 363 | |
| 361 | 364 | VERSION ?= $(shell cat VERSION) |
| 362 | 365 | FILE = qemu-$(VERSION) | ... | ... |
Makefile.target
| ... | ... | @@ -732,6 +732,8 @@ endif |
| 732 | 732 | |
| 733 | 733 | vl.o: qemu-options.h |
| 734 | 734 | |
| 735 | +monitor.o: qemu-monitor.h | |
| 736 | + | |
| 735 | 737 | $(QEMU_PROG): LIBS += $(SDL_LIBS) $(COCOA_LIBS) $(CURSES_LIBS) $(BRLAPI_LIBS) $(VDE_LIBS) $(CURL_LIBS) |
| 736 | 738 | $(QEMU_PROG): ARLIBS=../libqemu_common.a libqemu.a $(HWLIB) |
| 737 | 739 | $(QEMU_PROG): $(OBJS) ../libqemu_common.a libqemu.a $(HWLIB) |
| ... | ... | @@ -749,9 +751,13 @@ endif |
| 749 | 751 | qemu-options.h: $(SRC_PATH)/qemu-options.hx |
| 750 | 752 | $(call quiet-command,sh $(SRC_PATH)/hxtool -h < $< > $@," GEN $(TARGET_DIR)$@") |
| 751 | 753 | |
| 754 | +qemu-monitor.h: $(SRC_PATH)/qemu-monitor.hx | |
| 755 | + $(call quiet-command,sh $(SRC_PATH)/hxtool -h < $< > $@," GEN $(TARGET_DIR)$@") | |
| 756 | + | |
| 752 | 757 | clean: |
| 753 | - rm -f *.o *.a *~ $(PROGS) nwfpe/*.o fpu/*.o qemu-options.h gdbstub-xml.c | |
| 758 | + rm -f *.o *.a *~ $(PROGS) nwfpe/*.o fpu/*.o | |
| 754 | 759 | rm -f *.d */*.d tcg/*.o |
| 760 | + rm -f qemu-options.h qemu-monitor.h gdbstub-xml.c | |
| 755 | 761 | |
| 756 | 762 | install: all |
| 757 | 763 | ifneq ($(PROGS),) | ... | ... |
monitor.c
| ... | ... | @@ -1496,6 +1496,7 @@ static void do_info_capture(Monitor *mon) |
| 1496 | 1496 | } |
| 1497 | 1497 | } |
| 1498 | 1498 | |
| 1499 | +#ifdef HAS_AUDIO | |
| 1499 | 1500 | static void do_stop_capture(Monitor *mon, int n) |
| 1500 | 1501 | { |
| 1501 | 1502 | int i; |
| ... | ... | @@ -1511,7 +1512,6 @@ static void do_stop_capture(Monitor *mon, int n) |
| 1511 | 1512 | } |
| 1512 | 1513 | } |
| 1513 | 1514 | |
| 1514 | -#ifdef HAS_AUDIO | |
| 1515 | 1515 | static void do_wav_capture(Monitor *mon, const char *path, |
| 1516 | 1516 | int has_freq, int freq, |
| 1517 | 1517 | int has_bits, int bits, |
| ... | ... | @@ -1659,128 +1659,12 @@ static void do_acl(Monitor *mon, |
| 1659 | 1659 | } |
| 1660 | 1660 | } |
| 1661 | 1661 | |
| 1662 | -/* Please update qemu-doc.texi when adding or changing commands */ | |
| 1663 | 1662 | static const mon_cmd_t mon_cmds[] = { |
| 1664 | - { "help|?", "s?", help_cmd, | |
| 1665 | - "[cmd]", "show the help" }, | |
| 1666 | - { "commit", "s", do_commit, | |
| 1667 | - "device|all", "commit changes to the disk images (if -snapshot is used) or backing files" }, | |
| 1668 | - { "info", "s?", do_info, | |
| 1669 | - "[subcommand]", "show various information about the system state" }, | |
| 1670 | - { "q|quit", "", do_quit, | |
| 1671 | - "", "quit the emulator" }, | |
| 1672 | - { "eject", "-fB", do_eject, | |
| 1673 | - "[-f] device", "eject a removable medium (use -f to force it)" }, | |
| 1674 | - { "change", "BFs?", do_change, | |
| 1675 | - "device filename [format]", "change a removable medium, optional format" }, | |
| 1676 | - { "screendump", "F", do_screen_dump, | |
| 1677 | - "filename", "save screen into PPM image 'filename'" }, | |
| 1678 | - { "logfile", "F", do_logfile, | |
| 1679 | - "filename", "output logs to 'filename'" }, | |
| 1680 | - { "log", "s", do_log, | |
| 1681 | - "item1[,...]", "activate logging of the specified items to '/tmp/qemu.log'" }, | |
| 1682 | - { "savevm", "s?", do_savevm, | |
| 1683 | - "[tag|id]", "save a VM snapshot. If no tag or id are provided, a new snapshot is created" }, | |
| 1684 | - { "loadvm", "s", do_loadvm, | |
| 1685 | - "tag|id", "restore a VM snapshot from its tag or id" }, | |
| 1686 | - { "delvm", "s", do_delvm, | |
| 1687 | - "tag|id", "delete a VM snapshot from its tag or id" }, | |
| 1688 | - { "singlestep", "s?", do_singlestep, | |
| 1689 | - "[on|off]", "run emulation in singlestep mode or switch to normal mode", }, | |
| 1690 | - { "stop", "", do_stop, | |
| 1691 | - "", "stop emulation", }, | |
| 1692 | - { "c|cont", "", do_cont, | |
| 1693 | - "", "resume emulation", }, | |
| 1694 | - { "gdbserver", "s?", do_gdbserver, | |
| 1695 | - "[device]", "start gdbserver on given device (default 'tcp::1234'), stop with 'none'", }, | |
| 1696 | - { "x", "/l", do_memory_dump, | |
| 1697 | - "/fmt addr", "virtual memory dump starting at 'addr'", }, | |
| 1698 | - { "xp", "/l", do_physical_memory_dump, | |
| 1699 | - "/fmt addr", "physical memory dump starting at 'addr'", }, | |
| 1700 | - { "p|print", "/l", do_print, | |
| 1701 | - "/fmt expr", "print expression value (use $reg for CPU register access)", }, | |
| 1702 | - { "i", "/ii.", do_ioport_read, | |
| 1703 | - "/fmt addr", "I/O port read" }, | |
| 1704 | - | |
| 1705 | - { "sendkey", "si?", do_sendkey, | |
| 1706 | - "keys [hold_ms]", "send keys to the VM (e.g. 'sendkey ctrl-alt-f1', default hold time=100 ms)" }, | |
| 1707 | - { "system_reset", "", do_system_reset, | |
| 1708 | - "", "reset the system" }, | |
| 1709 | - { "system_powerdown", "", do_system_powerdown, | |
| 1710 | - "", "send system power down event" }, | |
| 1711 | - { "sum", "ii", do_sum, | |
| 1712 | - "addr size", "compute the checksum of a memory region" }, | |
| 1713 | - { "usb_add", "s", do_usb_add, | |
| 1714 | - "device", "add USB device (e.g. 'host:bus.addr' or 'host:vendor_id:product_id')" }, | |
| 1715 | - { "usb_del", "s", do_usb_del, | |
| 1716 | - "device", "remove USB device 'bus.addr'" }, | |
| 1717 | - { "cpu", "i", do_cpu_set, | |
| 1718 | - "index", "set the default CPU" }, | |
| 1719 | - { "mouse_move", "sss?", do_mouse_move, | |
| 1720 | - "dx dy [dz]", "send mouse move events" }, | |
| 1721 | - { "mouse_button", "i", do_mouse_button, | |
| 1722 | - "state", "change mouse button state (1=L, 2=M, 4=R)" }, | |
| 1723 | - { "mouse_set", "i", do_mouse_set, | |
| 1724 | - "index", "set which mouse device receives events" }, | |
| 1725 | -#ifdef HAS_AUDIO | |
| 1726 | - { "wavcapture", "si?i?i?", do_wav_capture, | |
| 1727 | - "path [frequency [bits [channels]]]", | |
| 1728 | - "capture audio to a wave file (default frequency=44100 bits=16 channels=2)" }, | |
| 1729 | -#endif | |
| 1730 | - { "stopcapture", "i", do_stop_capture, | |
| 1731 | - "capture index", "stop capture" }, | |
| 1732 | - { "memsave", "lis", do_memory_save, | |
| 1733 | - "addr size file", "save to disk virtual memory dump starting at 'addr' of size 'size'", }, | |
| 1734 | - { "pmemsave", "lis", do_physical_memory_save, | |
| 1735 | - "addr size file", "save to disk physical memory dump starting at 'addr' of size 'size'", }, | |
| 1736 | - { "boot_set", "s", do_boot_set, | |
| 1737 | - "bootdevice", "define new values for the boot device list" }, | |
| 1738 | -#if defined(TARGET_I386) | |
| 1739 | - { "nmi", "i", do_inject_nmi, | |
| 1740 | - "cpu", "inject an NMI on the given CPU", }, | |
| 1741 | -#endif | |
| 1742 | - { "migrate", "-ds", do_migrate, | |
| 1743 | - "[-d] uri", "migrate to URI (using -d to not wait for completion)" }, | |
| 1744 | - { "migrate_cancel", "", do_migrate_cancel, | |
| 1745 | - "", "cancel the current VM migration" }, | |
| 1746 | - { "migrate_set_speed", "s", do_migrate_set_speed, | |
| 1747 | - "value", "set maximum speed (in bytes) for migrations" }, | |
| 1748 | -#if defined(TARGET_I386) | |
| 1749 | - { "drive_add", "ss", drive_hot_add, "pci_addr=[[<domain>:]<bus>:]<slot>\n" | |
| 1750 | - "[file=file][,if=type][,bus=n]\n" | |
| 1751 | - "[,unit=m][,media=d][index=i]\n" | |
| 1752 | - "[,cyls=c,heads=h,secs=s[,trans=t]]\n" | |
| 1753 | - "[snapshot=on|off][,cache=on|off]", | |
| 1754 | - "add drive to PCI storage controller" }, | |
| 1755 | - { "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" }, | |
| 1756 | - { "pci_del", "s", pci_device_hot_remove, "pci_addr=[[<domain>:]<bus>:]<slot>", "hot remove PCI device" }, | |
| 1757 | -#endif | |
| 1758 | - { "host_net_add", "ss?", net_host_device_add, | |
| 1759 | - "tap|user|socket|vde|dump [options]", "add host VLAN client" }, | |
| 1760 | - { "host_net_remove", "is", net_host_device_remove, | |
| 1761 | - "vlan_id name", "remove host VLAN client" }, | |
| 1762 | -#ifdef CONFIG_SLIRP | |
| 1763 | - { "host_net_redir", "ss?", net_slirp_redir, | |
| 1764 | - "[tcp|udp]:host-port:[guest-host]:guest-port", "redirect TCP or UDP connections from host to guest (requires -net user)\n" | |
| 1765 | - "host_net_redir remove [tcp:|udp:]host-port -- remove redirection\n" | |
| 1766 | - "host_net_redir list -- show all redirections" }, | |
| 1767 | -#endif | |
| 1768 | - { "balloon", "i", do_balloon, | |
| 1769 | - "target", "request VM to change it's memory allocation (in MB)" }, | |
| 1770 | - { "set_link", "ss", do_set_link, | |
| 1771 | - "name up|down", "change the link status of a network adapter" }, | |
| 1772 | - { "watchdog_action", "s", do_watchdog_action, | |
| 1773 | - "[reset|shutdown|poweroff|pause|debug|none]", "change watchdog action" }, | |
| 1774 | - { "acl", "sss?i?", do_acl, "<command> <aclname> [<match> [<index>]]\n", | |
| 1775 | - "acl show vnc.username\n" | |
| 1776 | - "acl policy vnc.username deny\n" | |
| 1777 | - "acl allow vnc.username fred\n" | |
| 1778 | - "acl deny vnc.username bob\n" | |
| 1779 | - "acl reset vnc.username\n" }, | |
| 1663 | +#include "qemu-monitor.h" | |
| 1780 | 1664 | { NULL, NULL, }, |
| 1781 | 1665 | }; |
| 1782 | 1666 | |
| 1783 | -/* Please update qemu-doc.texi when adding or changing commands */ | |
| 1667 | +/* Please update qemu-monitor.hx when adding or changing commands */ | |
| 1784 | 1668 | static const mon_cmd_t info_cmds[] = { |
| 1785 | 1669 | { "version", "", do_info_version, |
| 1786 | 1670 | "", "show the version of QEMU" }, | ... | ... |
qemu-doc.texi
| ... | ... | @@ -318,357 +318,7 @@ from a disk file. |
| 318 | 318 | |
| 319 | 319 | The following commands are available: |
| 320 | 320 | |
| 321 | -@table @option | |
| 322 | - | |
| 323 | -@item help or ? [@var{cmd}] | |
| 324 | -Show the help for all commands or just for command @var{cmd}. | |
| 325 | - | |
| 326 | -@item commit | |
| 327 | -Commit changes to the disk images (if -snapshot is used). | |
| 328 | - | |
| 329 | -@item info @var{subcommand} | |
| 330 | -Show various information about the system state. | |
| 331 | - | |
| 332 | -@table @option | |
| 333 | -@item info version | |
| 334 | -show the version of QEMU | |
| 335 | -@item info network | |
| 336 | -show the various VLANs and the associated devices | |
| 337 | -@item info chardev | |
| 338 | -show the character devices | |
| 339 | -@item info block | |
| 340 | -show the block devices | |
| 341 | -@item info block | |
| 342 | -show block device statistics | |
| 343 | -@item info registers | |
| 344 | -show the cpu registers | |
| 345 | -@item info cpus | |
| 346 | -show infos for each CPU | |
| 347 | -@item info history | |
| 348 | -show the command line history | |
| 349 | -@item info irq | |
| 350 | -show the interrupts statistics (if available) | |
| 351 | -@item info pic | |
| 352 | -show i8259 (PIC) state | |
| 353 | -@item info pci | |
| 354 | -show emulated PCI device info | |
| 355 | -@item info tlb | |
| 356 | -show virtual to physical memory mappings (i386 only) | |
| 357 | -@item info mem | |
| 358 | -show the active virtual memory mappings (i386 only) | |
| 359 | -@item info hpet | |
| 360 | -show state of HPET (i386 only) | |
| 361 | -@item info kqemu | |
| 362 | -show KQEMU information | |
| 363 | -@item info kvm | |
| 364 | -show KVM information | |
| 365 | -@item info usb | |
| 366 | -show USB devices plugged on the virtual USB hub | |
| 367 | -@item info usbhost | |
| 368 | -show all USB host devices | |
| 369 | -@item info profile | |
| 370 | -show profiling information | |
| 371 | -@item info capture | |
| 372 | -show information about active capturing | |
| 373 | -@item info snapshots | |
| 374 | -show list of VM snapshots | |
| 375 | -@item info status | |
| 376 | -show the current VM status (running|paused) | |
| 377 | -@item info pcmcia | |
| 378 | -show guest PCMCIA status | |
| 379 | -@item info mice | |
| 380 | -show which guest mouse is receiving events | |
| 381 | -@item info vnc | |
| 382 | -show the vnc server status | |
| 383 | -@item info name | |
| 384 | -show the current VM name | |
| 385 | -@item info uuid | |
| 386 | -show the current VM UUID | |
| 387 | -@item info cpustats | |
| 388 | -show CPU statistics | |
| 389 | -@item info slirp | |
| 390 | -show SLIRP statistics (if available) | |
| 391 | -@item info migrate | |
| 392 | -show migration status | |
| 393 | -@item info balloon | |
| 394 | -show balloon information | |
| 395 | -@end table | |
| 396 | - | |
| 397 | -@item q or quit | |
| 398 | -Quit the emulator. | |
| 399 | - | |
| 400 | -@item eject [-f] @var{device} | |
| 401 | -Eject a removable medium (use -f to force it). | |
| 402 | - | |
| 403 | -@item change @var{device} @var{setting} | |
| 404 | - | |
| 405 | -Change the configuration of a device. | |
| 406 | - | |
| 407 | -@table @option | |
| 408 | -@item change @var{diskdevice} @var{filename} [@var{format}] | |
| 409 | -Change the medium for a removable disk device to point to @var{filename}. eg | |
| 410 | - | |
| 411 | -@example | |
| 412 | -(qemu) change ide1-cd0 /path/to/some.iso | |
| 413 | -@end example | |
| 414 | - | |
| 415 | -@var{format} is optional. | |
| 416 | - | |
| 417 | -@item change vnc @var{display},@var{options} | |
| 418 | -Change the configuration of the VNC server. The valid syntax for @var{display} | |
| 419 | -and @var{options} are described at @ref{sec_invocation}. eg | |
| 420 | - | |
| 421 | -@example | |
| 422 | -(qemu) change vnc localhost:1 | |
| 423 | -@end example | |
| 424 | - | |
| 425 | -@item change vnc password [@var{password}] | |
| 426 | - | |
| 427 | -Change the password associated with the VNC server. If the new password is not | |
| 428 | -supplied, the monitor will prompt for it to be entered. VNC passwords are only | |
| 429 | -significant up to 8 letters. eg | |
| 430 | - | |
| 431 | -@example | |
| 432 | -(qemu) change vnc password | |
| 433 | -Password: ******** | |
| 434 | -@end example | |
| 435 | - | |
| 436 | -@end table | |
| 437 | - | |
| 438 | -@item acl @var{subcommand} @var{aclname} @var{match} @var{index} | |
| 439 | - | |
| 440 | -Manage access control lists for network services. There are currently | |
| 441 | -two named access control lists, @var{vnc.x509dname} and @var{vnc.username} | |
| 442 | -matching on the x509 client certificate distinguished name, and SASL | |
| 443 | -username respectively. | |
| 444 | - | |
| 445 | -@table @option | |
| 446 | -@item acl show <aclname> | |
| 447 | -list all the match rules in the access control list, and the default | |
| 448 | -policy | |
| 449 | -@item acl policy <aclname> @code{allow|deny} | |
| 450 | -set the default access control list policy, used in the event that | |
| 451 | -none of the explicit rules match. The default policy at startup is | |
| 452 | -always @code{deny} | |
| 453 | -@item acl allow <aclname> <match> [<index>] | |
| 454 | -add a match to the access control list, allowing access. The match will | |
| 455 | -normally be an exact username or x509 distinguished name, but can | |
| 456 | -optionally include wildcard globs. eg @code{*@@EXAMPLE.COM} to allow | |
| 457 | -all users in the @code{EXAMPLE.COM} kerberos realm. The match will | |
| 458 | -normally be appended to the end of the ACL, but can be inserted | |
| 459 | -earlier in the list if the optional @code{index} parameter is supplied. | |
| 460 | -@item acl deny <aclname> <match> [<index>] | |
| 461 | -add a match to the access control list, denying access. The match will | |
| 462 | -normally be an exact username or x509 distinguished name, but can | |
| 463 | -optionally include wildcard globs. eg @code{*@@EXAMPLE.COM} to allow | |
| 464 | -all users in the @code{EXAMPLE.COM} kerberos realm. The match will | |
| 465 | -normally be appended to the end of the ACL, but can be inserted | |
| 466 | -earlier in the list if the optional @code{index} parameter is supplied. | |
| 467 | -@item acl remove <aclname> <match> | |
| 468 | -remove the specified match rule from the access control list. | |
| 469 | -@item acl reset <aclname> | |
| 470 | -remove all matches from the access control list, and set the default | |
| 471 | -policy back to @code{deny}. | |
| 472 | -@end table | |
| 473 | - | |
| 474 | -@item screendump @var{filename} | |
| 475 | -Save screen into PPM image @var{filename}. | |
| 476 | - | |
| 477 | -@item logfile @var{filename} | |
| 478 | -Output logs to @var{filename}. | |
| 479 | - | |
| 480 | -@item log @var{item1}[,...] | |
| 481 | -Activate logging of the specified items to @file{/tmp/qemu.log}. | |
| 482 | - | |
| 483 | -@item savevm [@var{tag}|@var{id}] | |
| 484 | -Create a snapshot of the whole virtual machine. If @var{tag} is | |
| 485 | -provided, it is used as human readable identifier. If there is already | |
| 486 | -a snapshot with the same tag or ID, it is replaced. More info at | |
| 487 | -@ref{vm_snapshots}. | |
| 488 | - | |
| 489 | -@item loadvm @var{tag}|@var{id} | |
| 490 | -Set the whole virtual machine to the snapshot identified by the tag | |
| 491 | -@var{tag} or the unique snapshot ID @var{id}. | |
| 492 | - | |
| 493 | -@item delvm @var{tag}|@var{id} | |
| 494 | -Delete the snapshot identified by @var{tag} or @var{id}. | |
| 495 | - | |
| 496 | -@item singlestep [off] | |
| 497 | -Run the emulation in single step mode. | |
| 498 | -If called with option off, the emulation returns to normal mode. | |
| 499 | - | |
| 500 | -@item stop | |
| 501 | -Stop emulation. | |
| 502 | - | |
| 503 | -@item c or cont | |
| 504 | -Resume emulation. | |
| 505 | - | |
| 506 | -@item gdbserver [@var{port}] | |
| 507 | -Start gdbserver session (default @var{port}=1234) | |
| 508 | - | |
| 509 | -@item x/fmt @var{addr} | |
| 510 | -Virtual memory dump starting at @var{addr}. | |
| 511 | - | |
| 512 | -@item xp /@var{fmt} @var{addr} | |
| 513 | -Physical memory dump starting at @var{addr}. | |
| 514 | - | |
| 515 | -@var{fmt} is a format which tells the command how to format the | |
| 516 | -data. Its syntax is: @option{/@{count@}@{format@}@{size@}} | |
| 517 | - | |
| 518 | -@table @var | |
| 519 | -@item count | |
| 520 | -is the number of items to be dumped. | |
| 521 | - | |
| 522 | -@item format | |
| 523 | -can be x (hex), d (signed decimal), u (unsigned decimal), o (octal), | |
| 524 | -c (char) or i (asm instruction). | |
| 525 | - | |
| 526 | -@item size | |
| 527 | -can be b (8 bits), h (16 bits), w (32 bits) or g (64 bits). On x86, | |
| 528 | -@code{h} or @code{w} can be specified with the @code{i} format to | |
| 529 | -respectively select 16 or 32 bit code instruction size. | |
| 530 | - | |
| 531 | -@end table | |
| 532 | - | |
| 533 | -Examples: | |
| 534 | -@itemize | |
| 535 | -@item | |
| 536 | -Dump 10 instructions at the current instruction pointer: | |
| 537 | -@example | |
| 538 | -(qemu) x/10i $eip | |
| 539 | -0x90107063: ret | |
| 540 | -0x90107064: sti | |
| 541 | -0x90107065: lea 0x0(%esi,1),%esi | |
| 542 | -0x90107069: lea 0x0(%edi,1),%edi | |
| 543 | -0x90107070: ret | |
| 544 | -0x90107071: jmp 0x90107080 | |
| 545 | -0x90107073: nop | |
| 546 | -0x90107074: nop | |
| 547 | -0x90107075: nop | |
| 548 | -0x90107076: nop | |
| 549 | -@end example | |
| 550 | - | |
| 551 | -@item | |
| 552 | -Dump 80 16 bit values at the start of the video memory. | |
| 553 | -@smallexample | |
| 554 | -(qemu) xp/80hx 0xb8000 | |
| 555 | -0x000b8000: 0x0b50 0x0b6c 0x0b65 0x0b78 0x0b38 0x0b36 0x0b2f 0x0b42 | |
| 556 | -0x000b8010: 0x0b6f 0x0b63 0x0b68 0x0b73 0x0b20 0x0b56 0x0b47 0x0b41 | |
| 557 | -0x000b8020: 0x0b42 0x0b69 0x0b6f 0x0b73 0x0b20 0x0b63 0x0b75 0x0b72 | |
| 558 | -0x000b8030: 0x0b72 0x0b65 0x0b6e 0x0b74 0x0b2d 0x0b63 0x0b76 0x0b73 | |
| 559 | -0x000b8040: 0x0b20 0x0b30 0x0b35 0x0b20 0x0b4e 0x0b6f 0x0b76 0x0b20 | |
| 560 | -0x000b8050: 0x0b32 0x0b30 0x0b30 0x0b33 0x0720 0x0720 0x0720 0x0720 | |
| 561 | -0x000b8060: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 | |
| 562 | -0x000b8070: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 | |
| 563 | -0x000b8080: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 | |
| 564 | -0x000b8090: 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 0x0720 | |
| 565 | -@end smallexample | |
| 566 | -@end itemize | |
| 567 | - | |
| 568 | -@item p or print/@var{fmt} @var{expr} | |
| 569 | - | |
| 570 | -Print expression value. Only the @var{format} part of @var{fmt} is | |
| 571 | -used. | |
| 572 | - | |
| 573 | -@item sendkey @var{keys} | |
| 574 | - | |
| 575 | -Send @var{keys} to the emulator. @var{keys} could be the name of the | |
| 576 | -key or @code{#} followed by the raw value in either decimal or hexadecimal | |
| 577 | -format. Use @code{-} to press several keys simultaneously. Example: | |
| 578 | -@example | |
| 579 | -sendkey ctrl-alt-f1 | |
| 580 | -@end example | |
| 581 | - | |
| 582 | -This command is useful to send keys that your graphical user interface | |
| 583 | -intercepts at low level, such as @code{ctrl-alt-f1} in X Window. | |
| 584 | - | |
| 585 | -@item system_reset | |
| 586 | - | |
| 587 | -Reset the system. | |
| 588 | - | |
| 589 | -@item system_powerdown | |
| 590 | - | |
| 591 | -Power down the system (if supported). | |
| 592 | - | |
| 593 | -@item sum @var{addr} @var{size} | |
| 594 | - | |
| 595 | -Compute the checksum of a memory region. | |
| 596 | - | |
| 597 | -@item usb_add @var{devname} | |
| 598 | - | |
| 599 | -Add the USB device @var{devname}. For details of available devices see | |
| 600 | -@ref{usb_devices} | |
| 601 | - | |
| 602 | -@item usb_del @var{devname} | |
| 603 | - | |
| 604 | -Remove the USB device @var{devname} from the QEMU virtual USB | |
| 605 | -hub. @var{devname} has the syntax @code{bus.addr}. Use the monitor | |
| 606 | -command @code{info usb} to see the devices you can remove. | |
| 607 | - | |
| 608 | -@item mouse_move @var{dx} @var{dy} [@var{dz}] | |
| 609 | -Move the active mouse to the specified coordinates @var{dx} @var{dy} | |
| 610 | -with optional scroll axis @var{dz}. | |
| 611 | - | |
| 612 | -@item mouse_button @var{val} | |
| 613 | -Change the active mouse button state @var{val} (1=L, 2=M, 4=R). | |
| 614 | - | |
| 615 | -@item mouse_set @var{index} | |
| 616 | -Set which mouse device receives events at given @var{index}, index | |
| 617 | -can be obtained with | |
| 618 | -@example | |
| 619 | -info mice | |
| 620 | -@end example | |
| 621 | - | |
| 622 | -@item wavcapture @var{filename} [@var{frequency} [@var{bits} [@var{channels}]]] | |
| 623 | -Capture audio into @var{filename}. Using sample rate @var{frequency} | |
| 624 | -bits per sample @var{bits} and number of channels @var{channels}. | |
| 625 | - | |
| 626 | -Defaults: | |
| 627 | -@itemize @minus | |
| 628 | -@item Sample rate = 44100 Hz - CD quality | |
| 629 | -@item Bits = 16 | |
| 630 | -@item Number of channels = 2 - Stereo | |
| 631 | -@end itemize | |
| 632 | - | |
| 633 | -@item stopcapture @var{index} | |
| 634 | -Stop capture with a given @var{index}, index can be obtained with | |
| 635 | -@example | |
| 636 | -info capture | |
| 637 | -@end example | |
| 638 | - | |
| 639 | -@item memsave @var{addr} @var{size} @var{file} | |
| 640 | -save to disk virtual memory dump starting at @var{addr} of size @var{size}. | |
| 641 | - | |
| 642 | -@item pmemsave @var{addr} @var{size} @var{file} | |
| 643 | -save to disk physical memory dump starting at @var{addr} of size @var{size}. | |
| 644 | - | |
| 645 | -@item boot_set @var{bootdevicelist} | |
| 646 | - | |
| 647 | -Define new values for the boot device list. Those values will override | |
| 648 | -the values specified on the command line through the @code{-boot} option. | |
| 649 | - | |
| 650 | -The values that can be specified here depend on the machine type, but are | |
| 651 | -the same that can be specified in the @code{-boot} command line option. | |
| 652 | - | |
| 653 | -@item nmi @var{cpu} | |
| 654 | -Inject an NMI on the given CPU. | |
| 655 | - | |
| 656 | -@item migrate [-d] @var{uri} | |
| 657 | -Migrate to @var{uri} (using -d to not wait for completion). | |
| 658 | - | |
| 659 | -@item migrate_cancel | |
| 660 | -Cancel the current VM migration. | |
| 661 | - | |
| 662 | -@item migrate_set_speed @var{value} | |
| 663 | -Set maximum speed to @var{value} (in bytes) for migrations. | |
| 664 | - | |
| 665 | -@item balloon @var{value} | |
| 666 | -Request VM to change its memory allocation to @var{value} (in MB). | |
| 667 | - | |
| 668 | -@item set_link @var{name} [up|down] | |
| 669 | -Set link @var{name} up or down. | |
| 670 | - | |
| 671 | -@end table | |
| 321 | +@include qemu-monitor.texi | |
| 672 | 322 | |
| 673 | 323 | @subsection Integer expressions |
| 674 | 324 | ... | ... |
qemu-monitor.hx
0 โ 100644
| 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 | +#if defined(TARGET_I386) | |
| 488 | + { "drive_add", "ss", drive_hot_add, "pci_addr=[[<domain>:]<bus>:]<slot>\n" | |
| 489 | + "[file=file][,if=type][,bus=n]\n" | |
| 490 | + "[,unit=m][,media=d][index=i]\n" | |
| 491 | + "[,cyls=c,heads=h,secs=s[,trans=t]]\n" | |
| 492 | + "[snapshot=on|off][,cache=on|off]", | |
| 493 | + "add drive to PCI storage controller" }, | |
| 494 | +#endif | |
| 495 | +STEXI | |
| 496 | +@item drive_add | |
| 497 | +Add drive to PCI storage controller. | |
| 498 | +ETEXI | |
| 499 | + | |
| 500 | +#if defined(TARGET_I386) | |
| 501 | + { "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" }, | |
| 502 | +#endif | |
| 503 | +STEXI | |
| 504 | +@item pci_add | |
| 505 | +Hot-add PCI device. | |
| 506 | +ETEXI | |
| 507 | + | |
| 508 | +#if defined(TARGET_I386) | |
| 509 | + { "pci_del", "s", pci_device_hot_remove, "pci_addr=[[<domain>:]<bus>:]<slot>", "hot remove PCI device" }, | |
| 510 | +#endif | |
| 511 | +STEXI | |
| 512 | +@item pci_del | |
| 513 | +Hot remove PCI device. | |
| 514 | +ETEXI | |
| 515 | + | |
| 516 | + { "host_net_add", "ss?", net_host_device_add, | |
| 517 | + "tap|user|socket|vde|dump [options]", "add host VLAN client" }, | |
| 518 | +STEXI | |
| 519 | +@item host_net_add | |
| 520 | +Add host VLAN client. | |
| 521 | +ETEXI | |
| 522 | + | |
| 523 | + { "host_net_remove", "is", net_host_device_remove, | |
| 524 | + "vlan_id name", "remove host VLAN client" }, | |
| 525 | +STEXI | |
| 526 | +@item host_net_remove | |
| 527 | +Remove host VLAN client. | |
| 528 | +ETEXI | |
| 529 | + | |
| 530 | +#ifdef CONFIG_SLIRP | |
| 531 | + { "host_net_redir", "ss?", net_slirp_redir, | |
| 532 | + "[tcp|udp]:host-port:[guest-host]:guest-port", "redirect TCP or UDP connections from host to guest (requires -net user)\n" | |
| 533 | + "host_net_redir remove [tcp:|udp:]host-port -- remove redirection\n" | |
| 534 | + "host_net_redir list -- show all redirections" }, | |
| 535 | +#endif | |
| 536 | +STEXI | |
| 537 | +@item host_net_redir | |
| 538 | +Redirect TCP or UDP connections from host to guest (requires -net user). | |
| 539 | +ETEXI | |
| 540 | + | |
| 541 | + { "balloon", "i", do_balloon, | |
| 542 | + "target", "request VM to change it's memory allocation (in MB)" }, | |
| 543 | +STEXI | |
| 544 | +@item balloon @var{value} | |
| 545 | +Request VM to change its memory allocation to @var{value} (in MB). | |
| 546 | +ETEXI | |
| 547 | + | |
| 548 | + { "set_link", "ss", do_set_link, | |
| 549 | + "name up|down", "change the link status of a network adapter" }, | |
| 550 | +STEXI | |
| 551 | +@item set_link @var{name} [up|down] | |
| 552 | +Set link @var{name} up or down. | |
| 553 | +ETEXI | |
| 554 | + | |
| 555 | + { "watchdog_action", "s", do_watchdog_action, | |
| 556 | + "[reset|shutdown|poweroff|pause|debug|none]", "change watchdog action" }, | |
| 557 | +STEXI | |
| 558 | +@item watchdog_action | |
| 559 | +Change watchdog action. | |
| 560 | +ETEXI | |
| 561 | + | |
| 562 | + { "acl", "sss?i?", do_acl, "<command> <aclname> [<match> [<index>]]\n", | |
| 563 | + "acl show vnc.username\n" | |
| 564 | + "acl policy vnc.username deny\n" | |
| 565 | + "acl allow vnc.username fred\n" | |
| 566 | + "acl deny vnc.username bob\n" | |
| 567 | + "acl reset vnc.username\n" }, | |
| 568 | +STEXI | |
| 569 | +@item acl @var{subcommand} @var{aclname} @var{match} @var{index} | |
| 570 | + | |
| 571 | +Manage access control lists for network services. There are currently | |
| 572 | +two named access control lists, @var{vnc.x509dname} and @var{vnc.username} | |
| 573 | +matching on the x509 client certificate distinguished name, and SASL | |
| 574 | +username respectively. | |
| 575 | + | |
| 576 | +@table @option | |
| 577 | +@item acl show <aclname> | |
| 578 | +list all the match rules in the access control list, and the default | |
| 579 | +policy | |
| 580 | +@item acl policy <aclname> @code{allow|deny} | |
| 581 | +set the default access control list policy, used in the event that | |
| 582 | +none of the explicit rules match. The default policy at startup is | |
| 583 | +always @code{deny} | |
| 584 | +@item acl allow <aclname> <match> [<index>] | |
| 585 | +add a match to the access control list, allowing access. The match will | |
| 586 | +normally be an exact username or x509 distinguished name, but can | |
| 587 | +optionally include wildcard globs. eg @code{*@@EXAMPLE.COM} to allow | |
| 588 | +all users in the @code{EXAMPLE.COM} kerberos realm. The match will | |
| 589 | +normally be appended to the end of the ACL, but can be inserted | |
| 590 | +earlier in the list if the optional @code{index} parameter is supplied. | |
| 591 | +@item acl deny <aclname> <match> [<index>] | |
| 592 | +add a match to the access control list, denying access. The match will | |
| 593 | +normally be an exact username or x509 distinguished name, but can | |
| 594 | +optionally include wildcard globs. eg @code{*@@EXAMPLE.COM} to allow | |
| 595 | +all users in the @code{EXAMPLE.COM} kerberos realm. The match will | |
| 596 | +normally be appended to the end of the ACL, but can be inserted | |
| 597 | +earlier in the list if the optional @code{index} parameter is supplied. | |
| 598 | +@item acl remove <aclname> <match> | |
| 599 | +remove the specified match rule from the access control list. | |
| 600 | +@item acl reset <aclname> | |
| 601 | +remove all matches from the access control list, and set the default | |
| 602 | +policy back to @code{deny}. | |
| 603 | +@end table | |
| 604 | +ETEXI | |
| 605 | + | |
| 606 | +STEXI | |
| 607 | +@end table | |
| 608 | +ETEXI | ... | ... |