1IBV_REREG_MR(3) Libibverbs Programmer's Manual IBV_REREG_MR(3)
2
3
4
6 ibv_rereg_mr - re-register a memory region (MR)
7
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
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
59 Even on a failure, the user still needs to call ibv_dereg_mr on this
60 MR.
61
63 ibv_reg_mr(3), ibv_dereg_mr(3),
64
66 Matan Barak <matanb@mellanox.com>
67
68 Yishai Hadas <yishaih@mellanox.com>
69
70
71
72libibverbs 2016-03-13 IBV_REREG_MR(3)