Lines Matching refs:rq
60 return qp->buf.buf + qp->rq.offset + (n << qp->rq.wqe_shift);
87 qp->rq.head = 0;
88 qp->rq.tail = 0;
455 pthread_spin_lock(&qp->rq.lock);
459 ind = qp->rq.head & (qp->rq.wqe_cnt - 1);
462 if (wq_overflow(&qp->rq, nreq, to_mcq(qp->ibv_qp.recv_cq))) {
468 if (wr->num_sge > qp->rq.max_gs) {
479 if (i < qp->rq.max_gs) {
485 qp->rq.wrid[ind] = wr->wr_id;
487 ind = (ind + 1) & (qp->rq.wqe_cnt - 1);
492 qp->rq.head += nreq;
500 *qp->db = htonl(qp->rq.head & 0xffff);
503 pthread_spin_unlock(&qp->rq.lock);
589 qp->rq.max_gs = cap->max_recv_sge;
595 if (qp->rq.wqe_cnt) {
596 qp->rq.wrid = malloc(qp->rq.wqe_cnt * sizeof (uint64_t));
597 if (!qp->rq.wrid) {
603 for (qp->rq.wqe_shift = 4;
604 1 << qp->rq.wqe_shift < qp->rq.max_gs * sizeof (struct mlx4_wqe_data_seg);
605 qp->rq.wqe_shift++)
608 qp->buf_size = (qp->rq.wqe_cnt << qp->rq.wqe_shift) +
610 if (qp->rq.wqe_shift > qp->sq.wqe_shift) {
611 qp->rq.offset = 0;
612 qp->sq.offset = qp->rq.wqe_cnt << qp->rq.wqe_shift;
614 qp->rq.offset = qp->sq.wqe_cnt << qp->sq.wqe_shift;
622 free(qp->rq.wrid);