*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->Tru64 Unix man pages -> t_sndvudata (3)              
Title
Content
Arch
Section
 

t_sndvudata(3)

Contents


NAME    [Toc]    [Back]

       t_sndvudata  -  Send a data unit from one or more non-contiguous
 buffers

SYNOPSIS    [Toc]    [Back]

       #include <xti.h>

       int t_sndvudata(
               int fd,
               struct t_unitdata *unitdata,
               struct t_iovec *iov,
               unsigned int iovcount );

LIBRARY    [Toc]    [Back]

       XTI Library (libxti.a)

STANDARDS    [Toc]    [Back]

       Interfaces documented on this reference  page  conform  to
       industry standards as follows:

       t_sndvudata():  XNS5.0

       Refer to the standards(5) reference page for more information
 about industry standards and associated tags.

PARAMETERS    [Toc]    [Back]

       The following table summarizes the relevance of input  and
       output   parameters  before  and  after  t_sndvudata()  is
       called:

       ---------------------------------------------------
       Parameters                Before Call   After Call
       ---------------------------------------------------
       fd                        y             n
       unitdata->addr.maxlen     n             e
       unitdata->addr.len        y             e
       unitdata->addr.buf        y(y)          e(e)
       unitdata->opt.maxlen      n             e
       unitdata->opt.len         y             e
       unitdata->opt.buf         o(o)          e(e)
       unitdata->udata.maxlen    n             e
       unitdata->udata.len       n             e
       unitdata->udata.buf       n             e
       iov[0].iov_base           y(y)          e(e)
       iov[0].iov_len            y             e
        ...
       iov[iov-                  y(y)          e(e)
       count-1].iov_base
       iov[iovcount-1].iov_len   y             e
       iovcount                  y             n
       ---------------------------------------------------

       Notes  to Table: This is a meaningful parameter.  The content
 of the object pointed to by y is meaningful.  This is
       a  meaningful  but optional parameter.  The content of the
       object pointed to by o is meaningful.  The parameter value
       after  the  call is the same as before the call.  The content
 of the object pointed to by e is the same  as  before
       the call.  This is not a meaningful parameter.  Identifies
       the local transport endpoint through which data  is  sent.
       Points  to  a  type t_unitdata structure used to specify a
       data  unit  being  sent  through  the  transport  endpoint
       specified  by  the fd parameter.  The t_unitdata structure
       has the following members: References a buffer for  protocol
 address information of the remote transport user.  The
       type netbuf structure referenced by this member is defined
       in  the  xti.h include file and has the following members:
       Specifies a maximum byte length of the data buffer.  Specifies
  the  actual  byte length of the data written to the
       buffer.   Points  to  the  buffer  location.    Identifies
       options  that the user wants associated with this request.
       The user may choose not to specify what  protocol  options
       are  associated with the transfer by setting the len field
       of opt to zero. In this case, the provider may use default
       options.   Specifies the user data unit that is being sent
       to the remote transport user. (Not  used)  Points  to  the
       data  to  be  sent.  Contains the number of non-contiguous
       udata buffers, which is limited to T_IOV_MAX (16).

DESCRIPTION    [Toc]    [Back]

       The t_sndvudata() function is an XTI  connectionless  service


       The  data  to  be  sent  is  identified  by iov[0] through
       iov[iovcount-1].

                                  Note

       The limit on the total number of bytes  available  in  all
       buffers  passed  (that is, iov(0).iov_len + ... + iov(iovcount-1).iov_len)
 may  be  constrained  by  implementation
       limits.   If  no other constraint applies, it will be limited
 by [INT_MAX].  In practice, the availability of  memory
 to an application is likely to impose a lower limit on
       the amount of data that can  be  sent  or  received  using
       scatter/gather functions.

       By default, t_sndvudata() operates in synchronous mode and
       waits if flow control restrictions prevent the  data  from
       being accepted by the local transport provider at the time
       of the call.  However, if O_NONBLOCK is set (via  t_open()
       or  fcntl()),  t_sndvudata() executes in asynchronous mode
       and fails under such conditions.  The process can  arrange
       to be notified of the clearance of a flow control restriction
 via either t_look() or the EM interface.

       If the amount of data specified in iov[0] through iov[iovcount-1]
  exceeds  the  TSDU  size as returned in the tsdu
       field of the info argument of t_open() or t_getinfo(),  or
       is zero and sending of zero octets is not supported by the
       underlying transport service, a [TBADDATA] error is generated.
   If  t_sndvudata() is called before the destination
       user has activated its transport endpoint (see t_bind(3)),
       the data unit may be discarded.

       If  the  transport  provider cannot immediately detect the
       conditions  that  cause  the  [TBADDADDR]  and   [TBADOPT]
       errors,  these  errors  will  alternatively be returned by
       t_rcvuderr().  An application must therefore  be  prepared
       to receive these errors in both of these ways.








ERRORS    [Toc]    [Back]

       If the t_sndvudata() function fails, t_errno may be set to
       one  of  the  following  values:  The  specified  protocol
       address  was  in  an incorrect format or contained illegal
       information.  An attempt to send once, specifying  a  TSDU
       (ETSDU)  greater  than that specified by the current value
       in the info argument, or an attempt to send zero-byte TSDU
       (ETSDU) is not supported by the provider.

              The  iovcount  parameter is greater than T_IOV_MAX.
              File descriptor (fd) is not a valid transport  endpoint.
   The specified options were in an incorrect
              format or  contained  illegal  information.   Asynchronous
  mode  is indicated because O_NONBLOCK was
              set, but the transport provider cannot  accept  the
              data  because  of  flow-control  restrictions.   An
              asynchronous event occurred on this transport  endpoint
 and requires immediate attention.  This function
 is not supported by the  underlying  transport
              provider.   The  communications endpoint referenced
              by fd is not in a valid state in which  a  call  to
              this  function.   A  communication problem has been
              detected between XTI and the transport provider for
              which   there   is  no  other  suitable  XTI  error
              (t_errno).  A system error occurred  during  execution
 of this function.

VALID STATES    [Toc]    [Back]

       The  t_sndvudata()  function  can  be  called  only in the
       T_IDLE transport provider state.

RETURN VALUE    [Toc]    [Back]

       Upon successful completion, t_sndvudata() returns a  value
       of  0 (zero). Otherwise, it returns a value of -1 and sets
       t_errno to indicate the error.

SEE ALSO    [Toc]    [Back]

      
      
       Functions: fcntl(2), t_alloc(3), t_open(3), t_rcvudata(3),
       t_rcvuderr(3), t_rcvvudata(3), t_sndudata(3).

       Standards: standards(5)

       Network Programmer's Guide



                                                   t_sndvudata(3)
[ Back ]
 Similar pages
Name OS Title
t_sndudata IRIX send a data unit
t_sndudata HP-UX send a data unit
t_sndudata Tru64 Send a data unit
t_rcvudata Tru64 Receive a data unit
t_rcvudata IRIX receive a data unit
t_rcvuderr HP-UX receive a unit data error indication
t_rcvuderr IRIX receive a unit data error indication
t_rcvuderr Tru64 Receive a unit data error indication
t_rcvudata HP-UX receive a data unit from remote transport provider user
readv Linux read or write data into multiple buffers
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service