Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ stroptions(D4) — UnixWare 2.01

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

read(2)

streamio(7)






       stroptions(D4)                                        stroptions(D4)


       NAME
             stroptions - stream head option structure

       SYNOPSIS
             #include <sys/stream.h>
             #include <sys/stropts.h>
             #include <sys/ddi.h>

       DESCRIPTION
             The stroptions structure, used in an M_SETOPTS message,
             contains options for the stream head.

       USAGE
             The M_SETOPTS message is sent upstream by drivers and modules
             when they want to change stream head options for their stream.

          Structure Definitions
             The stroptions structure contains the following members:

             ulong_t   so_flags;    /* options to set */
             short     so_readopt;  /* read option */
             ushort_t  so_wroff;    /* write offset */
             long      so_minpsz;   /* minimum read packet size */
             long      so_maxpsz;   /* maximum read packet size */
             ulong_t   so_hiwat;    /* read queue high water mark */
             ulong_t   so_lowat;    /* read queue low water mark */
             uchar_t   so_band;     /* band for water marks */
             The so_flags field determines which options are to be set, and
             which of the other fields in the structure are used.  This
             field is a bitmask and is comprised of the bit-wise OR of the
             following flags:

                   SO_READOPT      Set the read option to that specified by
                                   the so_readopt field.

                   SO_WROFF        Set the write offset to that specified
                                   by the so_wroff field.

                   SO_MINPSZ       Set the minimum packet size on the
                                   stream head read queue to that specified
                                   by the so_minpsz field.

                   SO_MAXPSZ       Set the maximum packet size on the
                                   stream head read queue to that specified
                                   by the so_maxpsz field.



                           Copyright 1994 Novell, Inc.               Page 1













      stroptions(D4)                                        stroptions(D4)


                  SO_HIWAT        Set the high water mark on the stream
                                  head read queue to that specified by the
                                  so_hiwat field.

                  SO_LOWAT        Set the low water mark on the stream
                                  head read queue to that specified by the
                                  so_lowat field.

                  SO_ALL          Set all of the above options (SO_READOPT
                                  | SO_WROFF | SO_MINPSZ | SO_MAXPSZ |
                                  SO_HIWAT | SO_LOWAT).

                  SO_MREADON      Turn on generation of M_READ messages by
                                  the stream head.

                  SO_MREADOFF     Turn off generation of M_READ messages
                                  by the stream head.

                  SO_NDELON       Use old TTY semantics for no-delay reads
                                  and writes.

                  SO_NDELOFF      Use STREAMS semantics for no-delay reads
                                  and writes.

                  SO_ISTTY        The stream is acting as a terminal.

                  SO_ISNTTY       The stream is no longer acting as a
                                  terminal.

                  SO_TOSTOP       Stop processes on background writes to
                                  this stream.

                  SO_TONSTOP      Don't stop processes on background
                                  writes to this stream.

                  SO_BAND         The water marks changes affect the
                                  priority band specified by the so_band
                                  field.

                  SO_LOOP         Indicate to the stream head that this is
                                  a looparound stream (i.e. it supports
                                  passing of file descriptors).

            The so_readopt field specifies options for the stream head
            that alter the way it handles read(2) calls.  This field is a
            bitmask whose flags are grouped in sets.  Within a set, the


                          Copyright 1994 Novell, Inc.               Page 2













       stroptions(D4)                                        stroptions(D4)


             flags are mutually exclusive.  The first set of flags
             determines how data messages are treated when they are read:

                   RNORM           Normal (byte stream) mode.  read returns
                                   the lesser of the number of bytes asked
                                   for and the number of bytes available.
                                   Messages with partially read data are
                                   placed back on the head of the stream
                                   head read queue.  This is the default
                                   behavior.

                   RMSGD           Message discard mode.  read returns the
                                   lesser of the number of bytes asked for
                                   and the number of bytes in the first
                                   message on the stream head read queue.
                                   Messages with partially read data are
                                   freed.

                   RMSGN           Message non-discard mode.  read returns
                                   the lesser of the number of bytes asked
                                   for and the number of bytes in the first
                                   message on the stream head read queue.
                                   Messages with partially read data are
                                   placed back on the head of the stream
                                   head read queue.

             The second set of flags determines how protocol messages
             (M_PROTO and M_PCPROTO) are treated during a read:

                   RPROTNORM       Normal mode.  read fails with the error
                                   code EBADMSG if there is a protocol
                                   message at the front of the stream head
                                   read queue.  This is the default
                                   behavior.

                   RPROTDIS        Protocol discard mode.  read discards
                                   the M_PROTO or M_PCPROTO portions of the
                                   message and return any M_DATA portions
                                   that may be present.  M_PASSFP messages
                                   are also freed in this mode.

                   RPROTDAT        Protocol data mode.  read treats the
                                   M_PROTO or M_PCPROTO portions of the
                                   message as if they were normal data
                                   (that is, they are delivered to the
                                   user.)


                           Copyright 1994 Novell, Inc.               Page 3













      stroptions(D4)                                        stroptions(D4)


            The so_wroff field specifies a byte offset to be included in
            the first message block of every M_DATA message created by a
            write(2) and the first M_DATA message block created by each
            call to putmsg(2).

            The so_minpsz field specifies the minimum packet size for the
            stream head read queue.

            The so_maxpsz field specifies the maximum packet size for the
            stream head read queue.

            The so_hiwat field specifies the high water mark for the
            stream head read queue.

            The so_lowat field specifies the low water mark for the stream
            head read queue.

            The so_band field specifies the priority band to which the
            high and/or low water mark changes should be applied.

      REFERENCES
            datab(D4), messages(D5), msgb(D4), read(2), streamio(7)

      NOTICES
         Portability
            All processors






















                          Copyright 1994 Novell, Inc.               Page 4








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