'\"!  tbl | mmdoc
'\"macro stdmacro
.if n .pH ddi_dki.msgb @(#)msgb	40.6 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} msgb D4DK "STREAMS" "DDI/DKI" "\&"
.if \nX=1 .ds x} msgb D4DK "STREAMS" "DDI/DKI"
.if \nX=2 .ds x} msgb D4DK "" "\&"
.if \nX=3 .ds x} msgb "" "" "\&"
.TH \*(x}
.IX "\f4msgb\fP(D4DK)"
.SH NAME
\f4msgb\f1 \- STREAMS message block structure
.SH SYNOPSIS
\f4#include <sys/stream.h>\f1
.SH DESCRIPTION
A STREAMS message is made up of one or
more message blocks, referenced by a
pointer to a \f4msgb\f1 structure.
The \f4b_next\f1 and \f4b_prev\f1
pointers are used to link messages together on a
\f4QUEUE\f1's message queue.
The \f4b_cont\f1 pointer links message blocks together
when a message is
composed of more than one block.
.P
Each \f4msgb\f1 structure also includes a pointer to a \f4datab\f1
structure, the data block (which contains pointers to the actual data of
the message), and the type of the message.
.SH STRUCTURE MEMBERS
.TS
lf4p8 2 lf4p8 2 lf4p8.
struct msgb	*b_next;	/* next message on queue */
struct msgb	*b_prev;	/* previous message on queue */
struct msgb	*b_cont;	/* next message block */
unsigned char	*b_rptr;	/* 1st unread data byte of buffer */
unsigned char	*b_wptr;	/* 1st unwritten data byte of buffer */
struct datab	*b_datap;	/* pointer to data block */
unsigned char	b_band;	/* message priority  */
unsigned char	b_pad1;	/* used internally  */
unsigned short	b_flag;	/* used by stream head  */
long	b_pad2;	/* used internally  */
.TE
The \f4msgb\f1 structure is defined as type \f4mblk_t\f1.
.SH SEE ALSO
\f2BCI Driver Development Guide\f1, Chapter 4, ``Header Files and Data Structures''
.P
.na
\f4datab\f1(D4DK)
.ad
