MSGB(9S) Data Structures for Drivers MSGB(9S)

msgb, mblk - STREAMS message block structure

#include <sys/stream.h>

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.

datab(9S)

Writing Device Drivers

STREAMS Programming Guide

April 11, 1991 OmniOS