[ Previous | Next | Table of Contents | Index | Library Home |
Legal |
Search ]
Communications Programming Concepts
Portable Streams Environment (PSE)
was implemented from the AT&T UNIX System V Release 4,
Programmer's Guide: STREAMS document. It is designed
for compatibility with existing STREAMS applications and modules that adhere
to the STREAMS design guidelines.
In some areas, the STREAMS
definition is extended to enhance functionality. These enhancements
include:
- Extended read modes.
PSE supports an extra read mode, RFILL, which requests that the
stream head fill a buffer completely before returning to the
application. This is used in conjunction with a cooperating module and
M_READ messages.
- The putctl2
utility. A new utility routine, putctl2, is
supported for creating M_ERROR messages with 2 bytes of data. The
parameters are the same as for the putctl1
utility.
- Autopush names. The PSE
autopush command accepts device names in
place of major numbers on the command line. It then translates names
into major numbers with the help of the sc module.
Note: Although these extensions can be used freely in this
operating system, their use limits portability.
Although PSE is written to the specifications in the AT&T
document, there are places in which compatibility with the specification is
not implemented or is not possible. These differences are:
- Include files. Not all
structures and definitions in AT&T include files are discussed in the
STREAMS documentation. Module and application writers can use only
those symbols specified in the documentation.
- Module configuration.
The configuration of modules and devices under PSE is different from AT&T
System V Release 4 in that there is no master file or related
structures. PSE maintains an fmodsw table for modules, and a dmodsw
table for devices and multiplexors. Entries are dynamically placed in
these tables as modules are loaded into a running system. Similarly,
PSE normally supports init routines for modules and devices, but
not start routines.
- Logging device. The
STREAMS logging device is named
/dev/slog. The /dev/log node refers to a
different type of logging device.
- Structure definitions.
PSE supports the standard STREAMS structure definitions in terms of field
names and types, but also includes additional fields for host-specific
needs. Modules and applications should not depend on the field position
or structure size as taken from STREAMS documentation. Also, PSE does
not support the notion of expanded fundamental types and the associated
_STYPES definition.
- Queue flags. PSE
defines, but does not implement, the QBACK and QHLIST
queue flags.
- Memory allocation. PSE
does not support the rmalloc, rminit, and
rmfree memory allocation routines.
- Named streams. PSE does
not support named streams and the associated fdetach
program.
- Terminals. PSE does not
include STREAMS-based terminals or the related modules and utilities
(including job control primitives). However, nothing in PSE prevents
STREAMS-based terminals from being added.
- Network selection. PSE
does not support the V.4 Network Selection and Name-to-Address Mapping
extensions to the TLI (Transport Layer Interface).
[ Previous | Next | Table of Contents | Index |
Library Home |
Legal |
Search ]