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