repository: C:/dev/kvm-guest-drivers-windows branch: master commit d4513a10128bea867eaebdcf3604646928d6293d Author: Yan Vugenfirer <yvuge...@redhat.com> Date: Tue Oct 6 20:47:15 2009 +0200
[VirtIO] Add op to the library enable\disable the interrupts diff --git a/VirtIO/VirtIO.h b/VirtIO/VirtIO.h index 0f937ae..12cc027 100644 --- a/VirtIO/VirtIO.h +++ b/VirtIO/VirtIO.h @@ -81,6 +81,8 @@ struct virtqueue_ops { bool (*restart)(struct virtqueue *vq); void (*shutdown)(struct virtqueue *vq); + + void (*enable_interrupt)(struct virtqueue *vq, bool enable); }; #endif /* _LINUX_VIRTIO_H */ diff --git a/VirtIO/VirtIORing.c b/VirtIO/VirtIORing.c index f8d5e0e..0151472 100644 --- a/VirtIO/VirtIORing.c +++ b/VirtIO/VirtIORing.c @@ -200,6 +200,17 @@ static void detach_buf(struct vring_virtqueue *vq, unsigned int head) vq->num_free++; } +static void vring_enable_interrupts(struct virtqueue *_vq, bool enable) +{ + struct vring_virtqueue *vq = to_vvq(_vq); + + if(enable) + vq->vring.avail->flags &= ~VRING_AVAIL_F_NO_INTERRUPT; + else + vq->vring.avail->flags |= VRING_AVAIL_F_NO_INTERRUPT; + + mb(); +} /* changed: vring_shutdown brings the queue to initial state, as it was @@ -283,7 +294,8 @@ static struct virtqueue_ops vring_vq_ops = { vring_add_buf, vring_kick_always, vring_get_buf, vring_restart, - vring_shutdown}; + vring_shutdown, + vring_enable_interrupts}; void initialize_virtqueue(struct vring_virtqueue *vq, -- To unsubscribe from this list: send the line "unsubscribe kvm-commits" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html