1IBV_REREG_MR(3)         Libibverbs Programmer's Manual         IBV_REREG_MR(3)
2
3
4

NAME

6       ibv_rereg_mr - re-register a memory region (MR)
7

SYNOPSIS

9       #include <infiniband/verbs.h>
10
11       int ibv_rereg_mr(struct ibv_mr *mr, int  flags,
12                        struct ibv_pd * pd, void  *addr,
13                        size_t  length, int  access);
14

DESCRIPTION

16       ibv_rereg_mr()  Modifies  the  attributes  of an existing memory region
17       (MR) mr.  Conceptually, this call  performs  the  functions  deregister
18       memory  region  followed  by  register  memory region.  Where possible,
19       resources are reused instead of deallocated and reallocated.
20
21       flags is a bit-mask used to indicate which of the following  properties
22       of  the memory region are being modified. Flags should be a combination
23       (bit field) of:
24
25       IBV_REREG_MR_CHANGE_TRANSLATION   Change  translation   (location   and
26       length)
27
28       IBV_REREG_MR_CHANGE_PD  Change protection domain
29
30       IBV_REREG_MR_CHANGE_ACCESS  Change access flags
31
32       When  IBV_REREG_MR_CHANGE_PD  is used, pd represents the new PD this MR
33       should be registered to.
34       When IBV_REREG_MR_CHANGE_TRANSLATION is  used,  addr.   represents  the
35       virtual address (user-space pointer) of the new MR, while length repreā€
36       sents its length.
37
38       The access and other flags are represented in the field  access.   This
39       field  describes the desired memory protection attributes; it is either
40       0 or the bitwise OR of one or more of ibv_access_flags.
41
42
43       RETURN VALUE
44              ibv_rereg_mr() returns 0 on  success,  otherwise  an  error  has
45              occurred,  enum ibv_rereg_mr_err_code represents the error as of
46              below.
47              IBV_REREG_MR_ERR_INPUT - Old MR is valid,  an  input  error  was
48              detected by libibverbs.
49              IBV_REREG_MR_ERR_DONT_FORK_NEW  -  Old  MR  is valid, failed via
50              don't fork on new address range.
51              IBV_REREG_MR_ERR_DO_FORK_OLD - New MR is valid,  failed  via  do
52              fork on old address range.
53              IBV_REREG_MR_ERR_CMD - MR shouldn't be used, command error.
54              IBV_REREG_MR_ERR_CMD_AND_DO_FORK_NEW  -  MR  shouldn't  be used,
55              command error, invalid fork state on new address range.
56
57

NOTES

59       Even on a failure, the user still needs to call  ibv_dereg_mr  on  this
60       MR.
61

SEE ALSO

63       ibv_reg_mr(3), ibv_dereg_mr(3),
64

AUTHORS

66       Matan Barak <matanb@mellanox.com>
67
68       Yishai Hadas <yishaih@mellanox.com>
69
70
71
72libibverbs                        2016-03-13                   IBV_REREG_MR(3)
Impressum