NAME
timod — STREAMS module for converting ioctl() calls into Transport Interface messages
DESCRIPTION
The
timod
module is a
STREAMS module that converts
ioctl()
calls from a transport user supporting the Transport Interface (TI)
into messages that a transport protocol provider supporting TI can consume.
This allows the user to initiate certain TI functions as atomic operations.
This release of HP-UX no longer automatically pushes
timod
whenever a
t_open(3)
is performed. The TLI and XTI libraries have been modified to no longer
require this module to perform the atomic operations described within this
man page. Binary compatibility is not a problem since the module will still
exist within the kernel. But, any application which is recompiled and
expects the module to be automatically pushed, may not work without code
modification.
The user places and removes the
timod
module on a device
stream by calling the
STREAMS
I_PUSH
ioctl()
and
I_POP
ioctl()
functions. (The TLI function
t_open()
pushes
timod
onto the device
stream for the user.) The
timod
module should only be pushed onto
streams which are terminated by transport providers which conform to
the Transport Interface.
tirdwr(7)
is an alternative interface to
timod
which supports the
read()
and
write()
system calls. If
tirdwr
has been pushed onto the
stream, the user should use the
I_POP
ioctl
to remove the
tirdwr
module from the
stream before pushing
timod.
The
timod
module transparently passes any
STREAMS messages that are not generated by the
ioctl()
commands described below to the neighboring module or driver.
timod
will act on an
I_STR
ioctl()
whose
strioctl.ic_cmd
field is one of the values below. (See
streamio(7)
for a description of the
I_STR
ioctl
and the
strioctl
structure.)
- TI_BIND
This TI command binds an address to the transport protocol provider.
The
STREAMS message that the module issues to the
TI_BIND
ioctl()
call is equivalent to the TI message type
T_bind_req.
The
STREAMS message that the module returns in response to the successful
completion of the
TI_BIND
ioctl()
call is equivalent to the TI message type
T_bind_ack.
- TI_UNBIND
This TI command unbinds an address from the transport protocol provider.
The
STREAMS message that the module issues to the
TI_UNBIND
ioctl()
call is equivalent to the TI message type
T_unbind_req.
The
STREAMS message that the module returns in response to the successful
completion of the
TI_UNBIND
ioctl()
call is equivalent to the TI message type
T_ok_ack.
- TI_GETINFO
This TI command gets the TI protocol-specific information from
the transport protocol provider.
The
STREAMS message that the module issues to the
TI_GETINFO
ioctl()
call is equivalent to the TI message type
T_info_req.
The
STREAMS message that the module returns in response to the successful
completion of the
TI_GETINFO
ioctl()
call is equivalent to the TI message type
T_info_ack.
- TI_OPTMGMT
This TI command gets, sets, or negotiates TI protocol-specific options with
the transport protocol provider. The
STREAMS message that the module issues to the
TI_OPTMGMT
ioctl()
call is equivalent to the TI message type
T_optmgmt_req.
The
STREAMS message that the module returns in response to the successful
completion of the
TI_OPTMGMT
ioctl()
call is equivalent to the TI message type
T_optmgmt_ack.
RETURN VALUES
If the
timod
module returns an error for an
ioctl()
call, the lower 8 bits of the return value will be one of the TI error codes
defined in the
<tiuser.h>
header file.
If the TI error is of the type TSYERR, then the second 8 bits of the
return value will contain an error as defined in the
<errno.h>
header file. The
STREAMS message that the module issues when an
ioctl()
call results in an error is equivalent to the TI message type
T_error_ack.
FILES
- <xti.h>
defines the error codes for XTI functions.
- <tiuser.h>
defines the error codes for TI functions.
- <tihdr.h>
defines the message types for TI functions.
- <errno.h>
defines the error codes for system errors.