machine: Add machine_register_compat_props() function

Move the compat_props handling to core machine code.

Reviewed-by: Marcel Apfelbaum <marcel@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
This commit is contained in:
Eduardo Habkost 2016-06-15 16:41:19 -03:00
parent 77280adbdf
commit 39a3b377b8
3 changed files with 19 additions and 7 deletions

View file

@ -560,6 +560,22 @@ static void machine_class_finalize(ObjectClass *klass, void *data)
}
}
void machine_register_compat_props(MachineState *machine)
{
MachineClass *mc = MACHINE_GET_CLASS(machine);
int i;
GlobalProperty *p;
if (!mc->compat_props) {
return;
}
for (i = 0; i < mc->compat_props->len; i++) {
p = g_array_index(mc->compat_props, GlobalProperty *, i);
qdev_prop_register_global(p);
}
}
static const TypeInfo machine_info = {
.name = TYPE_MACHINE,
.parent = TYPE_OBJECT,

View file

@ -40,6 +40,7 @@ int machine_kvm_shadow_mem(MachineState *machine);
int machine_phandle_start(MachineState *machine);
bool machine_dump_guest_core(MachineState *machine);
bool machine_mem_merge(MachineState *machine);
void machine_register_compat_props(MachineState *machine);
/**
* CPUArchId:

9
vl.c
View file

@ -4448,13 +4448,8 @@ int main(int argc, char **argv, char **envp)
exit (i == 1 ? 1 : 0);
}
if (machine_class->compat_props) {
GlobalProperty *p;
for (i = 0; i < machine_class->compat_props->len; i++) {
p = g_array_index(machine_class->compat_props, GlobalProperty *, i);
qdev_prop_register_global(p);
}
}
machine_register_compat_props(current_machine);
qemu_opts_foreach(qemu_find_opts("global"),
global_init_func, NULL, NULL);