Operating systems, development tools, and professional services
for connected embedded systems
for connected embedded systems
![]() |
![]() |
![]() |
![]() |
usbd_setup_vendor()
Set up a URB for a vendor-specific transfer
Synopsis:
#include <sys/usbdi.h>
int usbd_setup_vendor( struct usbd_urb *urb,
_uint32 flags,
_uint16 request,
_uint16 rtype,
_uint16 value,
_uint16 index,
void *addr,
_uint32 len );
Arguments:
- urb
- An opaque handle (from usbd_alloc_urb()).
- flags
- One of the following:
- URB_DIR_IN--specify incoming (device-to-PC) transfer.
- URB_DIR_OUT--specify outgoing (PC-to-device) transfer.
- URB_DIR_NONE--don't specify the direction.
You can optionally OR in the following:
- URB_SHORT_XFER_OK--allow short transfers.
- request
- A device-specific request.
- rtype
- The type of request; one of the following:
- USB_RECIPIENT_DEVICE
- USB_RECIPIENT_INTERFACE
- USB_RECIPIENT_ENDPOINT
- USB_RECIPIENT_OTHER
ORed with one of the following:
- USB_TYPE_STANDARD
- USB_TYPE_CLASS
- USB_TYPE_VENDOR
- value
- This varies, depending on the request. It's used for passing a parameter to the device.
- index
- This varies, depending on the request. It's used for passing a parameter to the device.
- addr
- The address for the start of the transfer. You must use the buffer allocated by usbd_alloc().
- len
- The length (in bytes) of the data transfer.
Library:
libusbdi
Description:
This routine sets up a URB for a vendor-specific transfer.
![]() |
For this release of the USB DDK, vendor requests are synchronous only. Therefore, the func parameter in usbd_io() must be NULL. |
Returns:
- EOK
- Success.
Classification:
| Safety: | |
|---|---|
| Cancellation point | No |
| Interrupt handler | No |
| Signal handler | No |
| Thread | Yes |
Caveats:
To ensure that the correct physical address will be used, you must use the buffer allocated by usbd_alloc() for the addr parameter.
See also:
usbd_descriptor(), usbd_feature(), usbd_io(), usbd_setup_bulk(), usbd_setup_control(), usbd_setup_interrupt(), usbd_setup_isochronous(), usbd_status()
![]() |
![]() |
![]() |
![]() |

![[Previous]](prev.gif)
![[Contents]](contents.gif)
![[Index]](keyword_index.gif)
![[Next]](next.gif)
