struct ibv_xrcd *__ibv_open_xrcd(struct ibv_context *context, int fd, int oflags)
{
- struct ibv_xrc_ops *ops;
+ struct verbs_context *context_ex = verbs_get_ctx(context);
struct ibv_xrcd *xrcd;
- ops = ibv_get_ext_ops(context, IBV_XRC_OPS);
- if (!ops || !ops->open_xrcd)
+ if (!context_ex->open_xrcd) {
+ errno = ENOSYS;
return NULL;
+ }
- xrcd = ops->open_xrcd(context, fd, oflags);
+ xrcd = context_ex->open_xrcd(context, fd, oflags);
if (xrcd)
xrcd->context = context;
int __ibv_close_xrcd(struct ibv_xrcd *xrcd)
{
- struct ibv_xrc_ops *ops;
+ struct verbs_context *context_ex = verbs_get_ctx(context);
- ops = ibv_get_ext_ops(xrcd->context, IBV_XRC_OPS);
- return ops->close_xrcd(xrcd);
+ return context_ex->close_xrcd(xrcd);
}
default_symver(__ibv_close_xrcd, ibv_close_xrcd);