Direct Access Transport Library Functions
dateppostrdmawrite(3DAT)
NAME
dateppostrdmawrite - write all data to the remote data
buffer
SYNOPSIS
cc [ flag... ] file... -ldat [ library... ]
#include
DATRETURN
dateppostrdmaread (
IN DATEPHANDLE ephandle,
IN DATCOUNT numsegments,
IN DATLMRTRIPLET *localiov,
IN DATDTOCOKIE usercookie,
IN DATRMRTRIPLET *remotebuffer,
IN DATCOMPLETIONFLAGS completionflags
)
PARAMETERS
ephandle Handle for an instance of the Endpoint.
numsegments Number of lmrtriplets in localiov.
localiov I/O Vector that specifies the local
buffer from which the data is
transferred.
usercookie User-provided cookie that is returned to
the Consumer at the completion of the
RDMA Write.
remotebuffer A pointer to an RMR Triplet that speci-
fies the remote buffer from which the
data is read.
completionflags Flags for posted RDMA read. The default
DATCOMPLETIONDEFAULTFLAG is 0x00.
Other values are as follows:
Completion Suppression DATCOMPLETIONSUPRESFLAG
0x01 Suppress
suc-
cess-
ful
SunOS 5.11 Last change: 16 Jul 2004 1
Direct Access Transport Library Functions
dateppostrdmawrite(3DAT)
Com-
ple-
tion.
Notification of Completion DATCOMPLETIONUNSIGNALEDFLAG
0x04 Non-
notification
com-
ple-
tion.
Local
End-
point
must
be
con-
fig-
ured
for
Notif-
i-
ca-
tion
Suppres-
sion.
Barrier Fence DATCOMPLETIONBARIERFENCEFLAG
0x08 Request
for
Bar-
rier
Fence.
DESCRIPTION
The dateppostrdmawrite() function requests the transfer
of all the data specified by the localiov over the connec-
tion of the ephandle Endpoint into the remotebuffer.
The numsegments parameter specifies the number of segments
in the localiov. The localiov segments are traversed in
the I/O Vector order until all the data is transferred.
SunOS 5.11 Last change: 16 Jul 2004 2
Direct Access Transport Library Functions
dateppostrdmawrite(3DAT)
A Consumer must not modify the localiov or its content
until the DTO is completed. When a Consumer does not adhere
to this rule, the behavior of the Provider and the underly-
ing Transport is not defined. Providers that allow Consumers
to get ownership of the localiov but not the memory it
specifies back after the dateppostrdmawrite() returns
should document this behavior and also specify its support
in Provider attributes. This behavior allows Consumers full
control of the localiov after dateppostrdmawrite()
returns. Because this behavior is not guaranteed by all Pro-
viders, portable Consumers should not rely on this behavior.
Consumers should not rely on the Provider copying localiov
information.
The DATSUCES return of the dateppostrdmawrite() is at
least the equivalent of posting an RDMA Write operation
directly by native Transport. Providers should avoid
resource allocation as part of dateppostrdmawrite() to
ensure that this operation is nonblocking and thread safe
for an UpCall.
The completion of the posted RDMA Write is reported to the
Consumer asynchronously through a DTO Completion event based
on the specified completionflags value. The value of
DATCOMPLETIONUNSIGNALEDFLAG is only valid if the End-
point Request Completion Flags
DATCOMPLETIONUNSIGNALEDFLAG. Otherwise,
DATINVALIDPARAMETER is returned.
The usercookie allows Consumers to have unique identifiers
for each DTO. These identifiers are completely under user
control and are opaque to the Provider. There is no require-
ment on the Consumer that the value usercookie should be
unique for each DTO. The usercookie is returned to the Con-
sumer in the Completion event for the posted RDMA Write.
The operation is valid for the Endpoint in the
DATEPSTATECONECTED and DATEPSTATEDISCONECTED states.
If the operation returns successfully for the Endpoint in
the DATEPSTATEDISCONECTED state, the posted RDMA Write
is immediately flushed to requestevdhandle.
RETURN VALUES
DATSUCES The operation was successful.
SunOS 5.11 Last change: 16 Jul 2004 3
Direct Access Transport Library Functions
dateppostrdmawrite(3DAT)
DATINSUFICIENTRESOURCES The operation failed due to
resource limitations.
DATINVALIDPARAMETER Invalid parameter. For exam-
ple, one of the IOV segments
pointed to a memory outside
its LMR.
DATINVALIDHANDLE The ephandle parameter is
invalid.
DATINVALIDSTATE A parameter is in an invalid
state. Endpoint was not in the
DATEPSTATECONECTED or
DATEPSTATEDISCONECTED
state.
DATLENGTHEROR The size of the receiving
buffer is too small for send-
ing buffer data. The size of
the remote buffer is too small
for the data of the local
buffer.
DATPROTECTIONVIOLATION Protection violation for local
or remote memory access. Pro-
tection Zone mismatch between
either an LMR of one of the
localiov segments and the
local Endpoint or the
rmrcontext and the remote
Endpoint.
DATPRIVILEGESVIOLATION Privileges violation for local
or remote memory access.
Either one of the LMRs used in
localiov is invalid or does
not have the local read
privileges, or rmrcontext
does not have the remote write
privileges.
USAGE
SunOS 5.11 Last change: 16 Jul 2004 4
Direct Access Transport Library Functions
dateppostrdmawrite(3DAT)
For best RDMA Write operation performance, the Consumer
should align each buffer segment of localiov to the Optimal
Buffer Alignment attribute of the Provider. For portable
applications, the Consumer should align each buffer segment
of localiov to the DATOPTIMALALIGNMENT.
ATRIBUTES
See attributes(5) for descriptions of the following attri-
butes:
ATRIBUTE TYPE ATRIBUTE VALUE
Interface Stability Standard: uDAPL, 1.1, 1.2
MT-Level Unsafe
SEE ALSO
libdat(3LIB), attributes(5)
SunOS 5.11 Last change: 16 Jul 2004 5
Direct Access Transport Library Functions
dateppostrdmawrite(3DAT)
SunOS 5.11 Last change: 16 Jul 2004 6
|