Version: 1
-Previous: cabfd7497c1ddcc6ce6c82b2c1366f867ffdc2ab
-Head: f3386207bf8aad86523c3a060dd36a44d7ef9488
+Previous: 2d4cab6165d900231192882ac8e0b323714fa9ec
+Head: 46318924283ba96f16863a0c77ad677e8d43e907
Applied:
verbs-ext: e3d312ae562579568c8941c4a9851a8b210eb70f
- xrcd2: bcb42b7c64c44a12c996b1621ed4d59b3bd7b51d
- refresh-temp: f3386207bf8aad86523c3a060dd36a44d7ef9488
+ xrcd2: 46318924283ba96f16863a0c77ad677e8d43e907
Unapplied:
xrcd: 1d5c0ac8e56de2b18c46f67ae528c92510f80f81
srq_ex: 556e5c240973dd4d4fac250694525ab3211bd604
+++ /dev/null
-Bottom: 97b3f87e4c094121df79c7716f9892cca45f0b2a
-Top: 2db36b8f446df11adc6bd2c4e1c444949a6db8d6
-Author: Sean Hefty <sean.hefty@intel.com>
-Date: 2012-09-28 12:21:46 -0700
-
-Refresh of xrcd2
-
----
-
-diff --git a/include/infiniband/driver.h b/include/infiniband/driver.h
-index 38933aa..ce88442 100644
---- a/include/infiniband/driver.h
-+++ b/include/infiniband/driver.h
-@@ -90,7 +90,7 @@ int ibv_cmd_alloc_pd(struct ibv_context *context, struct ibv_pd *pd,
- struct ibv_alloc_pd_resp *resp, size_t resp_size);
- int ibv_cmd_dealloc_pd(struct ibv_pd *pd);
- int ibv_cmd_open_xrcd(struct ibv_context *context, struct verbs_xrcd *xrcd,
-- int fd, int oflags,
-+ struct ibv_xrcd_init_attr *attr,
- struct ibv_open_xrcd *cmd, size_t cmd_size,
- struct ibv_open_xrcd_resp *resp, size_t resp_size);
- int ibv_cmd_close_xrcd(struct verbs_xrcd *xrcd);
-diff --git a/src/cmd.c b/src/cmd.c
-index f9beded..f0fb1dc 100644
---- a/src/cmd.c
-+++ b/src/cmd.c
-@@ -195,14 +195,21 @@ int ibv_cmd_dealloc_pd(struct ibv_pd *pd)
- }
-
- int ibv_cmd_open_xrcd(struct ibv_context *context, struct verbs_xrcd *xrcd,
-- int fd, int oflags,
-+ struct ibv_xrcd_init_attr *attr,
- struct ibv_open_xrcd *cmd, size_t cmd_size,
- struct ibv_open_xrcd_resp *resp, size_t resp_size)
- {
- IBV_INIT_CMD_RESP(cmd, cmd_size, OPEN_XRCD, resp, resp_size);
-
-- cmd->fd = fd;
-- cmd->oflags = oflags;
-+ if (attr->comp_mask >= IBV_XRCD_INIT_ATTR_RESERVED)
-+ return ENOSYS;
-+
-+ if (!(attr->comp_mask & IBV_XRCD_INIT_ATTR_FD) ||
-+ !(attr->comp_mask & IBV_XRCD_INIT_ATTR_OFLAGS))
-+ return EINVAL;
-+
-+ cmd->fd = attr->fd;
-+ cmd->oflags = attr->oflags;
- if (write(context->cmd_fd, cmd, cmd_size) != cmd_size)
- return errno;
Bottom: 815e29364f4b5792b68b75427a1c7c571ed0a27f
-Top: 97b3f87e4c094121df79c7716f9892cca45f0b2a
+Top: 2db36b8f446df11adc6bd2c4e1c444949a6db8d6
Author: Sean Hefty <sean.hefty@intel.com>
Date: 2012-09-28 12:12:45 -0700
---
diff --git a/include/infiniband/driver.h b/include/infiniband/driver.h
-index f22f287..38933aa 100644
+index f22f287..ce88442 100644
--- a/include/infiniband/driver.h
+++ b/include/infiniband/driver.h
@@ -53,6 +53,17 @@
struct ibv_alloc_pd_resp *resp, size_t resp_size);
int ibv_cmd_dealloc_pd(struct ibv_pd *pd);
+int ibv_cmd_open_xrcd(struct ibv_context *context, struct verbs_xrcd *xrcd,
-+ int fd, int oflags,
++ struct ibv_xrcd_init_attr *attr,
+ struct ibv_open_xrcd *cmd, size_t cmd_size,
+ struct ibv_open_xrcd_resp *resp, size_t resp_size);
+int ibv_cmd_close_xrcd(struct verbs_xrcd *xrcd);
*/
struct ibv_mr *ibv_reg_mr(struct ibv_pd *pd, void *addr,
diff --git a/src/cmd.c b/src/cmd.c
-index dab8930..f9beded 100644
+index dab8930..f0fb1dc 100644
--- a/src/cmd.c
+++ b/src/cmd.c
-@@ -194,6 +194,40 @@ int ibv_cmd_dealloc_pd(struct ibv_pd *pd)
+@@ -194,6 +194,47 @@ int ibv_cmd_dealloc_pd(struct ibv_pd *pd)
return 0;
}
+int ibv_cmd_open_xrcd(struct ibv_context *context, struct verbs_xrcd *xrcd,
-+ int fd, int oflags,
++ struct ibv_xrcd_init_attr *attr,
+ struct ibv_open_xrcd *cmd, size_t cmd_size,
+ struct ibv_open_xrcd_resp *resp, size_t resp_size)
+{
+ IBV_INIT_CMD_RESP(cmd, cmd_size, OPEN_XRCD, resp, resp_size);
+
-+ cmd->fd = fd;
-+ cmd->oflags = oflags;
++ if (attr->comp_mask >= IBV_XRCD_INIT_ATTR_RESERVED)
++ return ENOSYS;
++
++ if (!(attr->comp_mask & IBV_XRCD_INIT_ATTR_FD) ||
++ !(attr->comp_mask & IBV_XRCD_INIT_ATTR_OFLAGS))
++ return EINVAL;
++
++ cmd->fd = attr->fd;
++ cmd->oflags = attr->oflags;
+ if (write(context->cmd_fd, cmd, cmd_size) != cmd_size)
+ return errno;
+