Networking Services Library Functions tsync(3NSL)
NAME
tsync - synchronize transport library
SYNOPSIS
#include
int tsync(int fd);
DESCRIPTION
This routine is part of the XTI interfaces which evolved
from the TLI interfaces. XTI represents the future evolution
of these interfaces. However, TLI interfaces are supported
for compatibility. When using a TLI routine that has the
same name as an XTI routine, the tiuser.h header file must
be used. Refer to the TLI COMPATIBILITY section for a
description of differences between the two interfaces.
For the transport endpoint specified by fd, tsync() syn-
chronizes the data structures managed by the transport
library with information from the underlying transport pro-
vider. In doing so, it can convert an uninitialized file
descriptor (obtained by means of a open(2), dup(2) or as a
result of a fork(2) and exec(2)) to an initialized transport
endpoint, assuming that the file descriptor referenced a
transport endpoint, by updating and allocating the neces-
sary library data structures. This function also allows two
cooperating processes to synchronize their interaction with
a transport provider.
For example, if a process forks a new process and issues an
exec(2), the new process must issue a tsync() to build the
private library data structure associated with a transport
endpoint and to synchronize the data structure with the
relevant provider information.
It is important to remember that the transport provider
treats all users of a transport endpoint as a single user.
If multiple processes are using the same endpoint, they
should coordinate their activities so as not to violate the
state of the transport endpoint. The function tsync()
returns the current state of the transport endpoint to the
user, thereby enabling the user to verify the state before
taking further action. This coordination is only valid among
cooperating processes; it is possible that a process or an
incoming event could change the endpoint's state after a
tsync() is issued.
SunOS 5.11 Last change: 7 May 1998 1
Networking Services Library Functions tsync(3NSL)
If the transport endpoint is undergoing a state transition
when tsync() is called, the function will fail.
RETURN VALUES
On successful completion, the state of the transport end-
point is returned. Otherwise, a value of -1 is returned
and terrno is set to indicate an error. The state returned
is one of the following:
TUNBND Unbound.
TIDLE Idle.
TOUTCON Outgoing connection pending.
TINCON Incoming connection pending.
TDATAXFER Data transfer.
TOUTREL Outgoing orderly release (waiting for an ord-
erly release indication).
TINREL Incoming orderly release (waiting for an ord-
erly release request).
ERORS
On failure, terrno is set to one of the following:
TBADF The specified file descriptor does not refer
to a transport endpoint. This error may be
returned when the fd has been previously
closed or an erroneous number may have been
passed to the call.
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 error (terrno).
TSTATECHNG The transport endpoint is undergoing a state
change.
SunOS 5.11 Last change: 7 May 1998 2
Networking Services Library Functions tsync(3NSL)
TSYSER A system error has occurred during execution
of this function.
TLI COMPATIBILITY
The XTI and TLI interface definitions have common names but
use different header files. This, and other semantic differ-
ences between the two interfaces are described in the sub-
sections below.
Interface Header
The XTI interfaces use the header file, xti.h. TLI inter-
faces should not use this header. They should use the
header:
#include
Error Description Values
The terrno value that can be set by the XTI interface and
cannot be set by the TLI interface is:
TPROTO
ATRIBUTES
See attributes(5) for descriptions of the following attri-
butes:
ATRIBUTE TYPE ATRIBUTE VALUE
MT Level Safe
SEE ALSO
dup(2), exec(2), fork(2), open(2), attributes(5)
SunOS 5.11 Last change: 7 May 1998 3
|