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>
This commit is contained in:
parent
5f55d64b38
commit
3fe13fe16e
@ -2035,6 +2035,7 @@ M: Laurent Vivier <lvivier@redhat.com>
|
|||||||
R: Paolo Bonzini <pbonzini@redhat.com>
|
R: Paolo Bonzini <pbonzini@redhat.com>
|
||||||
S: Maintained
|
S: Maintained
|
||||||
F: qtest.c
|
F: qtest.c
|
||||||
|
F: accel/qtest.c
|
||||||
F: tests/libqtest.*
|
F: tests/libqtest.*
|
||||||
F: tests/libqos/
|
F: tests/libqos/
|
||||||
F: tests/*-test.c
|
F: tests/*-test.c
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
obj-$(CONFIG_SOFTMMU) += accel.o
|
obj-$(CONFIG_SOFTMMU) += accel.o
|
||||||
|
obj-$(CONFIG_SOFTMMU) += qtest.o
|
||||||
obj-$(CONFIG_KVM) += kvm/
|
obj-$(CONFIG_KVM) += kvm/
|
||||||
obj-$(CONFIG_TCG) += tcg/
|
obj-$(CONFIG_TCG) += tcg/
|
||||||
obj-y += stubs/
|
obj-y += stubs/
|
||||||
|
55
accel/qtest.c
Normal file
55
accel/qtest.c
Normal file
@ -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);
|
34
qtest.c
34
qtest.c
@ -749,16 +749,6 @@ static void qtest_event(void *opaque, int event)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
void qtest_init(const char *qtest_chrdev, const char *qtest_log, Error **errp)
|
void qtest_init(const char *qtest_chrdev, const char *qtest_log, Error **errp)
|
||||||
{
|
{
|
||||||
Chardev *chr;
|
Chardev *chr;
|
||||||
@ -791,27 +781,3 @@ bool qtest_driver(void)
|
|||||||
{
|
{
|
||||||
return qtest_chr.chr != NULL;
|
return qtest_chr.chr != NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
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);
|
|
||||||
|
Loading…
Reference in New Issue
Block a user