3d95fb9770
Drop one more client of global_qtest by teaching all remaining libqos stragglers to pass in an explicit QTestState. Change the setting of global_qtest from being implicit in libqos' call to qtest_start() to instead be explicit in all clients that are still relying on global_qtest. Note that qmp_execute() can be greatly simplified in the process, and that we also get rid of interpolation of a JSON string into a temporary variable when qtest_qmp() can do it more reliably. Signed-off-by: Eric Blake <eblake@redhat.com> Acked-by: Greg Kurz <groug@kaod.org> Reviewed-by: John Snow <jsnow@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
37 lines
774 B
C
37 lines
774 B
C
#include "qemu/osdep.h"
|
|
#include "libqos/libqos-pc.h"
|
|
#include "libqos/malloc-pc.h"
|
|
#include "libqos/pci-pc.h"
|
|
|
|
static QOSOps qos_ops = {
|
|
.init_allocator = pc_alloc_init_flags,
|
|
.uninit_allocator = pc_alloc_uninit,
|
|
.qpci_init = qpci_init_pc,
|
|
.qpci_free = qpci_free_pc,
|
|
.shutdown = qtest_pc_shutdown,
|
|
};
|
|
|
|
QOSState *qtest_pc_vboot(const char *cmdline_fmt, va_list ap)
|
|
{
|
|
return qtest_vboot(&qos_ops, cmdline_fmt, ap);
|
|
}
|
|
|
|
QOSState *qtest_pc_boot(const char *cmdline_fmt, ...)
|
|
{
|
|
QOSState *qs;
|
|
va_list ap;
|
|
|
|
va_start(ap, cmdline_fmt);
|
|
qs = qtest_vboot(&qos_ops, cmdline_fmt, ap);
|
|
va_end(ap);
|
|
|
|
qtest_irq_intercept_in(qs->qts, "ioapic");
|
|
|
|
return qs;
|
|
}
|
|
|
|
void qtest_pc_shutdown(QOSState *qs)
|
|
{
|
|
return qtest_common_shutdown(qs);
|
|
}
|