Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ tirdwr(7) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

getmsg(2)

putmsg(2)

read(2)

write(2)

streamio(7)

timod(7)

tirdwr(7)                                                         tirdwr(7)

NAME
     tirdwr - Transport Interface read/write interface STREAMS module

DESCRIPTION
     tirdwr is a STREAMS module that provides an alternate interface to a
     transport provider which supports the Transport Interface (TI) func-
     tions of the Network Services library. This alternate interface allows
     a user to communicate with the transport protocol provider using the
     read(2) and write(2) system calls. The putmsg(2) and getmsg(2) system
     calls may also be used. However, putmsg and getmsg can only transfer
     data messages between user and stream.

     The tirdwr module must only be pushed [see IPUSH in streamio(7)] onto
     a stream terminated by a transport protocol provider which supports
     the TI. After the tirdwr module has been pushed onto a stream, none of
     the Transport Interface 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 errno set to EPROTO.

     The following are the actions taken by the tirdwr module when pushed
     on the stream, popped [see IPOP in streamio(7)] off the stream, or
     when data passes through it.

     push    When the module is pushed onto a stream, it will check any
             existing data destined for the user to ensure that only regu-
             lar data messages are present. It will ignore any messages on
             the stream that relate to process management, such as messages
             that generate signals to the user processes associated with
             the stream. If any other messages are present, the IPUSH will
             return an error with errno set to EPROTO.

     write   The module will take the following actions on data that ori-
             ginated from a write system call:

             -  All messages with the exception of messages that contain
                control portions (see the putmsg and getmsg system calls)
                will be transparently passed onto the module's downstream
                neighbor.

             -  Any zero length data messages will be freed by the module
                and they will not be passed onto the module's downstream
                neighbor.

             -  Any messages with control portions will generate an error,
                and any further system calls associated with the stream
                will fail with errno set to EPROTO.








Page 1                       Reliant UNIX 5.44                Printed 11/98

tirdwr(7)                                                         tirdwr(7)

     read    The module will take the following actions on data that ori-
             ginated from the transport protocol provider:

             -  All messages with the exception of those that contain con-
                trol portions (see the putmsg and getmsg system calls) will
                be transparently passed onto the module's upstream neigh-
                bor.

             -  The action taken on messages with control portions will be
                as follows:

                ⊕  Messages that represent expedited data will generate an
                   error. All further system calls associated with the
                   stream will fail with errno set to EPROTO.

                ⊕  Any data messages with control portions will have the
                   control portions removed from the message prior to pass-
                   ing the message on to the upstream neighbor.

                ⊕  Messages that represent an orderly release indication
                   from the transport provider will generate a zero length
                   data message, indicating the end of file, which will be
                   sent to the reader of the stream. The orderly release
                   message itself will be freed by the module.

                ⊕  Messages that represent an abortive disconnect indica-
                   tion from the transport provider will cause all further
                   write and putmsg system calls to fail with errno set to
                   ENXIO. All further read and getmsg system calls will
                   return zero length data (indicating end of file) once
                   all previous data has been read.

                ⊕  With the exception of the above rules, all other mes-
                   sages with control portions will generate an error and
                   all further system calls associated with the stream will
                   fail with errno set to EPROTO.

             -  Any zero length data messages will be freed by the module
                and they will not be passed onto the module's upstream
                neighbor.

     pop     When the module is popped off the stream or the stream is
             closed, the module will take the following action:

             -  If an orderly release indication has been previously
                received, then an orderly release request will be sent to
                the remote side of the transport connection.







Page 2                       Reliant UNIX 5.44                Printed 11/98

tirdwr(7)                                                         tirdwr(7)

SEE ALSO
     getmsg(2), introprm2(2), putmsg(2), read(2), write(2), streamio(7),
     timod(7).

     Programmer's Guide: STREAMS

     Programmer's Guide: Networking Interfaces















































Page 3                       Reliant UNIX 5.44                Printed 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026