Lines Matching refs:ring
22 struct vring ring; variable
76 vring_init(&ring, ring_size, p, 0x1000); in alloc_ring()
86 ring.desc[i].next = i + 1; in alloc_ring()
117 desc = ring.desc; in add_inbuf()
136 ring.avail->ring[avail & (ring_size - 1)] = in add_inbuf()
143 ring.avail->ring[avail] = head; in add_inbuf()
148 ring.avail->idx = guest.avail_idx; in add_inbuf()
160 index = ring.used->ring[head].id; in get_buf()
167 if (ring.used->idx == guest.last_used_idx) in get_buf()
176 index = ring.used->ring[head].id; in get_buf()
181 *lenp = ring.desc[index].len; in get_buf()
183 *lenp = ring.used->ring[head].len; in get_buf()
186 *bufp = (void*)(unsigned long)ring.desc[index].addr; in get_buf()
189 ring.desc[index].next = guest.free_head; in get_buf()
202 unsigned index = ring.used->ring[head].id; in used_empty()
206 return ring.used->idx == last_used_idx; in used_empty()
219 vring_used_event(&ring) = guest.last_used_idx; in enable_call()
233 need = vring_need_event(vring_avail_event(&ring), in kick_available()
252 vring_avail_event(&ring) = host.used_idx; in enable_kick()
262 unsigned index = ring.avail->ring[head & (ring_size - 1)]; in avail_empty()
266 return head == ring.avail->idx; in avail_empty()
277 head = ring.avail->ring[used_idx & (ring_size - 1)]; in use_buf()
284 desc = &ring.desc[head & (ring_size - 1)]; in use_buf()
286 if (used_idx == ring.avail->idx) in use_buf()
296 head = ring.avail->ring[used_idx]; in use_buf()
298 desc = &ring.desc[head]; in use_buf()
308 ring.used->ring[used_idx].id = head; in use_buf()
309 ring.used->ring[used_idx].len = desc->len - 1; in use_buf()
314 ring.used->idx = host.used_idx; in use_buf()
326 need = vring_need_event(vring_used_event(&ring), in call_used()