DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 
API compatibility

Transport interface (XTI and TLI)

SCO OpenServer, SCO UnixWare 2.1.X, and UnixWare 7 all support the X/Open Transport Interface (XTI) and the Transport Level Interface (TLI). Both XTI and TLI are APIs that allow user processes to access transport providers in a (mostly) transport-independent fashion.

The Transport Level Interface was modeled after the industry standard ISO Transport Service Definition (ISO 8072). The resulting interface was called the Transport Level Interface (TLI) library, first introduced with AT&T UNIX System V Release 3.0 in 1986.

XTI is the X/Open-sponsored successor to TLI, and is defined in the Networking Services, Issue 5 document.

From the standpoint of syntax and semantics, the two libraries are nearly identical, but XTI is the preferred interface for new applications, since it is the industry standard. The TLI library routines are maintained for compatibility with previous releases only.

The UnixWare 7 transport level functions are defined in libnsl and support both the older TLI semantics and the newer XTI semantics. The library entry points have their traditional names for the TLI functions, such as t_open. For the XTI functions, however, the entry points have new names, such as _xti_open. When applications are compiled on UnixWare 7, the TLI function names are translated to the XTI entry points by macros by including the file xti.h in the source code.

In this way, UnixWare 7 is able to support older applications that use the TLI interface, while still providing the new XTI interface. See ``Programming with the X/Open Transport Interface (XTI)'' for a description of TLI/XTI programming on UnixWare 7.

To compile and link a program using XTI semantics, do the following:

  1. Include the xti.h header file at the beginning of your source files. The syntax of the include preprocessor directive to use is:
       #include <xti.h>
    

  2. Specify the libnsl library as one of the libraries to be searched on the cc command line:
       cc option file -lnsl
    

To compile a program using the TLI interfaces exclusively, include the TLI header file (tiuser.h) instead of the XTI header file. The syntax of the include preprocessor directive to use is

   #include <tiuser.h>

TLI/XTI on SCO OpenServer

To compile and link a program that uses XTI on SCO OpenServer, do the following:

  1. Include the xti.h header file at the beginning of your source files. The syntax of the include preprocessor directive to use is
       #include <xti.h>
    

  2. Specify the xti library as one of the libraries to be searched for unresolved references when the cc command is invoked. The syntax of the cc command to use is:
       cc option file -lxti
    

The name of the header file used for TLI is tiuser.h. The syntax of the include preprocessor directive to use is:

   #include <sys/tiuser.h>

The name of the library to be searched when compiling and linking a program that uses TLI is nsl. The syntax of the cc command to use is:

   cc option file -lnsl

TLI/XTI on SCO UnixWare 2.1.X

The SCO UnixWare 2.1.X implementation of TLI/XTI is identical to the UnixWare 7 implementation.

TLI/XTI compatibility table

Name of Interface Legacy compatibility UDK compatibility
Compiled using SCO OpenServer DevSys Compiled using SCO UnixWare 2.1.X SDK Compiled using UnixWare 7 UDK
Library Name Works on UnixWare 7? Library Name Works on UnixWare 7? Library Name Works on SCO OpenServer? Works on SCO UnixWare 2.1.X?
t_accept libxti Yes libnsl Yes libnsl Yes Yes
t_alloc libxti Yes libnsl Yes libnsl Yes Yes
t_bind libxti Yes libnsl Yes libnsl Yes Yes
t_close libxti Yes libnsl Yes libnsl Yes Yes
t_connect libxti Yes libnsl Yes libnsl Yes Yes
t_error libxti Yes libnsl Yes libnsl Yes Yes
t_free libxti Yes libnsl Yes libnsl Yes Yes
t_getinfo libxti Yes libnsl Yes libnsl Yes Yes
t_getname -- -- libnsl Yes libnsl -- Yes
t_getprotaddr -- -- libnsl Yes libnsl -- Yes
t_getstate libxti Yes libnsl Yes libnsl Yes Yes
t_listen libxti Yes libnsl Yes libnsl Yes Yes
t_look libxti Yes libnsl Yes libnsl Yes Yes
t_open libxti Yes libnsl Yes libnsl Yes Yes
t_optmgmt libxti Yes libnsl Yes libnsl Yes Yes
t_rcv libxti Yes libnsl Yes libnsl Yes Yes
t_rcvconnect libxti Yes libnsl Yes libnsl Yes Yes
t_rcvdis libxti Yes libnsl Yes libnsl Yes Yes
t_rcvrel libxti Yes libnsl Yes libnsl Yes Yes
t_rcvudata libxti Yes libnsl Yes libnsl Yes Yes
t_rcvuderr libxti Yes libnsl Yes libnsl Yes Yes
t_snd libxti Yes libnsl Yes libnsl Yes Yes
t_snddis libxti Yes libnsl Yes libnsl Yes Yes
t_sndrel libxti Yes libnsl Yes libnsl Yes Yes
t_sndudata libxti Yes libnsl Yes libnsl Yes Yes
t_strerror -- -- libnsl Yes libnsl Yes Yes
t_sync libxti Yes libnsl Yes libnsl Yes Yes
t_unbind libxti Yes libnsl Yes libnsl Yes Yes

``Compatibility Table Legend''


Next topic: Sockets interface
Previous topic: SVCXPRT structure source compatibility notes

© 2004 The SCO Group, Inc. All rights reserved.
UnixWare 7 Release 7.1.4 - 27 April 2004