Current File : //usr/share/man/man3/ibv_poll_cq.3
'\" te
.\" -*- nroff -*-
.\"
.TH IBV_POLL_CQ 3 2006-10-31 libibverbs "Libibverbs Programmer's Manual"
.SH "NAME"
ibv_poll_cq \- poll a completion queue (CQ)
.SH "SYNOPSIS"
.nf
.B #include <infiniband/verbs.h>
.sp
.BI "int ibv_poll_cq(struct ibv_cq " "*cq" ", int " "num_entries" ,
.BI "                struct ibv_wc " "*wc" );
.fi
.SH "DESCRIPTION"
.B ibv_poll_cq()
polls the CQ
.I cq
for work completions and returns the first
.I num_entries
(or all available completions if the CQ contains fewer than this number) in the array
.I wc\fR.
The argument
.I wc
is a pointer to an array of ibv_wc structs, as defined in <infiniband/verbs.h>.
.PP
.nf
struct ibv_wc {
.in +8
uint64_t                wr_id;          /* ID of the completed Work Request (WR) */
enum ibv_wc_status      status;         /* Status of the operation */
enum ibv_wc_opcode      opcode;         /* Operation type specified in the completed WR */
uint32_t                vendor_err;     /* Vendor error syndrome */
uint32_t                byte_len;       /* Number of bytes transferred */
uint32_t                imm_data;       /* Immediate data (in network byte order) */
uint32_t                qp_num;         /* Local QP number of completed WR */
uint32_t                src_qp;         /* Source QP number (remote QP number) of completed WR (valid only for UD QPs) */
int                     wc_flags;       /* Flags of the completed WR */
uint16_t                pkey_index;     /* P_Key index (valid only for GSI QPs) */
uint16_t                slid;           /* Source LID */
uint8_t                 sl;             /* Service Level */
uint8_t                 dlid_path_bits; /* DLID path bits (not applicable for multicast messages) */
.in -8
};
.sp
.fi
.PP
The attribute wc_flags describes the properties of the work completion. 
It is either 0 or the bitwise OR of one or more of the following flags:
.PP
.TP
.B IBV_WC_GRH \fR      GRH is present (valid only for UD QPs)
.TP
.B IBV_WC_WITH_IMM \fR Immediate data value is valid
.PP
Not all
.I wc
attributes are always valid. If the completion status is other than
.B IBV_WC_SUCCESS\fR,
only the following attributes are valid: wr_id, status, qp_num, and vendor_err.
.SH "RETURN VALUE"
On success, 
.B ibv_poll_cq()
returns a non-negative value equal to the number of completions
found.  On failure, a negative value is returned.

.\" Oracle has added the ARC stability level to this manual page
.SH ATTRIBUTES
See
.BR attributes (5)
for descriptions of the following attributes:
.sp
.TS
box;
cbp-1 | cbp-1
l | l .
ATTRIBUTE TYPE	ATTRIBUTE VALUE 
=
Availability	network/open-fabrics
=
Stability	Volatile
.TE 
.PP
.SH "NOTES"
.PP
Each polled completion is removed from the CQ and cannot be returned to it.
.PP
The user should consume work completions at a rate that prevents CQ
overrun from occurrence.  In case of a CQ overrun, the async event
.B IBV_EVENT_CQ_ERR
will be triggered, and the CQ cannot be used.
.SH "SEE ALSO"
.BR ibv_post_send (3),
.BR ibv_post_recv (3)
.SH "AUTHORS"
.TP
Dotan Barak <dotanb@mellanox.co.il>


.\" Oracle has added source availability information to this manual page
This software was built from source available at https://java.net/projects/solaris-userland.  The original community source was downloaded from  ['http://download.oracle.com/otn-pub/oss/networking/libsif-1.0.tar.gz', 'http://www.openfabrics.org/downloads/ibutils/ibutils-1.5.7.tar.gz', 'http://www.openfabrics.org/downloads/libibverbs/libibverbs-1.1.4-1.22.g7257cd3.tar.gz', 'http://www.openfabrics.org/downloads/libmlx4/libmlx4-1.0.1-1.18.gb810a27.tar.gz', 'http://www.openfabrics.org/downloads/libsdp/libsdp-1.1.108-0.15.gd7fdb72.tar.gz', 'http://www.openfabrics.org/downloads/management/infiniband-diags-1.5.8.tar.gz', 'http://www.openfabrics.org/downloads/management/libibmad-1.3.7.tar.gz', 'http://www.openfabrics.org/downloads/management/libibumad-1.3.7.tar.gz', 'http://www.openfabrics.org/downloads/management/opensm-3.3.9.tar.gz', 'http://www.openfabrics.org/downloads/perftest/perftest-1.3.0-0.42.gf350d3d.tar.gz', 'http://www.openfabrics.org/downloads/qperf/qperf-0.4.6-0.1.gb81434e.tar.gz', 'http://www.openfabrics.org/downloads/rdmacm/librdmacm-1.0.14.1.tar.gz', 'http://www.openfabrics.org/downloads/rds-tools/rds-tools-2.0.4.tar.gz']

Further information about this software can be found on the open source community website at http://www.openfabrics.org/.