strchg -p [-a | -u module]
strchg -f file
strconf [-t | -m module]
With the -h option, strchg pushes modules onto a stream; it takes as arguments the names of one or more pushable streams modules. These modules are pushed in order; that is, module1 is pushed first, module2 is pushed second, and so on.
The -p option pops modules off the stream. With the -p option alone, strchg pops the topmost module from the stream. With the -p and -a options, all the modules above the topmost driver are popped. When the -p option is followed by -u module, then all modules above but not including module are popped off the stream. The -a and -u options are mutually exclusive.
With the -f option, the user can specify a file that contains a list of modules representing the desired configuration of the stream. Each module name must appear on a separate line where the first name represents the topmost module and the last name represents the module that should be closest to the driver. The strchg command will determine the current configuration of the stream and pop and push the necessary modules in order to end up with the desired configuration.
The -h, -f and -p options are mutually exclusive.
Invoked without any arguments, strconf prints a list of all the modules in the stream as well as the topmost driver. The list is printed with one name per line where the first name printed is the topmost module on the stream (if one exists) and the last item printed is the name of the driver. With the -t option, only the topmost module (if one exists) is printed. The -m option determines if the named module is present on a stream. If it is, strconf prints the message yes and returns zero. If not, strconf prints the message ``no'' and returns a non-zero value. The -t and -m options are mutually exclusive.
strconf returns zero on success (for the -m or -t option, ``success'' means the named or topmost module is present). It returns a non-zero status if invoked with the -m or -t option and the module is not present. It prints an error message and returns non-zero status for various error conditions, including usage error or failure of an ioctl on the stream.
If modules are pushed in the wrong order, one could end up with a stream that does not function as expected. For terminals, if the line discipline module is not pushed in the correct place, one could have a terminal that does not respond to any commands.
The following command pops the topmost module from the stream
associated with /dev/term/24.
The user must be the owner of this device or a privileged user.
strchg -p < /dev/term/24
If the file fileconf contains the following:
compat ldterm ptemthen the command
will configure the user's standard input stream so that the module ptem is pushed over the driver, followed by ldterm and compat closest to the stream head.
The strconf command with no arguments lists the modules and topmost driver on the stream; for a stream that has only the module ldterm pushed above the ports driver, it would produce the following output:
ldterm portsThe following command asks if ldterm is on the stream
and produces the following output while returning an exit status of 0: