Lines Matching refs:vq

65 virtio_crypto_send_command(struct virtqueue *vq,  in virtio_crypto_send_command()  argument
97 head = vq->vq_desc_head_idx; in virtio_crypto_send_command()
99 head, vq); in virtio_crypto_send_command()
101 if (vq->vq_free_cnt < needed) { in virtio_crypto_send_command()
200 vq->vq_ring.desc[head].addr = phys_addr_started + desc_offset; in virtio_crypto_send_command()
201 vq->vq_ring.desc[head].len = idx * sizeof(struct vring_desc); in virtio_crypto_send_command()
202 vq->vq_ring.desc[head].flags = VRING_DESC_F_INDIRECT; in virtio_crypto_send_command()
203 vq->vq_free_cnt--; in virtio_crypto_send_command()
205 vq->vq_desc_head_idx = vq->vq_ring.desc[head].next; in virtio_crypto_send_command()
207 vq_update_avail_ring(vq, head); in virtio_crypto_send_command()
208 vq_update_avail_idx(vq); in virtio_crypto_send_command()
211 vq->vq_queue_index); in virtio_crypto_send_command()
213 virtqueue_notify(vq); in virtio_crypto_send_command()
216 while (vq->vq_used_cons_idx == vq->vq_ring.used->idx) { in virtio_crypto_send_command()
221 while (vq->vq_used_cons_idx != vq->vq_ring.used->idx) { in virtio_crypto_send_command()
225 used_idx = (uint32_t)(vq->vq_used_cons_idx in virtio_crypto_send_command()
226 & (vq->vq_nentries - 1)); in virtio_crypto_send_command()
227 uep = &vq->vq_ring.used->ring[used_idx]; in virtio_crypto_send_command()
231 while (vq->vq_ring.desc[desc_idx].flags & VRING_DESC_F_NEXT) { in virtio_crypto_send_command()
232 desc_idx = vq->vq_ring.desc[desc_idx].next; in virtio_crypto_send_command()
233 vq->vq_free_cnt++; in virtio_crypto_send_command()
236 vq->vq_ring.desc[desc_idx].next = vq->vq_desc_head_idx; in virtio_crypto_send_command()
237 vq->vq_desc_head_idx = idx; in virtio_crypto_send_command()
239 vq->vq_used_cons_idx++; in virtio_crypto_send_command()
240 vq->vq_free_cnt++; in virtio_crypto_send_command()
245 vq->vq_free_cnt, vq->vq_desc_head_idx); in virtio_crypto_send_command()
267 virtio_crypto_queue_release(struct virtqueue *vq) in virtio_crypto_queue_release() argument
273 if (vq) { in virtio_crypto_queue_release()
274 hw = vq->hw; in virtio_crypto_queue_release()
276 VTPCI_OPS(hw)->del_queue(hw, vq); in virtio_crypto_queue_release()
278 rte_memzone_free(vq->mz); in virtio_crypto_queue_release()
279 rte_mempool_free(vq->mpool); in virtio_crypto_queue_release()
280 rte_free(vq); in virtio_crypto_queue_release()
299 struct virtqueue *vq = NULL; in virtio_crypto_queue_setup() local
336 size = RTE_ALIGN_CEIL(sizeof(*vq) + in virtio_crypto_queue_setup()
339 vq = rte_zmalloc_socket(vq_name, size, RTE_CACHE_LINE_SIZE, in virtio_crypto_queue_setup()
341 if (vq == NULL) { in virtio_crypto_queue_setup()
350 vq->mpool = rte_mempool_lookup(mpool_name); in virtio_crypto_queue_setup()
351 if (vq->mpool == NULL) in virtio_crypto_queue_setup()
352 vq->mpool = rte_mempool_create(mpool_name, in virtio_crypto_queue_setup()
358 if (!vq->mpool) { in virtio_crypto_queue_setup()
364 vq->vq_descx[i].cookie = in virtio_crypto_queue_setup()
368 if (vq->vq_descx[i].cookie == NULL) { in virtio_crypto_queue_setup()
376 vq->hw = hw; in virtio_crypto_queue_setup()
377 vq->dev_id = dev->data->dev_id; in virtio_crypto_queue_setup()
378 vq->vq_queue_index = vtpci_queue_idx; in virtio_crypto_queue_setup()
379 vq->vq_nentries = vq_size; in virtio_crypto_queue_setup()
387 vq->vq_free_cnt = nb_desc; in virtio_crypto_queue_setup()
393 vq->vq_ring_size = RTE_ALIGN_CEIL(size, VIRTIO_PCI_VRING_ALIGN); in virtio_crypto_queue_setup()
396 size, vq->vq_ring_size); in virtio_crypto_queue_setup()
398 mz = rte_memzone_reserve_aligned(vq_name, vq->vq_ring_size, in virtio_crypto_queue_setup()
414 if ((mz->iova + vq->vq_ring_size - 1) in virtio_crypto_queue_setup()
422 vq->mz = mz; in virtio_crypto_queue_setup()
423 vq->vq_ring_mem = mz->iova; in virtio_crypto_queue_setup()
424 vq->vq_ring_virt_mem = mz->addr; in virtio_crypto_queue_setup()
430 *pvq = vq; in virtio_crypto_queue_setup()
438 rte_mempool_free(vq->mpool); in virtio_crypto_queue_setup()
441 rte_free(vq->vq_descx[j].cookie); in virtio_crypto_queue_setup()
444 rte_free(vq); in virtio_crypto_queue_setup()
452 struct virtqueue *vq; in virtio_crypto_ctrlq_setup() local
462 0, SOCKET_ID_ANY, &vq); in virtio_crypto_ctrlq_setup()
468 hw->cvq = vq; in virtio_crypto_ctrlq_setup()
583 struct virtqueue *vq; in virtio_crypto_qp_setup() local
592 qp_conf->nb_descriptors, socket_id, &vq); in virtio_crypto_qp_setup()
599 dev->data->queue_pairs[queue_pair_id] = vq; in virtio_crypto_qp_setup()
607 struct virtqueue *vq in virtio_crypto_qp_release() local
612 if (vq == NULL) { in virtio_crypto_qp_release()
617 virtio_crypto_queue_release(vq); in virtio_crypto_qp_release()
935 struct virtqueue *vq; in virtio_crypto_sym_clear_session() local
954 vq = hw->cvq; in virtio_crypto_sym_clear_session()
963 "vq = %p", vq->vq_desc_head_idx, vq); in virtio_crypto_sym_clear_session()
965 if (vq->vq_free_cnt < needed) { in virtio_crypto_sym_clear_session()
968 "not enough", vq->vq_free_cnt, needed); in virtio_crypto_sym_clear_session()
1013 head = vq->vq_desc_head_idx; in virtio_crypto_sym_clear_session()
1014 vq->vq_ring.desc[head].flags = VRING_DESC_F_INDIRECT; in virtio_crypto_sym_clear_session()
1015 vq->vq_ring.desc[head].addr = malloc_phys_addr + desc_offset; in virtio_crypto_sym_clear_session()
1016 vq->vq_ring.desc[head].len in virtio_crypto_sym_clear_session()
1019 vq->vq_free_cnt -= needed; in virtio_crypto_sym_clear_session()
1021 vq->vq_desc_head_idx = vq->vq_ring.desc[head].next; in virtio_crypto_sym_clear_session()
1023 vq_update_avail_ring(vq, head); in virtio_crypto_sym_clear_session()
1024 vq_update_avail_idx(vq); in virtio_crypto_sym_clear_session()
1027 vq->vq_queue_index); in virtio_crypto_sym_clear_session()
1029 virtqueue_notify(vq); in virtio_crypto_sym_clear_session()
1032 while (vq->vq_used_cons_idx == vq->vq_ring.used->idx) { in virtio_crypto_sym_clear_session()
1037 while (vq->vq_used_cons_idx != vq->vq_ring.used->idx) { in virtio_crypto_sym_clear_session()
1041 used_idx = (uint32_t)(vq->vq_used_cons_idx in virtio_crypto_sym_clear_session()
1042 & (vq->vq_nentries - 1)); in virtio_crypto_sym_clear_session()
1043 uep = &vq->vq_ring.used->ring[used_idx]; in virtio_crypto_sym_clear_session()
1046 while (vq->vq_ring.desc[desc_idx].flags in virtio_crypto_sym_clear_session()
1048 desc_idx = vq->vq_ring.desc[desc_idx].next; in virtio_crypto_sym_clear_session()
1049 vq->vq_free_cnt++; in virtio_crypto_sym_clear_session()
1052 vq->vq_ring.desc[desc_idx].next = vq->vq_desc_head_idx; in virtio_crypto_sym_clear_session()
1053 vq->vq_desc_head_idx = idx; in virtio_crypto_sym_clear_session()
1054 vq->vq_used_cons_idx++; in virtio_crypto_sym_clear_session()
1055 vq->vq_free_cnt++; in virtio_crypto_sym_clear_session()
1068 vq->vq_free_cnt, vq->vq_desc_head_idx); in virtio_crypto_sym_clear_session()