t_open(3)t_open(3)NAMEt_open - Establishes a transport endpoint
SYNOPSIS
#include <xti.h> #include <fcntl.h>
int t_open(
char *name,
int oflag,
struct t_info *info );
LIBRARY
XTI Library (libxti.a)
STANDARDS
Interfaces documented on this reference page conform to industry stan‐
dards as follows:
t_open(): XNS4.0, XNS5.0
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 param‐
eters 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->options n y
──────────────────────────────────────────
Notes to Table: This is a meaningful parameter. This is not a meaning‐
ful parameter.
Identifies the transport provider. The transport provider must define
the type of transport service (protocol) to associate with the opened
transport endpoint.
[Tru64 UNIX] This implementation of XTI uses pathnames to
device special files to identify transport providers. The
device special files corresponding to TCP or UDP transport
providers reside in the /dev/streams/xtiso directory. If you
use a different transport provider, see its documentation for
the correct device name. 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 operat‐
ing modes of the transport provider pointed to by the name
parameter. Specify O_RDWR to indicate that the endpoint sup‐
ports reading and writing by functions and blocks on them, or
specify the bitwise inclusive OR of O_RDWR and O_NONBLOCK to
indicate that the endpoint supports the reading and writing by
functions but does not block on them. These options are defined
in the <fcntl.h> header file. Points to a type t_info struc‐
ture. The location of a type t_info structure is returned to
the info parameter when the t_open() function successfully exe‐
cutes. Members of the t_info structure specify default charac‐
teristics of the underlying transport protocol pointed to by the
name parameter.
If a transport user sets the info parameter to the null pointer
value, the function does not return any protocol information.
When a transport user must preserve protocol independence, you
can access the data length information defined by members of the
type t_info structure to determine how large data buffers must
be to hold exchanged data. If the transport user exceeds the
allowed data size during any data exchange, you receive an
error. Alternatively, you can use the t_alloc() function to
allocate necessary data buffers. This structure has the follow‐
ing members: Permitted number of bytes in the protocol address.
A value greater than zero indicates the maximum number of per‐
mitted 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. Permitted num‐
ber of bytes of options. A value greater than zero indicates
the maximum number of bytes of protocol-specific options sup‐
ported 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 trans‐
port user to set options. Permitted number of bytes in a Trans‐
port Service Data Unit (TSDU). A value greater than zero speci‐
fies 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. 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 sup‐
ported by the transport provider. 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 speci‐
fies that the transport provider does not permit data to be sent
when a connection is established. Permitted number of bytes of
data in a disconnect request. A value greater than zero speci‐
fies 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. This member specifies only one of
the following types of service supported by the transport
provider: The transport provider supports connection-mode ser‐
vice but does not support the optional orderly release facility.
The transport provider supports connection-mode service with the
optional orderly release facility. The transport provider sup‐
ports connectionless-mode service. For this service type, this
function returns the value -2 for the etsdu, connect, and discon
parameters. 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.
DESCRIPTION
The t_open() XTI function must be the first one called when initializ‐
ing 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 fol‐
lowing values: An invalid option is specified. Invalid transport
provider name. A system error occurred during execution of this func‐
tion. 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).
VALID STATES
The t_open() function can be called in the T_UNINIT transport provider
state only.
SEE ALSO
Functions: open(2)
Standards: standards(5)
Network Programmer's Guide
t_open(3)