Подключиться к стеку USB
#include <sys/usbdi.h>int usbd_connect( usbd_connect_parm_t *parm,struct usbd_connection **connection );
libusbdi
Функция usbd_connect() используется для подключения к стеку USB и для указания функций обработчиков событий присоединения и отсоединения устройства (в структуре usbd_connect_parm_t).
Драйвер адаптера 3COM Ethernet может подключаться следующим образом:
usbd_device_ident_t interest = { USB_VENDOR_3COM,USB_PRODUCT_3COM_3C19250,USBD_CONNECT_WILDCARD };usbd_funcs_t funcs = { _USBDI_NFUNCS,insertion,removal,NULL };usbd_connect_parm_t cparms = { NULL,USB_VERSION,USBD_VERSION,0,argc,argv,0,&interest,&funcs };struct usbd_connection *connection;int error;error = usbd_connect( &cparms, &connection );
ЗОСРВ «Нейтрино»
Функция usb_connect() создает поток, который используется библиотекой для мониторинга стека USB в части подсоединении и отсоединении устройства. Поскольку функции - обработчики подсоединения и отсоединения вызываются этим новым потоком, то необходимо убедиться, что доступ к общим ресурсам, используемым этим потоком и другими потоками драйвера синхронизирован (например, с помощью мьютекса).
usbd_connect_parm_t, usbd_device_ident_t, usbd_device_instance_t, usbd_funcs_t, usbd_args_lookup(), usbd_attach(), usbd_detach(), usbd_disconnect()
Предыдущий раздел: Библиотека libusbdi