Структура, определяющая интерфейс драйвера
#include <sys/io-hid.h>typedef struct _io_hid_registrant_funcs {_Uint32t nfuncs;int (*client_attach) (int reg_hdl, void *user);int (*client_detach) (int reg_hdl, void *user);int (*rbuffer_alloc) (_Uint16t size, void **bptr);int (*rbuffer_free) (void *bptr);int (*report_read) (int reg_hdl, void *user, _Uint8t rid, _Uint16t rtype, void *data, _Uint16t dlen);int (*report_write) (int reg_hdl, void *user, _Uint8t rid, _Uint16t rtype, void *data, _Uint16t dlen);int (*get_idle) (int reg_hdl, void *user, _Uint8t rid, _Uint16t *idle_rate);int (*set_idle) (int reg_hdl, void *user, _Uint8t rid, _Uint16t idle_rate);int (*get_protocol) (int reg_hdl, void *user, _Uint8t *protocol);int (*set_protocol) (int reg_hdl, void *user, _Uint8t protocol);int (*string) (int reg_hdl, void *user, _Uint16t request, void **str);int (*indexed_string) (int reg_hdl, void *user, _Uint16t index, void **str);int (*reset) (int reg_hdl, void *user);int (*reserved) (void *ptr);} io_hid_registrant_funcs_t;
Эта структура определяет интерфейс для управления HID-устройствами, и каждый указатель функции представляет определенную операцию, которая может быть выполнена на устройстве. Фактическая реализация этих функций будет зависеть от контекста и конкретных требований драйвера или HID-библиотеки, с которыми вы работаете.
ЗОСРВ «Нейтрино»
Предыдущий раздел: Библиотека разработки HID-драйверов