ibv_get_device_list()函数
struct ibv_device** ibv_get_device_list(int *num_devices);
描述
函数用来返回一个当前可用的RDMA设备数组。
注意
- 数组以NULL结尾;
- RDMA设备数组可以经由ibv_free_device_list()函数释放。
参数(int * num_devices)
- int 指针类型
- 若返回结果不为NULL,参数指向的值为返回数组中可用RDMA设备数
返回值(struct ibv_device**)
- 返回成功时:ibv_device指向可用的RDMA设备数组,num_devices设置为对应的设备数
- 返回失败时:ibv_device指向NULL,如果请求失败,设置errno值
可能的errno值有:
- EPERM:权限拒绝
- ENOMEM:内存不足以完成操作
- ENOSYS:没有内核支持RDMA
例子
1、不带参数的获取设备列表
struct ibv_device **dev_list; dev_list = ibv_get_device_list(NULL);
if (!dev_list)
exit(1);
2、带参数的获取设备列表
struct ibv_device **dev_list;
int num_devices; dev_list = ibv_get_device_list(&num_devices);
if (!dev_list)
exit(1);
FAQs
1、调用ibv_get_device_list()函数,它返回NULL,意味着什么?
答:这是一个基础的verb,一般不会失败,可以检查一下 ib_uverbs 模块是否被加载
2、调用ibv_get_device_list()函数,返回空的list,意味着什么?
答:驱动没有找到任何的RDMA设备
- 如果你的机器存在RDMA设备,可以用lspci检查
- 使用 lsmod 检查支持RDMA设备的底层驱动模块是否加载
- 使用 dmesg /var/log/message 检查是否有报错
参考链接:http://www.rdmamojo.com/2012/05/31/ibv_get_device_list/
ibv_get_device_list()函数的更多相关文章
- ibv_get_device_name()函数
const char *ibv_get_device_name(struct ibv_device *device); 描述 函数用来获取一个与RDMA设备相关联的名字 注意 这个名字在一台特定的机器 ...
- ibv_open_device()函数
struct ibv_context *ibv_open_device(struct ibv_device *device); 描述 函数会创建一个RDMA设备相关的context:可以通过ibv_c ...
- ibv_get_device_guid()函数
uint64_t ibv_get_device_guid(struct ibv_device *device); 描述 函数返回RDMA 设备的 GUID(The Global Unique IDen ...
- ibv_close_device()函数
int ibv_close_device(struct ibv_context *context); 描述 函数用来关闭一个RDMA设备context: 注意: 函数不能用来释放与该Context关联 ...
- ibv_free_device_list()函数
void ibv_free_device_list(struct ibv_device **list); 描述 函数用来释放当前可用的RDMA设备数组. 注意 数组一旦释放,指向设备的指针将不能再由i ...
- Python 小而美的函数
python提供了一些有趣且实用的函数,如any all zip,这些函数能够大幅简化我们得代码,可以更优雅的处理可迭代的对象,同时使用的时候也得注意一些情况 any any(iterable) ...
- 探究javascript对象和数组的异同,及函数变量缓存技巧
javascript中最经典也最受非议的一句话就是:javascript中一切皆是对象.这篇重点要提到的,就是任何jser都不陌生的Object和Array. 有段时间曾经很诧异,到底两种数据类型用来 ...
- JavaScript权威指南 - 函数
函数本身就是一段JavaScript代码,定义一次但可能被调用任意次.如果函数挂载在一个对象上,作为对象的一个属性,通常这种函数被称作对象的方法.用于初始化一个新创建的对象的函数被称作构造函数. 相对 ...
- C++对C的函数拓展
一,内联函数 1.内联函数的概念 C++中的const常量可以用来代替宏常数的定义,例如:用const int a = 10来替换# define a 10.那么C++中是否有什么解决方案来替代宏代码 ...
随机推荐
- 3 Ways to Learn Whether a Windows Program is 64-bit or 32-bit
More than 90% of Windows 8.1 installations are 64-bit and, as a result, more and more people use 64- ...
- JVM之栈、堆、方法区(三)
一.CPU和内存的交互 今天除夕,祝大家新年快乐,其实,我们知道的,我们的CPU跟内存会有非常频繁的交互,因为如果这个频繁的交互是交给我们的磁盘的话,那么随着我们的CPU运转速度越来越快,那么我们的磁 ...
- ql/sql 循环语句、异常处理、事务处理!
一.ql sql 循环语句? /*1.loop循环 语法: 声明循环变量 loop 判断循环条件 ,如果循环条件不成立,跳出循if 条件表达式 then exit; end if; 语句块; 改变循环 ...
- ApacheCN PHP 译文集 20211101 更新
PHP 入门指南 零.序言 一.PHP 入门 二.数组和循环 三.函数和类 四.数据操作 五.构建 PHP Web 应用 六.搭建 PHP 框架 七.认证与用户管理 八.建立联系人管理系统 使用 PH ...
- 「JOI 2015 Final」城墙
「JOI 2015 Final」城墙 复杂度默认\(m=n\) 暴力 对于点\((i,j)\),记录\(ld[i][j]=min(向下延伸的长度,向右延伸的长度)\),\(rd[i][j]=min(向 ...
- Android的基本资源引用(字符串、颜色、尺寸、数组)【转】
感谢大佬:https://blog.csdn.net/wenge1477/article/details/81295763 Android的基本资源引用(字符串.颜色.尺寸.数组)[转] 一.Andr ...
- scons: 使用 SCons 轻松建造程序
转载请注明来源:https://www.cnblogs.com/hookjc/ 在软件项目开发过程中,make 工具通常被用来建造程序.make 工具通过一个被称为 Makefile 的配置文件可以自 ...
- Xcode全系列下载地址
Xcode全系列下载地址,不断更新dmg 格式 下载链接:http://pan.baidu.com/s/1mgyxLP2
- Scala中实现break与continue
Scala是函数式编程语言,因此没有直接的break与continue关键字,要实现break与continue效果,需要绕一下. 需要导入包: import util.control.Breaks. ...
- atc工具模拟网络
通过Facebook开源的atc工具,进行模拟不同的网络情况,如图: 目前不支持python3 相关网址: ATC http://facebook.github.io/augmented-traffi ...