diff options
author | blueswir1 <blueswir1@c046a42c-6fe2-441c-8c8c-71466251a162> | 2009-03-28 06:44:27 +0000 |
---|---|---|
committer | blueswir1 <blueswir1@c046a42c-6fe2-441c-8c8c-71466251a162> | 2009-03-28 06:44:27 +0000 |
commit | 5824d65122347c0dd06074eeb42a51f0643729cb (patch) | |
tree | 97a69cf04c3fe47ea91ba0b339a9ee7cb2dbf98f /vl.c | |
parent | 649c90780834fedca892e08a27a3dde349e8b98d (diff) |
Syncing documentation vs. -help vs. qemu_options table
Try to keep documentation about command line switches, -help text and
qemu_options table synchronized.
In true Qemu tradition, an include file is generated from single .hx file
containing all relevant information in one place. The include file is
parsed once for getting the enums, another time for getopt tables and
hird time for help messages. Texi documentation for the options is
generated from the same .hx file.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6884 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'vl.c')
-rw-r--r-- | vl.c | 432 |
1 files changed, 33 insertions, 399 deletions
@@ -3937,191 +3937,18 @@ static int main_loop(void) static void help(int exitcode) { - /* Please keep in synch with QEMU_OPTION_ enums, qemu_options[] - and qemu-doc.texi */ printf("QEMU PC emulator version " QEMU_VERSION ", Copyright (c) 2003-2008 Fabrice Bellard\n" "usage: %s [options] [disk_image]\n" "\n" "'disk_image' is a raw hard image image for IDE hard disk 0\n" "\n" - "Standard options:\n" - "-h or -help display this help and exit\n" - "-M machine select emulated machine (-M ? for list)\n" - "-cpu cpu select CPU (-cpu ? for list)\n" - "-smp n set the number of CPUs to 'n' [default=1]\n" - "-fda/-fdb file use 'file' as floppy disk 0/1 image\n" - "-hda/-hdb file use 'file' as IDE hard disk 0/1 image\n" - "-hdc/-hdd file use 'file' as IDE hard disk 2/3 image\n" - "-cdrom file use 'file' as IDE cdrom image (cdrom is ide1 master)\n" - "-drive [file=file][,if=type][,bus=n][,unit=m][,media=d][,index=i]\n" - " [,cyls=c,heads=h,secs=s[,trans=t]][,snapshot=on|off]\n" - " [,cache=writethrough|writeback|none][,format=f][,serial=s]\n" - " use 'file' as a drive image\n" - "-mtdblock file use 'file' as on-board Flash memory image\n" - "-sd file use 'file' as SecureDigital card image\n" - "-pflash file use 'file' as a parallel flash image\n" - "-boot [a|c|d|n] boot on floppy (a), hard disk (c), CD-ROM (d), or network (n)\n" - "-snapshot write to temporary files instead of disk image files\n" - "-m megs set virtual RAM size to megs MB [default=%d]\n" -#ifndef _WIN32 - "-k language use keyboard layout (for example \"fr\" for French)\n" -#endif -#ifdef HAS_AUDIO - "-audio-help print list of audio drivers and their options\n" - "-soundhw c1,... enable audio support\n" - " and only specified sound cards (comma separated list)\n" - " use -soundhw ? to get the list of supported cards\n" - " use -soundhw all to enable all of them\n" -#endif - "-usb enable the USB driver (will be the default soon)\n" - "-usbdevice name add the host or guest USB device 'name'\n" - "-name string set the name of the guest\n" - "-uuid %%08x-%%04x-%%04x-%%04x-%%012x\n" - " specify machine UUID\n" - "\n" - "Display options:\n" - "-nographic disable graphical output and redirect serial I/Os to console\n" -#ifdef CONFIG_CURSES - "-curses use a curses/ncurses interface instead of SDL\n" -#endif -#ifdef CONFIG_SDL - "-no-frame open SDL window without a frame and window decorations\n" - "-alt-grab use Ctrl-Alt-Shift to grab mouse (instead of Ctrl-Alt)\n" - "-no-quit disable SDL window close capability\n" - "-sdl enable SDL\n" -#endif - "-portrait rotate graphical output 90 deg left (only PXA LCD)\n" - "-vga [std|cirrus|vmware|none]\n" - " select video card type\n" - "-full-screen start in full screen\n" -#if defined(TARGET_PPC) || defined(TARGET_SPARC) - "-g WxH[xDEPTH] Set the initial graphical resolution and depth\n" -#endif - "-vnc display start a VNC server on display\n" - "\n" - "Network options:\n" - "-net nic[,vlan=n][,macaddr=addr][,model=type][,name=str]\n" - " create a new Network Interface Card and connect it to VLAN 'n'\n" -#ifdef CONFIG_SLIRP - "-net user[,vlan=n][,name=str][,hostname=host]\n" - " connect the user mode network stack to VLAN 'n' and send\n" - " hostname 'host' to DHCP clients\n" -#endif -#ifdef _WIN32 - "-net tap[,vlan=n][,name=str],ifname=name\n" - " connect the host TAP network interface to VLAN 'n'\n" -#else - "-net tap[,vlan=n][,name=str][,fd=h][,ifname=name][,script=file][,downscript=dfile]\n" - " connect the host TAP network interface to VLAN 'n' and use the\n" - " network scripts 'file' (default=%s)\n" - " and 'dfile' (default=%s);\n" - " use '[down]script=no' to disable script execution;\n" - " use 'fd=h' to connect to an already opened TAP interface\n" -#endif - "-net socket[,vlan=n][,name=str][,fd=h][,listen=[host]:port][,connect=host:port]\n" - " connect the vlan 'n' to another VLAN using a socket connection\n" - "-net socket[,vlan=n][,name=str][,fd=h][,mcast=maddr:port]\n" - " connect the vlan 'n' to multicast maddr and port\n" -#ifdef CONFIG_VDE - "-net vde[,vlan=n][,name=str][,sock=socketpath][,port=n][,group=groupname][,mode=octalmode]\n" - " connect the vlan 'n' to port 'n' of a vde switch running\n" - " on host and listening for incoming connections on 'socketpath'.\n" - " Use group 'groupname' and mode 'octalmode' to change default\n" - " ownership and permissions for communication port.\n" -#endif - "-net none use it alone to have zero network devices; if no -net option\n" - " is provided, the default is '-net nic -net user'\n" -#ifdef CONFIG_SLIRP - "-tftp dir allow tftp access to files in dir [-net user]\n" - "-bootp file advertise file in BOOTP replies\n" -#ifndef _WIN32 - "-smb dir allow SMB access to files in 'dir' [-net user]\n" -#endif - "-redir [tcp|udp]:host-port:[guest-host]:guest-port\n" - " redirect TCP or UDP connections from host to guest [-net user]\n" -#endif - "\n" - "-bt hci,null dumb bluetooth HCI - doesn't respond to commands\n" - "-bt hci,host[:id]\n" - " use host's HCI with the given name\n" - "-bt hci[,vlan=n]\n" - " emulate a standard HCI in virtual scatternet 'n'\n" - "-bt vhci[,vlan=n]\n" - " add host computer to virtual scatternet 'n' using VHCI\n" - "-bt device:dev[,vlan=n]\n" - " emulate a bluetooth device 'dev' in scatternet 'n'\n" - "\n" -#ifdef TARGET_I386 - "\n" - "i386 target only:\n" - "-win2k-hack use it when installing Windows 2000 to avoid a disk full bug\n" - "-rtc-td-hack use it to fix time drift in Windows ACPI HAL\n" - "-no-fd-bootchk disable boot signature checking for floppy disks\n" - "-no-acpi disable ACPI\n" - "-no-hpet disable HPET\n" - "-acpitable [sig=str][,rev=n][,oem_id=str][,oem_table_id=str][,oem_rev=n][,asl_compiler_id=str][,asl_compiler_rev=n][,data=file1[:file2]...]\n" - " ACPI table description\n" -#endif - "Linux boot specific:\n" - "-kernel bzImage use 'bzImage' as kernel image\n" - "-append cmdline use 'cmdline' as kernel command line\n" - "-initrd file use 'file' as initial ram disk\n" - "\n" - "Debug/Expert options:\n" - "-serial dev redirect the serial port to char device 'dev'\n" - "-parallel dev redirect the parallel port to char device 'dev'\n" - "-monitor dev redirect the monitor to char device 'dev'\n" - "-pidfile file write PID to 'file'\n" - "-S freeze CPU at startup (use 'c' to start execution)\n" - "-s wait gdb connection to port\n" - "-p port set gdb connection port [default=%s]\n" - "-d item1,... output log to %s (use -d ? for a list of log items)\n" - "-hdachs c,h,s[,t]\n" - " force hard disk 0 physical geometry and the optional BIOS\n" - " translation (t=none or lba) (usually qemu can guess them)\n" - "-L path set the directory for the BIOS, VGA BIOS and keymaps\n" - "-bios file set the filename for the BIOS\n" -#ifdef USE_KQEMU - "-kernel-kqemu enable KQEMU full virtualization (default is user mode only)\n" - "-no-kqemu disable KQEMU kernel module usage\n" -#endif -#ifdef CONFIG_KVM - "-enable-kvm enable KVM full virtualization support\n" -#endif - "-no-reboot exit instead of rebooting\n" - "-no-shutdown stop before shutdown\n" - "-loadvm [tag|id]\n" - " start right away with a saved state (loadvm in monitor)\n" -#ifndef _WIN32 - "-daemonize daemonize QEMU after initializing\n" -#endif - "-option-rom rom load a file, rom, into the option ROM space\n" -#if defined(TARGET_SPARC) || defined(TARGET_PPC) - "-prom-env variable=value\n" - " set OpenBIOS nvram variables\n" -#endif - "-clock force the use of the given methods for timer alarm.\n" - " To see what timers are available use -clock ?\n" - "-localtime set the real time clock to local time [default=utc]\n" - "-startdate select initial date of the clock\n" - "-icount [N|auto]\n" - " enable virtual instruction counter with 2^N clock ticks per instruction\n" - "-echr chr set terminal escape character instead of ctrl-a\n" - "-virtioconsole c\n" - " set virtio console\n" - "-show-cursor show cursor\n" -#if defined(TARGET_ARM) || defined(TARGET_M68K) - "-semihosting semihosting mode\n" -#endif -#if defined(TARGET_ARM) - "-old-param old param mode\n" -#endif - "-tb-size n set TB size\n" - "-incoming p prepare for incoming migration, listen on port p\n" -#ifndef _WIN32 - "-chroot dir Chroot to dir just before starting the VM.\n" - "-runas user Change to user id user just before starting the VM.\n" -#endif +#define DEF(option, opt_arg, opt_enum, opt_help) \ + opt_help +#define DEFHEADING(text) stringify(text) "\n" +#include "qemu-options.h" +#undef DEF +#undef DEFHEADING +#undef GEN_DOCS "\n" "During emulation, the following keys are useful:\n" "ctrl-alt-f toggle full screen\n" @@ -4144,103 +3971,13 @@ static void help(int exitcode) #define HAS_ARG 0x0001 enum { - /* Please keep in synch with help, qemu_options[] and - qemu-doc.texi */ - /* Standard options: */ - QEMU_OPTION_h, - QEMU_OPTION_M, - QEMU_OPTION_cpu, - QEMU_OPTION_smp, - QEMU_OPTION_fda, - QEMU_OPTION_fdb, - QEMU_OPTION_hda, - QEMU_OPTION_hdb, - QEMU_OPTION_hdc, - QEMU_OPTION_hdd, - QEMU_OPTION_cdrom, - QEMU_OPTION_drive, - QEMU_OPTION_mtdblock, - QEMU_OPTION_sd, - QEMU_OPTION_pflash, - QEMU_OPTION_boot, - QEMU_OPTION_snapshot, - QEMU_OPTION_m, - QEMU_OPTION_k, - QEMU_OPTION_audio_help, - QEMU_OPTION_soundhw, - QEMU_OPTION_usb, - QEMU_OPTION_usbdevice, - QEMU_OPTION_name, - QEMU_OPTION_uuid, - - /* Display options: */ - QEMU_OPTION_nographic, - QEMU_OPTION_curses, - QEMU_OPTION_no_frame, - QEMU_OPTION_alt_grab, - QEMU_OPTION_no_quit, - QEMU_OPTION_sdl, - QEMU_OPTION_portrait, - QEMU_OPTION_vga, - QEMU_OPTION_full_screen, - QEMU_OPTION_g, - QEMU_OPTION_vnc, - - /* Network options: */ - QEMU_OPTION_net, - QEMU_OPTION_tftp, - QEMU_OPTION_bootp, - QEMU_OPTION_smb, - QEMU_OPTION_redir, - QEMU_OPTION_bt, - - /* i386 target only: */ - QEMU_OPTION_win2k_hack, - QEMU_OPTION_rtc_td_hack, - QEMU_OPTION_no_fd_bootchk, - QEMU_OPTION_no_acpi, - QEMU_OPTION_no_hpet, - QEMU_OPTION_acpitable, - - /* Linux boot specific: */ - QEMU_OPTION_kernel, - QEMU_OPTION_append, - QEMU_OPTION_initrd, - - /* Debug/Expert options: */ - QEMU_OPTION_serial, - QEMU_OPTION_parallel, - QEMU_OPTION_monitor, - QEMU_OPTION_pidfile, - QEMU_OPTION_S, - QEMU_OPTION_s, - QEMU_OPTION_p, - QEMU_OPTION_d, - QEMU_OPTION_hdachs, - QEMU_OPTION_L, - QEMU_OPTION_bios, - QEMU_OPTION_kernel_kqemu, - QEMU_OPTION_no_kqemu, - QEMU_OPTION_enable_kvm, - QEMU_OPTION_no_reboot, - QEMU_OPTION_no_shutdown, - QEMU_OPTION_loadvm, - QEMU_OPTION_daemonize, - QEMU_OPTION_option_rom, - QEMU_OPTION_prom_env, - QEMU_OPTION_clock, - QEMU_OPTION_localtime, - QEMU_OPTION_startdate, - QEMU_OPTION_icount, - QEMU_OPTION_echr, - QEMU_OPTION_virtiocon, - QEMU_OPTION_show_cursor, - QEMU_OPTION_semihosting, - QEMU_OPTION_old_param, - QEMU_OPTION_tb_size, - QEMU_OPTION_incoming, - QEMU_OPTION_chroot, - QEMU_OPTION_runas, +#define DEF(option, opt_arg, opt_enum, opt_help) \ + opt_enum, +#define DEFHEADING(text) +#include "qemu-options.h" +#undef DEF +#undef DEFHEADING +#undef GEN_DOCS }; typedef struct QEMUOption { @@ -4250,129 +3987,14 @@ typedef struct QEMUOption { } QEMUOption; static const QEMUOption qemu_options[] = { - /* Please keep in synch with help, QEMU_OPTION_ enums, and - qemu-doc.texi */ - /* Standard options: */ { "h", 0, QEMU_OPTION_h }, - { "help", 0, QEMU_OPTION_h }, - { "M", HAS_ARG, QEMU_OPTION_M }, - { "cpu", HAS_ARG, QEMU_OPTION_cpu }, - { "smp", HAS_ARG, QEMU_OPTION_smp }, - { "fda", HAS_ARG, QEMU_OPTION_fda }, - { "fdb", HAS_ARG, QEMU_OPTION_fdb }, - { "hda", HAS_ARG, QEMU_OPTION_hda }, - { "hdb", HAS_ARG, QEMU_OPTION_hdb }, - { "hdc", HAS_ARG, QEMU_OPTION_hdc }, - { "hdd", HAS_ARG, QEMU_OPTION_hdd }, - { "cdrom", HAS_ARG, QEMU_OPTION_cdrom }, - { "drive", HAS_ARG, QEMU_OPTION_drive }, - { "mtdblock", HAS_ARG, QEMU_OPTION_mtdblock }, - { "sd", HAS_ARG, QEMU_OPTION_sd }, - { "pflash", HAS_ARG, QEMU_OPTION_pflash }, - { "boot", HAS_ARG, QEMU_OPTION_boot }, - { "snapshot", 0, QEMU_OPTION_snapshot }, - { "m", HAS_ARG, QEMU_OPTION_m }, -#ifndef _WIN32 - { "k", HAS_ARG, QEMU_OPTION_k }, -#endif -#ifdef HAS_AUDIO - { "audio-help", 0, QEMU_OPTION_audio_help }, - { "soundhw", HAS_ARG, QEMU_OPTION_soundhw }, -#endif - { "usb", 0, QEMU_OPTION_usb }, - { "usbdevice", HAS_ARG, QEMU_OPTION_usbdevice }, - { "name", HAS_ARG, QEMU_OPTION_name }, - { "uuid", HAS_ARG, QEMU_OPTION_uuid }, - - /* Display options: */ - { "nographic", 0, QEMU_OPTION_nographic }, -#ifdef CONFIG_CURSES - { "curses", 0, QEMU_OPTION_curses }, -#endif -#ifdef CONFIG_SDL - { "no-frame", 0, QEMU_OPTION_no_frame }, - { "alt-grab", 0, QEMU_OPTION_alt_grab }, - { "no-quit", 0, QEMU_OPTION_no_quit }, - { "sdl", 0, QEMU_OPTION_sdl }, -#endif - { "portrait", 0, QEMU_OPTION_portrait }, - { "vga", HAS_ARG, QEMU_OPTION_vga }, - { "full-screen", 0, QEMU_OPTION_full_screen }, -#if defined(TARGET_PPC) || defined(TARGET_SPARC) - { "g", 1, QEMU_OPTION_g }, -#endif - { "vnc", HAS_ARG, QEMU_OPTION_vnc }, - - /* Network options: */ - { "net", HAS_ARG, QEMU_OPTION_net}, -#ifdef CONFIG_SLIRP - { "tftp", HAS_ARG, QEMU_OPTION_tftp }, - { "bootp", HAS_ARG, QEMU_OPTION_bootp }, -#ifndef _WIN32 - { "smb", HAS_ARG, QEMU_OPTION_smb }, -#endif - { "redir", HAS_ARG, QEMU_OPTION_redir }, -#endif - { "bt", HAS_ARG, QEMU_OPTION_bt }, -#ifdef TARGET_I386 - /* i386 target only: */ - { "win2k-hack", 0, QEMU_OPTION_win2k_hack }, - { "rtc-td-hack", 0, QEMU_OPTION_rtc_td_hack }, - { "no-fd-bootchk", 0, QEMU_OPTION_no_fd_bootchk }, - { "no-acpi", 0, QEMU_OPTION_no_acpi }, - { "no-hpet", 0, QEMU_OPTION_no_hpet }, - { "acpitable", HAS_ARG, QEMU_OPTION_acpitable }, -#endif - - /* Linux boot specific: */ - { "kernel", HAS_ARG, QEMU_OPTION_kernel }, - { "append", HAS_ARG, QEMU_OPTION_append }, - { "initrd", HAS_ARG, QEMU_OPTION_initrd }, - - /* Debug/Expert options: */ - { "serial", HAS_ARG, QEMU_OPTION_serial }, - { "parallel", HAS_ARG, QEMU_OPTION_parallel }, - { "monitor", HAS_ARG, QEMU_OPTION_monitor }, - { "pidfile", HAS_ARG, QEMU_OPTION_pidfile }, - { "S", 0, QEMU_OPTION_S }, - { "s", 0, QEMU_OPTION_s }, - { "p", HAS_ARG, QEMU_OPTION_p }, - { "d", HAS_ARG, QEMU_OPTION_d }, - { "hdachs", HAS_ARG, QEMU_OPTION_hdachs }, - { "L", HAS_ARG, QEMU_OPTION_L }, - { "bios", HAS_ARG, QEMU_OPTION_bios }, -#ifdef USE_KQEMU - { "kernel-kqemu", 0, QEMU_OPTION_kernel_kqemu }, - { "no-kqemu", 0, QEMU_OPTION_no_kqemu }, -#endif -#ifdef CONFIG_KVM - { "enable-kvm", 0, QEMU_OPTION_enable_kvm }, -#endif - { "no-reboot", 0, QEMU_OPTION_no_reboot }, - { "no-shutdown", 0, QEMU_OPTION_no_shutdown }, - { "loadvm", HAS_ARG, QEMU_OPTION_loadvm }, - { "daemonize", 0, QEMU_OPTION_daemonize }, - { "option-rom", HAS_ARG, QEMU_OPTION_option_rom }, -#if defined(TARGET_SPARC) || defined(TARGET_PPC) - { "prom-env", HAS_ARG, QEMU_OPTION_prom_env }, -#endif - { "clock", HAS_ARG, QEMU_OPTION_clock }, - { "localtime", 0, QEMU_OPTION_localtime }, - { "startdate", HAS_ARG, QEMU_OPTION_startdate }, - { "icount", HAS_ARG, QEMU_OPTION_icount }, - { "echr", HAS_ARG, QEMU_OPTION_echr }, - { "virtioconsole", HAS_ARG, QEMU_OPTION_virtiocon }, - { "show-cursor", 0, QEMU_OPTION_show_cursor }, -#if defined(TARGET_ARM) || defined(TARGET_M68K) - { "semihosting", 0, QEMU_OPTION_semihosting }, -#endif -#if defined(TARGET_ARM) - { "old-param", 0, QEMU_OPTION_old_param }, -#endif - { "tb-size", HAS_ARG, QEMU_OPTION_tb_size }, - { "incoming", HAS_ARG, QEMU_OPTION_incoming }, - { "chroot", HAS_ARG, QEMU_OPTION_chroot }, - { "runas", HAS_ARG, QEMU_OPTION_runas }, +#define DEF(option, opt_arg, opt_enum, opt_help) \ + { option, opt_arg, opt_enum }, +#define DEFHEADING(text) +#include "qemu-options.h" +#undef DEF +#undef DEFHEADING +#undef GEN_DOCS { NULL }, }; @@ -5038,15 +4660,18 @@ int main(int argc, char **argv, char **envp) case QEMU_OPTION_S: autostart = 0; break; +#ifndef _WIN32 case QEMU_OPTION_k: keyboard_layout = optarg; break; +#endif case QEMU_OPTION_localtime: rtc_utc = 0; break; case QEMU_OPTION_vga: select_vgahw (optarg); break; +#if defined(TARGET_PPC) || defined(TARGET_SPARC) case QEMU_OPTION_g: { const char *p; @@ -5081,6 +4706,7 @@ int main(int argc, char **argv, char **envp) graphic_depth = depth; } break; +#endif case QEMU_OPTION_echr: { char *r; @@ -5191,12 +4817,14 @@ int main(int argc, char **argv, char **envp) case QEMU_OPTION_vnc: vnc_display = optarg; break; +#ifdef TARGET_I386 case QEMU_OPTION_no_acpi: acpi_enabled = 0; break; case QEMU_OPTION_no_hpet: no_hpet = 1; break; +#endif case QEMU_OPTION_no_reboot: no_reboot = 1; break; @@ -5213,9 +4841,11 @@ int main(int argc, char **argv, char **envp) exit(1); } break; +#ifndef _WIN32 case QEMU_OPTION_daemonize: daemonize = 1; break; +#endif case QEMU_OPTION_option_rom: if (nb_option_roms >= MAX_OPTION_ROMS) { fprintf(stderr, "Too many option ROMs\n"); @@ -5224,9 +4854,11 @@ int main(int argc, char **argv, char **envp) option_rom[nb_option_roms] = optarg; nb_option_roms++; break; +#if defined(TARGET_ARM) || defined(TARGET_M68K) case QEMU_OPTION_semihosting: semihosting_enabled = 1; break; +#endif case QEMU_OPTION_name: qemu_name = optarg; break; @@ -5302,12 +4934,14 @@ int main(int argc, char **argv, char **envp) case QEMU_OPTION_incoming: incoming = optarg; break; +#ifndef _WIN32 case QEMU_OPTION_chroot: chroot_dir = optarg; break; case QEMU_OPTION_runas: run_as = optarg; break; +#endif } } } |