SXT(7)

НАЗВАНИЕ
sxt - драйвер виртуального терминала

ОПИСАНИЕ
Sxt представляет собой дополнительный драйвер, который располагается между драйвером верхнего уровня, единым для всех терминальных линий, и драйвером конкретного устройства. Драйвер верхнего уровня выполняет операции над виртуальными устройствами, а sxt служит посредником при передаче этих операций на реальные устройства. Драйвер sxt в настоящее время используется только командой shl(1).

Виртуальным терминалам соответствуют файлы в каталоге /dev/sxt, которые образуют группы по 8. Чтобы начать работу с группой, программа должна открыть файл вида /dev/sxt/??0 (так называемый канал 0) с флагом O_EXCL, после чего выполнить команду SXTIOCLINK системного вызова ioctl(2) для начала мультиплексирования.

Ввод с клавиатуры может доставаться только одному каналу из группы, так называемому "управляющему". Процессы, пытающиеся читать по другим каналам, будут блокированы.

Драйвер sxt поддерживает две группы команд системного вызова ioctl(2). Первая группа включает все стандартные команды ioctl, описанные в termio(7), со следующим добавлением:

TIOCEXCL
Установить исключительный доступ: до тех пор, пока файл не будет закрыт, все попытки его открыть отвергаются.
TIOCNXCL
Отменить исключительный доступ: разрешается несколько раз открывать файл.
Вторая группа включает команды для самого драйвера sxt. Некоторые из них могут выполняться только для канала 0.
SXTIOCLINK
Создать группу каналов и начать мультиплексированное отображение виртуальных терминалов на реальный. Аргументом является количество создаваемых каналов. Эту команду можно выполнить только на канале 0. Возможны следующие ошибки:
  • [EINVAL] Значение аргумента некорректно.
  • [ENOTTY] Команда выдана не с реального терминала.
  • [ENXIO] В системе нет драйвера sxt.
  • [EBUSY] Команда SXTIOCLINK уже была выдана для данного реального терминала.
  • [ENOMEM] Не хватает памяти для структур виртуальных терминалов.
  • [EBADF] Канал 0 не был предварительно открыт.
SXTIOCSWTCH
Установить "управляющий" канал. Возможны следующие ошибки:
  • [EINVAL] Некорректный номер канала.
  • [EPERM] Команду можно выполнить только на канале 0.
SXTIOCWF
Заставить канал ожидать, пока он не станет "управляющим". Эта команда возвращает ошибку EINVAL, если указан некорректный номер канала.
SXTIOCUBLK
Сбросить флаг loblk для указанного канала. Эта команда возвращает ошибку EINVAL, если указан некорректный номер канала или канал 0.
SXTIOCSTAT
Выдать состояние (блокирован на вводе или на выводе) каждого канала, записав его в структуру типа struct sxtblock, адрес которой передан в качестве аргумента (тип struct sxtblock описан в файле <sys/sxt.h>). Если в структуру записать не удалось, выдается ошибка EFAULT.
SXTIOCTRACE
Включить трассировку. Трассировочная информация выдается на системную консоль. Если при конфигурировании системы возможность трассировки не предусмотрена, команда игнорируется.
SXTIOCNOTRACE
Выключить трассировку. Если при конфигурировании системы возможность трассировки не предусмотрена, команда игнорируется.

ФАЙЛЫ
/dev/sxt/??[0-7] Виртуальные терминалы.

СМ. ТАКЖЕ
termio(7).
shl(1), stty(1) в Справочнике пользователя.
ioctl(2), open(2) в Справочнике программиста.