Architecture independent level 1 (DDI/DKI)
A STREAMS message is made up of one or more message blocks, referenced by a pointer to a msgb structure. The b_next and b_prev pointers are used to link messages together on a QUEUE. The b_cont pointer links message blocks together when a message consists of more than one block.
Each msgb structure also includes a pointer to a datab(9S) structure, the data block (which contains pointers to the actual data of the message), and the type of the message.
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 short b_flag; /* used by stream head */
Valid flags are as follows:
MSGMARK Last byte of message is marked.
MSGDELIM Message is delimited.
The msgb structure is defined as type mblk_t.
Writing Device Drivers
STREAMS Programming Guide