pc: Move compat_props setting inside *_machine_options() functions

This will simplify the DEFINE_PC_MACHINE macro, and will help us to
implement reuse of PC_COMPAT_* macros through class_init function reuse,
in the future.

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
Eduardo Habkost 2015-05-15 14:18:55 -03:00 committed by Michael S. Tsirkin
parent fddd179ab9
commit 25519b062c
3 changed files with 65 additions and 36 deletions

View file

@ -529,20 +529,23 @@ static inline void pc_default_machine_options(QEMUMachine *m)
m->max_cpus = 255;
}
#define DEFINE_PC_MACHINE(suffix, namestr, initfn, optsfn, COMPAT) \
#define DEFINE_PC_MACHINE(suffix, namestr, initfn, optsfn) \
static void pc_machine_init_##suffix(void) \
{ \
static QEMUMachine m = { }; \
static GlobalProperty props[] = { \
COMPAT \
{ /* end of list */ } \
}; \
optsfn(&m); \
m.name = namestr; \
m.init = initfn; \
m.compat_props = props; \
qemu_register_pc_machine(&m); \
} \
machine_init(pc_machine_init_##suffix)
#define SET_MACHINE_COMPAT(m, COMPAT) do { \
static GlobalProperty props[] = { \
COMPAT \
{ /* end of list */ } \
}; \
(m)->compat_props = props; \
} while (0)
#endif