t_open(3c) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

t_open(3c)

Standard C Library Functions                                        t_open(3C)



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(3C)   and
                   t_rcvdis(3C) functions, and a value of -2 (T_INVALID) spec‐
                   ifies that the transport provider does not allow data to be
                   sent  with the abortive release functions. If the T_ORDREL‐
                   DATA 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(3C) and t_rcvdis(3C) 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(3C) function
       may be used to allocate these buffers. An error will result if a trans‐
       port 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 service
                     but  does not support the optional orderly release facil‐
                     ity.


       T_COTS_ORD    The transport provider supports a connection-mode service
                     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(7) for descriptions of the following attributes:


       tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE  TYPEAT‐
       TRIBUTE VALUE _ MT LevelSafe


SEE ALSO
       open(2), attributes(7)



Oracle Solaris 11.4               7 May 1998                        t_open(3C)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3