usbd_setup_control()

Настроить блок URB для управляющей передачи


Note: Данная функция не реализована в текущей версии библиотеки. Для настройки управляющей передачи используется функция usbd_setup_vendor().

Прототип:

#include <sys/usbdi.h>
usbd_setup_control( 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
Принимает следующие значения:
URB_DIR_IN
определяет входящую передачу (от устройства к ПК).
URB_DIR_OUT
определяет исходящую передачу (от ПК к устройству).
URB_DIR_NONE
не устанавливать направление передачи.

Опционально по "ИЛИ" можно добавить:
URB_SHORT_XFER_OK
позволяет выполнять короткие передачи.
request
Специфичный для устройства запрос.
rtype
Тип запроса, принимающий следующее значение:
USB_RECIPIENT_DEVICE
USB_RECIPIENT_INTERFACE
USB_RECIPIENT_ENDPOINT
USB_RECIPIENT_OTHER

Объединенный по "ИЛИ" со значением:
USB_TYPE_STANDARD
USB_TYPE_CLASS
USB_TYPE_VENDOR
value
Значение, которое зависит от запроса и используется для передачи параметра устройству.
index
Индекс, который зависит от запроса и используется для передачи параметра устройству.
addr
Адрес начала передачи, для которого необходимо использовать адрес буфера, выделенного вызовом usbd_alloc().
len
Длина передачи данных в байтах.

Библиотека:

libusbdi

Описание:

Функция usbd_setup_control() настраивает блок URB для управляющей (control) передачи.

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

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

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

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

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

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

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

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

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




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