vring_desc
static struct vring_desc *
struct vring_desc *desc, u32 len)
struct vring_desc *desc)
struct vring_desc *desc_head;
struct vring_desc *desc, bool is_rx)
static struct vring_desc *
struct vring_desc *desc;
struct vring_desc *desc)
struct vring_desc *desc;
struct vring_desc *desc,
struct vring_desc **desc,
struct vring_desc *desc;
struct vring_desc *desc;
struct vring_desc *desc_head;
struct vring_desc drop_desc;
(struct vring_desc *)(uintptr_t)cvq->desc_addr,
struct vring_desc *desc = (struct vring_desc *)
struct vring_desc *desc, int idx)
static unsigned next_desc(struct vhost_virtqueue *vq, struct vring_desc *desc)
struct vring_desc *indirect)
struct vring_desc desc;
struct vring_desc desc;
struct vring_desc *desc,
struct vring_desc *desc,
const struct vring_desc *desc,
struct vring_desc **descs, int *desc_max)
if (unlikely(len % sizeof(struct vring_desc))) {
*desc_max = len / sizeof(struct vring_desc);
struct vring_desc **descs, int *desc_max)
size_t part, len = sizeof(struct vring_desc);
struct vring_desc desc, *descs;
vrh->vring.desc = (__force struct vring_desc *)desc;
struct vring_desc *desc,
static struct vring_desc *alloc_indirect_split(struct vring_virtqueue *vq,
struct vring_desc *desc;
struct vring_desc *desc,
struct vring_desc *desc;
vq, desc, total_sg * sizeof(struct vring_desc),
total_sg * sizeof(struct vring_desc),
struct vring_desc *indir_desc = vq->split.desc_state[head].indir_desc;
struct vring_desc *indir_desc;
BUG_ON(len == 0 || len % sizeof(struct vring_desc));
num = len / sizeof(struct vring_desc);
struct vring_desc *desc,
struct vring_desc *desc,
struct vring_desc *desc,
typedef struct vring_desc __attribute__((aligned(VRING_DESC_ALIGN_SIZE)))
vr->avail = (struct vring_avail *)((char *)p + num * sizeof(struct vring_desc));
return ((sizeof(struct vring_desc) * num + sizeof(__virtio16) * (3 + num)
struct vring_desc *desc;
struct vring_desc *desc;
+ RINGSIZE * 6 * sizeof(struct vring_desc);
struct vring_desc *indirects;
struct vring_desc *d = __user_addr_max - USER_MEM/2;