machines: replace COMPAT define with a static array

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Acked-by: Eduardo Habkost <ehabkost@redhat.com>
This commit is contained in:
Marc-André Lureau 2018-12-12 16:30:28 +04:00
parent ea9ce8934c
commit fa386d989d
6 changed files with 567 additions and 428 deletions

View file

@ -289,18 +289,14 @@ struct MachineState {
} \
type_init(machine_initfn##_register_types)
#define SET_MACHINE_COMPAT(m, COMPAT) \
#define SET_MACHINE_COMPAT(m, compat) \
do { \
int i; \
static GlobalProperty props[] = { \
COMPAT \
{ /* end of list */ } \
}; \
if (!m->compat_props) { \
m->compat_props = g_array_new(false, false, sizeof(void *)); \
} \
for (i = 0; props[i].driver != NULL; i++) { \
GlobalProperty *prop = &props[i]; \
for (i = 0; i < G_N_ELEMENTS(compat); i++) { \
GlobalProperty *prop = &compat[i]; \
g_array_append_val(m->compat_props, prop); \
} \
} while (0)