qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 1/3] vl.c: Move option generation logic into a wrapper file
@ 2011-12-19  6:19 y
  2011-12-19  6:19 ` [Qemu-devel] [PATCH 2/3] vl.c: In qemu -h output, only print options for the arch we are running as y
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: y @ 2011-12-19  6:19 UTC (permalink / raw)
  To: qemu-devel

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

In vl.c and qemu-options.h we define macros and include qemu-options.def
in order to generate different content. Move the bulk of the def'ing and
undef'ing into a wrapper, this will make it cleaner when we add another
macro in the next patch.

AFAICS undefining GEN_DOCS services no purpose, but I've left it for now.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
---
 qemu-options-wrapper.h |   32 ++++++++++++++++++++++++++++++++
 qemu-options.h         |    9 ++-------
 vl.c                   |   18 ++++--------------
 3 files changed, 38 insertions(+), 21 deletions(-)
 create mode 100644 qemu-options-wrapper.h

diff --git a/qemu-options-wrapper.h b/qemu-options-wrapper.h
new file mode 100644
index 0000000..202f5af
--- /dev/null
+++ b/qemu-options-wrapper.h
@@ -0,0 +1,32 @@
+
+#if defined(QEMU_OPTIONS_GENERATE_ENUM)
+
+#define DEF(option, opt_arg, opt_enum, opt_help, arch_mask)     \
+    opt_enum,
+#define DEFHEADING(text)
+
+#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"
+
+#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)
+
+#else
+#error "qemu-options-wrapper.h included with no option defined"
+#endif
+
+#include "qemu-options.def"
+
+#undef DEF
+#undef DEFHEADING
+#undef GEN_DOCS
+
+#undef QEMU_OPTIONS_GENERATE_ENUM
+#undef QEMU_OPTIONS_GENERATE_HELP
+#undef QEMU_OPTIONS_GENERATE_OPTIONS
diff --git a/qemu-options.h b/qemu-options.h
index c96f994..89a009e 100644
--- a/qemu-options.h
+++ b/qemu-options.h
@@ -29,13 +29,8 @@
 #define _QEMU_OPTIONS_H_
 
 enum {
-#define DEF(option, opt_arg, opt_enum, opt_help, arch_mask)     \
-    opt_enum,
-#define DEFHEADING(text)
-#include "qemu-options.def"
-#undef DEF
-#undef DEFHEADING
-#undef GEN_DOCS
+#define QEMU_OPTIONS_GENERATE_ENUM
+#include "qemu-options-wrapper.h"
 };
 
 #endif
diff --git a/vl.c b/vl.c
index d51ac2e..25ec37b 100644
--- a/vl.c
+++ b/vl.c
@@ -1493,13 +1493,8 @@ static void version(void)
 static void help(int exitcode)
 {
     const char *options_help =
-#define DEF(option, opt_arg, opt_enum, opt_help, arch_mask)     \
-        opt_help
-#define DEFHEADING(text) stringify(text) "\n"
-#include "qemu-options.def"
-#undef DEF
-#undef DEFHEADING
-#undef GEN_DOCS
+#define QEMU_OPTIONS_GENERATE_HELP
+#include "qemu-options-wrapper.h"
         ;
     version();
     printf("usage: %s [options] [disk_image]\n"
@@ -1529,13 +1524,8 @@ typedef struct QEMUOption {
 
 static const QEMUOption qemu_options[] = {
     { "h", 0, QEMU_OPTION_h, QEMU_ARCH_ALL },
-#define DEF(option, opt_arg, opt_enum, opt_help, arch_mask)     \
-    { option, opt_arg, opt_enum, arch_mask },
-#define DEFHEADING(text)
-#include "qemu-options.def"
-#undef DEF
-#undef DEFHEADING
-#undef GEN_DOCS
+#define QEMU_OPTIONS_GENERATE_OPTIONS
+#include "qemu-options-wrapper.h"
     { NULL },
 };
 static void select_vgahw (const char *p)
-- 
1.7.7.3

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [Qemu-devel] [PATCH 2/3] vl.c: In qemu -h output, only print options for the arch we are running as
  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
  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
  2 siblings, 0 replies; 4+ messages in thread
From: y @ 2011-12-19  6:19 UTC (permalink / raw)
  To: qemu-devel

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

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [Qemu-devel] [PATCH 3/3] Documentation: Move balloon option out of i386 only section
  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 ` [Qemu-devel] [PATCH 2/3] vl.c: In qemu -h output, only print options for the arch we are running as y
@ 2011-12-19  6:19 ` y
  2011-12-19  6:23 ` [Qemu-devel] [PATCH 1/3] vl.c: Move option generation logic into a wrapper file Michael Ellerman
  2 siblings, 0 replies; 4+ messages in thread
From: y @ 2011-12-19  6:19 UTC (permalink / raw)
  To: qemu-devel

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

The balloon option is not i386 only, so move it into the standard
options section.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
---
 qemu-options.hx |   26 +++++++++++++-------------
 1 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/qemu-options.hx b/qemu-options.hx
index 749aee1..a60191f 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -456,6 +456,19 @@ modprobe i810_audio clocking=48000
 @end example
 ETEXI
 
+DEF("balloon", HAS_ARG, QEMU_OPTION_balloon,
+    "-balloon none   disable balloon device\n"
+    "-balloon virtio[,addr=str]\n"
+    "                enable virtio balloon device (default)\n", QEMU_ARCH_ALL)
+STEXI
+@item -balloon none
+@findex -balloon
+Disable balloon device.
+@item -balloon virtio[,addr=@var{addr}]
+Enable virtio balloon device (default), optionally with PCI address
+@var{addr}.
+ETEXI
+
 STEXI
 @end table
 ETEXI
@@ -1120,19 +1133,6 @@ STEXI
 Disable HPET support.
 ETEXI
 
-DEF("balloon", HAS_ARG, QEMU_OPTION_balloon,
-    "-balloon none   disable balloon device\n"
-    "-balloon virtio[,addr=str]\n"
-    "                enable virtio balloon device (default)\n", QEMU_ARCH_ALL)
-STEXI
-@item -balloon none
-@findex -balloon
-Disable balloon device.
-@item -balloon virtio[,addr=@var{addr}]
-Enable virtio balloon device (default), optionally with PCI address
-@var{addr}.
-ETEXI
-
 DEF("acpitable", HAS_ARG, QEMU_OPTION_acpitable,
     "-acpitable [sig=str][,rev=n][,oem_id=str][,oem_table_id=str][,oem_rev=n][,asl_compiler_id=str][,asl_compiler_rev=n][,{data|file}=file1[:file2]...]\n"
     "                ACPI table description\n", QEMU_ARCH_I386)
-- 
1.7.7.3

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [Qemu-devel] [PATCH 1/3] vl.c: Move option generation logic into a wrapper file
  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 ` [Qemu-devel] [PATCH 2/3] vl.c: In qemu -h output, only print options for the arch we are running as y
  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 ` Michael Ellerman
  2 siblings, 0 replies; 4+ messages in thread
From: Michael Ellerman @ 2011-12-19  6:23 UTC (permalink / raw)
  To: qemu-devel

[-- Attachment #1: Type: text/plain, Size: 178 bytes --]

On Mon, 2011-12-19 at 17:19 +1100, y@ozlabs.org wrote:
> From: Michael Ellerman <michael@ellerman.id.au>

These are from me obviously. Thankyou POS git-send-email.

cheers

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2011-12-19  6:23 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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 ` [Qemu-devel] [PATCH 2/3] vl.c: In qemu -h output, only print options for the arch we are running as y
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

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