Commit 39a3b377 authored by Eduardo Habkost's avatar Eduardo Habkost
Browse files

machine: Add machine_register_compat_props() function



Move the compat_props handling to core machine code.

Reviewed-by: default avatarMarcel Apfelbaum <marcel@redhat.com>
Reviewed-by: default avatarMarkus Armbruster <armbru@redhat.com>
Signed-off-by: default avatarEduardo Habkost <ehabkost@redhat.com>
parent 77280adb
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -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,
+1 −0
Original line number Diff line number Diff line
@@ -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:
+2 −7
Original line number Diff line number Diff line
@@ -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);