]> git.proxmox.com Git - mirror_qemu.git/commitdiff
virtio: add virtio_queue_get_id
authorPaolo Bonzini <pbonzini@redhat.com>
Fri, 6 Apr 2012 08:38:37 +0000 (10:38 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Thu, 19 Apr 2012 08:31:05 +0000 (10:31 +0200)
Serializing virtio-scsi requests needs a simple way to get from a
VirtQueue to the number of the queue.  The virtio_queue_get_id
provides this.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
hw/virtio.c
hw/virtio.h

index 064aecf55316c9be95be1495ad38552677780d9f..314abf8a18d744c660da720e9f64ef9c019e468a 100644 (file)
@@ -624,6 +624,13 @@ int virtio_queue_get_num(VirtIODevice *vdev, int n)
     return vdev->vq[n].vring.num;
 }
 
+int virtio_queue_get_id(VirtQueue *vq)
+{
+    VirtIODevice *vdev = vq->vdev;
+    assert(vq >= &vdev->vq[0] && vq < &vdev->vq[VIRTIO_PCI_QUEUE_MAX]);
+    return vq - &vdev->vq[0];
+}
+
 void virtio_queue_notify_vq(VirtQueue *vq)
 {
     if (vq->vring.desc) {
index 400c092c959bb7102f3ebf36eb1b2aca29bc3bf9..0aef7d1bc03d3ce39301d1aaf7421c80de3bf24c 100644 (file)
@@ -229,6 +229,7 @@ target_phys_addr_t virtio_queue_get_ring_size(VirtIODevice *vdev, int n);
 uint16_t virtio_queue_get_last_avail_idx(VirtIODevice *vdev, int n);
 void virtio_queue_set_last_avail_idx(VirtIODevice *vdev, int n, uint16_t idx);
 VirtQueue *virtio_get_queue(VirtIODevice *vdev, int n);
+int virtio_queue_get_id(VirtQueue *vq);
 EventNotifier *virtio_queue_get_guest_notifier(VirtQueue *vq);
 EventNotifier *virtio_queue_get_host_notifier(VirtQueue *vq);
 void virtio_queue_notify_vq(VirtQueue *vq);