The following is a list of terms used throughout the
STREAMS Programmer's Guide.
- alignment
- The position in memory of a unit of data, such as a word or half-word, on an integral
boundary. A data unit is properly aligned if its address is evenly divisible by the data unit's size in bytes. For
example, a word is correctly aligned if its address is divisible by four. A half-word is aligned if its address is
divisible by two.
- ARP
- Address Resolution Protocol.
- asm macro
- The macro that defines system functions used to improve driver execution speed. They
are assembler language code sections (instead of C code).
- asynchronous
- An event occurring in an unpredictable fashion. A signal is an example of an
asynchronous event. A signal can occur when something in the system fails, but it is not known when the failure will occur.
- automatic calling unit (ACU)
- A device that permits processors to dial calls automatically over
the communications network.
- base level
- The code that synchronously interacts with a user program. The driver's initialization and
switch table entry point routines constitute the base level. Compare
interrupt level.
- block
- The basic unit of data for I/O access. A block is measured in bytes. The size of a block differs
between computers, file system sizes, or devices.
- block and character interface
- A collection of driver routines, kernel functions, and data structures
that provide a standard interface for writing block and character drivers.
- block device
- A device, such as a magnetic tape drive or disk drive, that conveys data in blocks through
the buffer management code. Compare character
device.
- block driver
- A device driver, such as for a magnetic tape device or disk drive, that conveys data in
blocks through the buffer management code (for example, the
buf structure). One driver is written for each
major number employed by block devices.
- block I/O
- A data transfer method used by drivers for block access devices. Block I/O uses the system
buffer cache as an intermediate data storage area between user memory and the device.
- buffer
- A staging area for input-output (I/O) processes where arbitrary-length transactions are collected
into convenient units for system operations. A buffer consists of two parts: a memory array that contains
data from the disk, and a buffer header that identifies the buffer.
- cache
- A section of computer memory where the most recently used buffers, inodes, pages, and so on
are stored for quick access.
- called DLS user
- The DLS user in connection mode that processes requests for connections from other
DLS users.
- calling DLS user
- The DLS user in connection mode that initiates the establishment of a data link connection.
- canonical processing
- Terminal character processing in which the erase character, delete, and
other commands are applied to the data received from a terminal before the data is sent to a receiving
program. Other terms used in this context are canonical queue, which is a buffer used to retain information
while it is being canonically processed, and canonical mode, which is the state where canonical processing
takes place. Compare raw mode.
- character device
- A device, such as a terminal or printer, that conveys data character by character.
Compare block device.
- character driver
- The driver that conveys data character by character between the device and the
user program. Character drivers are usually written for use with terminals, printers, and network
devices, although block devices, such as tapes and disks, also support character access.
- character I/O
- The process of reading and writing to/from a terminal.
- CLNS
- Connectionless Network Service, the datagram version of the OSI network layer.
- clone driver
- A software driver used by STREAMS drivers to select an unused minor device number,
so that the user process does not need to specify it.
- communication endpoint
- The local communication channel between a DLS user and DLS provider.
- connection establishment
- The phase in connection mode that enables two DLS users to create a data
link connection between them.
- connectionless mode
- A mode of transfer in which data is passed from one user to another in
self-contained units with no logical relationship required among the units.
- connection management stream
- A special stream that will receive all incoming connect
indications destined for Data Link Service Access Point (DLSAP) addresses that are not bound to any other
streams associated with a particular Physical Point of Attachment (PPA).
- connection mode
- A circuit-oriented mode of transfer in which data is passed from one user to another
over an established connection in a sequenced manner.
- connection release
- The phase in connection mode that terminates a previously established data
link connection.
- control and status register (CSR)
- Memory locations providing communication between the device
and the driver. The driver sends control information to the CSR, and the device reports its current status to it.
- controller
- The circuit board that connects a device, such as a terminal or disk drive, to a computer.
A controller converts software commands from a driver into hardware commands that the device
understands. For example, on a disk drive, the controller accepts a request to read a file and converts the
request into hardware commands to have the reading apparatus move to the precise location and send
the information until a delimiter is reached.
- critical code
- A section of code is critical if execution of arbitrary interrupt handlers could result
in consistency problems. The kernel raises the processor execution level to prevent interrupts during a
critical code section.
- CSMA/CD
- Carrier Sense Multiple Access/Collision Detection.
- cyclic redundancy check (CRC)
- A way to check the transfer of information over a channel. When
the message is received, the computer calculates the remainder and checks it against the transmitted remainder.
- data block data transfer
- The method of transferring data in units (blocks) between a block device
such as a magnetic tape drive or disk drive and a user program.
- data structure
- The memory storage area that holds data types, such as integers and strings, or an
array of integers. The data structures associated with drivers are used as buffers for holding data being
moved between user data space and the device, as flags for indicating error device status, as pointers to link
buffers together, and so on.
- data terminal ready
- (DTR) The signal that a terminal device sends to a host computer to indicate that
a terminal is ready to receive data.
- data transfer
- The phase in connection and connectionless modes that supports the transfer of data
between two DLS users.
- DDI/DKI
- Device Driver Interface/Device Kernel Interface.
- demand paging
- A memory management system that allows unused portions of a program to be
stored
temporarily on disk to make room for urgently needed information in main memory. With demand
paging, the virtual size of a process can exceed the amount of physical memory available in a system.
- device number
- The value used by the operating system to name a device. The device number contains
the major number and the minor number.
- dev_t
- The C programming language data type declaration that is used to store the driver major and the
minor device numbers.
- diagnostic
- A software routine for testing, identifying, and isolating a hardware error. A message
is generated to notify the tester of the results.
- DLIDU
- Data Link Interface Data Unit. A grouping of DLS user data that is passed between a DLS
user and the DLS provider across the data link interface. In connection mode, a DLSDU may consist of
multiple DLIDUs.
- DLPI
- Data Link Provider Interface.
- DLS
- Data Link Service.
- DLSAP
- A point at which a DLS user attaches itself to a DLS provider to access data link services.
- DLSAP address
- An identifier used to differentiate and locate specific DLS user access points to a
DLS provider.
- DLS provider
- The data link layer protocol that provides the services of the Data Link Provider Interface.
- DLS user
- The user-level application or user-level or kernel-level protocol that accesses the services of
the data link layer.
- DLSDU
- Data Link Service Data Unit. A grouping of DLS user data whose boundaries are preserved
from one end of a data link connection to the other.
- downstream
- The direction of STREAMS messages flowing through a write queue from the user
process to the driver.
- driver
- The set of routines and data structures installed in the kernel that provide an interface between
the kernel and a device.
- driver entry points
- Driver routines that provide an interface between the kernel and the device driver.
- driver routines
- See routines.
- DSAP
- Destination Service Access Point.
- EDLIDU
- Expedited Data Link Interface Data Unit.
- error correction code (ECC)
- A generic term applied to coding schemes that allow for the correction
of errors in one or more bits of a word of data.
- expedited data transfer
- A DLPI service that transfers data subject to separate flow control than
that applying to normal data transfer. The service is intended to deliver the data ahead of any DLSDUs
that may be in transit.
- FDDI
- Fiber Distributed Data Interface.
- function
- A kernel utility used in a driver. The term function is used interchangeably with the term
kernel function. The use of functions in a driver is analogous to the use of system calls and library routines in
a user-level program.
- initialization entry points
- Driver initialization routines that are executed during system initialization
[for example, init(D2), start(D2)].
- interface
- The set of data structures and functions supported by the UNIX kernel to be used by device drivers.
- interprocess communication (IPC)
- A set of software-supported facilities that enable
independent processes, running at the same time, to share information through messages, semaphores, or
shared memory.
- interrupt level
- Driver interrupt routines that are started when an interrupt is received from a
hardware device. The system accesses the interrupt vector table, determines the major number of the device,
and passes control to the appropriate interrupt routine.
- interrupt priority level (IPL)
- The interrupt priority level at which the device requests that the CPU
call an interrupt process. This priority can be overridden in the driver's interrupt routine for critical
sections of code with the spln(D3D) function.
- interrupt vector
- Interrupts from a device are sent to the device's interrupt vector, activating the
interrupt entry point for the device.
IP Internet Protocol.
ISO International Organization for Standardization.
- kernel buffer cache
- A linked list of buffers used to minimize the number of times a block-type device
must be accessed.
- LLC
- Logical Link Control, a sublayer of the data link layer for media independent data link functions.
- low water mark
- The point at which more data is requested from a terminal because the amount of data
being processed in the character lists has fallen creating room for more. It also applies to STREAMS
queues regarding flow control.
- MAC
- Media Access Control, a sublayer of the data link layer for media specific data link functions.
- memory management
- The memory management scheme of the UNIX operating system imposes
certain restrictions on drivers that transfer data between devices.
- message
- All information flowing in a stream, including transferred data, control information,
queue flushing, errors and signals. The information is referenced by a pointer to a
mblk_t structure.
- message block
- A STREAMS message is made up of one or more message blocks. A message block
is referenced by a pointer to a mblk_t structure, which in turn points to the data block
(dblk_t) structure and the data buffer.
- MIB
- Management Information Base.
- modem
- A contraction of modulator-demodulator. A modulator converts digital signals from the
computer into tones that can be transmitted across phone lines. A demodulator converts the tones received from
the
phone lines into digital signals so that the computer can process the data.
- module
- A STREAMS module consists of two related
queue structures, one each for upstream and downstream messages. One or more modules may be pushed onto a stream between the stream head
and the driver, usually to implement and isolate a line discipline or a communication protocol.
- panic
- The state where an unrecoverable error has occurred. Usually, when a panic occurs, a message
is displayed on the console to indicate the cause of the problem.
- PDU
- Protocol Data Unit.
- portable device interface (PDI)
- A collection of driver routines, kernel functions, and data structures
that provide a standard interface for writing block drivers.
- PPA
- The point at which a system attaches itself to a physical communications medium.
- PPA identifier
- An identifier of a particular physical medium over which communication transpires.
- prefix
- A character name that uniquely identifies a driver's routines to the kernel. The prefix name
starts each routine in a driver. For example, a RAM disk might be given the
ramd prefix. If it is a block driver, the routines are
ramdopen, ramdclose,
ramdstrategy, and ramdprint.
- priority message
- STREAMS messages that must move through the stream quickly are classified as
priority messages. They are placed at the head of the queue for processing by the
srv(D2) routine.
- quality of service (QOS)
- Characteristics of transmission quality between two DLS users.
- queue
- A data structure, the central node of a collection of structures and routines, which makes up half
of a STREAMS module or driver. Each module or driver is made up of one queue each for upstream
and downstream messages. Location: stream.h.
- raw
- I/O movement of data directly between user address spaces and the device. Raw I/O is used
primarily for administrative functions where the speed of a specific operation is more important than overall
system performance.
- raw mode
- The method of transmitting data from a terminal to a user without processing. This mode
is defined in the line discipline modules.
- read queue
- The half of a STREAMS module or driver that passes messages upstream.
- routines
- A set of instructions that perform a specific task for a program. Driver code consists of
entry-point routines and subordinate routines. Subordinate routines are called by driver entry-point routines.
The entry-point routines are accessed through system tables.
- SAP
- Service Access Point, conceptually the "point" at which a layer in the OSI model make its
services available to the layer above it.
- SCSI driver interface (SDI)
- A collection of machine-independent input/output controls, functions,
and data structures, that provide a standard interface for writing Small Computer System Interface
(SCSI) drivers.
- SDU
- Service Data Unit Semantic.
- semantic processing
- Semantic processing entails input validation of the characters received from
a character device.
- small computer system interface (SCSI)
- The American National Standards Institute (ANSI)
approved interface for supporting specific peripheral devices.
- SNMP
- Simple Network Management Protocol.
- source code control system (SCCS)
- A utility for tracking, maintaining, and controlling access to
source code files.
- special device file
- The file that identifies the device's access type (block or character), the external
major and minor numbers of the device, the device name used by user-level programs, and security
control (owner, group, and access permissions) for the device.
- SSAP
- Source Service Access Point.
- stream
- A linked list of kernel data structures providing a full-duplex data path between a user process
and a device or pseudo-device.
- stream end
- The stream end is the component of a stream farthest from the user process, providing
the interface to the device. It contains pointers to driver (rather than module) routines.
- stream head
- Every stream has a stream head, which is inserted by the STREAMS subsystem. It is
the component of a stream closest to the user process. The stream head processes STREAMS-related
system calls and performs the transfer of data between user and kernel space.
- STREAMS
- A kernel subsystem used to build a stream, which is a modular, full-duplex data path
between a device and a user process.
- switch table
- The operating system that has two switch tables,
cdevsw and bdevsw. These tables hold
the entry point routines for character and block drivers and are activated by I/O system calls.
- switch table entry points
- Driver routines that are activated through
bdevsw or cdevsw tables.
- synchronous data link interface (SDLI)
- A UN-type circuit board that works subordinately to the
input/output accelerator (IOA). The SDLI provides up to eight ports for full-duplex synchronous
data communication.
- system initialization
- The routines from the driver code and the information from the master file
that initialize the system (including device drivers).
- TCP
- Transmission Control Protocol, a connection oriented transport in the Internet suite.
- upstream
- The direction of STREAMS messages flowing through a read queue from the driver to the
user process.
- user space
- The part of the operating system where programs that do not have direct access to the
kernel structures and services execute. The UNIX operating system is divided into two major areas: the
user program and the kernel. Drivers execute in the kernel, and the user programs that interact with
drivers generally execute in the user program area. This space is also referred to as user data area.
- volume table of contents
- Lists the beginning and ending points of the disk partitions by the
system administrator for a given disk.
- write queue
- The half of a STREAMS module or driver that passes messages downstream.