Scroll to navigation

rpma_conn_completion_get(3) RPMA Programmer's Manual rpma_conn_completion_get(3)

NAME

rpma_conn_completion_get - receive a completion of an operation

SYNOPSIS

      #include <librpma.h>
      struct rpma_conn;
      struct rpma_completion;
      enum rpma_op {

RPMA_OP_READ,

RPMA_OP_WRITE,

RPMA_OP_FLUSH,

RPMA_OP_SEND,

RPMA_OP_RECV,

};

int rpma_conn_completion_get(struct rpma_conn *conn, struct rpma_completion *cmpl);

DESCRIPTION

rpma_conn_completion_get() receives the next available completion of an already posted operation. All operations generate completion on error. The operations posted with the **RPMA_F_COMPLETION_ALWAYS** flag also generate a completion on success. The following operations are available:
  • RPMA_OP_READ - RMA read operation
  • RPMA_OP_WRITE - RMA write operation
  • RPMA_OP_FLUSH - RMA flush operation
  • RPMA_OP_SEND - messaging send operation
  • RPMA_OP_RECV - messaging receive operation

RETURN VALUE

The rpma_conn_completion_get() function returns 0 on success or a negative error code on failure.

ERRORS

rpma_conn_completion_get() can fail with the following errors:
  • RPMA_E_INVAL - conn or cmpl 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
  • RPMA_E_NOSUPP - not supported opcode

SEE ALSO

rpma_conn_get_completion_fd(3), rpma_conn_completion_wait(3), rpma_conn_req_connect(3), rpma_flush(3), rpma_read(3), rpma_recv(3), rpma_send(3), rpma_write(3), rpma_write_atomic(3), librpma(7) and https://pmem.io/rpma/
21 October 2020 RPMA