Структура управления TTY
#include <sys/io-char.h>
typedef struct chario_entry {
dispatch_t *dpp;
int coid;
int timerid;
unsigned max_devs;
unsigned num_devs;
struct sigevent event;
struct sigevent timer;
struct ttydev_entry *timer_list;
unsigned num_events;
struct ttydev_entry **event_queue;
intrspin_t lock;
unsigned flags;
} TTYCTRL;
libio-char
Структура TTYCTRL используется драйвером символов совместно с библиотекой io-char для координации событий, таймеров и других операций. Поля структуры включают:
- dpp
- Указатель на дескриптор диспетчера, возвращаемый функцией dispatch_create(). Используется только библиотекой io-char.
- coid
- Идентификатор соединения. Используется только библиотекой io-char.
- timerid
- Идентификатор таймера. Используется только библиотекой io-char.
- max_devs
- Используется библиотекой io-char и драйвером для определения максимального числа поддерживаемых устройств.
- num_devs
- Используется только библиотекой io-char для определения текущего числа поддерживаемых устройств.
- event
- Используется драйвером для отправки импульсных событий в обработчик событий библиотеки io-char. Флаги указывают, какое событие произошло. Драйвер должен отправить событие в io-char. Подробнее см. запись для TTYDEV.
- timer
- Импульс для вызова обработчика таймера. Используется только библиотекой io-char.
- timer_list
- Используется только библиотекой io-char, предоставляет список активных таймеров.
- num_events
- Используется библиотекой io-char и драйвером для отображения текущего числа событий для обработки.
- event_queue
- Массив структур TTYDEV, используемых библиотекой io-char и драйвером для постановки событий в очередь.
- lock
- Блокировка, используемая для контроля доступа к этой структуре. Для доступа используйте макросы dev_lock() и dev_unlock().
- flags
- Флаги, указывающие, какое событие произошло. Подробнее см. запись для TTYDEV.
ЗОСРВ «Нейтрино»
ttc(), TTYDEV
Предыдущий раздел: Библиотека разработки драйверов символьных устройсв