Manual Page Result
0
Command: t_sndudata | Section: 3 | Source: Digital UNIX | File: t_sndudata.3.gz
t_sndudata(3) Library Functions Manual t_sndudata(3)
NAME
t_sndudata - Sends a data unit
LIBRARY
XTI Library (libxti.a)
SYNOPSIS
#include <xti.h>
int t_sndudata(
int fd,
struct t_unitdata *unitdata) ;
STANDARDS
Interfaces documented on this reference page conform to industry stan-
dards as follows:
t_sndudata: XPG4-UNIX
Refer to the standards(5) reference page for more information about in-
dustry standards and associated tags.
PARAMETERS
The following table summarizes the relevance of input and output para-
meters before and after t_sndudata() is called:
center, tab (@); lb lb lb l c c. Parameters@Before Call@After
Call _ fd@y@n unitdata->addr.maxlen@n@n unitdata->addr.len@y@n unit-
data->addr.buf@y(y)@n unitdata->opt.maxlen@n@n unitdata->opt.len@y@n
unitdata->opt.buf@o(o)@n unitdata->udata.maxlen@n@n unit-
data->udata.len@y@n unitdata->udata.buf@y(y)@n Notes to Table:
y This is a meaningful parameter.
(y) The content of the object pointed to by y is meaningful.
o This is a meaningful but optional parameter.
(o) The content of the object pointed to by o is meaningful.
n This is not a meaningful parameter.
fd Specifies a file descriptor returned by the t_open() function
that identifies the transport endpoint through which data is
sent.
unitdata Points to a type t_unitdata structure used to specify a data
unit being sent through the transport endpoint specified by
the fd parameter. The t_unitdata structure has the following
members:
struct netbuf addr
References a buffer for protocol address information of the remote
transport user. The type netbuf structure referenced by this mem-
ber is defined in the xti.h include file and has the following
members:
unsigned int maxlen
Specifies a maximum byte length of the data buffer.
unsigned int len
Specifies the actual byte length of the data written to the
buffer.
char *buf
Points to the buffer location.
struct netbuf opt
Identifies options that the user wants associated with this re-
quest. The user may choose not to specify what protocol options
are associated with the transfer by setting the len field of opt
to zero. In this case, the provider may use default options.
struct netbuf udata
Specifies the user data unit that is being sent to the remote
transport user.
The unitdata->addr.maxlen, unitdata->opt.maxlen, and
unitdata->udata.maxlen parameters are not meaningful with the
t_sndudata() function.
If the udata.len parameter is specified as 0 (zero), and the
underlying transport service does not support the sending of
0 (zero) octets, t_errno is set to [TBADDATA] and -1 is re-
turned.
If the amount of data specified in udata exceeds the TSDU
size as returned in the tsdu field of the info argument of
t_open() or t_getinfo(), a [TBADDATA] error is generated. If
t_sndudata() is called before the destination user has acti-
vated its transport endpoint, the data unit may be discarded.
(See t_bind().)
VALID STATES
The t_sndudata() function can be called only in the T_IDLE transport
provider state.
DESCRIPTION
The t_sndudata() function is an XTI connectionless service function
that is used to send a data unit to a remote transport user. By de-
fault, t_sndudata() executes in the synchronous operating mode. The
t_sndudata() function waits for the transport provider to accept the
data before returning control to the calling transport user.
When the transport endpoint specified by the fd parameter has been pre-
viously opened with the O_NONBLOCK flag set in the t_open() or fcntl()
functions, the t_sndudata() function executes in asynchronous mode. In
asynchronous mode, when a data unit is not accepted control is immedi-
ately returned to the caller. The t_look() function or the EM inter-
face can be used to determine when flow control restrictions have been
lifted.
RETURN VALUE
Upon successful completion, a value of 0 (zero) is returned. Otherwise,
a value of -1 is returned and t_errno is set to indicate the error.
ERRORS
If the t_sndudata() function fails, t_errno may be set to one of the
following values:
[TBADDATA]
Illegal amount of data. Zero octets is not supported.
[TBADF] File descriptor fd is not a valid transport endpoint.
[TFLOW] Asynchronous mode is indicated because O_NONBLOCK was set,
but the transport provider cannot accept the data because of
flow-control restrictions.
[TLOOK] An asynchronous event has occurred on this transport endpoint
and requires immediate attention.
[TNOTSUPPORT]
This function is not supported by the underlying transport
provider.
[TOUTSTATE]
The t_sndudata() function was issued in the wrong sequence
on the transport endpoint referenced by the fd parameter.
[TSYSERR] A system error occurred during execution of this function. A
protocol error may not cause the t_sndudata() function to
fail until a subsequent call is made to access the transport
endpoint specified by the fd parameter.
[TBADADDR]
The specified protocol address was in an incorrect format or
contained illegal information.
[TBADOPT] The specified options were in an incorrect format or con-
tained illegal information.
[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: fcntl(2), t_alloc(3), t_open(3), t_rcvuderr(3), t_rcvu-
data(3) delim off
t_sndudata(3)