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) в Справочнике программиста.