The STREAMS Programming Guide describes how to use STREAMS in designing and implementing applications and STREAMS modules and drivers, for architectures that conform to the Solaris 7 DDI/DDK.
Note - This Solaris release supports systems that use the SPARC and x86 families of processor architectures: UltraSPARC, SPARC64, AMD64, Pentium, and Xeon EM64T. The supported systems appear in the Solaris 10 Hardware Compatibility List at http://www.sun.com/bigadmin/hcl. This document cites any implementation differences between the platform types.
In this document the term “x86” refers to 64-bit and 32-bit systems manufactured using processors compatible with the AMD64 or Intel Xeon/Pentium product families. For supported systems, see the Solaris 10 Hardware Compatibility List.
This manual is a guide for application, driver, and module developers. The reader must know C programming in a UNIX environment, and be familiar with the system interfaces. Driver and module developers should also be familiar with the book Writing Device Drivers.
This guide is divided into three parts. Part 1, Application Programming Interface, describes how to use STREAMS facilities in applications. Part 2, Kernel Interface, describes how to design STREAMS modules and STREAMS drivers. Part 3, Advanced Topics, contains advanced topics. Every developer should read Chapter 1.
Part 1, Application Programming Interface
Chapter 1, Overview of STREAMS is a general overview of STREAMS concepts and mechanisms.
Chapter 2, STREAMS Application-Level Components describes the basic operations to assemble, use, and dismantle streams.
Chapter 3, STREAMS Application-Level Mechanisms details the operations of messages, the flow of streams, and how to manipulate Steams from applications.
Chapter 4, Application Access to the STREAMS Driver and Module Interfaces describes putting messages into and receiving them from a stream.
Chapter 5, STREAMS Administration identifies and describes tools to monitor names and modules, and gather statistics.
Chapter 6, Pipes and Queues describes pipes and named pipes (FIFOs).
Part 2, Kernel Interface
Chapter 7, STREAMS Framework - Kernel Level describes STREAMS modules, drivers, and how they relate.
Chapter 8, STREAMS Kernel-Level Mechanisms describes message types, structure, and linkage in detail. Flow control is also covered.
Chapter 9, STREAMS Drivers describes specific STREAMS drivers, using code samples.
Chapter 10, STREAMS Modules describes how specific examples of modules work based on code samples.
Chapter 11, Configuring STREAMS Drivers and Modules describes configuring modules and drivers into the OS.
Chapter 12, Multithreaded STREAMS describes the multithreaded environment and how to make modules and drivers MT- safe.
Chapter 13, STREAMS Multiplex Drivers describes how to implement multiplexing in a driver.
Part 3, Advanced Topics
Chapter 14, Debugging STREAMS-based Applications describes the tools available for debugging STREAMS-based applications.
Part 4, Appendixes
Appendix A, Message Types describes STREAMS messages and their use.
Appendix B, Kernel Utility Interface Summary describes STREAMS utility routines and their use.
Appendix C, STREAMS-Based Terminal Subsystem explains how to set up a terminal subsystem, and how to keep track of processes and handle interrupts.
Appendix D, STREAMS FAQ contains answers to a variety of commonly asked questions about STREAMS.
Glossary defines terms unique to STREAMS.
You can obtain more information on STREAMS system calls and utilities from the on-line manual pages. For more information on driver-related issues, including autoconfiguration, see Writing Device Drivers.
You can also find STREAMS described to some extent in the System V Interface Definition, and in the following publications:
Goodheart, Berny and Cox, James. The Magic Garden Explained. Australia, & Englewood Cliffs, New Jersey: Prentice Hall, 1994.
Rago, Stephen A. UNIX System V Network Programming. Reading, Massachusetts: Addison-Wesley, 1993.
The docs.sun.com Web site enables you to access Sun technical documentation online. You can browse the docs.sun.com archive or search for a specific book title or subject. The URL is http://docs.sun.com.
The following table describes the typographic changes used in this book.
Table P-1 Typographic Conventions
The following table shows the default system prompt and superuser prompt for the C shell, Bourne shell, and Korn shell.
Table P-2 Shell Prompts