Передача данных в оборудование
#include <sys/io-char.h>
int tto( TTYDEV *ttydev,
int action,
int arg1 )
- ttydev
- Указатель на структуру TTYDEV драйвера.
- action
- Одно из следующих действий:
- TTO_STTY
- Получена команда stty. Вызывается io-char, когда команда stty выполняется для устройства. Эта операция вызывает ser_stty(); аргумент arg1 игнорируется
- TTO_CTRL
- Установка характеристик порта, например, управление линиями модема RS-232. Значения аргумента arg1:
- _SERCTL_BRK_CHG
- Вызывается io-char, когда приложение запрашивает отправку "break" (например, через tcsendbreak()).
- _SERCTL_DTR_CHG
- Изменяет линию DTR.
- _SERCTL_RTS_CHG
- Изменяет линию RTS. io-char вызывает эту команду для активации аппаратного управления потоком, когда входной буфер заполняется.
- TTO_LINESTATUS
- Запрос на получение статуса линий. Возвращает состояние регистров Modem Status и Modem Control, когда пользователь выполняет devctl() с параметром
DCMD_CHR_LINESTATUS
; аргумент игнорируется. - TTO_DATA
- Используется, если tto() вызывается напрямую из обработчика прерывания для передачи данных или если обработчик записи io-char вызывает функцию для начала передачи.
- TTO_EVENT
- Используется для вызова tto() в контексте потока для передачи данных. Обработчик прерываний может вернуть это событие вместо прямого вызова tto().
- arg1
- Значение данных, которое имеет разные значения для разных действий. Используется для передачи флагов, модифицирующих действие
libio-char
Функция передает данные из выходного буфера io-char в оборудование. Она также обрабатывает команды stty, вызывая ser_stty(), и предоставляет информацию о состоянии линий управления и их статусе.
- 0
- Успешное завершение.
- -1
- Произошла ошибка.
ЗОСРВ «Нейтрино»
Предыдущий раздел: Обзор примера драйвера последовательного порта