提交 77bd1119 编写于 作者: M Michael Ellerman 提交者: Anthony Liguori

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: NMichael Ellerman <michael@ellerman.id.au>
Signed-off-by: NAnthony Liguori <aliguori@us.ibm.com>
上级 f76d27b6
#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
......@@ -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
......@@ -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)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册