Lines Matching refs:pd

81 	struct mlx4_pd		 *pd;
83 pd = malloc(sizeof *pd);
84 if (!pd)
87 if (ibv_cmd_alloc_pd(context, &pd->ibv_pd, &cmd, sizeof cmd,
89 free(pd);
93 pd->pdn = resp.pdn;
95 return &pd->ibv_pd;
98 int mlx4_free_pd(struct ibv_pd *pd)
102 ret = ibv_cmd_dealloc_pd(pd);
106 free(to_mpd(pd));
110 struct ibv_mr *mlx4_reg_mr(struct ibv_pd *pd, void *addr, size_t length,
125 ret = ibv_cmd_reg_mr(pd, addr, length, (uintptr_t) addr,
130 ret = ibv_cmd_reg_mr(pd, addr, length, (uintptr_t) addr, access, mr,
296 struct ibv_srq *mlx4_create_srq(struct ibv_pd *pd,
319 if (mlx4_alloc_srq_buf(pd, &attr->attr, srq))
322 srq->db = mlx4_alloc_db(to_mctx(pd->context), MLX4_DB_TYPE_RQ);
331 ret = ibv_cmd_create_srq(pd, &srq->ibv_srq, attr,
342 mlx4_free_db(to_mctx(pd->context), MLX4_DB_TYPE_RQ, srq->db);
443 struct ibv_qp *mlx4_create_qp(struct ibv_pd *pd, struct ibv_qp_init_attr *attr)
449 struct mlx4_context *context = to_mctx(pd->context);
479 if (mlx4_alloc_qp_buf(pd, &attr->cap, attr->qp_type, qp))
489 qp->db = mlx4_alloc_db(to_mctx(pd->context), MLX4_DB_TYPE_RQ);
509 pthread_mutex_lock(&to_mctx(pd->context)->qp_table_mutex);
511 ret = ibv_cmd_create_qp(pd, &qp->ibv_qp, attr, &cmd.ibv_cmd, sizeof cmd,
516 ret = mlx4_store_qp(to_mctx(pd->context), qp->ibv_qp.qp_num, qp);
519 pthread_mutex_unlock(&to_mctx(pd->context)->qp_table_mutex);
543 pthread_mutex_unlock(&to_mctx(pd->context)->qp_table_mutex);
545 mlx4_free_db(to_mctx(pd->context), MLX4_DB_TYPE_RQ, qp->db);
677 struct ibv_ah *mlx4_create_ah(struct ibv_pd *pd, struct ibv_ah_attr *attr)
689 ah->av.port_pd = htonl(to_mpd(pd)->pdn | (attr->port_num << 24));
707 if (ibv_query_port(pd->context, attr->port_num, &port_attr))
711 if (ibv_resolve_eth_gid(pd, attr->port_num,
743 struct ibv_srq *mlx4_create_xrc_srq(struct ibv_pd *pd,
768 if (mlx4_alloc_srq_buf(pd, &attr->attr, srq))
771 srq->db = mlx4_alloc_db(to_mctx(pd->context), MLX4_DB_TYPE_RQ);
780 ret = ibv_cmd_create_xrc_srq(pd, &srq->ibv_srq, attr,
790 ret = mlx4_store_xrc_srq(to_mctx(pd->context), srq->ibv_srq.xrc_srq_num, srq);
800 mlx4_free_db(to_mctx(pd->context), MLX4_DB_TYPE_RQ, srq->db);