]> git.openfabrics.org - ~shefty/libibverbs.git/commitdiff
Refresh of xrcd
authorSean Hefty <sean.hefty@intel.com>
Wed, 26 Sep 2012 00:06:45 +0000 (17:06 -0700)
committerSean Hefty <sean.hefty@intel.com>
Wed, 26 Sep 2012 00:06:45 +0000 (17:06 -0700)
include/infiniband/verbs.h
src/cmd.c
src/verbs.c

index 317e725447ac02f81db4dc9fdb5eeb42d183dcaa..186bcec2e8b4d830792a73e1bcd5050afc65eb0f 100644 (file)
@@ -757,11 +757,10 @@ static inline struct verbs_context *verbs_get_ctx(
        return container_of(ctx, struct verbs_context, context);
 }
 
-#define verbs_get_ctx_op(ctx, op) { \
-       struct verbs_context *vctx = verbs_get_ctx(xrcd->context); \
-       return (!vctx || \
-               (vctx->sz < sizeof(*vctx) - offsetof(struct verbs_context, op)) || \
-               !vctx->op) ? NULL : vctx; }
+#define verbs_get_ctx_op(ctx, op) ({ \
+       struct verbs_context *vctx = verbs_get_ctx(ctx); \
+       (!vctx || (vctx->sz < sizeof(*vctx) - offsetof(struct verbs_context, op)) || \
+        !vctx->op) ? NULL : vctx; })
 
 static inline struct verbs_device *verbs_get_device(
                                        const struct ibv_device *dev)
@@ -882,7 +881,8 @@ int ibv_dealloc_pd(struct ibv_pd *pd);
 /**
  * ibv_open_xrcd - Open an extended connection domain
  */
-struct ibv_xrcd *ibv_open_xrcd(struct ibv_context *context, int fd, int oflags)
+static inline struct ibv_xrcd *
+ibv_open_xrcd(struct ibv_context *context, int fd, int oflags)
 {
        struct verbs_context *vctx = verbs_get_ctx_op(context, open_xrcd);
        return vctx ? vctx->open_xrcd(context, fd, oflags) : NULL;
@@ -891,7 +891,7 @@ struct ibv_xrcd *ibv_open_xrcd(struct ibv_context *context, int fd, int oflags)
 /**
  * ibv_close_xrcd - Close an extended connection domain
  */
-int ibv_close_xrcd(struct ibv_xrcd *xrcd)
+static inline int ibv_close_xrcd(struct ibv_xrcd *xrcd)
 {
        struct verbs_context *vctx = verbs_get_ctx(xrcd->context);
        return vctx->close_xrcd(xrcd);
index ae8a239c8a8030683b604b6ddd083c338d073a26..14ffbacb2337c3fd59a3e1f9d57c9d4e098ce569 100644 (file)
--- a/src/cmd.c
+++ b/src/cmd.c
@@ -208,7 +208,7 @@ int ibv_cmd_open_xrcd(struct verbs_context *context, struct verbs_xrcd *xrcd,
 
        VALGRIND_MAKE_MEM_DEFINED(resp, resp_size);
 
-       xrcd->xrcd.context = context;
+       xrcd->xrcd.context = &context->context;
        xrcd->comp_mask = IBV_XRCD_HANDLE;
        xrcd->handle  = resp->xrcd_handle;
 
index d2479e8c8bf604b926ab55566869a7df68dfdd32..b5938f2b6a5dc06cc9236bc19dc554fe762d5b63 100644 (file)
@@ -154,33 +154,6 @@ int __ibv_dealloc_pd(struct ibv_pd *pd)
 }
 default_symver(__ibv_dealloc_pd, ibv_dealloc_pd);
 
-struct ibv_xrcd *__ibv_open_xrcd(struct ibv_context *context, int fd, int oflags)
-{
-       struct verbs_context *context_ex = verbs_get_ctx(context);
-       struct verbs_xrcd *xrcd;
-
-       if (!context_ex->open_xrcd) {
-               errno = ENOSYS;
-               return NULL;
-       }
-
-       xrcd = context_ex->open_xrcd(context, fd, oflags);
-       if (xrcd)
-               xrcd->xrcd.context = context;
-
-       return &xrcd.xrcd;
-}
-default_symver(__ibv_open_xrcd, ibv_open_xrcd);
-
-int __ibv_close_xrcd(struct ibv_xrcd *xrcd)
-{
-       struct verbs_context *context_ex = verbs_get_ctx(xrcd->context);
-       struct verbs_xrcd *vxrcd = container_of(xrcd, struct verbs_xrcc, xrcd);
-
-       return context_ex->close_xrcd(vxrcd);
-}
-default_symver(__ibv_close_xrcd, ibv_close_xrcd);
-
 struct ibv_mr *__ibv_reg_mr(struct ibv_pd *pd, void *addr,
                            size_t length, int access)
 {