JavaScript is required to for searching.
Skip Navigation Links
Exit Print View
STREAMS Programming Guide
search filter icon
search icon

Document Information

Preface

Part I Application Programming Interface

1.  Overview of STREAMS

2.  STREAMS Application-Level Components

3.  STREAMS Application-Level Mechanisms

4.  Application Access to the STREAMS Driver and Module Interfaces

5.  STREAMS Administration

6.  Pipes and Queues

Part II Kernel Interface

7.  STREAMS Framework - Kernel Level

8.  STREAMS Kernel-Level Mechanisms

9.  STREAMS Drivers

10.  STREAMS Modules

11.  Configuring STREAMS Drivers and Modules

12.  Multithreaded STREAMS

13.  STREAMS Multiplex Drivers

Part III Advanced Topics

14.  Debugging STREAMS-based Applications

Part IV Appendixes

A.  Message Types

B.  Kernel Utility Interface Summary

C.  STREAMS-Based Terminal Subsystem

D.  STREAMS FAQ

Glossary

Index

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

W

M

M_BREAK, M_BREAK
M_COPYIN, M_COPYIN
M_COPYOUT, M_COPYOUT
transparent ioctl example, Bidirectional Data Transfer Example
with M_IOCTL, M_IOCTL
M_COPYOUT using transparent ioctl, example, M_COPYOUT Example
M_CTL, M_CTL
M_STOP, SO_MREADOFF and M_STOP
SO_MREADOFF, SO_MREADOFF and M_STOP
with line discipline module, Line-Discipline Module
M_DATA, M_DATA
M_DELAY, M_DELAY
M_ERROR, M_ERROR
M_FLUSH, M_FLUSH
flags, M_FLUSH
flush read and write queues, Flush Handling
flush read side of stream, Flush Handling
flush write side of stream, Flush Handling
FLUSHR, Flush Handling
FLUSHRW, Flush Handling
FLUSHW, Flush Handling
in module example, Filter Module Example
packet mode, Packet Mode
M_FLUSH message handling, description, M_FLUSH Message Handling
M_HANGUP, M_HANGUP
M_IOCACK, M_IOCACK
with M_COPYOUT, M_COPYOUT
with M_IOCTL, M_IOCTL
M_IOCDATA, M_IOCDATA
M_IOCDATA processing
example
M_COPYIN Example
Bidirectional Data Transfer Example
M_IOCNAK, M_IOCNAK
with M_COPYOUT, M_COPYOUT
with M_IOCTL, M_IOCTL
M_IOCTL
M_IOCTL
M_IOCTL
transparent, M_IOCTL
with M_COPYOUT, M_COPYOUT
M_PASSFP, M_PASSFP
M_PCPROTO, M_PCPROTO
M_PCRSE, M_PCRSE
M_PCSIG, M_PCSIG
M_PROTO
M_PROTO
M_PROTO
M_READ, M_READ
M_RSE, M_RSE
M_SETOPTS, M_SETOPTS
SO_FLAG, M_SETOPTS
SO_ISTTY, M_SIG
so_readopt options, Read Options
M_SIG, M_SIG
in signaling, signal Message
M_STOP, SO_MREADOFF and M_STOP
M_STOPI, SO_MREADOFFI and M_STOPI
M_UNHANGUP, M_UNHANGUP
managing extended buffers in multithreaded environment, example, esballoc(9F) Example
manipulating modules, Manipulating Modules
master driver
in pseudo-tty subsystem, STREAMS-based Pseudo-Terminal Subsystem
open, Pseudo-TTY Drivers: ptm and pts
mdb, adb Command
memory-mapped I/O, Extended STREAMS Buffers
message, Message Processing
accessing queue information, Using Queue Information
allocation, Message Allocation and Freeing
container for data and control information, Overview of Streams in Kernel Space
create priority band message, Message Direction
data alignment, Data Alignment
definitions of priority band fields, Using Queue Information
flow control, Controlling Data Flow and Priorities
freeing, Message Allocation and Freeing
getmsg, Message Direction
getpmsg, Message Direction
high-priority
Message Queues and Message Priority
Flow Control in Service Procedures
linking, Message Linkage
M_BREAK
Message Types
M_BREAK
M_COPYIN
Message Types
M_COPYIN
M_COPYOUT
Message Types
M_COPYOUT
M_CTL
Message Types
M_CTL
SO_MREADOFF and M_STOP
M_DATA
Message Types
M_DATA
M_DELAY
Message Types
M_DELAY
M_ERROR
Message Types
M_ERROR
M_FLUSH
Message Types
M_FLUSH
M_HANGUP
Message Types
M_HANGUP
M_IOCACK
Message Types
M_IOCACK
M_IOCDATA
Message Types
M_IOCDATA
M_IOCNAK
Message Types
M_IOCNAK
M_IOCTL
Message Types
M_IOCTL
M_PASSFP
Message Types
M_PASSFP
M_PCPROTO
Message Types
M_PCPROTO
M_PCRSE, M_PCRSE
M_PCSIG
Message Types
M_PCSIG
M_PROTO
Message Types
M_PROTO
M_READ
Message Types
M_READ
M_RSE, M_RSE
M_SETOPTS
Message Types
M_SETOPTS
M_SIG, Message Types
M_START, Message Types
M_STARTI, Message Types
M_STOP, Message Types
M_STOPI
Message Types
SO_MREADOFFI and M_STOPI
M_UNHANGUP
Message Types
M_UNHANGUP
msgb structure
Message Structure
Message Structure
priority, Message Queues and Message Priority
putmsg, Message Direction
putpmsg, Message Direction
qband structure, qband Structure
qinit structure, Entry Points
queue
Message Queues and Message Priority
Message Queues
queue priority, Message Queueing and Priorities
queue structure, queue() Structure
queues
Message Queueing and Priorities
Queued Messages
read options, Read Options
recovering from allocation failure, Recovering From No Buffers
recovering from no buffers, Recovering From No Buffers
retrieve priority band message, Message Direction
service interface, Driver and Module Service Interfaces
shared data, Shared Data
SO_MREADOFI, SO_MREADOFFI and M_STOPI
translation between user application and kernel, Overview of Streams in Kernel Space
types, Message Types
using qband information, Using qband Information
write option, Write Options
message (STREAMS)
direction, Sending and Receiving Messages
flow, Message Processing Procedures
handled by pckt, Packet Mode
handled by ptem, Pseudo-TTY Emulation Module: ptem
high-priority
Message Types
High-Priority Messages
ldterm read side, Read-Side Processing
ldterm write side, Write-Side Processing
linking into queues, Message Structure
M_DATA, Sending and Receiving Messages
M_PCPROTO, Sending and Receiving Messages
M_PROTO, Sending and Receiving Messages
ordinary
Message Types
Ordinary Messages
M_SIG
processing, Message Processing Procedures
sending/receiving, Sending and Receiving Messages
structures, Message Structure
types, Message Types
message block, Glossary
message block structure, example, Message Structure
message ordering, Shared Data
message priorities, Message Queues and Message Priority
message queue, Glossary
priority, Controlling Data Flow and Priorities
priority levels, Message Queueing Priority
message types, rules for changing, Message Type Change Rules
messages, kernel, Message Types
messages sent by driver to stream head
M_ERROR, Loop-Around Driver
M_HANGUP, Loop-Around Driver
M_SIG/M_PCSIG, Loop-Around Driver
modldrv structure, driver operations and linkage information, modldrv
modlinkage structure
module link information, modlinkage
revision level of loadable modules, modlinkage
modlstrmod structure, module operations and linkage information, modlstrmod
module, Glossary
difference with driver, Inserting Modules
draining, Closing the Stream
ioctl control, Module and Driver Control
line discipline, Glossary
manipulation, Manipulating Modules
pushable, Glossary
reusability, Module Reusability
module entry point structure, example, Entry Points
module_info structure, example, Entry Points
module information structure, example, Entry Points
module put, example, put Procedure
module service procedure, example, Queue service Procedure
module unloading, outstanding esballoc callback, Unloading a Module that Uses esballoc
monitor streams events, Input and Output Polling
msgb structure, Message Structure
msgdsize, Kernel Utility Interface Summary
MT SAFE
cb_flag for driver, MT SAFE Driver
driver, MT SAFE Driver
f_flag for module, MT SAFE Module
module, MT SAFE Module
multiple process write, same pipe, Writing to a Pipe or FIFO
multiplexer, Glossary
building
Building a Multiplexer
Building a Multiplexer
controlling stream, Building a Multiplexer
data routing, Routing Data Through a Multiplexer
declarations, Multiplexing Driver Example
definition, Configuring Multiplexed Streams
design guidelines, Design Guidelines
dismantling, Dismantling a Multiplexer
driver
Multiplexing Driver Example
Lower Read put Procedure
example
Multiplexer Construction Example
Multiplexer Construction Example
lower, STREAMS Multiplexers
lower connection
Connecting Lower Streams
Connecting Lower Streams
lower disconnection, Disconnecting Lower Streams
lower read put procedure
Lower Read put Procedure
Lower Read put Procedure
lower stream
Configuring Multiplexed Streams
Glossary
lower write service procedure, Lower Write service Procedure
lower write service procedure, Lower Write service Procedure
minor device connect, Connecting And Disconnecting Lower Streams
minor device disconnect, Disconnecting Lower Streams
pseudo-device driver, Configuring Multiplexed Streams
upper, STREAMS Multiplexers
upper-queue write put procedure, Upper Write put Procedure Sample
upper stream
Configuring Multiplexed Streams
Glossary
upper write service procedure, Upper Write service Procedure Sample
multiplexer ID
in multiplexer building, Building a Multiplexer
in multiplexer dismantling, Dismantling a Multiplexer
multiplexing STREAMS, Configuring Multiplexed Streams
multithread framework
MT SAFE, MT SAFE Modules and Drivers
perimeters, MT SAFE Modules and Drivers
multithreaded kernel, Multithreading the Kernel
porting to, Preparing to Port
multithreaded module
explicit locks, MT SAFE Modules Using Explicit Locks
explicit locks, constraints, Constraints When Using Locks
preserving message ordering, Preserving Message Ordering
multithreaded perimeter
choosing a type, Choosing a Perimeter Type
defining a type, Defining Perimeter Types
description, MT STREAMS Perimeters
exclusive/shared access flags, Choosing a Perimeter Type
flags, Choosing a Perimeter Type
fully-hot, Hot Perimeters
inner, Inner Perimeters
inner perimeter flags, Choosing a Perimeter Type
outer, Outer Perimeters
outer perimeter flags, Choosing a Perimeter Type
PERMOD, PERMOD Perimeter
routines used inside a perimeter, Routines Used Inside a Perimeter
multithreaded STREAMS, concepts and terminology, Multithreaded (MT) STREAMS Overview
multithreaded STREAMS module with outer perimeter, example, Sample Multithreaded Module With Outer Perimeter
multithreaded STREAMS pseudo-driver using an inner perimeter, example, Sample Multithreaded Device Driver Using a Per Module Inner Perimeter
muxuwput, upper-queue write put procedure, Upper Write put Procedure Sample