+/* + * Work Queue. QP can be created without internal WQs "packaged" inside it, + * this QP can be configured to use "external" WQ object as its + * receive/send queue. + * WQ associated (many to one) with Completion Queue it owns WQ properties + * (PD, WQ size etc). + * WQ of type IBV_WQT_RQ: + * - Contains receive WQEs, in this case its PD serves as scatter as well. + * - Exposes post receive function to be used to post a list of work + * requests (WRs) to its receive queue. + */ +struct ibv_wq { + struct ibv_context *context; + void *wq_context; + struct ibv_pd *pd; + struct ibv_cq *cq; + uint32_t wq_num; + uint32_t handle; + enum ibv_wq_state state; + enum ibv_wq_type wq_type; + int (*post_recv)(struct ibv_wq *current, + struct ibv_recv_wr *recv_wr, + struct ibv_recv_wr **bad_recv_wr);
What was the reason not to go with the normal ibv_context_ops callout scheme? -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html