t_open 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_OPEN(3NSL)							  T_OPEN(3NSL)

NAME
       t_open - establish a transport endpoint

SYNOPSIS
       #include <xti.h>
       #include <fcntl.h>

       int t_open(const char *name, int oflag, struct t_info *info);

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.

       The t_open() function must be called as the first step in the  initial‐
       ization	of a transport endpoint. This function establishes a transport
       endpoint by supplying a transport provider identifier that indicates  a
       particular transport provider, that is, transport protocol, and return‐
       ing a file descriptor that identifies that endpoint.

       The argument name points to a transport provider identifier  and	 oflag
       identifies  any	open  flags, as in open(2). The argument oflag is con‐
       structed from  O_RDWR optionally bitwise inclusive-OR'ed	 with	O_NON‐
       BLOCK.  These  flags  are  defined  by  the  header <fcntl.h>. The file
       descriptor returned by t_open() will be used by	all  subsequent	 func‐
       tions to identify the particular local transport endpoint.

       This  function  also  returns  various  default	characteristics of the
       underlying transport protocol by setting fields in  the	t_info	struc‐
       ture.  This  argument  points  to a t_info which contains the following
       members:

	 t_scalar_t addr;	 /* max size of the transport protocol address */
	 t_scalar_t options;	 /* max number of bytes of  */
				      /* protocol-specific options  */
	 t_scalar_t tsdu;	 /* max size of a transport service data  */
				      /* unit (TSDU)  */
	 t_scalar_t etsdu;	 /* max size of an expedited transport	*/
				      /* service data unit (ETSDU)  */
	 t_scalar_t connect;	 /* max amount of data allowed on  */
				 /* connection establishment functions	*/
	 t_scalar_t discon;	 /* max amount of data allowed on  */
				 /* t_snddis() and t_rcvdis() functions	 */
	 t_scalar_t servtype;	 /* service type supported by the  */
				      /* transport provider  */
	 t_scalar_t flags;	 /* other info about the transport provider  */

       The values of the fields have the following meanings:

       addr
		   A value greater than zero (T_NULL)  indicates  the  maximum
		   size	 of  a	transport  protocol  address and a value of -2
		   (T_INVALID) specifies that the transport provider does  not
		   provide user access to transport protocol addresses.

       options
		   A  value  greater  than zero (T_NULL) indicates the maximum
		   number of bytes of protocol-specific options	 supported  by
		   the	provider, and a value of -2 (T_INVALID) specifies that
		   the	transport  provider  does  not	support	 user-settable
		   options.

       tsdu
		   A  value  greater  than  zero (T_NULL specifies the maximum
		   size of a transport service data unit (TSDU);  a  value  of
		   zero	 (T_NULL)  specifies  that the transport provider does
		   not support the concept of TSDU, although it	 does  support
		   the	sending	 of  a	data stream with no logical boundaries
		   preserved across a connection; a value of  -1  (T_INFINITE)
		   specifies that there is no limit to the size of a TSDU; and
		   a value of -2 (T_INVALID) specifies that  the  transfer  of
		   normal data is not supported by the transport provider.

       etsdu
		   A  value  greater  than zero (T_NULL) specifies the maximum
		   size of an expedited transport service data unit (ETSDU); a
		   value   of  zero  (T_NULL)  specifies  that	the  transport
		   provider does not support the concept of ETSDU, although it
		   does	 support  the sending of an expedited data stream with
		   no logical boundaries  preserved  across  a	connection;  a
		   value  of -1 (T_INFINITE)  specifies that there is no limit
		   on the size of an ETSDU; and	 a  value  of  -2  (T_INVALID)
		   specifies  that  the transfer of expedited data is not sup‐
		   ported by the transport provider. Note that	the  semantics
		   of  expedited  data	may  be	 quite different for different
		   transport providers.

       connect
		   A value greater than zero (T_NULL)  specifies  the  maximum
		   amount  of  data  that  may	be  associated with connection
		   establishment functions, and	 a  value  of  -2  (T_INVALID)
		   specifies  that  the transport provider does not allow data
		   to be sent with connection establishment functions.

       discon
		   If the  T_ORDRELDATA bit in flags is clear, a value greater
		   than	 zero  (T_NULL)	 specifies  the maximum amount of data
		   that	 may  be  associated  with  the	  t_snddis(3NSL)   and
		   t_rcvdis(3NSL)  functions,  and  a  value of -2 (T_INVALID)
		   specifies that the transport provider does not  allow  data
		   to  be  sent	 with  the  abortive release functions. If the
		   T_ORDRELDATA bit is set in flags, a value greater than zero
		   (T_NULL) specifies the maximum number of octets that may be
		   associated with the t_sndreldata(), t_rcvreldata(),	t_snd‐
		   dis(3NSL) and  t_rcvdis(3NSL) functions.

       servtype
		   This	 field	specifies  the	service	 type supported by the
		   transport provider, as described below.

       flags
		   This is a bit field used to specify other information about
		   the	 communications provider.  If the  T_ORDRELDATA bit is
		   set, the communications provider supports user data	to  be
		   sent with an orderly release. If the	 T_SENDZERO bit is set
		   in flags, this indicates the underlying transport  provider
		   supports the sending of zero-length TSDUs.

       If  a transport user is concerned with protocol independence, the above
       sizes may be accessed to determine how large the	 buffers  must	be  to
       hold  each piece of information. Alternatively, the t_alloc(3NSL) func‐
       tion may be used to allocate these buffers. An error will result	 if  a
       transport user exceeds the allowed data size on any function.

       The  servtype  field  of	 info specifies one of the following values on
       return:

       T_COTS
		      The transport provider supports a	 connection-mode  ser‐
		      vice  but	 does not support the optional orderly release
		      facility.

       T_COTS_ORD
		      The transport provider supports a	 connection-mode  ser‐
		      vice with the optional orderly release facility.

       T_CLTS
		      The  transport  provider	supports a connectionless-mode
		      service. For this service type, t_open() will return  -2
		      (T_INVALID) for etsdu, connect and discon.

       A  single transport endpoint may support only one of the above services
       at one time.

       If info is set to a null pointer by the	transport  user,  no  protocol
       information is returned by t_open().

RETURN VALUES
       A valid file descriptor is returned upon successful completion.	Other‐
       wise, a value of -1 is returned and  t_errno  is	 set  to  indicate  an
       error.

VALID STATES
       T_UNINIT.

ERRORS
       On failure, t_errno is set to the following:

       TBADFLAG
		   An invalid flag is specified.

       TBADNAME
		   Invalid transport provider name.

       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 func‐
		   tion.

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 xti.h TLI interfaces	should	not  use  this
       header.	They should use the header:
	 #include <tiuser.h>

   Error Description Values
       The  t_errno values TPROTO and TBADNAME can be set by the XTI interface
       but cannot be set by the TLI interface.

   Notes
       For TLI , the t_info structure referenced by info lacks	the  following
       structure member:

	 t_scalar_t flags;    /* other info about the transport provider */

       This member was added to struct t_info in the XTI interfaces.

       When  a	value  of -1 is observed as the return value in various t_info
       structure members, it signifies that the transport provider can	handle
       an  infinite  length  buffer  for  a  corresponding  attribute, such as
       address data, option data, TSDU (octet size), ETSDU (octet size),  con‐
       nection	data, and disconnection data. The corresponding structure mem‐
       bers are addr, options, tsdu, estdu, connect, and discon, respectively.

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

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

SEE ALSO
       open(2), attributes(5)

				  May 7, 1998			  T_OPEN(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