---
name: "rdma_reg_write"
section: "3"
platform: "linux"
package: "rdma-core"
version: "65.0-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux", "freebsd"]
url: "https://new.carta.tech/rdma_reg_write"
---

# rdma\_reg\_write(3)

register data buffer(s) for remote RDMA write access.

## NAME

rdma\_reg\_write - register data buffer(s) for remote RDMA write access.

## SYNOPSIS

**#include \<rdma/rdma\_verbs.h\>**

**struct ibv\_mr \* rdma\_reg\_write** **(struct rdma\_cm\_id \****id***,** **void \****addr***,** **size\_t** *length***);**

## ARGUMENTS

- id

  A reference to a communication identifier where the message buffer(s) will be used.

- addr

  The address of the memory buffer(s) to register.

- length

  The total length of the memory to register.

## DESCRIPTION

Registers a memory buffer that will be accessed by a remote RDMA write operation.  Memory buffers registered using rdma\_reg\_write may be targeted in an RDMA write request, allowing the buffer to be specified on the remote side of an RDMA connection as the remote\_addr of rdma\_post\_write, or similar call.

## RETURN VALUE

Returns a reference to the registered memory region on success, or NULL on error.  If an error occurs, errno will be set to indicate the failure reason.

## NOTES

rdma\_reg\_write is used to register a data buffer that will be the target of an RDMA write operation on a queue pair associated with an rdma\_cm\_id.  The memory buffer is registered with the proteection domain associated with the idenfier.  The start of the data buffer is specified through the addr parameter, and the total size of the buffer  is given by length.

All data buffers should be registered before being posted as a work request. Users must deregister all registered memory by calling rdma\_dereg\_mr.

## SEE ALSO

[rdma\_cm(7)](/rdma_cm/7.md), [rdma\_create\_id(3)](/rdma_create_id/3.md), [rdma\_create\_ep(3)](/rdma_create_ep/3.md), [rdma\_reg\_msgs(3)](/rdma_reg_msgs/3.md), [rdma\_reg\_read(3)](/rdma_reg_read/3.md), [ibv\_reg\_mr(3)](/ibv_reg_mr/3.md), [ibv\_dereg\_mr(3)](/ibv_dereg_mr/3.md), [rdma\_post\_write(3)](/rdma_post_write/3.md)
