]> git.openfabrics.org - ~shefty/libibverbs.git/commitdiff
Pass driver data through ibv_cmd_req_notify_cq()
authorSteve Wise <swise@opengridcomputing.com>
Fri, 6 Oct 2006 22:29:34 +0000 (17:29 -0500)
committerRoland Dreier <rolandd@cisco.com>
Fri, 17 Nov 2006 00:15:18 +0000 (16:15 -0800)
The Chelsio iWARP driver library needs to pass information to the
kernel device-specific driver for re-arming the CQ.

Signed-off-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
include/infiniband/driver.h
src/cmd.c

index 77e1ff5bb32eb9010e6d0f6d43f1f801c885bba7..f759d526aaf719996e290251f32c335b645ef8fa 100644 (file)
@@ -93,7 +93,10 @@ int ibv_cmd_create_cq(struct ibv_context *context, int cqe,
                      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,
index b2676031d4adcf8c3b2b5109532296ddba63e08a..f549f422dc2641a219f1dc9f0cbdb7c1e77e89e6 100644 (file)
--- a/src/cmd.c
+++ b/src/cmd.c
@@ -370,15 +370,15 @@ out:
        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;