xref: /linux/include/linux/virtio_ring.h (revision 6ed7ffddcf61f668114edb676417e5fb33773b59)
1 #ifndef _LINUX_VIRTIO_RING_H
2 #define _LINUX_VIRTIO_RING_H
3 
4 #include <linux/irqreturn.h>
5 #include <uapi/linux/virtio_ring.h>
6 
7 struct virtio_device;
8 struct virtqueue;
9 
10 struct virtqueue *vring_new_virtqueue(unsigned int index,
11 				      unsigned int num,
12 				      unsigned int vring_align,
13 				      struct virtio_device *vdev,
14 				      bool weak_barriers,
15 				      void *pages,
16 				      void (*notify)(struct virtqueue *vq),
17 				      void (*callback)(struct virtqueue *vq),
18 				      const char *name);
19 void vring_del_virtqueue(struct virtqueue *vq);
20 /* Filter out transport-specific feature bits. */
21 void vring_transport_features(struct virtio_device *vdev);
22 
23 irqreturn_t vring_interrupt(int irq, void *_vq);
24 #endif /* _LINUX_VIRTIO_RING_H */
25