struct ibv_create_cq *cmd, size_t cmd_size,
struct ibv_create_cq_resp *resp, size_t resp_size);
int ibv_cmd_poll_cq(struct ibv_cq *cq, int ne, struct ibv_wc *wc);
-int ibv_cmd_req_notify_cq(struct ibv_cq *cq, int solicited_only);
+#define IBV_CMD_REQ_NOTIFY_HAS_CMD_PARAMS
+int ibv_cmd_req_notify_cq(struct ibv_cq *cq, int solicited_only,
+ struct ibv_req_notify_cq *cmd, size_t cmd_size);
+
#define IBV_CMD_RESIZE_CQ_HAS_RESP_PARAMS
int ibv_cmd_resize_cq(struct ibv_cq *cq, int cqe,
struct ibv_resize_cq *cmd, size_t cmd_size,
return ret;
}
-int ibv_cmd_req_notify_cq(struct ibv_cq *ibcq, int solicited_only)
+int ibv_cmd_req_notify_cq(struct ibv_cq *ibcq, int solicited_only,
+ struct ibv_req_notify_cq *cmd, size_t cmd_size)
{
- struct ibv_req_notify_cq cmd;
- IBV_INIT_CMD(&cmd, sizeof cmd, REQ_NOTIFY_CQ);
- cmd.cq_handle = ibcq->handle;
- cmd.solicited = !!solicited_only;
+ IBV_INIT_CMD(cmd, cmd_size, REQ_NOTIFY_CQ);
+ cmd->cq_handle = ibcq->handle;
+ cmd->solicited = !!solicited_only;
- if (write(ibcq->context->cmd_fd, &cmd, sizeof cmd) != sizeof cmd)
+ if (write(ibcq->context->cmd_fd, cmd, cmd_size) != cmd_size)
return errno;
return 0;