vl: extract accelerator option processing to a separate function

As a first step towards supporting multiple "-accel" options, push the
late processing of -icount and -accel into a new function, and use
qemu_opts_foreach to retrieve -accel options instead of stashing
them into globals.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Paolo Bonzini 2019-11-14 11:10:43 +01:00
parent af0440ae85
commit deda73e89f
1 changed files with 20 additions and 8 deletions

28
vl.c
View File

@ -2706,6 +2706,25 @@ static int do_configure_icount(void *opaque, QemuOpts *opts, Error **errp)
return 0;
}
static int do_configure_accelerator(void *opaque, QemuOpts *opts, Error **errp)
{
if (tcg_enabled()) {
qemu_tcg_configure(opts, &error_fatal);
}
return 0;
}
static void configure_accelerators(void)
{
qemu_opts_foreach(qemu_find_opts("accel"),
do_configure_accelerator, NULL, &error_fatal);
if (use_icount && !(tcg_enabled() || qtest_enabled())) {
error_report("-icount is not allowed with hardware virtualization");
exit(1);
}
}
int main(int argc, char **argv, char **envp)
{
int i;
@ -4103,14 +4122,7 @@ int main(int argc, char **argv, char **envp)
qemu_spice_init();
cpu_ticks_init();
if (use_icount && !(tcg_enabled() || qtest_enabled())) {
error_report("-icount is not allowed with hardware virtualization");
exit(1);
}
if (tcg_enabled()) {
qemu_tcg_configure(accel_opts, &error_fatal);
}
configure_accelerators();
if (default_net) {
QemuOptsList *net = qemu_find_opts("net");