DAT_LMR_FREE(3DAT) Direct Access Transport Library Functions DAT_LMR_FREE(3DAT)

dat_lmr_free - destroy an instance of the LMR

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

dat_lmr_free (
IN DAT_LMR_HANDLE lmr_handle
)

lmr_handle:

Handle for an instance of LMR to be destroyed.

The dat_lmr_free() function destroys an instance of the LMR. The LMR cannot be destroyed if it is in use by an RMR. The operation does not deallocate the memory region or unpin memory on a host.

Use of the handle of the destroyed LMR in any subsequent operation except for dat_lmr_free() fails. Any DTO operation that uses the destroyed LMR after the dat_lmr_free() is completed shall fail and report a protection violation. The use of rmr_context of the destroyed LMR by a remote peer for an RDMA DTO results in an error and broken connection on which it was used. Any remote RDMA operation that uses the destroyed LMR rmr_context, whose Transport-specific request arrived to the local host after the dat_lmr_free() has completed, fails and reports a protection violation. Remote RDMA operation that uses the destroyed LMR rmr_context, whose Transport-specific request arrived to the local host prior to the dat_lmr_free() returns, might or might not complete successfully. If it fails, DAT_DTO_ERR_REMOTE_ACCESS is reported in DAT_DTO_COMPLETION_STATUS for the remote RDMA DTO and the connection is broken.

DAT_SUCCESS

The operation was successful.

DAT_INVALID_HANDLE

The lmr_handle parameter is invalid.

DAT_INVALID_STATE

Parameter in an invalid state; LMR is in use by an RMR instance.

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

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

libdat(3LIB), attributes(7)

July 16, 2004 OmniOS