Skip to content

Commit 09a6bd4

Browse files
committed
Providers/rxe: Add dma-buf support
Implement a new provider method for dma-buf base memory registration. Signed-off-by: Shunsuke Mie <mie@igel.co.jp>
1 parent c89d402 commit 09a6bd4

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

providers/rxe/rxe.c

+21
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,26 @@ static struct ibv_mr *rxe_reg_mr(struct ibv_pd *pd, void *addr, size_t length,
239239
return &vmr->ibv_mr;
240240
}
241241

242+
static struct ibv_mr *rxe_reg_dmabuf_mr(struct ibv_pd *pd, uint64_t offset,
243+
size_t length, uint64_t iova, int fd,
244+
int access)
245+
{
246+
struct verbs_mr *vmr;
247+
int ret;
248+
249+
vmr = malloc(sizeof(*vmr));
250+
if (!vmr)
251+
return NULL;
252+
253+
ret = ibv_cmd_reg_dmabuf_mr(pd, offset, length, iova, fd, access, vmr);
254+
if (ret) {
255+
free(vmr);
256+
return NULL;
257+
}
258+
259+
return &vmr->ibv_mr;
260+
}
261+
242262
static int rxe_dereg_mr(struct verbs_mr *vmr)
243263
{
244264
int ret;
@@ -1706,6 +1726,7 @@ static const struct verbs_context_ops rxe_ctx_ops = {
17061726
.alloc_pd = rxe_alloc_pd,
17071727
.dealloc_pd = rxe_dealloc_pd,
17081728
.reg_mr = rxe_reg_mr,
1729+
.reg_dmabuf_mr = rxe_reg_dmabuf_mr,
17091730
.dereg_mr = rxe_dereg_mr,
17101731
.alloc_mw = rxe_alloc_mw,
17111732
.dealloc_mw = rxe_dealloc_mw,

0 commit comments

Comments
 (0)