dat_ep_post_recv man page on SmartOS

Man page or keyword search:  
man Server   16655 pages
apropos Keyword Search (all sections)
Output format
SmartOS logo
[printable version]

DAT_EP_POST_RECV(3DAT)					DAT_EP_POST_RECV(3DAT)

NAME
       dat_ep_post_recv - receive data over the connection of the Endpoint

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

       DAT_RETURN
	   dat_ep_post_recv (
	   IN	 DAT_EP_HANDLE	      ep_handle,
	   IN	 DAT_COUNT	      num_segments,
	   IN	 DAT_LMR_TRIPLET      *local_iov,
	   IN	 DAT_DTO_COOKIE	      user_cookie,
	   IN	 DAT_COMPLETION_FLAGS completion_flags
	   )

PARAMETERS
       ep_handle
			   Handle for an instance of the Endpoint.

       num_segments
			   Number  of  lmr_triplets in local_iov. Can be 0 for
			   receiving a 0 size message.

       local_iov
			   I/O Vector that specifies the local	buffer	to  be
			   filled. Can be NULL for receiving a 0 size message.

       user_cookie:
			   User-provided  cookie  that is returned to the Con‐
			   sumer at the completion of the Receive DTO. Can  be
			   NULL.

       completion_flags
			   Flags  for  posted Receive. The default DAT_COMPLE‐
			   TION_DEFAULT_FLAG is 0x00. Other values are as fol‐
			   lows:

			   Notification of Completion
							 DAT_COMPLE‐
							 TION_UNSIGNALLED_FLAG

							 0x04
								 Non-notifica‐
								 tion  comple‐
								 tion.	 Local
								 Endpoint must
								 be configured
								 for
								 Unsignaled
								 CompletionNo‐
								 tification
								 Suppression.

DESCRIPTION
       The  dat_ep_post_recv()	function requests the receive of the data over
       the connection of the ep_handle Endpoint of the incoming	 message  into
       the local_iov.

       The  num_segments  parameter  specifies	the  number of segments in the
       local_iov. The local_iov segments are filled in the  I/O	 Vector	 order
       until  the whole message is received. This ensures that all the "front"
       segments of the local_iov I/O Vector are completely  filled,  only  one
       segment is partially filled, if needed, and all segments that follow it
       are not filled at all.

       The user_cookie 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 requirement on  the	Consumer  that
       the value user_cookie should be unique for each DTO. The user_cookie is
       returned to the	Consumer  in  the  Completion  event  for  the	posted
       Receive.

       The  completion of the posted Receive is reported to the Consumer asyn‐
       chronously through a DTO Completion event based on the configuration of
       the  connection	for  Solicited Wait and the specified completion_flags
       value  for   the	  matching   Send.   The   value   of	DAT_COMPLETION
       _UNSIGNALLED_FLAG  is  only valid if the Endpoint Recv Completion Flags
       DAT_COMPLETION_UNSIGNALLED_FLAG.	 Otherwise,  DAT_INVALID_PARAMETER  is
       returned.

       A  Consumer  must not modify the local_iov or its content until the DTO
       is completed. When a Consumer does not adhere to this rule, the	behav‐
       ior  of	the  Provider  and  the	 underlying  Transport is not defined.
       Providers that allow Consumers to get ownership of  the	local_iov  but
       not  the	 memory it specified back after the dat_ep_post_recv() returns
       should document this behavior and also specify its support in  Provider
       attributes. This behavior allows Consumer full control of the local_iov
       content after dat_ep_post_recv() returns. Because this behavior is  not
       guaranteed by all Providers, portable Consumers should not rely on this
       behavior. Consumers shouldnot rely on the  Provider  copying  local_iov
       information.

       The DAT_SUCCESS return of the dat_ep_post_recv() is at least the equiv‐
       alent of posting a Receive  operation  directly	by  native  Transport.
       Providers    should    avoid    resource	   allocation	as   part   of
       dat_ep_post_recv() to ensure that this  operation  is  nonblocking  and
       thread safe for an UpCall.

       If  the	size  of  an  incoming	message is larger than the size of the
       local_iov, the reported status of the posted Receive DTO in the	corre‐
       sponding	 Completion DTO event is DAT_DTO_LENGTH_ERROR. If the reported
       status of the Completion DTO event corresponding to the posted  Receive
       DTO  is	not  DAT_DTO_SUCCESS,  the  content  of	 the  local_iov is not
       defined.

       The operation is valid for all states of the Endpoint. The actual  data
       transfer	  does	 not   take   place  until  the	 Endpoint  is  in  the
       DAT_EP_STATE_CONNECTED  state.  The  operation  on  the	 Endpoint   in
       DAT_EP_STATE_DISCONNECTED is allowed. If the operation returns success‐
       fully, the posted Recv is immediately flushed to recv_evd_handle.

RETURN VALUES
       DAT_SUCCESS
				     The operation was successful.

       DAT_INSUFFICIENT_RESOURCES
				     The operation failed due to resource lim‐
				     itations.

       DAT_INVALID_PARAMETER
				     Invalid  parameter.  For  example, one of
				     the IOV segments pointed to a memory out‐
				     side its LMR.

       DAT_INVALID_HANDLE
				     The ep_handle parameter is invalid.

       DAT_PROTECTION_VIOLATION
				     Protection	 violation for local or remote
				     memory access. Protection	Zone  mismatch
				     between  an  LMR  of one of the local_iov
				     segments and the local Endpoint.

       DAT_PRIVILEGES_VIOLATION
				     Privileges violation for local or	remote
				     memory  access.  One  of the LMRs used in
				     local_iov was either invalid or  did  not
				     have the local read privileges.

USAGE
       For  best  Recv	operation  performance, the Consumer should align each
       buffer segment of local_iov to the Optimal Buffer  Alignment  attribute
       of  the	Provider. For portable applications, the Consumer should align
       each buffer segment of local_iov to the DAT_OPTIMAL_ALIGNMENT.

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

       ┌────────────────────┬───────────────────────────┐
       │  ATTRIBUTE TYPE    │	   ATTRIBUTE VALUE	│
       ├────────────────────┼───────────────────────────┤
       │Interface Stability │ Standard: uDAPL, 1.1, 1.2 │
       ├────────────────────┼───────────────────────────┤
       │MT-Level	    │ Unsafe			│
       └────────────────────┴───────────────────────────┘

SEE ALSO
       libdat(3LIB), attributes(5)

				 Jul 16, 2004		DAT_EP_POST_RECV(3DAT)
[top]

List of man pages available for SmartOS

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net