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

개요

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

t_open(3c)

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 de‐
       scriptor returned by t_open() will be used by all subsequent  functions
       to identify the particular local transport endpoint.


       This  function  also returns various default characteristics of the un‐
       derlying transport protocol by setting fields in the t_info  structure.
       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 op‐
                   tions.


       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 es‐
                   tablishment functions, and a value of -2 (T_INVALID) speci‐
                   fies 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 re‐
       turn:

       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 in‐
       formation 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 er‐
       ror.

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 ad‐
       dress data, option data, TSDU (octet size), ETSDU (octet size), connec‐
       tion data, and disconnection data. The corresponding structure  members
       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