Modules provide the functionality of STREAMS processing; they are pushed onto a stream by use of the ioctl() system call.
For example, a process can open a serial-port device via a stream and can push on a module to handle input editing.
Because messages are exchanged between queues in adjacent modules, a queue in one module may overflow an adjacent queue.
To prevent this from occurring, a queue may support flow control. Without flow control,
a queue accepts all messages and immediately sends them on to the queue in the adjacent module without buffering them. A queue that supports flow