aboutsummaryrefslogtreecommitdiff
path: root/vl.c
diff options
context:
space:
mode:
Diffstat (limited to 'vl.c')
-rw-r--r--vl.c32
1 files changed, 17 insertions, 15 deletions
diff --git a/vl.c b/vl.c
index b2f00ccd54..7f2f3fb63c 100644
--- a/vl.c
+++ b/vl.c
@@ -293,17 +293,12 @@ static QemuOptsList qemu_accel_opts = {
.implied_opt_name = "accel",
.head = QTAILQ_HEAD_INITIALIZER(qemu_accel_opts.head),
.desc = {
- {
- .name = "accel",
- .type = QEMU_OPT_STRING,
- .help = "Select the type of accelerator",
- },
- {
- .name = "thread",
- .type = QEMU_OPT_STRING,
- .help = "Enable/disable multi-threaded TCG",
- },
- { /* end of list */ }
+ /*
+ * no elements => accept any
+ * sanity checking will happen later
+ * when setting accelerator properties
+ */
+ { }
},
};
@@ -2711,6 +2706,13 @@ static int do_configure_icount(void *opaque, QemuOpts *opts, Error **errp)
return 0;
}
+static int accelerator_set_property(void *opaque,
+ const char *name, const char *value,
+ Error **errp)
+{
+ return object_parse_property_opt(opaque, name, value, "accel", errp);
+}
+
static int do_configure_accelerator(void *opaque, QemuOpts *opts, Error **errp)
{
bool *p_init_failed = opaque;
@@ -2725,6 +2727,10 @@ static int do_configure_accelerator(void *opaque, QemuOpts *opts, Error **errp)
return 0;
}
accel = ACCEL(object_new_with_class(OBJECT_CLASS(ac)));
+ qemu_opt_foreach(opts, accelerator_set_property,
+ accel,
+ &error_fatal);
+
ret = accel_init_machine(accel, current_machine);
if (ret < 0) {
*p_init_failed = true;
@@ -2732,10 +2738,6 @@ static int do_configure_accelerator(void *opaque, QemuOpts *opts, Error **errp)
acc, strerror(-ret));
return 0;
}
-
- if (tcg_enabled()) {
- qemu_tcg_configure(opts, &error_fatal);
- }
return 1;
}