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.
SEE ALSO¶
ibv_fork_init(3), 
ibv_get_device_name(3),
  
ibv_get_device_guid(3), 
ibv_open_device(3)
AUTHORS¶
  - Dotan Barak <dotanba@gmail.com>