From ac2da55e01b1a84e6bba32768211201dec230232 Mon Sep 17 00:00:00 2001 From: Eduardo Habkost Date: Fri, 26 Sep 2014 17:45:31 -0300 Subject: accel: Create accel object when initializing machine Create an actual TYPE_ACCEL object when initializing a machine. This will allow accelerator classes to implement some initialization on instance_init, and to save state on the TYPE_ACCEL object. Reviewed-by: Paolo Bonzini Signed-off-by: Eduardo Habkost Signed-off-by: Paolo Bonzini --- accel.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'accel.c') diff --git a/accel.c b/accel.c index 6087ab32b7..74e41daaa5 100644 --- a/accel.c +++ b/accel.c @@ -32,6 +32,7 @@ #include "sysemu/qtest.h" #include "hw/xen/xen.h" #include "qom/object.h" +#include "hw/boards.h" int tcg_tb_size; static bool tcg_allowed = true; @@ -60,11 +61,17 @@ static AccelClass *accel_find(const char *opt_name) static int accel_init_machine(AccelClass *acc, MachineState *ms) { + ObjectClass *oc = OBJECT_CLASS(acc); + const char *cname = object_class_get_name(oc); + AccelState *accel = ACCEL(object_new(cname)); int ret; + ms->accelerator = accel; *(acc->allowed) = true; ret = acc->init_machine(ms); if (ret < 0) { + ms->accelerator = NULL; *(acc->allowed) = false; + object_unref(OBJECT(accel)); } return ret; } -- cgit v1.2.1