]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
vl.c: In qemu -h output, only print options for the arch we are running as
authorMichael Ellerman <michael@ellerman.id.au>
Mon, 19 Dec 2011 06:19:31 +0000 (17:19 +1100)
committerAnthony Liguori <aliguori@us.ibm.com>
Mon, 19 Dec 2011 16:27:33 +0000 (10:27 -0600)
Only print options in the help output that are accepted by our arch.
This is less confusing for users and also for other programs that
consume the help output.

The options affected are:

 -g and -prom-env only displayed on PPC or SPARC

 -win2k-hack, -rtc-td-hack, -no-fd-bootchk, -no-acpi, -no-hpet,
 -acpitable, -smbios only displayed on i386

 -semihosting only displayed on ARM, M68K or XTENSA

 -old-param only displayed on ARM

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
qemu-options-wrapper.h
qemu-options.hx
scripts/hxtool
vl.c

index 202f5af9b4b8e8cda60634a0d4f01d8a831e85a9..13bfea0294f247ca281b0654f937073bb24b13d3 100644 (file)
@@ -4,18 +4,26 @@
 #define DEF(option, opt_arg, opt_enum, opt_help, arch_mask)     \
     opt_enum,
 #define DEFHEADING(text)
+#define ARCHHEADING(text, arch_mask)
 
 #elif defined(QEMU_OPTIONS_GENERATE_HELP)
 
-#define DEF(option, opt_arg, opt_enum, opt_help, arch_mask)     \
-        opt_help
-#define DEFHEADING(text) stringify(text) "\n"
+#define DEF(option, opt_arg, opt_enum, opt_help, arch_mask)    \
+    if ((arch_mask) & arch_type)                               \
+        fputs(opt_help, stdout);
+
+#define ARCHHEADING(text, arch_mask) \
+    if ((arch_mask) & arch_type)    \
+        puts(stringify(text));
+
+#define DEFHEADING(text) ARCHHEADING(text, QEMU_ARCH_ALL)
 
 #elif defined(QEMU_OPTIONS_GENERATE_OPTIONS)
 
 #define DEF(option, opt_arg, opt_enum, opt_help, arch_mask)     \
     { option, opt_arg, opt_enum, arch_mask },
 #define DEFHEADING(text)
+#define ARCHHEADING(text, arch_mask)
 
 #else
 #error "qemu-options-wrapper.h included with no option defined"
@@ -25,6 +33,7 @@
 
 #undef DEF
 #undef DEFHEADING
+#undef ARCHHEADING
 #undef GEN_DOCS
 
 #undef QEMU_OPTIONS_GENERATE_ENUM
index 087a3b9376f840de8b8968acaeec0fe86482c169..749aee1bb74ed0bbd8e0d7a5decff2d3d7819749 100644 (file)
@@ -1070,9 +1070,9 @@ STEXI
 @end table
 ETEXI
 
-DEFHEADING()
+ARCHHEADING(, QEMU_ARCH_I386)
 
-DEFHEADING(i386 target only:)
+ARCHHEADING(i386 target only:, QEMU_ARCH_I386)
 STEXI
 @table @option
 ETEXI
index 7ca83ed1ff7feee5c734a16d34b94fa4cf122049..995bb7f08c2b7632e019ff273990ce308527aaeb 100644 (file)
@@ -47,6 +47,9 @@ hxtotexi()
             DEFHEADING*)
             echo "$(expr "$str" : "DEFHEADING(\(.*\))")"
             ;;
+            ARCHHEADING*)
+            echo "$(expr "$str" : "ARCHHEADING(\(.*\),.*)")"
+            ;;
             *)
             test $flag -eq 1 && echo "$str"
             ;;
diff --git a/vl.c b/vl.c
index 25ec37b56335a8059881d1a01f2437de139f9c99..da69f94dd165491c2c1b45fd20d75edd5dc2a3ae 100644 (file)
--- a/vl.c
+++ b/vl.c
@@ -1492,24 +1492,21 @@ static void version(void)
 
 static void help(int exitcode)
 {
-    const char *options_help =
+    version();
+    printf("usage: %s [options] [disk_image]\n\n"
+           "'disk_image' is a raw hard disk image for IDE hard disk 0\n\n",
+            error_get_progname());
+
 #define QEMU_OPTIONS_GENERATE_HELP
 #include "qemu-options-wrapper.h"
-        ;
-    version();
-    printf("usage: %s [options] [disk_image]\n"
-           "\n"
-           "'disk_image' is a raw hard disk image for IDE hard disk 0\n"
-           "\n"
-           "%s\n"
-           "During emulation, the following keys are useful:\n"
+
+    printf("\nDuring emulation, the following keys are useful:\n"
            "ctrl-alt-f      toggle full screen\n"
            "ctrl-alt-n      switch to virtual console 'n'\n"
            "ctrl-alt        toggle mouse and keyboard grab\n"
            "\n"
-           "When using -nographic, press 'ctrl-a h' to get some help.\n",
-           error_get_progname(),
-           options_help);
+           "When using -nographic, press 'ctrl-a h' to get some help.\n");
+
     exit(exitcode);
 }