Supports the Transport Interface functions of the Network Services library.
The tirdwr module is a STREAMS module that provides an alternate interface to a transport provider that supports the Transport Interface (TI) functions of the Network Services library. This alternate interface allows a user to communicate with the transport protocol provider by using the read and write subroutines. The putmsg and getmsg system calls can also be used. However, the putmsg and getmsg system calls can only transfer data messages between user and stream.
The tirdwr module must only be pushed (see the I_PUSH operation) onto a stream terminated by a transport protocol provider that supports the TI. After the tirdwr module has been pushed onto a stream, none of the TI functions can be used. Subsequent calls to TI functions will cause an error on the stream. Once the error is detected, subsequent system calls on the stream will return an error with the errno global variable set to EPROTO.
The following list describes actions taken by the tirdwr module when it is pushed or popped or when data passes through it:
Action | Description |
---|---|
push | Checks any existing data to ensure that only regular data messages are present. It ignores any messages on the stream that relate to process management. If any other messages are present, the I_PUSH operation returns an error and sets the errno global variable to EPROTO. |
write | Takes the following actions on data that originated from
a write subroutine:
|
read | Takes the following actions on data that originated from
the transport protocol provider:
Messages with control portions will produce the following actions:
|
pop | Sends an orderly release request to the remote side of the transport connection if an orderly release indication has been previously received. |