Linux Device Drivers 3 / Драйверы устройств Линукс (третье издание): 18.8. The tty_struct Structure in Detail

Оглавление
Английский оригинал Перевод на русский

Сожалеем, но текст оригинала доступен только зарегистрированным пользователям.

18.8. Подробнее о структуре tty_struct

hardorsoft 26.10.10 в 07:34

0

Переменная tty_struct используется ядром tty-устройств для
хранения текущего состояния последовательного порта. Почти все поля,
за редким исключением, используются ядром tty-устройств. Ниже
перевидены поля, которые может использовать драйвер:

hardorsoft 26.10.10 в 07:34

0

unsigned long flags;
Текущее состояние tty-устройства. Эти битовые поля доступны через
макросы:

hardorsoft 26.10.10 в 07:34

0

TTY_THROTTLED

hardorsoft 26.10.10 в 07:30

0

TTY_THROTTLED
Бит установлен, когда у драйвера вызвана функция throttle.
Устанавливается ядром, не должен устанавливается tty-драйвером.

hardorsoft 26.10.10 в 07:34

0

TTY_IO_ERROR

hardorsoft 26.10.10 в 07:31

0

Бит устанавливается когда драйвер не хочет читать или писать
данные в устройство. Если пользовательская программа попытается
сделать это, она получит ошибку -EIO. Обычно устанавливается при
выключении устройства.

hardorsoft 26.10.10 в 07:34

0

TTY_OTHER_CLOSED

hardorsoft 26.10.10 в 07:31

0

Используется для драйверов pty, для извещения того, что порт
закрыт.

hardorsoft 26.10.10 в 08:00

0

TTY_EXCLUSIVE

hardorsoft 26.10.10 в 07:31

0

TTY_EXCLUSIVE

hardorsoft 26.10.10 в 07:31

0

Устанавливается ядром для индикации того, что порт
находится в эксклюзивном режиме, и что одновременно только
один пользователь может получить доступ к нему.

hardorsoft 26.10.10 в 08:00

0

TTY_DEBUG

hardorsoft 26.10.10 в 07:31

0

Не ипользуется ядром.

hardorsoft 26.10.10 в 08:03

0

TTY_DO_WRITE_WAKEUP
Установленный бит, означает, что можно вызывать функцию
line discipline write_wakeup. Обычно она вызывается вместе с
функцией wake_up_interruptible.

hardorsoft 26.10.10 в 08:03

0

TTY_PUSH

hardorsoft 26.10.10 в 07:31

0

Используется line discipline, установленным по умолчанию, для
внутренних целей.

hardorsoft 26.10.10 в 08:03

0

TTY_CLOSING

hardorsoft 26.10.10 в 07:31

0

Используется ядром tty-устройств для отслеживания находится
ли порт в процессе закрытия.

hardorsoft 26.10.10 в 08:03

0

TTY_DONT_FLIP

hardorsoft 26.10.10 в 07:32

0

Используется line discipline установленным по умолчанию для
извещения ядра о том, что очищенный буфер не изменился.

hardorsoft 26.10.10 в 08:03

0

TTY_HW_COOK_OUT
Устанавливается tty-драйвером, чтобы известить line discipline,
о том что драйвер готов передавать данные в линию. Если бит
не установлен, то line discipline копирует выходные данные
драйвера частями. Если установлен, то каждый байт
посылается индивидуально с отслеживанием изменений на
линии. В основном этот флаг не используется tty-драйвером.

hardorsoft 26.10.10 в 08:04

0

TTY_HW_COOK_IN

hardorsoft 26.10.10 в 07:32

0

Почти идентичн флагу TTY_DRIVER_REAL_RAW в переменной
драйвера flags. Обычно этот флаг не устанавливается
драйвером.

hardorsoft 26.10.10 в 08:06

0

TTY_PTY_LOCK
Используется драйвером псевдотерминала, для блокировки и
разблокировки порта.

hardorsoft 26.10.10 в 08:06

0

TTY_NO_WRITE_SPLIT

hardorsoft 26.10.10 в 07:32

0

Если установлен, ядро tty-устройств не разбивает
записываемые данные на части стандартного размера. Это
значение не используется для предотвращения атак
приводящих к отказу в обслуживании на tty-порту, путем
послания в порт данных большой длинны.

hardorsoft 26.10.10 в 08:06

0

struct tty_flip_buffer flip;

hardorsoft 26.10.10 в 07:32

0

flip буфер для tty-устройства.

hardorsoft 26.10.10 в 08:07

0

struct tty_ldisc ldisc;
line discipline для tty-устройства

hardorsoft 26.10.10 в 08:07

0

wait_queue_head_t write_wait;
Аналог wait_queue для функции записи. Когда драйвер снова сможет
принимать данные, он должен послать сигнал пробуждения.

hardorsoft 26.10.10 в 08:07

0

struct termios *termios;

hardorsoft 26.10.10 в 07:32

0

Указатель на текущие настройки termios tty-устройства.

hardorsoft 26.10.10 в 08:07

0

unsigned char stopped:1;

hardorsoft 26.10.10 в 07:32

0

Показывает, остановлено ли аппаратное обеспечение устройства.
Драйвер изменять задавать это значение.

hardorsoft 26.10.10 в 08:08

0

unsigned char hw_stopped:1;

hardorsoft 26.10.10 в 07:33

0

Индицирует остановку tty-драйвера. Драйвер может изменять это
значение.

hardorsoft 26.10.10 в 08:08

0

unsigned char low_latency:1;

hardorsoft 26.10.10 в 07:33

0

Указывает, что tty-устройство является устройством c низким
временем ожидания, и способно принимать данные на очень
высокой скорости. Tty-драйвер может изменять это значение.

hardorsoft 26.10.10 в 08:08

0

unsigned char closing:1;

hardorsoft 26.10.10 в 07:33

0

Показывает что порт устройства – закрыт. Tty-драйвер может
изменять это значение.

hardorsoft 26.10.10 в 08:08

0

struct tty_driver driver;

hardorsoft 26.10.10 в 07:33

0

Текущий tty_driver структура которая контролирует это tty устройство.

hardorsoft 26.10.10 в 08:10

0

void *driver_data;

hardorsoft 26.10.10 в 07:33

0

Указатель на собственные данные драйвера. Эта переменная не
модифицируется ядром.

hardorsoft 26.10.10 в 08:09

0
Минутку...