You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
630 * each frame is in the fields <strong>of</strong> the iso_frame-desc.<br />
631 * @transfer_flags: A variety <strong>of</strong> flags may be used to affect how URB<br />
632 * submission, unlinking, or operation are handled. Different<br />
633 * kinds <strong>of</strong> URB can use different flags.<br />
634 * @transfer_buffer: This identifies the buffer to (or from) which<br />
635 * the I/O request will be performed (unless URB_NO_TRANSFER_DMA_MAP<br />
636 * is set). This buffer must be suitable for DMA; allocate it with<br />
637 * kmalloc() or equivalent. For transfers to "in" endpoints, contents<br />
638 * <strong>of</strong> this buffer will be modified. This buffer is used for the data<br />
639 * stage <strong>of</strong> control transfers.<br />
640 * @transfer_dma: When transfer_flags includes URB_NO_TRANSFER_DMA_MAP,<br />
641 * the device driver is saying that it provided this DMA address,<br />
642 * which the host controller driver should use in preference to the<br />
643 * transfer_buffer.<br />
644 * @transfer_buffer_length: How big is transfer_buffer. The transfer may<br />
645 * be broken up into chunks according to the current maximum packet<br />
646 * size for the endpoint, which is a function <strong>of</strong> the configuration<br />
647 * and is encoded in the pipe. When the length is zero, neither<br />
648 * transfer_buffer nor transfer_dma is used.<br />
649 * @actual_length: This is read in non-iso completion functions, and<br />
650 * it tells how many bytes (out <strong>of</strong> transfer_buffer_length) were<br />
651 * transferred. It will normally be the same as requested, unless<br />
652 * either an error was reported or a short read was performed.<br />
653 * The URB_SHORT_NOT_OK transfer flag may be used to make such<br />
654 * short reads be reported as errors.<br />
655 * @setup_packet: Only used for control transfers, this points to eight bytes<br />
656 * <strong>of</strong> setup data. Control transfers always start by sending this data<br />
657 * to the device. Then transfer_buffer is read or written, if needed.<br />
65<br />
658 * @setup_dma: For control transfers with URB_NO_SETUP_DMA_MAP set, the<br />
659 * device driver has provided this DMA address for the setup packet.<br />
660 * The host controller driver should use this in preference to<br />
661 * setup_packet.<br />
662 * @start_frame: Returns the initial frame for isochronous transfers.<br />
663 * @number_<strong>of</strong>_packets: Lists the number <strong>of</strong> ISO transfer buffers.<br />
664 * @interval: Specifies the polling interval for interrupt or isochronous<br />
665 * transfers. The units are frames (milliseconds) for for full and low<br />
666 * speed devices, and micr<strong>of</strong>rames (1/8 millisecond) for highspeed ones.<br />
667 * @error_count: Returns the number <strong>of</strong> ISO transfers that reported errors.<br />
668 * @context: For use in completion functions. This normally points to<br />
669 * request-specific driver context.<br />
670 * @complete: Completion handler. This URB is passed as the parameter to the<br />
671 * completion function. The completion function may then do what<br />
672 * it likes with the URB, including resubmitting or freeing it.