Lines Matching defs:rxq
131 struct vhost_net_buf rxq;
154 static void *vhost_net_buf_get_ptr(struct vhost_net_buf *rxq)
156 if (rxq->tail != rxq->head)
157 return rxq->queue[rxq->head];
162 static int vhost_net_buf_get_size(struct vhost_net_buf *rxq)
164 return rxq->tail - rxq->head;
167 static int vhost_net_buf_is_empty(struct vhost_net_buf *rxq)
169 return rxq->tail == rxq->head;
172 static void *vhost_net_buf_consume(struct vhost_net_buf *rxq)
174 void *ret = vhost_net_buf_get_ptr(rxq);
175 ++rxq->head;
183 struct vhost_net_buf *rxq = &nvq->rxq;
185 rxq->head = 0;
187 rxq->tail = __ptr_ring_consume_batched(nvq->rx_ring, rxq->queue,
190 if (rxq->tail)
191 tun_wake_queue(file, rxq->tail);
194 return rxq->tail;
199 struct vhost_net_buf *rxq = &nvq->rxq;
201 if (nvq->rx_ring && !vhost_net_buf_is_empty(rxq)) {
202 ptr_ring_unconsume(nvq->rx_ring, rxq->queue + rxq->head,
203 vhost_net_buf_get_size(rxq),
205 rxq->head = rxq->tail = 0;
223 struct vhost_net_buf *rxq = &nvq->rxq;
225 if (!vhost_net_buf_is_empty(rxq))
232 return vhost_net_buf_peek_len(vhost_net_buf_get_ptr(rxq));
235 static void vhost_net_buf_init(struct vhost_net_buf *rxq)
237 rxq->head = rxq->tail = 0;
328 vhost_net_buf_init(&n->vqs[i].rxq);
1232 msg.msg_control = vhost_net_buf_consume(&nvq->rxq);
1363 n->vqs[VHOST_NET_VQ_RX].rxq.queue = queue;
1388 vhost_net_buf_init(&n->vqs[i].rxq);
1466 kfree(n->vqs[VHOST_NET_VQ_RX].rxq.queue);