Licensed under the OpenIB.org BSD license (FreeBSD Variant) - See COPYING.md
#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");
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 represents 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.
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.
Matan Barak <matanb@mellanox.com>
Yishai Hadas <yishaih@mellanox.com>