Lines Matching defs:wr

104 		      struct ibv_send_wr *wr, int max, u32 *plenp)
112 for (i = 0; i < wr->num_sge; i++) {
113 if ((plen + wr->sg_list[i].length) > max)
115 srcp = (u8 *)(unsigned long)wr->sg_list[i].addr;
116 plen += wr->sg_list[i].length;
117 len = wr->sg_list[i].length;
159 struct ibv_send_wr *wr, u8 *len16)
165 if (wr->num_sge > T4_MAX_SEND_SGE)
167 if (wr->send_flags & IBV_SEND_SOLICITED)
178 if (wr->num_sge) {
179 if (wr->send_flags & IBV_SEND_INLINE) {
180 ret = build_immd(sq, wqe->send.u.immd_src, wr,
188 wr->sg_list, wr->num_sge, &plen);
192 wr->num_sge * sizeof (struct fw_ri_sge);
208 struct ibv_send_wr *wr, u8 *len16)
214 if (wr->num_sge > T4_MAX_SEND_SGE)
217 wqe->write.stag_sink = htobe32(wr->wr.rdma.rkey);
218 wqe->write.to_sink = htobe64(wr->wr.rdma.remote_addr);
219 if (wr->num_sge) {
220 if (wr->send_flags & IBV_SEND_INLINE) {
221 ret = build_immd(sq, wqe->write.u.immd_src, wr,
229 wr->sg_list, wr->num_sge, &plen);
233 wr->num_sge * sizeof (struct fw_ri_sge);
248 static int build_rdma_read(union t4_wr *wqe, struct ibv_send_wr *wr, u8 *len16)
250 if (wr->num_sge > 1)
252 if (wr->num_sge) {
253 wqe->read.stag_src = htobe32(wr->wr.rdma.rkey);
254 wqe->read.to_src_hi = htobe32((u32)(wr->wr.rdma.remote_addr >>32));
255 wqe->read.to_src_lo = htobe32((u32)wr->wr.rdma.remote_addr);
256 wqe->read.stag_sink = htobe32(wr->sg_list[0].lkey);
257 wqe->read.plen = htobe32(wr->sg_list[0].length);
258 wqe->read.to_sink_hi = htobe32((u32)(wr->sg_list[0].addr >> 32));
259 wqe->read.to_sink_lo = htobe32((u32)(wr->sg_list[0].addr));
276 struct ibv_recv_wr *wr, u8 *len16)
280 ret = build_isgl(&wqe->recv.isgl, wr->sg_list, wr->num_sge, NULL);
284 wr->num_sge * sizeof(struct fw_ri_sge), 16);
309 int c4iw_post_send(struct ibv_qp *ibqp, struct ibv_send_wr *wr,
326 *bad_wr = wr;
332 *bad_wr = wr;
335 while (wr) {
338 *bad_wr = wr;
344 if (wr->send_flags & IBV_SEND_SOLICITED)
346 if (wr->send_flags & IBV_SEND_SIGNALED || qhp->sq_sig_all)
349 switch (wr->opcode) {
352 if (wr->send_flags & IBV_SEND_FENCE)
356 err = build_rdma_send(&qhp->wq.sq, wqe, wr, &len16);
362 err = build_rdma_write(&qhp->wq.sq, wqe, wr, &len16);
369 err = build_rdma_read(wqe, wr, &len16);
372 swsqe->read_len = wr->sg_list ? wr->sg_list[0].length :
379 wr->opcode);
383 *bad_wr = wr;
388 swsqe->signaled = (wr->send_flags & IBV_SEND_SIGNALED) ||
391 swsqe->wr_id = wr->wr_id;
395 __func__, (unsigned long long)wr->wr_id, qhp->wq.sq.pidx,
397 wr = wr->next;
417 int c4iw_post_receive(struct ibv_qp *ibqp, struct ibv_recv_wr *wr,
431 *bad_wr = wr;
438 *bad_wr = wr;
441 while (wr) {
442 if (wr->num_sge > T4_MAX_RECV_SGE) {
444 *bad_wr = wr;
449 err = build_rdma_recv(qhp, wqe, wr, &len16);
453 *bad_wr = wr;
457 qhp->wq.rq.sw_rq[qhp->wq.rq.pidx].wr_id = wr->wr_id;
467 (unsigned long long) wr->wr_id, qhp->wq.rq.pidx);
471 wr = wr->next;