UMAD_RECV(3) OpenIB Programmer´s Manual UMAD_RECV(3)NAMEumad_recv - receive umad
SYNOPSIS
#include <infiniband/umad.h>
int umad_recv(int portid, void *umad, int *length, int timeout_ms);
DESCRIPTIONumad_recv() waits up to timeout_ms milliseconds for a packet to be
received from the port specified by portid. The packet is copied to
the umad buffer if there is sufficient room and the received length is
indicated. If the buffer is not large enough, the size of the umad
buffer needed is returned in length. A negative timeout_ms makes the
function block until a packet is received. A timeout_ms parameter of
zero indicates a non blocking read.
Note length is a pointer to the length of the data portion of the umad
buffer. This means that umad must point to a buffer at least
umad_size() + *length bytes long.
Note also that *length must be >= 256 bytes.
RETURN VALUEumad_recv() returns non negative receiving agentid on success, and a
negative value on error as follows:
-EINVAL invalid port handle or agentid or *length is less than
the minimum supported
-EIO receive operation failed
-EWOULDBLOCK non blocking read can't be fulfilled
SEE ALSOumad_poll(3)AUTHOR
Hal Rosenstock <halr@voltaire.com>
OpenIB May 11, 2007 UMAD_RECV(3)