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