Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

getmsg(2)

intro(2)

intro(3)

putmsg(2)

read(2)

streamio(7)

timod(7)

write(2)






       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) functions of the Network Services library (see
             Section 3N).  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 I_PUSH 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 I_POP 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 regular 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 I_PUSH
                     will return an error with errno set to EPROTO.

             write   The module will take the following actions on data
                     that originated 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.




                           Copyright 1994 Novell, Inc.               Page 1













      tirdwr(7)                                                  tirdwr(7)


                          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.

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

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

                          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 passing 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 indication 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)


                          Copyright 1994 Novell, Inc.               Page 2













       tirdwr(7)                                                  tirdwr(7)


                                   once all previous data has been read.

                                   With the exception of the above rules,
                                   all other messages 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.

       REFERENCES
             getmsg(2), intro(2), intro(3) putmsg(2), read(2), streamio(7),
             timod(7), write(2)

























                           Copyright 1994 Novell, Inc.               Page 3








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