Где искать информацию

Предыдущая  Содержание  Следующая V*D*V

Большинство драйверов событий ввода находятся в каталоге drivers/input/. Однако, драйвер событий клавиатуры находится в drivers/char/keyboard.c, потому что он связан с виртуальными терминалами, а не узлами устройств в /dev/input/.

 

Вы можете найти драйверы устройств ввода в нескольких местах. Драйверы для старых клавиатур, мышей и джойстиков находятся в отдельных подкаталогах в drivers/input/. Драйверы ввода Bluetooth находятся в net/bluetooth/hidp/. Вы также можете найти драйверы ввода в таких местах, как drivers/hwmon/ и drivers/media/video/. Типы событий, коды и значения определены в include/linux/input.h.

 

Подсистема serio находится в drivers/input/serio/. Исходником дисциплины линии serport является drivers/input/serio/serport.c. Более подробная информация о различных интерфейсах ввода содержится в Documentation/input/.

 

Таблица 7.1 суммирует основные структуры данных, используемые в этой главе, и их расположение внутри дерева исходных текстов.

Таблица 7.2 перечисляет основные программные интерфейсы ядра, которые вы использовали в этой главе с указанием места их определения.

 

Таблица 7.1. Список структур данных

 

Структура данных

Местоположение

Описание

input_event

include/linux/input.h

Каждый пакет события, создаваемый evdev, имеет этот формат.

input_dev

include/linux/input.h

Представление устройства ввода.

input_handler

include/linux/serial_core.h

Содержит точки входа, поддерживаемые драйвером событий.

psmouse_protocol

drivers/input/mouse/psmouse-base.c

Информация о драйвере протокола, поддерживающего  PS/2 мышь.

psmouse

drivers/input/mouse/psmouse.h

Методы, поддерживаемые драйвером PS/2 мыши.

 

Таблица 7.2. Список программных интерфейсов ядра

 

Интерфейс ядра

Местоположение

Описание

input_register_device()

drivers/input/input.c

Регистрирует устройство в ядре ввода

input_unregister_device()

drivers/input/input.c

Удаляет устройство из ядра ввода

input_report_rel()

include/linux/input.h

Генерирует относительное перемещение в заданном направлении

input_report_abs()

include/linux/input.h

Генерирует абсолютное перемещение в заданном направлении

input_report_key()

include/linux/input.h

Генерирует нажатие на клавишу или кнопку

input_sync()

include/linux/input.h

Показывает, что подсистема ввода может собрать предыдущие сгенерированные пакеты в пакет evdev и отправить их в пространство пользователя через /dev/input/inputX

input_register_handler()

drivers/input/input.c

Регистрирует специальный драйвер событий

sysfs_create_group()

fs/sysfs/group.c

Создаёт группу узлов sysfs с указанными атрибутами

sysfs_remove_group()

fs/sysfs/group.c

Удаляет группу sysfs, созданную с помощью sysfs_create_group()

tty_insert_flip_char()

include/linux/tty_flip.h

Отправляет символ на уровень дисциплины линии

platform_device_register_simple()

drivers/base/platform.c

Создаёт простое устройство платформы

platform_device_unregister()

drivers/base/platform.c

Отменяет регистрацию устройства платформы

 

Предыдущая  Содержание  Следующая