t_sndudata man page on SmartOS

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

T_SNDUDATA(3NSL)					      T_SNDUDATA(3NSL)

NAME
       t_sndudata - send a data unit

SYNOPSIS
       #include <xti.h>

       int t_sndudata(int fd, const struct t_unitdata *unitdata);

DESCRIPTION
       This  routine  is part of the XTI interfaces which evolved from the TLI
       interfaces. XTI represents the future evolution	of  these  interfaces.
       However,	 TLI  interfaces are supported for compatibility. When using a
       TLI routine that has the same name as  an  XTI  routine,	 the  tiuser.h
       header  file must be used.  Refer to the	 TLI COMPATIBILITY section for
       a description of differences between the two interfaces.

       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,  and  unitdata	 points	 to  a
       t_unitdata structure containing the following members:

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

       In  unitdata,  addr  specifies  the protocol address of the destination
       user, opt identifies options that the user wants associated  with  this
       request,	 and  udata  specifies	the user data to be sent. 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 uses the option values currently set  for  the	communications
       endpoint.

       If  the	len  field of udata is zero, and sending of zero octets is not
       supported by the underlying transport service,  the  t_sndudata()  will
       return  -1 with t_errno set to TBADDATA.

       By  default,  t_sndudata() 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
       O_NONBLOCK is set by means of t_open(3NSL)  or  fcntl(2),  t_sndudata()
       will  execute in asynchronous mode and will fail under such conditions.
       The process can arrange to be notified of the clearance of a flow  con‐
       trol restriction by means of either t_look(3NSL) or the EM interface.

       If  the	amount	of  data  specified  in udata exceeds the TSDU size as
       returned in the tsdu field of the  info	argument  of  t_open(3NSL)  or
       t_getinfo(3NSL), a TBADDATA error will be generated. If t_sndudata() is
       called before the destination user has activated its transport endpoint
       (see t_bind(3NSL)), the data unit may be discarded.

       If  it is not possible for the transport provider to immediately detect
       the conditions that cause  the  errors  TBADDADDR  and  TBADOPT,	 these
       errors  will  alternatively  be	returned  by t_rcvuderr. Therefore, an
       application must be prepared to receive these errors in both  of	 these
       ways.

       If  the	call  is  interrupted,	t_sndudata() will return EINTR and the
       datagram will not be sent.

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

VALID STATES
       T_IDLE.

ERRORS
       On failure, t_errno is set to one of the following:

       TBADADDR
		      The  specified protocol address was in an incorrect for‐
		      mat or contained illegal information.

       TBADDATA
		      Illegal amount of data.  A  single  send	was  attempted
		      specifying  a  TSDU  greater  than that specified in the
		      info argument, or a send of a zero byte TSDU is not sup‐
		      ported by the provider.

       TBADF
		      The specified file descriptor does not refer to a trans‐
		      port endpoint.

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

       TFLOW
		      O_NONBLOCK  was set, but the flow control mechanism pre‐
		      vented the transport provider from accepting any data at
		      this time.

       TLOOK
		      An  asynchronous	event  has  occurred on this transport
		      endpoint.

       TNOTSUPPORT
		      This function is not supported by the underlying	trans‐
		      port 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 (t_errno).

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

TLI COMPATIBILITY
       The XTI and TLI interface definitions have common names but use differ‐
       ent  header files. This, and other semantic differences between the two
       interfaces are described in the subsections below.

   Interface Header
       The XTI interfaces use the header file, xti.h.  TLI  interfaces	should
       not use this header.  They should use the header:
	 #include <tiuser.h>

   Error Description Values
       The  t_errno  values that can be set by the XTI interface and cannot be
       set by the TLI interface are:
	 TPROTO
	 TBADADDR
	 TBADOPT
	 TLOOK
	 TOUTSTATE

   Notes
       Whenever this function fails with t_error set to TFLOW, O_NONBLOCK must
       have been set.

   Option Buffers
       The format of the options in an opt buffer is dictated by the transport
       provider. Unlike the XTI interface, the TLI interface does not fix  the
       buffer format.

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

       ┌───────────────┬─────────────────┐
       │ATTRIBUTE TYPE │ ATTRIBUTE VALUE │
       ├───────────────┼─────────────────┤
       │MT Level       │ Safe		 │
       └───────────────┴─────────────────┘

SEE ALSO
       fcntl(2),  t_alloc(3NSL), t_bind(3NSL), t_error(3NSL), t_getinfo(3NSL),
       t_look(3NSL),   t_open(3NSL),	t_rcvudata(3NSL),    t_rcvuderr(3NSL),
       attributes(5)

				  May 7, 1998		      T_SNDUDATA(3NSL)
[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