Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ t_open(3N) — UnixWare 2.01

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

close(2)

open(2)

t_alloc(3N)

t_close(3N)

t_getinfo(3N)

netconfig(4)






       t_open(3N)                                                t_open(3N)


       NAME
             t_open - establish a transport endpoint

       SYNOPSIS
             cc [options] file -lnsl
             #include <xti.h>
             #include <fcntl.h>
             int t_open(const char *path, int oflag, struct t_info *info)

          Parameters
             path  points to the path name of the file to open.

             oflag identifies any open [as in open(2)] flags.  oflag may be
                   constructed from O_NONBLOCK OR-ed with O_RDWR.  These
                   flags are defined in the header file <fcntl.h>.

             info  points to the t_info structure used to identify a
                   transport provider.

       DESCRIPTION
             The t_open function is a TLI/XTI local management routine that
             must be called as the first step in the initialization of a
             transport endpoint.  This function opens a UNIX file that
             identifies a transport endpoint connected to a chosen
             transport provider (that is, transport protocol).  The file
             descriptor (fd) for the opened file identifies the provider
             and establishes the endpoint.  For example, a call to t_open
             may be used to open the file/dev/iso_cots to specify an OSI
             connection-oriented transport layer protocol as the transport
             provider.

             The file descriptor returned by t_open is used by all
             subsequent functions to identify the particular transport
             endpoint.

             t_open also returns various default characteristics of the
             underlying transport protocol by setting fields in the t_info
             structure.

          Structure Definitions
             This argument points to a struct t_info which contains the
             following members:

             long addr;                                   /* max size of the transport protocol address*/
             long options;                                /* max num of bytes of protocol-specific options*/
             long tsdu;                                   /* max size of a transport service data unit (TSDU)*/


                           Copyright 1994 Novell, Inc.               Page 1













      t_open(3N)                                                t_open(3N)


            long etsdu;                                  /* max size of an expedited TSDU (ETSDU)*/
            long connect;                                /* max amt of data allowed on connect establishment*/
            long discon;                                 /* max amt of data allowed on t_snddis, t_rcvdis*/
            long servtype;                               /* service type supported by transport provider*/
            long flags;                                  /* provides more info about transport provider*/

            The values of the fields have the following meanings:

            addr          A value greater than or equal to 0 indicates the
                          maximum  size  of  a transport protocol address,
                          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 0 indicates the
                          maximum  number  of  bytes  of protocol-specific
                          options supported by the provider, and  a  value
                          of -2 specifies that the transport provider does
                          not support user-settable options.

            tsdu          A value greater than  0  specifies  the  maximum
                          size  of a transport service data unit (TSDU); a
                          value of 0 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 specifies  that  there
                          is  no limit to the size of TSDU; and a value of
                          -2 specifies that the transfer of normal data is
                          not supported by the transport provider.

            etsdu         A value greater than  0  specifies  the  maximum
                          size of an expedited transport service data unit
                          (ETSDU);  a  value  of  0  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 specifies that there is no limit to
                          the size of ETSDU; and a value of  -2  specifies
                          that  the  transfer  of  expedited  data  is not
                          supported by the transport provider.

            connect       A value greater than or equal to 0 specifies the
                          maximum  amount  of  data that may be associated
                          with connection establishment functions,  and  a


                          Copyright 1994 Novell, Inc.               Page 2













       t_open(3N)                                                t_open(3N)


                           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 0 specifies the
                           maximum  amount  of  data that may be associated
                           with the t_snddis and t_rcvdis functions, and  a
                           value   of   -2  specifies  that  the  transport
                           provider does not allow data to be sent with the
                           abortive release functions.

             servtype      This field specifies the service type  supported
                           by  the  transport provider.  A single transport
                           endpoint may support only one of  the  following
                           services at one time.

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

                           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  service.  For this
                                         service type, t_open  will  return
                                         -2 for etsdu, connect, and discon.

             flags         This  bit  field  is  used  to   specify   other
                           information  about  the  transport provider.  If
                           the  T_SENDZERO  bit  is  set  in  flags,   this
                           indicates   the  underlying  transport  provider
                           supports the sending of zero-length TSDUs.

             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.

          Return Values
             t_open returns a valid file descriptor on success and -1 on
             failure and t_errno is set to indicate the error.



                           Copyright 1994 Novell, Inc.               Page 3













      t_open(3N)                                                t_open(3N)


         Errors
            On failure, t_errno may be set to the following:

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

            TBADFLAG      An invalid flag is specified.

            TBADNAME      An invalid path is specified for the transport
                          provider name.

            TPROTO        A communication problem has been detected with
                          the transport provider and there is no other
                          value of t_errno to describe the error
                          condition.

         State Transitions
            On entry, T_UNINIT; T_UNBND (successful) or T_UNINIT (failed)
            on exit.

         Files
            /usr/lib/libxti.so
                              X/Open Transport Interface Library (shared
                              object)
            /usr/lib/libnsl.so
                              Network Services Library (shared object)

      USAGE
            If a transport user is concerned with protocol independence,
            the sizes specified in t_info may be accessed to determine how
            large the buffers must be to hold each piece of information.
            Alternatively, the t_alloc function may be used to allocate
            these buffers.  An error will result if a transport user
            exceeds the allowed data size on any function.

            If info is set to NULL by the transport user, no protocol
            information is returned by t_open.

         Warnings
            If t_open is used on a non-TLI/XTI-conforming STREAMS device,
            unpredictable events may occur.

            The close(2) system call should not be used directly on the
            file descriptor returned by t_open(3N).  The t_close(3N)
            routine should be used to close a file descriptor opened by
            t_open(3N).


                          Copyright 1994 Novell, Inc.               Page 4













       t_open(3N)                                                t_open(3N)


       REFERENCES
             close(2), open(2), t_alloc(3N), t_close(3N), t_getinfo(3N),
             netconfig(4)

             Examine your system's /etc/netconfig  file  for  device  files
             associated with a transport protocol provider.










































                           Copyright 1994 Novell, Inc.               Page 5








Typewritten Software • bear@typewritten.org • Edmonds, WA 98026