 |
Index for Section 3 |
|
 |
Alphabetical listing for T |
|
t_open(3)
NAME
t_open - Establishes a transport endpoint
LIBRARY
XTI Library (libxti.a)
SYNOPSIS
#include <xti.h>
#include <fcntl.h>
int t_open(
char *name,
int oflag,
struct t_info *info);
STANDARDS
Interfaces documented on this reference page conform to industry standards
as follows:
t_open: XPG4-UNIX
Refer to the standards(5) reference page for more information about
industry standards and associated tags.
PARAMETERS
The following table summarizes the relevance of input and output parameters
before and after the t_open() function is called:
_________________________________________
Parameter Before Call After Call
_________________________________________
name y n
oflag y n
info->addr n y
info->options n y
info->tsdu n y
info->etsdu n y
info->connect n y
info->discon n y
info->servtype n y
info->flags n y
_________________________________________
Notes to Table:
y This is a meaningful parameter.
n This is not a meaningful parameter.
name Identifies the transport provider. The transport provider must
define the type of transport service (protocol) to associate with
the opened transport endpoint.
oflag The oflag parameter is similar to the oflag parameter of the
open() function and is used in the same way. Use oflag to
establish synchronous or asynchronous operating modes of the
transport provider pointed to by the name parameter. The
transport provider operating mode is specified with the
O_NONBLOCK flag. The actual value for this parameter is obtained
from the symbolic name variable O_RDWR, which may be optionally
bitwise combined with a logical inclusive OR of flag O_NONBLOCK,
defined in the <fcntl.h> header file.
info Points to a type t_info structure. The location of a type t_info
structure is returned to the info parameter when the t_open()
function successfully executes. Members of the t_info structure
specify default characteristics of the underlying transport
protocol pointed to by the name parameter.
When the info parameter is set to the null pointer value by a
transport user, no protocol information is returned by this
function.
When a transport user must preserve protocol independence, data
length information defined by members of the type t_info
structure may be accessed to determine how large data buffers
must be to hold exchanged data. Alternatively, the t_alloc()
function may be used to allocate necessary data buffers. An error
results when a transport user exceeds the allowed data length
during any data exchange. This structure has the following seven
members:
addr
Permitted number of bytes in the protocol address. A value
greater than zero indicates the maximum number of permitted
bytes in a protocol address. A value of -1 specifies that
there is no limit on the protocol address size. A value of -2
specifies that the transport provider does not permit the
transport user access to the protocol addresses.
options
Permitted number of bytes of options. A value greater than
zero indicates the maximum number of bytes of protocol-
specific options supported by the transport provider. A value
of -1 specifies that there is no limit to the number of
options bytes. A value of -2 specifies that the transport
provider does not permit a transport user to set options.
tsdu
Permitted number of bytes in a Transport Service Data Unit
(TSDU). A value greater than zero specifies the maximum
number of bytes in a TSDU message. A value of zero specifies
that the transport provider does not support TSDU data
exchanges, 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 number
of bytes in a TSDU data exchange. A value of -2 specifies
that the transfer of normal data is not supported by the
transport provider.
etsdu
Permitted number of bytes in an Expedited Transport Service
Data Unit (ETSDU). A value greater than zero specifies the
maximum number of bytes in an ETSDU data exchange. A value of
zero specifies that the transport provider does not support
ETSDU data exchanges, 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 on the number of bytes in an ETSDU data exchange. A
value of -2 specifies that the transfer of expedited data is
not supported by the transport provider.
connect
Permitted number of bytes of data in connect request. A value
greater than zero specifies the maximum number of data bytes
that may be exchanged using the t_connect() and
t_rcvconnect() functions. A value of -2 specifies that the
transport provider does not permit data to be sent when a
connection is established.
discon
Permitted number of bytes of data in a disconnect request. A
value greater than zero specifies the maximum number of data
bytes that may be exchanged using the t_snddis() and
t_rcvdis() functions. A value of -1 specifies that there is
no limit to the number of data bytes that may be sent when a
connection is closed using these abortive release functions.
A value of -2 specifies that the transport provider does not
permit data to be sent with an abortive release function.
servtype
This member specifies only one of the following types of
service supported by the transport provider:
T_COTS
The transport provider supports connection-mode service
but does not support the optional orderly release
facility.
T_COTS_ORD
The transport provider supports connection-mode service
with the optional orderly release facility.
T_CLTS
The transport provider supports connectionless-mode
service. For this service type, this function returns the
value -2 for the etsdu, connect, and discon parameters.
flags
Specifies 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.
VALID STATES
The t_open() function can be called in the T_UNINIT transport provider
state only.
DESCRIPTION
The t_open() XTI function must be the first one called when initializing a
transport endpoint. Two modes of operation may be specified, synchronous
and asynchronous. In synchronous mode, a transport user must wait for some
specific event to occur before control is returned (refer to the t_look()
function). In asynchronous mode, a transport user is not required to wait
for the event to occur; control is returned immediately.
The t_open() function establishes the transport endpoint by supplying a
transport provider identifier that specifies a particular transport
protocol. A file descriptor, which must subsequently always be used to
identify the established endpoint, is returned by this function.
RETURN VALUES
Upon successful completion, the t_open function returns a file descriptor,
a nonnegative integer. Otherwise, a value of -1 is returned and t_errno is
set to indicate the error.
ERRORS
If the t_open() function fails, t_errno may be set to one of the following
values:
[TBADFLAG]
An invalid flag is specified.
[TBADNAME]
Invalid transport provider name.
[TSYSERR] A system error occurred during execution of this function.
[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(t_errno).
RELATED INFORMATION
Functions: open(2)
Standards: standards(5)