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

Reply via email to