STREAMS Programming Guide

Message Types

Several STREAMS messages differ in their purpose and queueing priority. The message types are briefly described and classified according to their queueing priority in Table 7-1. A detailed discussion of Message Types is in Chapter 8, Messages - Kernel Level.

Some message types are defined as high-priority types. The others can have a normal priority of 0, or a priority (also called a band) from 1 to 255.

Table 7-1 Ordinary Messages, Showing Direction of Communication Flow

Ordinary Messages (also called normal messages)

Direction 

M_BREAK

Request to a Stream driver to send a "break"  

 

Graphic

M_CTL

Control or status request used for intermodule communication  

 

Graphic

M_DATA

User data message for I/O system calls  

 

Graphic

M_DELAY

Request for a real-time delay on output  

 

Graphic

M_IOCTL

Control/status request generated by a Stream head  

 

Graphic

M_PASSFP

File pointer-passing message  

 

Graphic

M_PROTO

Protocol control information  

 

Graphic

M_SETOPTS

Sets options at the Stream head; sends upstream  

 

Graphic

M_SIG

Signal sent from a module or driver  

 

Graphic

Table 7-2 High-Priority Messages, Showing Direction of Communication Flow

High-Priority Messages:

Direction 

M_COPYIN

Copies in data for transparent ioctl(2)s

 

Graphic

M_COPYOUT

Copies out data for transparent ioctl(2)s

 

Graphic

M_ERROR

Reports downstream error condition  

 

Graphic

M_FLUSH

Flushes module queue  

 

Graphic

M_HANGUP

Sets a Stream head hangup condition  

 

Graphic

M_UNHANGUP

Reconnects line, sends upstream when hangup reverses  

 

Graphic

M_IOCACK

Positiveioctl(2) acknowledgment

 

Graphic

M_IOCDATA

Data for transparent ioctl(2)s, sent downstream

 

Graphic

M_IOCNAK

Negative ioctl(2) acknowledgment

 

Graphic

M_PCPROTO

Protocol control information  

 

Graphic

M_PCSIG

Sends signal from a module or driver  

 

Graphic

M_READ

Read notification; sends downstream  

 

Graphic

M_START

Restarts stopped device output  

 

Graphic

M_STARTI

Restarts stopped device input  

 

Graphic

M_STOP

Suspends output  

 

Graphic

M_STOPI

Suspends input  

 

Graphic