| .\" -*- nroff -*- |
| .\" |
| .TH IBV_QUERY_DEVICE_EX 3 2014-12-17 libibverbs "Libibverbs Programmer's Manual" |
| .SH "NAME" |
| ibv_query_device_ex \- query an RDMA device's attributes |
| .SH "SYNOPSIS" |
| .nf |
| .B #include <infiniband/verbs.h> |
| .sp |
| .BI "int ibv_query_device_ex(struct ibv_context " "*context", |
| .BI " struct ibv_device_attr_ex " "*attr" ); |
| .fi |
| .SH "DESCRIPTION" |
| .B ibv_query_device_ex() |
| returns the attributes of the device with context |
| .I context\fR. |
| The argument |
| .I attr |
| is a pointer to an ibv_device_attr_ex struct, as defined in <infiniband/verbs.h>. |
| .PP |
| .nf |
| struct ibv_device_attr_ex { |
| .in +8 |
| struct ibv_device_attr orig_attr; |
| uint32_t comp_mask; /* Compatibility mask that defines which of the following variables are valid */ |
| struct ibv_odp_caps odp_caps; /* On-Demand Paging capabilities */ |
| uint64_t completion_timestamp_mask; /* Completion timestamp mask (0 = unsupported) */ |
| uint64_t hca_core_clock; /* The frequency (in kHZ) of the HCA (0 = unsupported) */ |
| uint64_t device_cap_flags_ex; /* Extended device capability flags */ |
| .in -8 |
| }; |
| |
| struct ibv_exp_odp_caps { |
| uint64_t general_odp_caps; /* Mask with enum ibv_odp_general_cap_bits */ |
| struct { |
| uint32_t rc_odp_caps; /* Mask with enum ibv_odp_tranport_cap_bits to know which operations are supported. */ |
| uint32_t uc_odp_caps; /* Mask with enum ibv_odp_tranport_cap_bits to know which operations are supported. */ |
| uint32_t ud_odp_caps; /* Mask with enum ibv_odp_tranport_cap_bits to know which operations are supported. */ |
| } per_transport_caps; |
| }; |
| |
| enum ibv_odp_general_cap_bits { |
| IBV_ODP_SUPPORT = 1 << 0, /* On demand paging is supported */ |
| }; |
| |
| enum ibv_odp_transport_cap_bits { |
| IBV_ODP_SUPPORT_SEND = 1 << 0, /* Send operations support on-demand paging */ |
| IBV_ODP_SUPPORT_RECV = 1 << 1, /* Receive operations support on-demand paging */ |
| IBV_ODP_SUPPORT_WRITE = 1 << 2, /* RDMA-Write operations support on-demand paging */ |
| IBV_ODP_SUPPORT_READ = 1 << 3, /* RDMA-Read operations support on-demand paging */ |
| IBV_ODP_SUPPORT_ATOMIC = 1 << 4, /* RDMA-Atomic operations support on-demand paging */ |
| }; |
| |
| .fi |
| .SH "RETURN VALUE" |
| .B ibv_query_device_ex() |
| returns 0 on success, or the value of errno on failure (which indicates the failure reason). |
| .SH "NOTES" |
| The maximum values returned by this function are the upper limits of |
| supported resources by the device. However, it may not be possible to |
| use these maximum values, since the actual number of any resource that |
| can be created may be limited by the machine configuration, the amount |
| of host memory, user permissions, and the amount of resources already |
| in use by other users/processes. |
| .SH "SEE ALSO" |
| .BR ibv_query_device (3), |
| .BR ibv_open_device (3), |
| .BR ibv_query_port (3), |
| .BR ibv_query_pkey (3), |
| .BR ibv_query_gid (3) |
| .SH "AUTHORS" |
| .TP |
| Majd Dibbiny <majd@mellanox.com> |