vl.c: Move option generation logic into a wrapper file

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>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
Michael Ellerman 2011-12-19 17:19:30 +11:00 committed by Anthony Liguori
parent f76d27b67c
commit 77bd1119ba
3 changed files with 38 additions and 21 deletions

32
qemu-options-wrapper.h Normal file
View File

@ -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

View File

@ -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

18
vl.c
View File

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