Example #1
0
/*
 * Unmap any memory, close any file descriptors and
 * free any memory owned by a device.
 */
static void
cleanup_device(struct virtio_net *dev, int destroy)
{
	uint32_t i;

	vhost_backend_cleanup(dev);

	for (i = 0; i < dev->virt_qp_nb; i++) {
		cleanup_vq(dev->virtqueue[i * VIRTIO_QNUM + VIRTIO_RXQ], destroy);
		cleanup_vq(dev->virtqueue[i * VIRTIO_QNUM + VIRTIO_TXQ], destroy);
	}
}
Example #2
0
/*
 * Unmap any memory, close any file descriptors and
 * free any memory owned by a device.
 */
static void
cleanup_device(struct virtio_net *dev)
{
	uint32_t i;

	/* Unmap QEMU memory file if mapped. */
	if (dev->mem) {
		munmap((void *)(uintptr_t)dev->mem->mapped_address,
			(size_t)dev->mem->mapped_size);
		free(dev->mem);
	}

	for (i = 0; i < dev->virt_qp_nb; i++) {
		cleanup_vq(dev->virtqueue[i * VIRTIO_QNUM + VIRTIO_RXQ]);
		cleanup_vq(dev->virtqueue[i * VIRTIO_QNUM + VIRTIO_TXQ]);
	}
}
Example #3
0
/*
 * Unmap any memory, close any file descriptors and
 * free any memory owned by a device.
 */
void
cleanup_device(struct virtio_net *dev, int destroy)
{
	uint32_t i;

	vhost_backend_cleanup(dev);

	for (i = 0; i < dev->nr_vring; i++)
		cleanup_vq(dev->virtqueue[i], destroy);
}