Set up a URB for an isochronous transfer
#include <sys/usbdi.h>
int usbd_setup_isochronous( struct usbd_urb *urb,
uint32_t flags,
int32_t frame,
void *addr,
uint32_t len );
- 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 either or both of the following:
- URB_ISOCH_ASAP—allow transfer as soon as possible
(overrides frame).
- URB_SHORT_XFER_OK—allow short transfers.
- frame
- The device frame number. This is ignored if URB_ISOCH_ASAP is set.
- 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.
libusbdi
This routine sets up a URB for an isochronous transfer.
- EOK
- Success.
QNX Neutrino, QNX 4
Safety: | |
Cancellation point |
No |
Interrupt handler |
No |
Signal handler |
No |
Thread |
Yes |
usbd_descriptor(),
usbd_feature(),
usbd_io(),
usbd_setup_bulk(),
usbd_setup_control(),
usbd_setup_interrupt(),
usbd_setup_vendor(),
usbd_status()