noble (3) rpma_cq_get_wc.3.gz

Provided by: librpma-dev_1.3.0-2build2_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/