t_sync(3)t_sync(3)NAMEt_sync - Synchronize transport library
SYNOPSIS
#include <xti.h>
int t_sync
int fd );
LIBRARY
XTI Library (libxti.a)
STANDARDS
Interfaces documented on this reference page conform to industry stan‐
dards as follows:
t_sync(): 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 parameter data
before and after t_sync() is called:
─────────────────────────────────────
Parameter Before Call After Call
─────────────────────────────────────
fd y n
─────────────────────────────────────
Notes to Table: This is a meaningful parameter. This is not a meaning‐
ful parameter. Specifies a file descriptor returned by the t_open()
function that identifies an active, uninitialized local transport end‐
point.
DESCRIPTION
The t_sync() XTI utility service function is used to synchronize data
structures managed by the transport library with information from the
underlying transport provider.
The t_sync() function can be used to convert an uninitialized file
descriptor, previously returned by the open() or dup() functions, or
returned as the result of fork() or exec() functions, to an initialized
transport endpoint. When the file descriptor references a valid trans‐
port endpoint, necessary library data structures are allocated and
updated.
The t_sync() function also permits two cooperating processes to syn‐
chronize their interaction with a transport provider. When a process
forks, for example, and an exec function is issued, the child (new)
process must call the t_sync() function to build a private library data
structure associated with the transport endpoint referenced by the fd
parameter and to synchronize the library data structure with relevant
transport provider information.
A transport provider treats multiple users of a transport endpoint as
the same user. When more than one process is using the same transport
endpoint, each should coordinate its activities so that operation does
not conflict with the transport provider state at the transport end‐
point specified by fd.
The t_sync() function returns the current state of the transport
provider (refer to the t_getstate() function). Return of the current
state of the transport provider permits the calling transport user to
verify the transport provider state before issuing the next function
call. This coordination is only valid among cooperating processes; it
is possible that a process or an incoming event can change the trans‐
port provider state at the reference transport endpoint after t_sync()
is called.
When the transport provider at the transport endpoint referenced by the
fd parameter is undergoing a change of state and the t_sync() function
is called, the t_sync() process fails and returns a [TSTATECHNG] error.
RETURN VALUES
Upon successful completion, the state of the transport provider at the
transport endpoint specified by the fd parameter is returned. Other‐
wise, a value of -1 is returned and t_errno is set to indicate the
error. The returned state is one of the following: Transport endpoint
not bound to an address. Transport endpoint is idle. Outgoing connec‐
tion pending. Incoming connection pending. Data transfer. Outgoing
orderly release (waiting for an orderly release indication). Incoming
orderly release (waiting for an orderly release request).
ERRORS
If the t_sync() function fails, t_errno may be set to one of the fol‐
lowing values: File descriptor fd is not a valid transport endpoint.
This error may be returned when the fd parameter has been previously
closed or an erroneous file-descriptor value may have been passed to
the call. The transport endpoint is undergoing a state change. A sys‐
tem error occurred during execution of this function. This error indi‐
cates 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_sync() function can be called in any transport provider state
except T_UNINIT.
SEE ALSO
Functions: exec(2), fcntl(2), fork(2), open(2), t_getstate(3)
Standards: standards(5)
Network Programmer's Guide
t_sync(3)