07.06.2013 Views

Scsi - Index of

Scsi - Index of

Scsi - Index of

SHOW MORE
SHOW LESS

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!