stroptions(D4)

stroptions - stream head option structure

Showing IRIX 6.5.30 (default release). Unchanged since IRIX 6.5.

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.

          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.

     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 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.)

     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)