| |
| Figure 2-1 Simple Stream | 7 |
| Figure 2-2 STREAMS-based Pipe | 8 |
| Figure 2-3 Stream to Communications Driver | 11 |
| Figure 2-4 Queue Pair Allocation | 12 |
| Figure 2-5 A Message | 14 |
| Figure 2-6 Messages on a Message Queue | 15 |
| Figure 2-7 A Stream in More Detail | 17 |
| Figure 2-8 Many-to-one Multiplexer | 19 |
| Figure 2-9 One-to-many Multiplexer | 19 |
| Figure 2-10 Many-to-many Multiplexer | 20 |
| Figure 2-11 Internet Multiplexing Stream | 21 |
| Figure 2-12 X.25 Multiplexing Stream | 22 |
| Figure 2-13 Protocol Module Portability | 25 |
| Figure 2-14 Protocol Migration | 26 |
| Figure 2-15 Module Reusability | 27 |
| Figure 3-1 Upstream and Downstream Stream Construction | 31 |
| |
| Figure 3-2 Stream Queue Relationship | 32 |
| Figure 3-3 Case Converter Module | 38 |
| Figure 4-1 Idle Stream Configuration Example | 48 |
| Figure 4-2 Operational Stream for Example | 49 |
| Figure 4-3 Module Put and Service Procedures | 50 |
| Figure 5-1 Message Form and Linkage | 58 |
| Figure 5-2 Message Ordering in a Queue | 66 |
| Figure 5-3 Message Ordering with One Priority Band | 67 |
| Figure 5-4 Data Structure Linkage | 74 |
| Figure 5-5 Flow Control | 77 |
| Figure 5-6 Protocol Substitution | 84 |
| Figure 5-7 Service Interface | 85 |
| Figure 5-8 Receiving Data | 93 |
| Figure 7-1 Flushing The Write-Side of A Stream | 153 |
| Figure 7-2 Flushing The Read-Side of A Stream | 154 |
| Figure 7-3 Interfaces Affecting Drivers | 157 |
| Figure 9-1 Device Driver Streams | 186 |
| Figure 9-2 Loop-Around Streams | 199 |
| Figure 10-1 MultiplexerProtocol Multiplexer | 213 |
| Figure 10-2 Before Link | 214 |
| Figure 10-3 IP Multiplexer After First Link | 216 |
| Figure 10-4 IP Multiplexer | 217 |
| Figure 10-5 TP Multiplexer | 219 |
| Figure 10-6 Internet Multiplexer Before Connecting | 226 |
| Figure 10-7 Internet Multiplexer After Connecting | 227 |
| |
| Figure 10-8 open() of MUXdriver and Driver1 | 241 |
| Figure 10-9 Multiplexer After I_PLINK | 242 |
| Figure 10-10 Other Users Opening a MUXdriver | 243 |
| Figure 11-1 Pushing Modules on a STREAMS-based Pipe | 249 |
| Figure 11-2 Server Sets Up a Pipe | 257 |
| Figure 11-3 Processes X and Y Open /usr/toserv | 258 |
| Figure 12-1 STREAMS-based Terminal Subsystem | 262 |
| Figure 12-2 Pseudo-TTY Subsystem Architecture | 274 |
| Figure 13-1 Inner perimeter spanning a pair of queues. (D_MPTQAIR) | 292 |
| Figure 13-2 Inner perimeter spanning all queues in a module. (D_MTPERMOD) | 293 |
| Figure 13-3 Outer perimeter spanning all queues in a module with inner perimeters spanning each pair of queues. (D_MTOUTPERIM combined with D_MTQPAIR) | 294 |
| Figure B-1 M_PROTO and M_PCPROTO Message Structure | 337 |
| Figure D-1 Error and Trace Logging | 380 |