Структура, используемая для инициализации устройства tty
#include <sys/io-char.h>
typedef struct ttyinit_entry {
_Paddr64t port;
unsigned port_shift;
unsigned intr;
int baud;
int isize;
int osize;
int csize;
int c_cflag;
int c_iflag;
int c_lflag;
int c_oflag;
int fifo;
int clk;
int div;
char name[TTY_NAME_MAX];
char *pmm_parent;
unsigned pmflags;
int verbose;
int highwater;
} TTYINIT;
libio-char
Драйвер символов совместно с библиотекой io-char использует структуру TTYINIT. Она применяется для настройки скорости передачи данных, размеров буферов (входного, выходного, канонического), флагов termios, прерываний и других параметров. Поля структуры включают:
- port
- Содержит адреса регистров устройства.
- port_shift
- Используется для задания расстояния между регистрами. Например:
- 0 - для 8-битных регистров
- 1 - для 16-битных регистров
- 2 - для 32-битных регистров
- intr
- Номер прерывания, связанный с устройством.
- baud
- Скорость передачи данных устройства.
- isize
- Размер входного буфера.
- osize
- Размер выходного буфера.
- csize
- Размер канонического буфера.
- c_cflag
- c_iflag
- c_lflag
- c_oflag
- fifo
- См. TTYDEV.
- clk
- Частота тактового сигнала, используемая с заданной скоростью передачи и делителем в stty.
- div
- Делитель, используемый со скоростью передачи и частотой тактового сигнала в stty.
- name
- Имя устройства.
- pmm_parent
- Пространство имен диспетчера управления питанием.
- pmflags
- Частые флаги управления питанием. Выбрать один из:
- PWR_INIT_DRVREG
- Регистрация как устройства с управлением питанием.
- PWR_INIT_DRVPSTORE
- Драйверу нужен собственный объект постоянного хранения.
- PWR_INIT_DRVSAVE
- Драйвер хочет сохранять данные для HWVOL или NORAM.
- PWR_INIT_DRVOVERRIDE
- Драйвер берет на себя все функциональные обязанности по управлению питанием.
- PWR_INIT_DRVNOFLOWCTL
- Драйвер должен задерживаться перед отключением для контроля потока.
- PWR_INIT_NOPMM
- Указывает, что при инициализации диспетчер питания не запущен.
- verbose
- Уровень детализации сообщений драйвера.
- highwater
- Пороговое значение заполнения буфера ввода.
ЗОСРВ «Нейтрино»
TTYDEV
Предыдущий раздел: Библиотека разработки драйверов символьных устройсв