Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

mbuf(4)

msgb(4)  —  File Formats

OSF

NAME

msgb − Defines a STREAMS message block

SYNOPSIS

#include <sys/stream.h>
struct msgb {
struct msgb ∗b_next;
struct msgb ∗b_prev;
struct msgb ∗b_cont;
unsigned char ∗b_rptr;
unsigned char ∗b_wptr;
struct datab ∗b_datap;
MSG_KERNEL_FIELDS
};

PARAMETERS

b_next A pointer to the next message on the queue. 

b_prev A pointer to the previous message on the queue. 

b_cont A pointer to the next message block in the message. 

b_rptr A pointer to the first unread data byte in the buffer. 

b_wptr A pointer to the first unwritten data byte in the buffer. 

b_datap A pointer to the datab structure (data block) that contains the data for the message. 

MSG_KERNEL_FIELDS
Additional fields that are visible within the kernel.  The fields included and their contents depend on the kernel configuration.

DESCRIPTION

The msgb structure defines a message block.  A message block carries data or information in a stream.  A STREAMS message consists of message blocks linked through b_cont.  Each message block points to a data block descriptor, which in turn points to a data buffer. 

The msgb structure is typedefed as mblk_t.  The associated data block is stored in a datab structure, which is typedefed as dblk_t. 

The datab structure is defined (in sys/stream.h) as:

struct datab {
        struct datab ∗  db_freep;
        unsigned char ∗ db_base;
        unsigned char ∗ db_lim;
        unsigned char   db_ref;
        unsigned char   db_type;
        unsigned char   db_class;
        unsigned char   db_pad[1];
};

The datab fields are defined as follows:

db_freep Used internally by the STREAMS memory allocator. 

db_base The first byte of the buffer. 

db_lim The last byte of the buffer, plus one. 

db_ref The number of message blocks ( struct msgb) that reference this data block. 

db_type The message type. 

db_class Used internally. 

db_pade Padding. 

Messages are typed according to the value in the db_type field in the associated datab structure.  Some possible type values are:

M_DATA The message contains ordinary data. 

M_PROTO
The message contains internal control information and data.

As part of its support for STREAMS, OSF/I provides the following interfaces for exchanging messages betweens STREAMS modules on the one hand and sockets and network protocols on the other:

       •mbuf_to_mblk() − Converts an mbuf chain to an mblk chain

       •mblk_to_mbuf() − Converts an mblk chain to an mbuf chain

RELATED INFORMATION

Data Structures: mbuf(4)
 

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026