blob: 5097be0853461e5ba67745fd6c7602402eee3156 [file] [log] [blame]
.\" -*- 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>