Provided by: librpma-dev_1.0.0-1_amd64 bug

NAME

       rpma_cq_get_wc - receive one or more completions

SYNOPSIS

             #include <librpma.h>

             struct rpma_cq;
             struct ibv_wc;

             int rpma_cq_get_wc(struct rpma_cq *cq, int num_entries, struct ibv_wc *wc,
                             int *num_entries_got);

DESCRIPTION

       rpma_cq_get_wc()  polls  the  CQ for completions and returns the first num_entries (or all
       available completions if the CQ contains fewer than this number) in the wc  array  exactly
       like  ibv_poll_cq(3)  does. The argument wc is a pointer to an array of ibv_wc structs, as
       defined in <infiniband/verbs.h>.  The  number  of  got  completions  is  returned  in  the
       num_entries_got  argument  if it is not NULL. It can be NULL only if num_entries equals 1.
       All  operations  generate  completions  on  error.  The   operations   posted   with   the
       RPMA_F_COMPLETION_ALWAYS flag also generate completions on success.

       Note  that  if  the  provided  cq is the main CQ and the receive CQ is present on the same
       connection this function won't return IBV_WC_RECV  and  IBV_WC_RECV_RDMA_WITH_IMM  at  any
       time.  The  receive CQ has to be used instead to collect these completions. Please see the
       rpma_conn_get_rcq(3) for details about the receive CQ.

RETURN VALUE

       The rpma_cq_get_wc() function returns 0 on success or a negative error code on failure. On
       success,  it  saves  all  got completions and their number into the wc and num_entries_got
       respectively. If the status of a completion is not equal to IBV_WC_SUCCESS then  only  the
       following attributes are valid: wr_id, status, qp_num, and vendor_err.

ERRORS

       rpma_cq_get_wc() can fail with the following errors:

       •  RPMA_E_INVAL  -  num_entries < 1, cq or wc is NULL, num_entries > 1 and num_entries_got
          is NULL

       •  RPMA_E_NO_COMPLETION - no completions available

       •  RPMA_E_PROVIDER - ibv_poll_cq(3) failed with a provider error

       •  RPMA_E_UNKNOWN - ibv_poll_cq(3) failed but no provider error is available

SEE ALSO

       rpma_conn_get_cq(3),   rpma_conn_get_rcq(3),    rpma_conn_req_recv(3),    rpma_cq_wait(3),
       rpma_cq_get_fd(3),     rpma_flush(3),     rpma_read(3),     rpma_recv(3),    rpma_send(3),
       rpma_send_with_imm(3),   rpma_write(3),   rpma_atomic_write(3),    rpma_write_with_imm(3),
       librpma(7) and https://pmem.io/rpma/