STREAMS-UX Programmer's Guide (February 2007)

Messages
Message Structures
Chapter 3
46
Ordinary messages are always put at the end of the message queue. These messages have
the priority band (b_band) set to zero. However, any ordinary messages can be changed to
priority band messages (also known as Expedited data) by modifying b_band value.
STREAMS supports priority band value up to 255.
M_DATA User data.
M_PROTO Protocol control information.
M_IOCTL User IOCTL request generated by stream head.
M_PASSFP Passes file descriptor between the processes.
M_SIG Signal sent by a driver/module to a process.
M_BREAK Requests a driver to send a break to the hardware device.
M_DELAY Request a driver to generate a delay on output.
M_CTL Used for inter module communication and is implementation dependent.
M_SETOPTS Sets stream head characterstics.
M_TRAIL Marks the end of message after M_HANGUP.
M_RSE Reserved for STREAMS internal use.
High Priority Messages
High priority messages are placed at the head of the message queue and are not governed
by STREAMS flow control.
M_PCPROTO Protocol control information.
M_READ Read notification sent downstream by stream head.
M_PCSIG Signal sent by a driver or module to a process.
M_COPYIN Copy in user data for transparent IOCTL.
M_COPYOUT Copy out kernel data for transparent IOCTL.
M_IOCDATA Sent downstream by stream head in response to M_COPYIN or M_COPYOUT.
M_IOCACK Positive acknowledge of an IOCTL request.
M_IOCNAK Negative acknowledge of an IOCTL request.
M_ERROR Report downstream error condition and to mark stream in error.
M_FLUSH Discard messages in the stream.
M_HANGUP Sent upstream by the driver to indicate that it is disconnected from the
device.
M_START Request devices to start output.
M_STARTI Restart devices input.
M_STOP Stop device output.
M_STOPI Stop device input.
M_PCRSE Reserved for STREAMS internal use.
M_CLOSE Notify the driver of close(2) when allcloses is in effect.
M_CLOSE_REPL Driver reply to M_CLOSE; MSGLASTCLOSE flag set and indication to
dismantle the stream.