repository: C:/dev/kvm-guest-drivers-windows
branch: master
commit d4513a10128bea867eaebdcf3604646928d6293d
Author: Yan Vugenfirer <[email protected]>
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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html