unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (SunOS-4.1.3)
Page:
Section:
Apropos / Subsearch:
optional field

T_OPEN(3N)                                                          T_OPEN(3N)



NAME
       t_open - establish a transport endpoint

SYNOPSIS
       #include <&lt;tiuser.h>&gt;

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

DESCRIPTION
       t_open()  must  be  called as the first step in the initialization of a
       transport endpoint.  It establishes a transport endpoint by  opening  a
       file  that identifies a particular transport provider (such as a trans-
       port protocol) and returning a file  descriptor  that  identifies  that
       endpoint.   For  example,  opening  the file /dev/tcp identifies an OSI
       connection-oriented transport layer protocol as the transport provider.
       Currently,  /dev/tcp  is  the  only  transport  protocol  available  to
       t_open().

       path points to the pathname of the file to open, and  oflag  identifies
       any  open  flags  (as in open(2V)).  t_open() returns a file descriptor
       that will be used by all subsequent functions to identify the  particu-
       lar local transport endpoint.

       This  function  also  returns  various  default  characteristics of the
       underlying transport protocol by setting fields in the t_info structure
       pointed to by info.  t_info is defined in <&lt;nettli/tiuser.h>&gt; as:

              struct t_info {
                   long addr;     /* size of protocol address */
                   long options;  /* size of protocol options */
                   long tsdu;     /* size of max transport service data unit */
                   long etsdu;    /* size of max expedited tsdu */
                   long connect;  /* max data for connection primitives */
                   long discon;   /* max data for disconnect primitives */
                   long servtype; /* provider service type */
              };

       The fields of this structure have the following values:

       addr           A value greater than or equal to zero indicates the max-
                      imum size of a transport protocol address; a value of -1
                      specifies  that  there  is no limit on the address size;
                      and a value of -2 specifies that the transport  provider
                      does  not  provide  user  access  to  transport protocol
                      addresses.

       options        A value greater than or equal to zero indicates the max-
                      imum  number  of bytes of protocol-specific options sup-
                      ported by the provider; a value  of  -1  specifies  that
                      there  is no limit on the option size; and a value of -2
                      specifies that the transport provider does  not  support
                      user-settable options.

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

       etdsu          A  value greater than zero specifies the maximum size of
                      an expedited transport  service  data  unit  (ETSDU);  a
                      value of zero specifies that the transport provider does
                      not support the concept of ETSDU, although it does  sup-
                      port  the  sending  of  an expedited data stream with no
                      logical boundaries  preserved  across  a  connection;  a
                      value of -1 specifies that there is no limit on the size
                      of an ETSDU; and a value of -2 specifies that the trans-
                      fer  of expedited data is not supported by the transport
                      provider.

       connect        A value greater than or equal to zero specifies the max-
                      imum  amount of data that may be associated with connec-
                      tion establishment functions; a value  of  -1  specifies
                      that there is no limit on the amount of data sent during
                      connection establishment; and a value  of  -2  specifies
                      that  the  transport  provider does not allow data to be
                      sent with connection establishment functions.

       discon         A value greater than or equal to zero specifies the max-
                      imum  amount  of  data  that  may be associated with the
                      t_snddis(3N) and t_rcvdis(3N) functions; a value  of  -1
                      specifies  that  there is no limit on the amount of data
                      sent with these abortive release functions; and a  value
                      of  -2  specifies  that  the transport provider does not
                      allow data to be sent with the  abortive  release  func-
                      tions.

       servtype       This  field  specifies the service type supported by the
                      transport provider.

       The servtype field of info may specify 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
                      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 NULL by the transport user, no protocol information
       is returned by t_open().

       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(3N)  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.

RETURN VALUES
       t_open() returns a non-negative file descriptor on success.   On  fail-
       ure, it returns -1 and sets t_errno to indicate the error.

ERRORS
       TSYSERR        The  function failed due to a system error and set errno
                      to indicate the error.

SEE ALSO
       open(2V), tcp(4P)

                                21 January 1990                     T_OPEN(3N)