qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: y@ozlabs.org
To: qemu-devel@nongnu.org
Subject: [Qemu-devel] [PATCH 2/3] vl.c: In qemu -h output, only print options for the arch we are running as
Date: Mon, 19 Dec 2011 17:19:31 +1100	[thread overview]
Message-ID: <1324275572-17752-2-git-send-email-y> (raw)
In-Reply-To: <1324275572-17752-1-git-send-email-y>

From: Michael Ellerman <michael@ellerman.id.au>

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>
---
 qemu-options-wrapper.h |   15 ++++++++++++---
 qemu-options.hx        |    4 ++--
 scripts/hxtool         |    3 +++
 vl.c                   |   21 +++++++++------------
 4 files changed, 26 insertions(+), 17 deletions(-)

diff --git a/qemu-options-wrapper.h b/qemu-options-wrapper.h
index 202f5af..13bfea0 100644
--- a/qemu-options-wrapper.h
+++ b/qemu-options-wrapper.h
@@ -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
diff --git a/qemu-options.hx b/qemu-options.hx
index 087a3b9..749aee1 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -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
diff --git a/scripts/hxtool b/scripts/hxtool
index 7ca83ed..995bb7f 100644
--- a/scripts/hxtool
+++ b/scripts/hxtool
@@ -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 25ec37b..da69f94 100644
--- 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);
 }
 
-- 
1.7.7.3

  reply	other threads:[~2011-12-19  6:19 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-12-19  6:19 [Qemu-devel] [PATCH 1/3] vl.c: Move option generation logic into a wrapper file y
2011-12-19  6:19 ` y [this message]
2011-12-19  6:19 ` [Qemu-devel] [PATCH 3/3] Documentation: Move balloon option out of i386 only section y
2011-12-19  6:23 ` [Qemu-devel] [PATCH 1/3] vl.c: Move option generation logic into a wrapper file Michael Ellerman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1324275572-17752-2-git-send-email-y \
    --to=y@ozlabs.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).