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