Подключить устройство USB
#include <sys/usbdi.h>int usbd_attach( struct usbd_connection *connection,usbd_device_instance_t *instance,size_t extra,struct usbd_device **device );
libusbdi
Функция usbd_attach() используется для подключения устройства. Как правило, эта функция вызывается из функции - обработчике подсоединения (insertion callback), вызываемого при физическом подключении устройства, соответствующего заданному фильтру. Обработчик подсоединения возвращает параметр instance (сведения об экземпляре подключенного устройства).
Прототип обработчика подсоединения:
void (*insertion)( struct usbd_connection *, usbd_device_instance_t *instance );
Подключение в цикле
Другим способом подключения является подключение в цикле ко всем устрйотсвом (при этом экземпляр устройства создается самостоятельно). Пример:
for ( busno = 0; busno < 10; ++busno ){for ( devno = 0; devno < 64; ++devno ){memset( &instance, USBD_CONNECT_WILDCARD, sizeof( usbd_device_instance_t ) );instance.path = busno;instance.devno = devno;if ( usbd_attach( connection, &instance, 0, &device ) == EOK ){...}}}
Степень “подключенности” зависит от типа подсоединения:
ЗОСРВ «Нейтрино»
usbd_device_instance_t, usbd_connect(), usbd_detach(), usbd_device_extra(), usbd_disconnect()
Предыдущий раздел: Библиотека libusbdi