MyWebUniversity.com Home Page
 



OpenSolaris man pages main menu


Networking Services Library Functions           tsndvudata(3NSL)



NAME
     tsndvudata - send a data unit from one or more  noncontigu-
     ous buffers

SYNOPSIS
     #include 




     int tsndvudata(int fd, struct tunitdata *unitdata, struct tiovec  *iov,
          unsigned int iovcount);


DESCRIPTION
     This function is used in connectionless mode to send a  data
     unit to another transport user.  The argument  fd identifies
     the local transport endpoint  through  which  data  will  be
     sent,  iovcount contains the number of non-contiguous  udata
     buffers and is limited to  an  implementation-defined  value
     given  by   TIOVMAX  which  is  at least 16, and  unitdata
     points to a  tunitdata structure containing  the  following
     members:

       struct netbuf addr;
       struct netbuf opt;
       struct netbuf udata;



     If the limit on  iovcount is exceeded,  the  function  fails
     with TBADATA.


     In  unitdata, addr specifies the  protocol  address  of  the
     destination  user, and  opt identifies options that the user
     wants associated with this request. The  udata field is  not
     used.   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.


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


     Note that the limit on the total number of  bytes  available
     in all buffers passed:

       iov(0).iovlen ] . . ] iov(iovcount-1).iovlen




SunOS 5.11          Last change: 23 Aug 2001                    1






Networking Services Library Functions           tsndvudata(3NSL)



     may be constrained by implementation  limits.  If  no  other
     constraint  applies, it will be limited by INTMAX. In prac-
     tice, 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,  tsndvudata() operates in synchronous mode  and
     may  wait if flow control restrictions prevent the data from
     being accepted by the local transport provider at  the  time
     the  call  is made.  However, if  ONONBLOCK is set by means
     of  topen(3NSL) or   fcntl(2),  tsndvudata()  executes  in
     asynchronous  mode and will fail under such conditions.  The
     process can arrange to be notified of  the  clearance  of  a
     flow control restriction by means of either  tlook(3NSL) or
     the EM interface.


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


     If it is not possible for the transport provider to  immedi-
     ately  detect the conditions that cause the errors TBADADR
     and TBADOPT, these errors will alternatively be returned  by
     trcvuderr(3NSL).  An application must therefore be prepared
     to receive these errors in both of these ways.

RETURN VALUES
     Upon successful completion, a value of  0 is returned.  Oth-
     erwise,  a  value  of  -1 is returned and  terrno is set to
     indicate an error.

VALID STATES
     TIDLE.

ERORS
     On failure,  terrno is set to one of the following:

     TBADADR       The specified  protocol  address  was  in  an
                    incorrect  format or contained illegal infor-
                    mation.


     TBADATA       Illegal amount of data.




SunOS 5.11          Last change: 23 Aug 2001                    2






Networking Services Library Functions           tsndvudata(3NSL)



                        o    A single send was attempted specify-
                             ing  a TSDU greater than that speci-
                             fied in the info argument, or a send
                             of a zero byte TSDU is not supported
                             by the provider.

                        o    iovcount is greater than  TIOVMAX.


     TBADF          The specified file descriptor does not  refer
                    to a transport endpoint.


     TBADOPT        The specified options were  in  an  incorrect
                    format or contained illegal information.


     TFLOW          ONONBLOCK i was set, but  the  flow  control
                    mechanism  prevented  the  transport provider
                    from accepting any data at this time.


     TLOK          An asynchronous event has  occurred  on  this
                    transport endpoint.


     TNOTSUPORT    This function is not supported by the  under-
                    lying transport provider.


     TOUTSTATE      The communications endpoint referenced by  fd
                    is  not  in one of the states in which a call
                    to this function is valid.


     TPROTO         This error  indicates  that  a  communication
                    problem has been detected between XTI and the
                    transport provider  for  which  there  is  no
                    other suitable XTI error (terrno).


     TSYSER        A system error has occurred during  execution
                    of this function.


TLI COMPATIBILITY
     In the TLI interface definition, no counterpart of this rou-
     tine was defined.

ATRIBUTES
     See attributes(5)  for descriptions of the following  attri-
     butes:



SunOS 5.11          Last change: 23 Aug 2001                    3






Networking Services Library Functions           tsndvudata(3NSL)



     
           ATRIBUTE TYPE               ATRIBUTE VALUE       
    
     MT Level                     Safe                        
    


SEE ALSO
     fcntl(2),  talloc(3NSL),  topen(3NSL),   trcvudata(3NSL),
     trcvvudata(3NSL) trcvuderr(3NSL), tsndudata(3NSL), attri-
     butes(5)












































SunOS 5.11          Last change: 23 Aug 2001                    4



OpenSolaris man pages main menu

Contact us      |       About us      |       Term of use      |       Copyright © 2000-2010 MyWebUniversity.com ™