return "pci";
}
}
+
+void qvirtio_start_device(QVirtioDevice *vdev)
+{
+ qvirtio_reset(vdev);
+ qvirtio_set_acknowledge(vdev);
+ qvirtio_set_driver(vdev);
+}
void qvirtqueue_set_used_event(QVirtQueue *vq, uint16_t idx);
const char *qvirtio_get_dev_type(void);
+void qvirtio_start_device(QVirtioDevice *vdev);
#endif
g_assert_nonnull(s->dev);
qvirtio_pci_device_enable(s->dev);
- qvirtio_reset(&s->dev->vdev);
- qvirtio_set_acknowledge(&s->dev->vdev);
- qvirtio_set_driver(&s->dev->vdev);
+ qvirtio_start_device(&s->dev->vdev);
s->alloc = pc_alloc_init(qts);
v9p->dev = (QVirtioDevice *) dev;
qvirtio_pci_device_enable(dev);
- qvirtio_reset(v9p->dev);
- qvirtio_set_acknowledge(v9p->dev);
- qvirtio_set_driver(v9p->dev);
+ qvirtio_start_device(v9p->dev);
v9p->vq = qvirtqueue_setup(v9p->dev, v9p->qs->alloc, 0);
g_assert_cmphex(dev->pdev->devfn, ==, ((slot << 3) | PCI_FN));
qvirtio_pci_device_enable(dev);
- qvirtio_reset(&dev->vdev);
- qvirtio_set_acknowledge(&dev->vdev);
- qvirtio_set_driver(&dev->vdev);
-
+ qvirtio_start_device(&dev->vdev);
return dev;
}
g_assert(dev != NULL);
g_assert_cmphex(dev->vdev.device_type, ==, VIRTIO_ID_BLOCK);
- qvirtio_reset(&dev->vdev);
- qvirtio_set_acknowledge(&dev->vdev);
- qvirtio_set_driver(&dev->vdev);
+ qvirtio_start_device(&dev->vdev);
alloc = generic_alloc_init(MMIO_RAM_ADDR, MMIO_RAM_SIZE, MMIO_PAGE_SIZE);
vq = qvirtqueue_setup(&dev->vdev, alloc, 0);
g_assert_cmphex(dev->vdev.device_type, ==, VIRTIO_ID_NET);
qvirtio_pci_device_enable(dev);
- qvirtio_reset(&dev->vdev);
- qvirtio_set_acknowledge(&dev->vdev);
- qvirtio_set_driver(&dev->vdev);
+ qvirtio_start_device(&dev->vdev);
return dev;
}
g_assert_cmphex(vs->dev->device_type, ==, VIRTIO_ID_SCSI);
qvirtio_pci_device_enable(dev);
- qvirtio_reset(vs->dev);
- qvirtio_set_acknowledge(vs->dev);
- qvirtio_set_driver(vs->dev);
+ qvirtio_start_device(vs->dev);
vs->num_queues = qvirtio_config_readl(vs->dev, 0);