Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ tirdwr(7) — NEWS-os 5.0.1

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

streamio(7)

timod(7)

intro(2)

getmsg(2)

putmsg(2)

read(2)

write(2)

intro(3)



tirdwr(7)              DEVICES AND MODULES              tirdwr(7)



NAME
     tirdwr - Transport Interface  read/write  interface  STREAMS
     module

DESCRIPTION
     tirdwr is a STREAMS module that provides an alternate inter-
     face  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  IPUSH  in
     streamio(7)]  onto a stream terminated by a transport proto-
     col provider which supports the TI.  After the tirdwr module
     has  been pushed onto a stream, none of the Transport Inter-
     face functions can be used.  Subsequent calls  to  TI  func-
     tions  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  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 IPUSH 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.

               -  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  gen-
                  erate  an  error,  and any further system calls



                                                                1





tirdwr(7)              DEVICES AND MODULES              tirdwr(7)



                  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 pro-
               vider:

               -  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  por-
                  tions will be as follows:

                    +  Messages  that  represent  expedited  data
                       will  generate an error.  All further sys-
                       tem 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 mes-
                       sage 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) 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.




                                                                2





tirdwr(7)              DEVICES AND MODULES              tirdwr(7)



     pop -     When the module is popped off the  stream  or  the
               stream is closed, the module will take the follow-
               ing action:

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

SEE ALSO
     streamio(7), timod(7).
     intro(2), getmsg(2), putmsg(2), read(2), write(2), intro(3).
     Programmer's Guide: STREAMS.
     Programmer's Guide: Networking Interfaces.









































                                                                3



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