Lines Matching full:wc
158 static inline void handle_good_req(struct ibv_wc *wc, struct mlx4_cqe *cqe) in handle_good_req() argument
160 wc->wc_flags = 0; in handle_good_req()
163 wc->wc_flags |= IBV_WC_WITH_IMM; in handle_good_req()
166 wc->opcode = IBV_WC_RDMA_WRITE; in handle_good_req()
169 wc->wc_flags |= IBV_WC_WITH_IMM; in handle_good_req()
173 wc->opcode = IBV_WC_SEND; in handle_good_req()
176 wc->opcode = IBV_WC_RDMA_READ; in handle_good_req()
177 wc->byte_len = be32toh(cqe->byte_cnt); in handle_good_req()
180 wc->opcode = IBV_WC_COMP_SWAP; in handle_good_req()
181 wc->byte_len = 8; in handle_good_req()
184 wc->opcode = IBV_WC_FETCH_ADD; in handle_good_req()
185 wc->byte_len = 8; in handle_good_req()
188 wc->opcode = IBV_WC_LOCAL_INV; in handle_good_req()
191 wc->opcode = IBV_WC_BIND_MW; in handle_good_req()
195 wc->opcode = IBV_WC_SEND; in handle_good_req()
233 struct ibv_wc *wc, int lazy)
238 struct ibv_wc *wc, int lazy) in mlx4_parse_cqe() argument
258 wc->qp_num = qpn; in mlx4_parse_cqe()
288 pwr_id = lazy ? &cq->ibv_cq.wr_id : &wc->wr_id; in mlx4_parse_cqe()
305 pstatus = lazy ? &cq->ibv_cq.status : &wc->status; in mlx4_parse_cqe()
310 wc->vendor_err = ecqe->vendor_err; in mlx4_parse_cqe()
320 handle_good_req(wc, cqe); in mlx4_parse_cqe()
322 wc->byte_len = be32toh(cqe->byte_cnt); in mlx4_parse_cqe()
326 wc->opcode = IBV_WC_RECV_RDMA_WITH_IMM; in mlx4_parse_cqe()
327 wc->wc_flags = IBV_WC_WITH_IMM; in mlx4_parse_cqe()
328 wc->imm_data = cqe->immed_rss_invalid; in mlx4_parse_cqe()
331 wc->opcode = IBV_WC_RECV; in mlx4_parse_cqe()
332 wc->wc_flags |= IBV_WC_WITH_INV; in mlx4_parse_cqe()
333 wc->imm_data = be32toh(cqe->immed_rss_invalid); in mlx4_parse_cqe()
336 wc->opcode = IBV_WC_RECV; in mlx4_parse_cqe()
337 wc->wc_flags = 0; in mlx4_parse_cqe()
340 wc->opcode = IBV_WC_RECV; in mlx4_parse_cqe()
341 wc->wc_flags = IBV_WC_WITH_IMM; in mlx4_parse_cqe()
342 wc->imm_data = cqe->immed_rss_invalid; in mlx4_parse_cqe()
346 wc->slid = be16toh(cqe->rlid); in mlx4_parse_cqe()
348 wc->src_qp = g_mlpath_rqpn & 0xffffff; in mlx4_parse_cqe()
349 wc->dlid_path_bits = (g_mlpath_rqpn >> 24) & 0x7f; in mlx4_parse_cqe()
350 wc->wc_flags |= g_mlpath_rqpn & 0x80000000 ? IBV_WC_GRH : 0; in mlx4_parse_cqe()
351 wc->pkey_index = be32toh(cqe->immed_rss_invalid) & 0x7f; in mlx4_parse_cqe()
356 wc->sl = be16toh(cqe->sl_vid) >> 13; in mlx4_parse_cqe()
358 wc->sl = be16toh(cqe->sl_vid) >> 12; in mlx4_parse_cqe()
361 wc->wc_flags |= ((cqe->status & htobe32(MLX4_CQE_STATUS_IPV4_CSUM_OK)) == in mlx4_parse_cqe()
381 struct ibv_wc *wc)
385 struct ibv_wc *wc) in mlx4_poll_one() argument
394 return mlx4_parse_cqe(cq, cqe, cur_qp, wc, 0); in mlx4_poll_one()
397 int mlx4_poll_cq(struct ibv_cq *ibcq, int ne, struct ibv_wc *wc) in mlx4_poll_cq() argument
407 err = mlx4_poll_one(cq, &qp, wc + npolled); in mlx4_poll_cq()