Lines Matching refs:ring
88 struct vring *ring = &dev->ring[r]; in virtio_mmio_irq() local
89 …ring %u: used flags 0x%hx idx 0x%hx last_used %u\n", r, ring->used->flags, ring->used->idx, ring->… in virtio_mmio_irq()
91 uint cur_idx = ring->used->idx; in virtio_mmio_irq()
92 … for (uint i = ring->last_used; i != (cur_idx & ring->num_mask); i = (i + 1) & ring->num_mask) { in virtio_mmio_irq()
96 struct vring_used_elem *used_elem = &ring->used->ring[i]; in virtio_mmio_irq()
102 ring->last_used = (ring->last_used + 1) & ring->num_mask; in virtio_mmio_irq()
238 …LTRACEF("dev %p ring %u index %u free_count %u\n", dev, ring_index, desc_index, dev->ring[ring_ind… in virtio_free_desc()
239 dev->ring[ring_index].desc[desc_index].next = dev->ring[ring_index].free_list; in virtio_free_desc()
240 dev->ring[ring_index].free_list = desc_index; in virtio_free_desc()
241 dev->ring[ring_index].free_count++; in virtio_free_desc()
245 if (dev->ring[ring_index].free_count == 0) in virtio_alloc_desc()
248 DEBUG_ASSERT(dev->ring[ring_index].free_list != 0xffff); in virtio_alloc_desc()
250 uint16_t i = dev->ring[ring_index].free_list; in virtio_alloc_desc()
251 struct vring_desc *desc = &dev->ring[ring_index].desc[i]; in virtio_alloc_desc()
252 dev->ring[ring_index].free_list = desc->next; in virtio_alloc_desc()
254 dev->ring[ring_index].free_count--; in virtio_alloc_desc()
260 if (dev->ring[ring_index].free_count < count) in virtio_alloc_desc_chain()
267 uint16_t i = dev->ring[ring_index].free_list; in virtio_alloc_desc_chain()
268 struct vring_desc *desc = &dev->ring[ring_index].desc[i]; in virtio_alloc_desc_chain()
270 dev->ring[ring_index].free_list = desc->next; in virtio_alloc_desc_chain()
271 dev->ring[ring_index].free_count--; in virtio_alloc_desc_chain()
296 struct vring_avail *avail = dev->ring[ring_index].avail; in virtio_submit_chain()
298 avail->ring[avail->idx & dev->ring[ring_index].num_mask] = desc_index; in virtio_submit_chain()
324 struct vring *ring = &dev->ring[index]; in virtio_alloc_ring() local
359 vring_init(ring, len, vptr, PAGE_SIZE); in virtio_alloc_ring()
360 dev->ring[index].free_list = 0xffff; in virtio_alloc_ring()
361 dev->ring[index].free_count = 0; in virtio_alloc_ring()