 |
Index for Section 3 |
|
 |
Alphabetical listing for T |
|
 |
Bottom of page |
|
t_open(3)
NAME
t_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 standards
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 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->options 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.
[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.
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. Specify O_RDWR to indicate that the
endpoint supports 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.
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.
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 following 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.
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 option 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).
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
 |
Index for Section 3 |
|
 |
Alphabetical listing for T |
|
 |
Top of page |
|