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