Skip to content
This repository has been archived by the owner on Apr 22, 2022. It is now read-only.

Commit

Permalink
vl.c: In qemu -h output, only print options for the arch we are runni…
Browse files Browse the repository at this point in the history
…ng as

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>
  • Loading branch information
mpe authored and Anthony Liguori committed Dec 19, 2011
1 parent 77bd111 commit a3adb7a
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 17 deletions.
15 changes: 12 additions & 3 deletions qemu-options-wrapper.h
Expand Up @@ -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"
Expand All @@ -25,6 +33,7 @@

#undef DEF
#undef DEFHEADING
#undef ARCHHEADING
#undef GEN_DOCS

#undef QEMU_OPTIONS_GENERATE_ENUM
Expand Down
4 changes: 2 additions & 2 deletions qemu-options.hx
Expand Up @@ -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
Expand Down
3 changes: 3 additions & 0 deletions scripts/hxtool
Expand Up @@ -47,6 +47,9 @@ hxtotexi()
DEFHEADING*)
echo "$(expr "$str" : "DEFHEADING(\(.*\))")"
;;
ARCHHEADING*)
echo "$(expr "$str" : "ARCHHEADING(\(.*\),.*)")"
;;
*)
test $flag -eq 1 && echo "$str"
;;
Expand Down
21 changes: 9 additions & 12 deletions vl.c
Expand Up @@ -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);
}

Expand Down

0 comments on commit a3adb7a

Please sign in to comment.