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 | ... | ... |