-static const char mount_tag[] = "qtest";
-
-typedef struct {
- QVirtioDevice *dev;
- QOSState *qs;
- QVirtQueue *vq;
- char *test_share;
- uint16_t p9_req_tag;
-} QVirtIO9P;
-
-static QVirtIO9P *qvirtio_9p_start(const char *driver)
-{
- const char *arch = qtest_get_arch();
- const char *cmd = "-fsdev local,id=fsdev0,security_model=none,path=%s "
- "-device %s,fsdev=fsdev0,mount_tag=%s";
- QVirtIO9P *v9p = g_new0(QVirtIO9P, 1);
-
- v9p->test_share = g_strdup("/tmp/qtest.XXXXXX");
- g_assert_nonnull(mkdtemp(v9p->test_share));
-
- if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) {
- v9p->qs = qtest_pc_boot(cmd, v9p->test_share, driver, mount_tag);
- } else if (strcmp(arch, "ppc64") == 0) {
- v9p->qs = qtest_spapr_boot(cmd, v9p->test_share, driver, mount_tag);
- } else {
- g_printerr("virtio-9p tests are only available on x86 or ppc64\n");
- exit(EXIT_FAILURE);
- }
-
- return v9p;
-}
-
-static void qvirtio_9p_stop(QVirtIO9P *v9p)
-{
- qtest_shutdown(v9p->qs);
- rmdir(v9p->test_share);
- g_free(v9p->test_share);
- g_free(v9p);
-}
-
-static QVirtIO9P *qvirtio_9p_pci_start(void)
-{
- QVirtIO9P *v9p = qvirtio_9p_start("virtio-9p-pci");
- QVirtioPCIDevice *dev = qvirtio_pci_device_find(v9p->qs->pcibus,
- VIRTIO_ID_9P);
- g_assert_nonnull(dev);
- g_assert_cmphex(dev->vdev.device_type, ==, VIRTIO_ID_9P);
- v9p->dev = (QVirtioDevice *) dev;
-
- qvirtio_pci_device_enable(dev);
- qvirtio_reset(v9p->dev);
- qvirtio_set_acknowledge(v9p->dev);
- qvirtio_set_driver(v9p->dev);
-
- v9p->vq = qvirtqueue_setup(v9p->dev, v9p->qs->alloc, 0);
-
- qvirtio_set_driver_ok(v9p->dev);
-
- return v9p;
-}
-
-static void qvirtio_9p_pci_stop(QVirtIO9P *v9p)