---
name: "rpma_peer_new"
section: "3"
platform: "linux"
package: "librpma-dev"
version: "1.3.0-2+b3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/rpma_peer_new"
---

# rpma\_peer\_new(3)

create a peer object

## NAME

**rpma\_peer\_new** - create a peer object

## SYNOPSIS

```
      #include <librpma.h>
      struct ibv_context;
      struct rpma_peer;
      int rpma_peer_new(struct ibv_context *ibv_ctx, struct rpma_peer **peer_ptr);
```

## DESCRIPTION

**rpma\_peer\_new**() creates a new peer object.

## RETURN VALUE

The **rpma\_peer\_new**() function returns 0 on success or a negative error code on failure. **rpma\_peer\_new**() does not set \*peer\_ptr value on failure.

## ERRORS

**rpma\_peer\_new**() can fail with the following errors:

- •

  RPMA\_E\_INVAL - ibv\_ctx or peer\_ptr is NULL

- •

  RPMA\_E\_NOMEM - creating a verbs protection domain failed with ENOMEM.

- •

  RPMA\_E\_PROVIDER - creating a verbs protection domain failed with error other than ENOMEM.

- •

  RPMA\_E\_UNKNOWN - creating a verbs protection domain failed without error value.

- •

  RPMA\_E\_NOMEM - out of memory

## SEE ALSO

[**rpma\_conn\_req\_new**(3)](/rpma_conn_req_new/3.md), [**rpma\_ep\_listen**(3)](/rpma_ep_listen/3.md), [**rpma\_mr\_reg**(3)](/rpma_mr_reg/3.md), [**rpma\_peer\_delete**(3)](/rpma_peer_delete/3.md), [**rpma\_utils\_get\_ibv\_context**(3)](/rpma_utils_get_ibv_context/3.md), [**librpma**(7)](/librpma/7.md) and https://pmem.io/rpma/
