ibv_get_device_guid()函数

时间:2024-07-03 11:04:32
uint64_t ibv_get_device_guid(struct ibv_device *device);

描述

函数返回RDMA 设备的 GUID(The Global Unique IDentifier)

GUID:设备的供应商在制造过程中分配给设备,是唯一的,被用作RDMA设备的标识。

注意:从RDMA设备的GUID的前缀,可以知道设备的供应商。

参数(struct ibv_device *device)

参数为函数ibv_get_device_list()返回的可用RDMA设备数组中的一项。

返回结果

返回成功:设备GUID的网络字节序

返回失败:0

例子

显示当前电脑所有已存在RDMA设备的GUID号

#include <stdio.h>
#include <infiniband/verbs.h>
#include "utils.h" int main(void)
{
struct ibv_device **device_list;
int num_devices;
int i; device_list = ibv_get_device_list(&num_devices);
if (!device_list) {
fprintf(stderr, "Error, ibv_get_device_list() failed\n");
return -;
} printf("%d RDMA device(s) found:\n\n", num_devices); for (i = ; i < num_devices; ++ i) {
printf("RDMA device[%d]: name=%s, GUID=0x%016Lx\n", i,
ibv_get_device_name(device_list[i]),
ntohll(ibv_get_device_guid(device_list[i])));
} ibv_free_device_list(device_list); return ;
}