• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6/drivers/virtio/

Lines Matching refs:vring

77 	struct vring vring;
148 vq->vring.desc[head].flags = VRING_DESC_F_INDIRECT;
149 vq->vring.desc[head].addr = virt_to_phys(desc);
150 vq->vring.desc[head].len = i * sizeof(struct vring_desc);
153 vq->free_head = vq->vring.desc[head].next;
179 BUG_ON(out + in > vq->vring.num);
195 for (i = vq->free_head; out; i = vq->vring.desc[i].next, out--) {
196 vq->vring.desc[i].flags = VRING_DESC_F_NEXT;
197 vq->vring.desc[i].addr = sg_phys(sg);
198 vq->vring.desc[i].len = sg->length;
202 for (; in; i = vq->vring.desc[i].next, in--) {
203 vq->vring.desc[i].flags = VRING_DESC_F_NEXT|VRING_DESC_F_WRITE;
204 vq->vring.desc[i].addr = sg_phys(sg);
205 vq->vring.desc[i].len = sg->length;
210 vq->vring.desc[prev].flags &= ~VRING_DESC_F_NEXT;
219 avail = (vq->vring.avail->idx + vq->num_added++) % vq->vring.num;
220 vq->vring.avail->ring[avail] = head;
227 return vq->num_free ? vq->vring.num : 0;
240 vq->vring.avail->idx += vq->num_added;
246 if (!(vq->vring.used->flags & VRING_USED_F_NO_NOTIFY))
265 if (vq->vring.desc[i].flags & VRING_DESC_F_INDIRECT)
266 kfree(phys_to_virt(vq->vring.desc[i].addr));
268 while (vq->vring.desc[i].flags & VRING_DESC_F_NEXT) {
269 i = vq->vring.desc[i].next;
273 vq->vring.desc[i].next = vq->free_head;
281 return vq->last_used_idx != vq->vring.used->idx;
306 i = vq->vring.used->ring[vq->last_used_idx%vq->vring.num].id;
307 *len = vq->vring.used->ring[vq->last_used_idx%vq->vring.num].len;
309 if (unlikely(i >= vq->vring.num)) {
331 vq->vring.avail->flags |= VRING_AVAIL_F_NO_INTERRUPT;
343 vq->vring.avail->flags &= ~VRING_AVAIL_F_NO_INTERRUPT;
363 for (i = 0; i < vq->vring.num; i++) {
373 BUG_ON(vq->num_free != vq->vring.num);
421 vring_init(&vq->vring, num, pages, vring_align);
438 vq->vring.avail->flags |= VRING_AVAIL_F_NO_INTERRUPT;
444 vq->vring.desc[i].next = i+1;