vring_virtqueue
static void virtqueue_disable_cb_split(struct vring_virtqueue *vq)
static unsigned int virtqueue_enable_cb_prepare_split(struct vring_virtqueue *vq)
static bool virtqueue_enable_cb_delayed_split(struct vring_virtqueue *vq)
static void *virtqueue_detach_unused_buf_split(struct vring_virtqueue *vq)
struct vring_virtqueue *vq)
static void virtqueue_reset_split(struct vring_virtqueue *vq)
static void virtqueue_vring_attach_split(struct vring_virtqueue *vq,
struct vring_virtqueue *vq;
static int virtqueue_resize_split(struct vring_virtqueue *vq, u32 num)
static void vring_unmap_extra_packed(const struct vring_virtqueue *vq,
static int virtqueue_add_indirect_packed(struct vring_virtqueue *vq,
static inline int virtqueue_add_packed(struct vring_virtqueue *vq,
struct vring_virtqueue;
int (*add)(struct vring_virtqueue *vq, struct scatterlist *sgs[],
static inline int virtqueue_add_packed_in_order(struct vring_virtqueue *vq,
void *(*get)(struct vring_virtqueue *vq, unsigned int *len, void **ctx);
bool (*kick_prepare)(struct vring_virtqueue *vq);
void (*disable_cb)(struct vring_virtqueue *vq);
bool (*enable_cb_delayed)(struct vring_virtqueue *vq);
unsigned int (*enable_cb_prepare)(struct vring_virtqueue *vq);
bool (*poll)(const struct vring_virtqueue *vq,
void *(*detach_unused_buf)(struct vring_virtqueue *vq);
bool (*more_used)(const struct vring_virtqueue *vq);
int (*resize)(struct vring_virtqueue *vq, u32 num);
void (*reset)(struct vring_virtqueue *vq);
static bool virtqueue_kick_prepare_packed(struct vring_virtqueue *vq)
static void detach_buf_packed_in_order(struct vring_virtqueue *vq,
static void detach_buf_packed(struct vring_virtqueue *vq,
static inline bool is_used_desc_packed(const struct vring_virtqueue *vq,
static bool virtqueue_poll_packed(const struct vring_virtqueue *vq,
static bool more_used_packed(const struct vring_virtqueue *vq)
static void update_last_used_idx_packed(struct vring_virtqueue *vq,
static bool more_used_packed_in_order(const struct vring_virtqueue *vq)
static void *virtqueue_get_buf_ctx_packed_in_order(struct vring_virtqueue *vq,
static void *virtqueue_get_buf_ctx_packed(struct vring_virtqueue *vq,
static void virtqueue_disable_cb_packed(struct vring_virtqueue *vq)
static unsigned int virtqueue_enable_cb_prepare_packed(struct vring_virtqueue *vq)
static bool virtqueue_enable_cb_delayed_packed(struct vring_virtqueue *vq)
static void *virtqueue_detach_unused_buf_packed(struct vring_virtqueue *vq)
static void virtqueue_vring_attach_packed(struct vring_virtqueue *vq,
static void virtqueue_reset_packed(struct vring_virtqueue *vq)
struct vring_virtqueue *vq;
static int virtqueue_resize_packed(struct vring_virtqueue *vq, u32 num)
struct vring_virtqueue *vq = to_vvq(_vq);
struct vring_virtqueue *vq = to_vvq(_vq);
struct vring_virtqueue *vq = to_vvq(_vq);
#define to_vvq(_vq) container_of_const(_vq, struct vring_virtqueue, vq)
static inline bool virtqueue_is_packed(const struct vring_virtqueue *vq)
static inline bool virtqueue_is_in_order(const struct vring_virtqueue *vq)
static bool virtqueue_use_indirect(const struct vring_virtqueue *vq,
struct vring_virtqueue *vq = to_vvq(_vq);
struct vring_virtqueue *vq = to_vvq(_vq);
struct vring_virtqueue *vq = to_vvq(_vq);
struct vring_virtqueue *vq = to_vvq(_vq);
struct vring_virtqueue *vq = to_vvq(_vq);
struct vring_virtqueue *vq = to_vvq(_vq);
struct vring_virtqueue *vq = to_vvq(_vq);
struct vring_virtqueue *vq = to_vvq(_vq);
struct vring_virtqueue *vq = to_vvq(_vq);
static inline bool more_used(const struct vring_virtqueue *vq)
struct vring_virtqueue *vq = to_vvq(_vq);
struct vring_virtqueue *vq = to_vvq(_vq);
struct vring_virtqueue *vq = to_vvq(_vq);
struct vring_virtqueue *vq = to_vvq(_vq);
struct vring_virtqueue *vq = to_vvq(_vq);
struct vring_virtqueue *vq = to_vvq(_vq);
static bool vring_need_unmap_buffer(const struct vring_virtqueue *vring,
const struct vring_virtqueue *vq = to_vvq(_vq);
struct vring_virtqueue *vq = to_vvq(_vq);
struct vring_virtqueue *vq = to_vvq(_vq);
const struct vring_virtqueue *vq = to_vvq(_vq);
struct vring_virtqueue *vq = to_vvq(_vq);
struct vring_virtqueue *vq = to_vvq(_vq);
const struct vring_virtqueue *vq = to_vvq(_vq);
const struct vring_virtqueue *vq = to_vvq(_vq);
const struct vring_virtqueue *vq = to_vvq(_vq);
const struct vring_virtqueue *vq = to_vvq(_vq);
const struct vring_virtqueue *vq = to_vvq(_vq);
const struct vring_virtqueue *vq = to_vvq(_vq);
const struct vring_virtqueue *vq = to_vvq(_vq);
const struct vring_virtqueue *vq = to_vvq(_vq);
const struct vring_virtqueue *vq = to_vvq(_vq);
const struct vring_virtqueue *vq = to_vvq(_vq);
const struct vring_virtqueue *vq = to_vvq(_vq);
static struct device *vring_dma_dev(const struct vring_virtqueue *vq)
static int vring_mapping_error(const struct vring_virtqueue *vq,
static int vring_map_one_sg(const struct vring_virtqueue *vq, struct scatterlist *sg,
static dma_addr_t vring_map_single(const struct vring_virtqueue *vq,
static void virtqueue_init(struct vring_virtqueue *vq, u32 num)
static unsigned int vring_unmap_one_split(const struct vring_virtqueue *vq,
static struct vring_desc *alloc_indirect_split(struct vring_virtqueue *vq,
static inline unsigned int virtqueue_add_desc_split(struct vring_virtqueue *vq,
static inline int virtqueue_add_split(struct vring_virtqueue *vq,
static bool virtqueue_kick_prepare_split(struct vring_virtqueue *vq)
static void detach_indirect_split(struct vring_virtqueue *vq,
static unsigned detach_buf_split_in_order(struct vring_virtqueue *vq,
static void detach_buf_split(struct vring_virtqueue *vq, unsigned int head,
static bool virtqueue_poll_split(const struct vring_virtqueue *vq,
static bool more_used_split(const struct vring_virtqueue *vq)
static bool more_used_split_in_order(const struct vring_virtqueue *vq)
static void *virtqueue_get_buf_ctx_split(struct vring_virtqueue *vq,
static void *virtqueue_get_buf_ctx_split_in_order(struct vring_virtqueue *vq,