dwww Home | Manual pages | Find package

IBV_REREG_MR(3)         Libibverbs Programmer’s Manual         IBV_REREG_MR(3)

NAME
       ibv_rereg_mr - re-register a memory region (MR)

SYNOPSIS
              #include <infiniband/verbs.h>

              int ibv_rereg_mr(struct ibv_mr *mr,
                               int flags,
                               struct ibv_pd *pd,
                               void *addr,
                               size_t length,
                               int access);

DESCRIPTION
       ibv_rereg_mr()  Modifies  the  attributes  of an existing memory region
       (MR) mr.  Conceptually, this call  performs  the  functions  deregister
       memory  region followed by register memory region.  Where possible, re-
       sources are reused instead of deallocated and reallocated.

       flags is a bit-mask used to indicate which of the following  properties
       of the memory region are being modified.  Flags should be a combination
       (bit field) of:

       IBV_REREG_MR_CHANGE_TRANSLATION
              Change translation (location and length)

       IBV_REREG_MR_CHANGE_PD
              Change protection domain

       IBV_REREG_MR_CHANGE_ACCESS
              Change access flags

       When IBV_REREG_MR_CHANGE_PD is used, pd represents the new PD  this  MR
       should be registered to.

       When  IBV_REREG_MR_CHANGE_TRANSLATION  is  used,  addr.  represents the
       virtual address (user-space pointer) of the new MR, while length repre-
       sents its length.

       The  access  and other flags are represented in the field access.  This
       field describes the desired memory protection attributes; it is  either
       0 or the bitwise OR of one or more of ibv_access_flags.

RETURN VALUE
       ibv_rereg_mr()  returns  0 on success, otherwise an error has occurred,
       enum ibv_rereg_mr_err_code represents the error as of below.

       IBV_REREG_MR_ERR_INPUT - Old MR is valid, an input error  was  detected
       by libibverbs.

       IBV_REREG_MR_ERR_DONT_FORK_NEW - Old MR is valid, failed via don’t fork
       on new address range.

       IBV_REREG_MR_ERR_DO_FORK_OLD - New MR is valid, failed via do  fork  on
       old address range.

       IBV_REREG_MR_ERR_CMD - MR shouldn’t be used, command error.

       IBV_REREG_MR_ERR_CMD_AND_DO_FORK_NEW  -  MR  shouldn’t be used, command
       error, invalid fork state on new address range.

NOTES
       Even on a failure, the user still needs to call  ibv_dereg_mr  on  this
       MR.

SEE ALSO
       ibv_dereg_mr(3), ibv_reg_mr(3)

AUTHORS
       Matan Barak <matanb@mellanox.com>, Yishai Hadas <yishaih@mellanox.com>

libibverbs                        2016-03-13                   IBV_REREG_MR(3)

Generated by dwww version 1.14 on Fri Jan 24 06:12:28 CET 2025.