A STREAMS driver or module consists of two queue structures, one for upstream processing (read) and one for downstream processing
(write). This structure is the major building block of a stream. It contains pointers to the processing procedures, pointers to the next and previous queues in the stream, flow control parameters, and a pointer defining the position of its messages on the STREAMS scheduler list.
The queue structure is defined as type queue_t.