usbd_setup_vendor()

Настроить блок URB для передачи, определенной производителем

Прототип:

#include <sys/usbdi.h>
int usbd_setup_vendor( struct usbd_urb *urb,
uint32_t flags,
uint16_t request,
uint16_t rtype,
uint16_t value,
uint16_t index,
void *addr,
uint32_t len );

Аргументы:

urb
Дескриптор блока URB, возвращаемый функцией usbd_alloc_urb().
flags
Принимает значения, соответствующие параметру flags функции usbd_setup_control
request
Специфичный для устройства запрос.
rtype
Тип запроса, соответствующий параметру rtype функции usbd_setup_control().
value
Значение, которое зависит от запроса и используется для передачи параметра устройству.
index
Индекс, который зависит от запроса и используется для передачи параметра устройству.
addr
Адрес начала передачи, для которого необходимо использовать адрес буфера, выделенного вызовом usbd_alloc().
len
Длина передачи данных в байтах.

Библиотека:

libusbdi

Описание:

Функция usbd_setup_vendor() настраивает блок URB для определенной производителем (vendor-specific).


Note: В текущей реализации стека USB данный тип передачи является только синхронным, поэтому параметр func в функции usbd_io() необходимо установить в NULL.

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

EOK
Успешное завершение.

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

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

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

Предостережения:

Для гарантии того, что будет использоваться правильный физический адрес, необходимо использовать буфер, выделенный usbd_alloc() параметру addr.

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

usbd_descriptor(), usbd_feature(), usbd_io(), usbd_setup_bulk(), usbd_setup_control(), usbd_setup_interrupt(), usbd_setup_isochronous(), usbd_status()




Предыдущий раздел: Библиотека libusbdi