diff options
author | Eduardo Habkost | 2019-04-22 23:04:46 +0200 |
---|---|---|
committer | Thomas Huth | 2019-05-02 16:56:33 +0200 |
commit | 3fe13fe16e2147ccbab037ace60e2bd3831094fd (patch) | |
tree | 3433518ffb0ae3fca44a37c6bdec6b97c7848a36 /accel | |
parent | gitlab-ci.yml: Test the TCG interpreter in a CI pipeline (diff) | |
download | qemu-3fe13fe16e2147ccbab037ace60e2bd3831094fd.tar.gz qemu-3fe13fe16e2147ccbab037ace60e2bd3831094fd.tar.xz qemu-3fe13fe16e2147ccbab037ace60e2bd3831094fd.zip |
qtest: Move accel code to accel/qtest.c
QTest has two parts: the server (-qtest) and the accelerator
(-machine accel=qtest). The accelerator depends on CONFIG_POSIX
due to its usage of sigwait(), but the server doesn't.
Move the accel code to accel/qtest.c. Later we will disable
compilation of accel/qtest.c on non-POSIX systems.
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Message-Id: <20190422210448.2488-2-ehabkost@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
[thuth: added fixup for MAINTAINERS file]
Signed-off-by: Thomas Huth <thuth@redhat.com>
Diffstat (limited to 'accel')
-rw-r--r-- | accel/Makefile.objs | 1 | ||||
-rw-r--r-- | accel/qtest.c | 55 |
2 files changed, 56 insertions, 0 deletions
diff --git a/accel/Makefile.objs b/accel/Makefile.objs index c3718a10c5..2a5ed46940 100644 --- a/accel/Makefile.objs +++ b/accel/Makefile.objs @@ -1,4 +1,5 @@ obj-$(CONFIG_SOFTMMU) += accel.o +obj-$(CONFIG_SOFTMMU) += qtest.o obj-$(CONFIG_KVM) += kvm/ obj-$(CONFIG_TCG) += tcg/ obj-y += stubs/ diff --git a/accel/qtest.c b/accel/qtest.c new file mode 100644 index 0000000000..a02b3c26c7 --- /dev/null +++ b/accel/qtest.c @@ -0,0 +1,55 @@ +/* + * QTest accelerator code + * + * Copyright IBM, Corp. 2011 + * + * Authors: + * Anthony Liguori <aliguori@us.ibm.com> + * + * This work is licensed under the terms of the GNU GPL, version 2 or later. + * See the COPYING file in the top-level directory. + * + */ + +#include "qemu/osdep.h" +#include "qapi/error.h" +#include "qemu/module.h" +#include "qemu/option.h" +#include "qemu/config-file.h" +#include "sysemu/accel.h" +#include "sysemu/qtest.h" +#include "sysemu/cpus.h" + +static int qtest_init_accel(MachineState *ms) +{ + QemuOpts *opts = qemu_opts_create(qemu_find_opts("icount"), NULL, 0, + &error_abort); + qemu_opt_set(opts, "shift", "0", &error_abort); + configure_icount(opts, &error_abort); + qemu_opts_del(opts); + return 0; +} + +static void qtest_accel_class_init(ObjectClass *oc, void *data) +{ + AccelClass *ac = ACCEL_CLASS(oc); + ac->name = "QTest"; + ac->available = qtest_available; + ac->init_machine = qtest_init_accel; + ac->allowed = &qtest_allowed; +} + +#define TYPE_QTEST_ACCEL ACCEL_CLASS_NAME("qtest") + +static const TypeInfo qtest_accel_type = { + .name = TYPE_QTEST_ACCEL, + .parent = TYPE_ACCEL, + .class_init = qtest_accel_class_init, +}; + +static void qtest_type_init(void) +{ + type_register_static(&qtest_accel_type); +} + +type_init(qtest_type_init); |