Почему это правило udev не срабатывает?

IXOFFне реализован на псевдотерминале -tty, а установка IXOFFна псевдотерминале -не имеет никакого эффекта.

IXOFFдолжен заставить драйвер tty отправлять символ VSTOPна другую сторону, когда его очередь ввода заполнена (, что должно предотвратить отправку дополнительных данных ), и символ VSTART, когда он обработал его, и есть место для дополнительных данных.

Это отличается от IXON, что заставит драйвер tty учитывать символы VSTART/ VSTOP, отправленные с другой стороны, и при получении символаVSTOP(^S)останавливать любую передачу до VSTART(^Q). ] получен символ.

В случае псевдо -tty "другая сторона" является основным терминалом, т.е. эмулятор вашего терминала; когда вы нажимаете ^S, это IXON, а не настройка IXOFF, которая заставит подчиненный tty перестать возвращать введенные символы и отображать записанные в него данные (, которые будут поставлены в очередь до тех пор, пока очередь вывода не будет заполнен, когда любой write(2)подчиненному tty либо заблокирует, либо вернетEAGAIN).

Реализация управления потоком на псевдо -ttys не требуется, потому что ядро ​​всегда знает (путем проверки поля структуры или аналогичного )того, заполнена ли входная очередь подчиненного устройства, и может просто заблокировать процесс записи на мастер pty.

Программное управление потоком полезно только при использовании реального последовательного соединения без исходящих -из -сигналов диапазона, таких как RTS/CTS :, в отличие от Unix, TCP или других «конвейеров». абстракция, провод не буферизируется и не будет заполняться и блокироваться, пока получатель не прочитает все изменения состояния с него.

1
27.10.2020, 09:18
0 ответов

Теги

Похожие вопросы