---
name: "ibv_get_device_list"
section: "3"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["linux", "freebsd"]
url: "https://new.carta.tech/ibv_get_device_list"
---

# ibv\_get\_device\_list(3)

get and release list of available RDMA devices

## NAME

ibv\_get\_device\_list, ibv\_free\_device\_list - get and release list of available RDMA devices

## SYNOPSIS

```
#include <infiniband/verbs.h>

struct ibv_device **ibv_get_device_list(int *num_devices);

void ibv_free_device_list(struct ibv_device **list);
```

## DESCRIPTION

**ibv\_get\_device\_list()** returns a NULL-terminated array of RDMA devices currently available. The argument *num\_devices* is optional; if not NULL, it is set to the number of devices returned in the array.

**ibv\_free\_device\_list()** frees the array of devices *list* returned by **ibv\_get\_device\_list().**

## RETURN VALUE

**ibv\_get\_device\_list()** returns the array of available RDMA devices, or sets *errno* and returns NULL if the request fails. If no devices are found then *num\_devices* is set to 0, and non-NULL is returned.

**ibv\_free\_device\_list()** returns no value.

## ERRORS

- **EPERM**

  Permission denied.

- **ENOSYS**

  No kernel support for RDMA.

- **ENOMEM**

  Insufficient memory to complete the operation.

## NOTES

Client code should open all the devices it intends to use with **ibv\_open\_device() before calling** **ibv\_free\_device\_list().** Once it frees the array with **ibv\_free\_device\_list(),** it will be able to use only the open devices; pointers to unopened devices will no longer be valid.

Setting the environment variable **IBV\_SHOW\_WARNINGS** will cause warnings to be emitted to stderr if a kernel verbs device is discovered, but no corresponding userspace driver can be found for it.

## SEE ALSO

[**ibv\_fork\_init**(3)](/ibv_fork_init/3.md), [**ibv\_get\_device\_name**(3)](/ibv_get_device_name/3.md), [**ibv\_get\_device\_guid**(3)](/ibv_get_device_guid/3.md), [**ibv\_open\_device**(3)](/ibv_open_device/3.md)

## AUTHORS

- Dotan Barak \<dotanba@gmail.com\>
