Операционная система ЗОСРВ «Нейтрино» > Руководство разработчика > Основные принципы системной разработки > Разработка драйверов и драйверные библиотеки > Драйверные библиотеки > Библиотека разработки драйверов ввода (libinput) > API библиотеки libinput > devi_register_interrupt()



devi_register_interrupt()

Присоединение обработчика прерываний

Прототип:

#include <proto.h>
#include <const.h>
int devi_register_interrupt( int intr,
int prio,
int *pc,
input_module_t *module,
struct sigevent *evp,
unsigned flags );

Аргументы:

intr
Номер прерывания.
prio
Приоритет ассоциированного с обработчиком импульса.
pc
Код импульса. Если этот параметр не равен NULL и не равен DEVI_PULSE_ALLOC, то он будет использоваться в составе ассоциированного с прерыванием импульса (в том числе в качестве значения одного из параметров callback-функции input_module_t :: pulse()).
module
Дескриптор модуля (см. input_module_t).
evp
Указатель на struct sigevent или NULL. Если параметр задан, то будет использоваться при последующем вызове InterruptAttachEvent(). В противном случае данная структура будет создана автоматически и ассоциирована с callback-функцей input_module_t :: pulse().
flags
Одно из следующих значений:
0
Значение по умолчанию.
DEVI_SHARE_RSRC
Разрешает совместное использование указанного прерывания. Если параметр pc не был равен NULL, в нём будет возвращен аллоцированный импульс.

Библиотека:

libinput

Описание:

Функция позволяет присоединить к драйверу обработчик прерывания. По умолчанию вызывается InterruptAttachEvent() с присоединением аллоцированного данной функцией импульса. Это поведение может быть легко переопределено с помощью параметра evp.

Возвращаемое значение:

≠-1
Успешное завершение, возвращается идентификатор прерывания.
-1
Возникла ошибка.

Классификация:

ЗОСРВ «Нейтрино»

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Нет
В потоке
Нет

Тематические ссылки:

input_module_t, struct sigevent, devi_enqueue_packet(), devi_register_pulse(), devi_register_timer(), devi_request_iorange()




Предыдущий раздел: Библиотека разработки драйверов ввода (libinput)