'\"!  tbl | mmdoc
'\"macro stdmacro
.if n .pH ddi_dki.streamtab @(#)streamtab	40.7 of 10/10/89
.\" Copyright 1989 AT&T
.de IX
.ie '\\n(.z'' .tm .Index: \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9	\\n%
.el \\!.IX \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
..
.nr X
.if \nX=0 .ds x} streamtab D4DK "STREAMS" "DDI/DKI" "\&"
.if \nX=1 .ds x} streamtab D4DK "STREAMS" "DDI/DKI"
.if \nX=2 .ds x} streamtab D4DK "" "\&"
.if \nX=3 .ds x} streamtab "" "" "\&"
.TH \*(x}
.IX "\f4streamtab\fP(D4DK)"
.SH NAME
\f4streamtab\f1 \- STREAMS entity declaration structure
.SH SYNOPSIS
\f4#include <sys/stream.h>\f1
.SH DESCRIPTION
Each STREAMS driver or module must have a
\f4streamtab\f1 structure.
Drivers access this structure through the
\f4cdevsw\f1 table, and modules use
the \f4fmodsw\f1 table.
.P
\f4streamtab\f1 is made up of \f4qinit\f1
structures for both the read and
write queue portions of each module or driver.
(Multiplexing drivers require both upper and lower
\f4qinit\f1 structures.)
The \f4qinit\f1 structure
contains the entry points through
which the module or driver routines are called.
.P
Normally, the read \f4QUEUE\f1 contains the \f4open\f1 and \f4close\f1
routines.  Both the read and write queue can contain \f4put\f1 and
service procedures.
.SH STRUCTURE MEMBERS
.TS
lf4p8 2 lf4p8 2 lf4p8.
struct qinit	*st_rdinit;	/* read QUEUE */
struct qinit	*st_wrinit;	/* write QUEUE */
struct qinit	*st_muxrinit;	/* lower read QUEUE*/
struct qinit	*st_muxwinit;	/* lower write QUEUE*/
.TE
.SH SEE ALSO
.na
\f4qinit\f1(D4DK)
.ad
