sxt(M)
sxt --
pseudo-device driver
Description
sxt is a pseudo-device driver that interposes a discipline
between the standard tty line disciplines and a real device driver.
The standard disciplines manipulate virtual tty
structures (channels) declared by the sxt driver.
sxt acts as a discipline manipulating a real tty
structure declared by a real device driver.
The sxt driver is currently only used by the
shl(C)
command.
Virtual ttys are named /dev/sxt?? or
/dev/sxt/?? (where ?? is a combination
of two digits, each in the range 0 ..7 ) and are allocated in groups
of up to eight.
Filenames end in three digits, where the first two digits
represent the group and the last digit represents the virtual tty
number of the group.
The /dev/sxt form of the name increases the size of /dev,
which adversely affects some commands;
the /dev/sxt/ form is not understood by most commands.
To allocate a group, a program should exclusively open a file with a name
of the form /dev/sxt??0 (channel 0) or /dev/sxt/??0
and then execute a SXTIOCLINK ioctl
call to initiate the multiplexing.
Only one channel, the controlling channel,
can receive input from the keyboard at a time;
others attempting to read will be blocked.
ioctl commands
There are two groups of
ioctl(S)
commands supported by sxt.
The first group contains the standard ioctl commands described in
termio(M),
with the addition of the following:
TIOCEXCL-
Set exclusive use mode: no further opens are permitted
until the file has been closed.
TIOCNXCL-
Reset exclusive use mode: further opens are once again permitted.
The second group are directives to sxt itself.
Some of these may only be executed on channel 0.
SXTIOCLINK-
Allocate a channel group and multiplex the virtual ttys onto the real tty.
The argument is the number of channels to allocate.
This command may only be executed on channel 0. Possible errors include:
EINVAL-
The argument is out of range.
ENOTTY-
The command was not issued from a real tty.
ENXIO-
linesw is not configured with sxt.
EBUSY-
An SXTIOCLINK command has already been issued for this real tty.
ENOMEM-
Where is no system memory available for allocating the virtual tty structures.
EBADF-
Channel 0 was not opened before this call.
SXTIOCSWTCH-
Set the controlling channel. Possible errors include:
EINVAL-
An invalid channel number was given.
EPERM-
The command was not executed from channel 0.
SXTIOCWF-
Cause a channel to wait until it is the controlling channel.
This command will return the error, EINVAL, if
an invalid channel number is given.
SXTIOCUBLK-
Turn off the loblk control flag in the virtual tty of the
indicated channel. The error EINVAL will be returned if an
invalid number or channel 0 is given.
SXTIOCSTAT-
Get the status (blocked on input or output) of each channel and store
in the sxtblock structure referenced by the argument.
The error EFAULT will be returned if the structure cannot be written.
SXTIOCTRACE-
Enable tracing. Tracing information is written to the console.
This command has no effect if tracing is not configured.
SXTIOCNOTRACE-
Disable tracing. This command has no effect if tracing is not configured.
Files
/dev/sxt??[0-7]-
virtual tty devices
/dev/sxt/??[0-7]-
/usr/include/sys/sxt.h-
driver specific definitions
See also
ioctl(S),
open(S),
shl(C),
stty(C),
termio(M)
© 2005 The SCO Group, Inc. All rights reserved.
SCO OpenServer Release 6.0.0 -- 03 June 2005