Структура tty_driver в деталях |
Предыдущая Содержание Следующая |
Структура tty_driver используется, чтобы зарегистрировать tty драйвер в ядре tty. Вот список всех различных полей в структуре и каким образом они используются в ядре tty:
struct module *owner; Владелец модуля этого драйвера.
int magic; "Магическое" (системное) значение для этой структуры. Всегда должно быть установлено в TTY_DRIVER_MAGIC. Инициализируется в функции alloc_tty_driver.
const char *driver_name; Имя драйвера, используемое в /proc/tty и sysfs.
const char *name; Имя узла драйвера.
int name_base; Начальный номер, используемый при создании имени для устройства. Это используется, когда ядро создаёт строковое представление данного tty устройства, связанного с этим tty драйвером.
short major; Старший номер для драйвера.
short minor_start; Начальный младший номер для драйвера. Он обычно установлен в то же значение, что name_base. Как правило, это значение равно 0.
short num; Количество младших номеров, связанных с драйверов. Если драйвером используется весь диапазон старшего номера, это значение должно быть установлено в 255. Эта переменная инициализируется в функции alloc_tty_driver.
short type; short subtype; Описывает, какой тип tty драйвера в настоящее время зарегистрирован в ядре tty. Значение subtype зависит от type. Поле type может быть: TTY_DRIVER_TYPE_SYSTEM Используется внутри подсистемы tty, чтобы запомнить, что она имеет дело с внутренним tty драйвером. subtype должен быть установлен в SYSTEM_TYPE_TTY, SYSTEM_TYPE_CONSOLE, SYSTEM_TYPE_SYSCONS или SYSTEM_TYPE_SYSPTMX. Этот тип не должен быть использован любым "обычным" tty драйвером. TTY_DRIVER_TYPE_CONSOLE Используется только консольным драйвером. TTY_DRIVER_TYPE_SERIAL Используется любым драйвер последовательного типа. subtype должен быть установлен в SERIAL_TYPE_NORMAL или SERIAL_TYPE_CALLOUT, в зависимости от типа вашего драйвера. Это один из наиболее часто используемых параметров для поля type. TTY_DRIVER_TYPE_PTY Используется интерфейсом псевдо-терминала (pty). subtype должен быть установлен либо в PTY_TYPE_MASTER, либо в PTY_TYPE_SLAVE.
struct termios init_termios; Первоначальные значения struct termios для данного устройства, когда оно создаётся.
int flags; Флаги драйвера, как описывалось ранее в этой главе.
struct proc_dir_entry *proc_entry; Структура записи драйвера в /proc. Она создаётся ядром tty, если драйвер реализует функции write_proc или read_proc. Это поле не должно устанавливаться самим tty драйвером.
struct tty_driver *other; Указатель на ведомый tty драйвер. Оно используется только pty драйвером и не должна использоваться любым другим tty драйвером.
void *driver_state; Внутреннее состояние tty драйвера. Должно быть использовано только pty драйвером.
struct tty_driver *next; struct tty_driver *prev; Переменные связи. Эти переменные используются ядром tty для связывания в цепочку всех разных tty драйверов и не должна быть затронута любым tty драйвером. |
Предыдущая Содержание Следующая |