DAT_SRQ_QUERY(3DAT) Direct Access Transport Library Functions


NAME


dat_srq_query - provide parameters of the shared receive queue

SYNOPSIS


cc [ flag... ] file... -ldat [ library... ]
#include <dat/udat.h>

DAT_RETURN
dat_srq_query (
IN DAT_SRQ_HANDLE srq_handle,
IN DAT_SRQ_PARAM_MASK srq_param_mask,
OUT DAT_SRQ_PARAM *srq_param
)


PARAMETERS


srq_handle
A handle for an instance of the SRQ.


srq_param_mask
The mask for SRQ parameters.


srq_param
A pointer to a Consumer-allocated structure that the
Provider fills with SRQ parameters.


DESCRIPTION


The dat_srq_query() function provides to the Consumer SRQ parameters. The
Consumer passes a pointer to the Consumer-allocated structures for SRQ
parameters that the Provider fills.


The srq_param_mask argument allows Consumers to specify which parameters
to query. The Provider returns values for the requested srq_param_mask
parameters. The Provider can return values for any other parameters.


In addition to the elements in SRQ attribute, dat_srq_query() provides
additional information in the srq_param structure if Consumer requests it
with srq_param_mask settings. The two that are related to entry counts on
SRQ are the number of Receive buffers (available_dto_count) available for
EPs to dequeue and the number of occupied SRQ entries
(outstanding_dto_count) not available for new Recv buffer postings.

RETURN VALUES


DAT_SUCCESS
The operation was successful.


DAT_INVALID_PARAMETER
The srq_param_mask argument is invalid.


DAT_INVALID_HANDLE
The srq_handle argument is an invalid DAT
handle.


USAGE


The Provider might not be able to provide the number of outstanding Recv
of SRQ or available Recvs of SRQ. The Provider attribute indicates if the
Provider does not support the query for one or these values. Even when
the Provider supports the query for one or both of these values, it might
not be able to provide this value at this moment. In either case, the
return value for the attribute that cannot be provided will be
DAT_VALUE_UNKNOWN.


Example: Consumer created SRQ with 10 entries and associated 1 EP with
it. 3 Recv buffers have been posted to it. The query will report:

max_recv_dtos=10,
available_dto_count=3,
outstanding_dto_count=3.


After a Send message arrival the query will report:

max_recv_dtos=10,
available_dto_count=2,
outstanding_dto_count=3.


After Consumer dequeues Recv completion the query will report:

max_recv_dtos=10,
available_dto_count=2,
outstanding_dto_count=2.


In general, each EP associated with SRQ can have multiple buffers in
progress of receiving messages as well completed Recv on EVDs. The
watermark setting helps to control how many Recv buffers posted to SRQ an
Endpoint can own.


If the Provider cannot support the query for the number of outstanding
Recv of SRQ or available Recvs of SRQ, the value return for that
attribute should be DAT_VALUE_UNKNOWN.

ATTRIBUTES


See attributes(5) for descriptions of the following attributes:


+--------------------+----------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+----------------------+
|Interface Stability | Standard: uDAPL, 1.2 |
+--------------------+----------------------+
|MT-Level | Unsafe |
+--------------------+----------------------+

SEE ALSO


dat_srq_create(3DAT), dat_srq_free(3DAT), dat_srq_post_recv(3DAT),
dat_srq_resize(3DAT), dat_srq_set_lw(3DAT), libdat(3LIB), attributes(5)


July 16, 2004 DAT_SRQ_QUERY(3DAT)