2007-10-22 05:03:40 +04:00
|
|
|
#ifndef _LINUX_VIRTIO_RING_H
|
|
|
|
#define _LINUX_VIRTIO_RING_H
|
|
|
|
|
|
|
|
#include <linux/irqreturn.h>
|
2012-10-13 13:46:48 +04:00
|
|
|
#include <uapi/linux/virtio_ring.h>
|
|
|
|
|
2007-10-22 05:03:40 +04:00
|
|
|
struct virtio_device;
|
|
|
|
struct virtqueue;
|
|
|
|
|
2012-08-28 15:54:13 +04:00
|
|
|
struct virtqueue *vring_new_virtqueue(unsigned int index,
|
|
|
|
unsigned int num,
|
2008-12-30 18:26:03 +03:00
|
|
|
unsigned int vring_align,
|
2007-10-22 05:03:40 +04:00
|
|
|
struct virtio_device *vdev,
|
2012-01-12 09:14:42 +04:00
|
|
|
bool weak_barriers,
|
2007-10-22 05:03:40 +04:00
|
|
|
void *pages,
|
|
|
|
void (*notify)(struct virtqueue *vq),
|
2009-06-13 08:16:35 +04:00
|
|
|
void (*callback)(struct virtqueue *vq),
|
|
|
|
const char *name);
|
2007-10-22 05:03:40 +04:00
|
|
|
void vring_del_virtqueue(struct virtqueue *vq);
|
2008-07-25 21:06:13 +04:00
|
|
|
/* Filter out transport-specific feature bits. */
|
|
|
|
void vring_transport_features(struct virtio_device *vdev);
|
2007-10-22 05:03:40 +04:00
|
|
|
|
|
|
|
irqreturn_t vring_interrupt(int irq, void *_vq);
|
|
|
|
#endif /* _LINUX_VIRTIO_RING_H */
|