- set low watermark on shared receive queue
cc [ flag… ] file… -ldat [ library… ] #include <dat/udat.h> DAT_RETURN dat_srq_set_lw ( IN DAT_SRQ_HANDLE srq_handle, IN DAT_COUNT low_watermark )
A handle for an instance of a Shared Receive Queue.
The low watermark for the number of Recv buffers on SRQ.
The dat_srq_set_lw() function sets the low watermark value for the SRQ and arms the SRQ for generating an asynchronous event for the low watermark. An asynchronous event will be generated when the number of buffers on the SRQ is below the low watermark for the first time. This can occur during the current call or when an associated EP takes a buffer from the SRQ.
The asynchronous event will be generated only once per setting of the low watermark. Once an event is generated, no new asynchronous events for the number of buffers inthe SRQ below the specified value will be generated until the SRQ is again set for the Low Watermark. If the Consumer is again interested in the event, the Consumer should set the low watermark again.
The operation was successful.
The srq_handle argument is an invalid DAT handle.
Invalid parameter; the value of low_watermark is exceeds the value of max_recv_dtos.
The requested Model was not supported by the Provider. The Provider does not support SRQ Low Watermark.
Upon receiving the asynchronous event for the SRQ low watermark, the Consumer can replenish Recv buffers on the SRQ or take any other action that is appropriate.
Regardless of whether an asynchronous event for the low watermark has been generated, this operation will set the generation of an asynchronous event with the Consumer-provided low watermark value. If the new low watermark value is below the current number of free Receive DTOs posted to the SRQ, an asynchronous event will be generated immediately. Otherwise the old low watermark value is simply replaced with the new one.
See attributes(5) for descriptions of the following attributes: