ibv_get_device_list man page

ibv_get_device_list, ibv_free_device_list — get and release list of available RDMA devices


#include <infiniband/verbs.h>

struct ibv_device **ibv_get_device_list(int *num_devices);

void ibv_free_device_list(struct ibv_device **list);


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.


Permission denied.
No kernel support for RDMA.
Insufficient memory to complete the operation.


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_get_device_name(3), ibv_get_device_guid(3), ibv_open_device(3)


Dotan Barak <dotanba@gmail.com>

Referenced By

ibv_fork_init(3), ibv_get_device_guid(3), ibv_get_device_name(3), ibv_open_device(3).

Explore man page connections for ibv_get_device_list(3).

libibverbs Libibverbs Programmer's Manual 2006-10-31