<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7226.0">
<TITLE>libibverbs + libmthca changes for query SRQ</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">libibverbs and libmthca changes to handle quering SRQs.  Essentially just adding</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">API and support for passing the call through to provider plug-ins.</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">Signed-off-by: Dotan Barak <dotanb@mellanox.co.il></FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">Index: last_stable/src/userspace/libibverbs/include/infiniband/driver.h</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">===================================================================</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">--- last_stable.orig/src/userspace/libibverbs/include/infiniband/driver.h       2006-02-07 17:00:24.000000000 +0200</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+++ last_stable/src/userspace/libibverbs/include/infiniband/driver.h    2006-02-08 09:38:24.000000000 +0200</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">@@ -107,6 +108,9 @@ int ibv_cmd_modify_srq(struct ibv_srq *s</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">                       struct ibv_srq_attr *srq_attr,</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">                       enum ibv_srq_attr_mask srq_attr_mask,</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">                       struct ibv_modify_srq *cmd, size_t cmd_size);</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+int ibv_cmd_query_srq(struct ibv_srq *srq,</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+                            struct ibv_srq_attr *srq_attr,</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+                            struct ibv_query_srq *cmd, size_t cmd_size);</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New"> int ibv_cmd_destroy_srq(struct ibv_srq *srq);</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New"> </FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New"> int ibv_cmd_create_qp(struct ibv_pd *pd,</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">Index: last_stable/src/userspace/libibverbs/include/infiniband/kern-abi.h</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">===================================================================</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">--- last_stable.orig/src/userspace/libibverbs/include/infiniband/kern-abi.h     2006-02-07 17:00:24.000000000 +0200</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+++ last_stable/src/userspace/libibverbs/include/infiniband/kern-abi.h  2006-02-08 09:25:29.000000000 +0200</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">@@ -676,6 +677,23 @@ struct ibv_modify_srq {</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">        __u64 driver_data[0];</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New"> };</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New"> </FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+struct ibv_query_srq {</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+       __u32 command;</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+       __u16 in_words;</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+       __u16 out_words;</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+       __u64 response;</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+       __u32 srq_handle;</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+       __u32 reserved;</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+       __u64 driver_data[0];</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+};</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+struct ibv_query_srq_resp {</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+       __u32 max_wr;</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+       __u32 max_sge;</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+       __u32 srq_limit;</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+       __u32 reserved;</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+};</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New"> struct ibv_destroy_srq {</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">        __u32 command;</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">        __u16 in_words;</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">Index: last_stable/src/userspace/libibverbs/include/infiniband/verbs.h</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">===================================================================</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">--- last_stable.orig/src/userspace/libibverbs/include/infiniband/verbs.h        2006-02-07 17:00:24.000000000 +0200</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+++ last_stable/src/userspace/libibverbs/include/infiniband/verbs.h     2006-02-08 09:27:38.000000000 +0200</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">@@ -556,6 +557,8 @@ struct ibv_context_ops {</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">        int                     (*modify_srq)(struct ibv_srq *srq,</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">                                              struct ibv_srq_attr *srq_attr,</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">                                              enum ibv_srq_attr_mask srq_attr_mask);</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+       int                     (*query_srq)(struct ibv_srq *srq,</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+                                            struct ibv_srq_attr *srq_attr);</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">        int                     (*destroy_srq)(struct ibv_srq *srq);</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">        int                     (*post_srq_recv)(struct ibv_srq *srq,</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">                                                 struct ibv_recv_wr *recv_wr,</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">@@ -815,6 +818,15 @@ int ibv_modify_srq(struct ibv_srq *srq,</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">                   enum ibv_srq_attr_mask srq_attr_mask);</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New"> </FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New"> /**</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+ * ibv_query_srq - Returns the attribute list and current values for the</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+ *   specified SRQ.</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+ * @srq: The SRQ to query.</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+ * @srq_attr: The attributes of the specified SRQ.</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+ */</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+int ibv_query_srq(struct ibv_srq *srq,</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+                 struct ibv_srq_attr *srq_attr);</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+/**</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">  * ibv_destroy_srq - Destroys the specified SRQ.</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">  * @srq: The SRQ to destroy.</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">  */</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">Index: last_stable/src/userspace/libibverbs/src/cmd.c</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">===================================================================</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">--- last_stable.orig/src/userspace/libibverbs/src/cmd.c 2006-02-07 17:00:24.000000000 +0200</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+++ last_stable/src/userspace/libibverbs/src/cmd.c      2006-02-08 09:29:41.000000000 +0200</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">@@ -488,6 +489,25 @@ int ibv_cmd_modify_srq(struct ibv_srq *s</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">        return 0;</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New"> }</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New"> </FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+int ibv_cmd_query_srq(struct ibv_srq *srq,</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+                     struct ibv_srq_attr *srq_attr,</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+                     struct ibv_query_srq *cmd, size_t cmd_size)</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+{</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+       struct ibv_query_srq_resp resp;</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+       IBV_INIT_CMD_RESP(cmd, cmd_size, QUERY_SRQ, &resp, sizeof resp);</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+       cmd->srq_handle = srq->handle;</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+       if (write(srq->context->cmd_fd, cmd, cmd_size) != cmd_size)</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+               return errno;</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+       srq_attr->max_wr    = resp.max_wr;</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+       srq_attr->max_sge   = resp.max_sge;</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+       srq_attr->srq_limit = resp.srq_limit;</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+       return 0;</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+}</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New"> static int ibv_cmd_destroy_srq_v1(struct ibv_srq *srq)</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New"> {</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">        struct ibv_destroy_srq_v1 cmd;</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">Index: last_stable/src/userspace/libibverbs/src/libibverbs.map</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">===================================================================</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">--- last_stable.orig/src/userspace/libibverbs/src/libibverbs.map        2006-02-07 17:00:24.000000000 +0200</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+++ last_stable/src/userspace/libibverbs/src/libibverbs.map     2006-02-08 09:30:18.000000000 +0200</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">@@ -25,6 +25,7 @@ IBVERBS_1.0 {</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">                ibv_ack_cq_events;</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">                ibv_create_srq;</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">                ibv_modify_srq;</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+               ibv_query_srq;</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">                ibv_destroy_srq;</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">                ibv_create_qp;</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">                ibv_modify_qp;</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">@@ -49,6 +50,7 @@ IBVERBS_1.0 {</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">                ibv_cmd_destroy_cq;</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">                ibv_cmd_create_srq;</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">                ibv_cmd_modify_srq;</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+               ibv_cmd_query_srq;</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">                ibv_cmd_destroy_srq;</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">                ibv_cmd_create_qp;</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">                ibv_cmd_modify_qp;</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">Index: last_stable/src/userspace/libibverbs/src/verbs.c</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">===================================================================</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">--- last_stable.orig/src/userspace/libibverbs/src/verbs.c       2006-02-07 17:00:24.000000000 +0200</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+++ last_stable/src/userspace/libibverbs/src/verbs.c    2006-02-08 09:31:25.000000000 +0200</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">@@ -280,6 +281,12 @@ int ibv_modify_srq(struct ibv_srq *srq,</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">        return srq->context->ops.modify_srq(srq, srq_attr, srq_attr_mask);</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New"> }</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New"> </FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+int ibv_query_srq(struct ibv_srq *srq,</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+                 struct ibv_srq_attr *srq_attr)</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+{</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+       return srq->context->ops.query_srq(srq, srq_attr);</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+}</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New"> int ibv_destroy_srq(struct ibv_srq *srq)</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New"> {</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">        return srq->context->ops.destroy_srq(srq);</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">Index: last_stable/src/userspace/libmthca/src/mthca.c</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">===================================================================</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">--- last_stable.orig/src/userspace/libmthca/src/mthca.c 2006-02-07 17:00:23.000000000 +0200</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+++ last_stable/src/userspace/libmthca/src/mthca.c      2006-02-08 09:32:01.000000000 +0200</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">@@ -110,6 +111,7 @@ static struct ibv_context_ops mthca_ctx_</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">        .destroy_cq    = mthca_destroy_cq,</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">        .create_srq    = mthca_create_srq,</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">        .modify_srq    = mthca_modify_srq,</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+       .query_srq     = mthca_query_srq,</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">        .destroy_srq   = mthca_destroy_srq,</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">        .create_qp     = mthca_create_qp,</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">        .modify_qp     = mthca_modify_qp,</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">Index: last_stable/src/userspace/libmthca/src/mthca.h</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">===================================================================</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">--- last_stable.orig/src/userspace/libmthca/src/mthca.h 2006-02-07 17:00:23.000000000 +0200</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+++ last_stable/src/userspace/libmthca/src/mthca.h      2006-02-08 09:46:20.000000000 +0200</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">@@ -297,6 +298,8 @@ struct ibv_srq *mthca_create_srq(struct </FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New"> int mthca_modify_srq(struct ibv_srq *srq,</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">                     struct ibv_srq_attr *attr,</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">                     enum ibv_srq_attr_mask mask);</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+int mthca_query_srq(struct ibv_srq *srq,</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+                          struct ibv_srq_attr *attr);</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New"> int mthca_destroy_srq(struct ibv_srq *srq);</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New"> int mthca_alloc_srq_buf(struct ibv_pd *pd, struct ibv_srq_attr *attr,</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">                        struct mthca_srq *srq);</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">Index: last_stable/src/userspace/libmthca/src/verbs.c</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">===================================================================</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">--- last_stable.orig/src/userspace/libmthca/src/verbs.c 2006-02-07 17:00:23.000000000 +0200</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+++ last_stable/src/userspace/libmthca/src/verbs.c      2006-02-08 09:33:48.000000000 +0200</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">@@ -439,6 +440,14 @@ int mthca_modify_srq(struct ibv_srq *srq</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">        return ibv_cmd_modify_srq(srq, attr, attr_mask, &cmd, sizeof cmd);</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New"> }</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New"> </FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+int mthca_query_srq(struct ibv_srq *srq,</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+                   struct ibv_srq_attr *attr)</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+{</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+       struct ibv_query_srq cmd;</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+       return ibv_cmd_query_srq(srq, attr, &cmd, sizeof cmd);</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+}</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">+</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New"> int mthca_destroy_srq(struct ibv_srq *srq)</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New"> {</FONT></P>

<P DIR=LTR><FONT SIZE=2 FACE="Courier New">        int ret;</FONT></P>
<BR>
<BR>

<P DIR=LTR><B><I><FONT COLOR="#008080" SIZE=6 FACE="Script">Dotan Barak</FONT></I></B></P>

<P DIR=LTR><FONT FACE="Times New Roman">Software Verification Engineer</FONT></P>

<P DIR=LTR><FONT FACE="Times New Roman">Mellanox Technologies</FONT></P>

<P DIR=LTR><FONT FACE="Times New Roman">Tel: +972-4-9097200 Ext: 231 Fax: +972-4-9593245</FONT></P>

<P DIR=LTR><FONT FACE="Times New Roman">P.O. Box 86 Yokneam 20692 ISRAEL.</FONT></P>

<P DIR=LTR><FONT FACE="Times New Roman">Home: +972-77-8841095  Cell: 0</FONT><FONT SIZE=2 FACE="Arial">52-4222383</FONT></P>

<P DIR=LTR><FONT COLOR="#008080" SIZE=2 FACE="Arial">[ May the fork be with you ]</FONT></P>

</BODY>
</HTML>