Intel Extensible Firmware Interface Network Router User Manual


  Open as PDF
of 1084
 
Extensible Firmware Interface Specification
14-20 12/01/02 Version 1.10
DataToggle A pointer to the data toggle value. On input, it indicates the
initial data toggle value the synchronous interrupt transfer should
adopt; on output, it is updated to indicate the data toggle value of
the subsequent synchronous interrupt transfer.
TimeOut Indicates the maximum time, in milliseconds, which the transfer
is allowed to complete.
TransferResult A pointer to the detailed result information from the synchronous
interrupt transfer. Refer to Section 2.5.1 of EFI1.1 USB Driver
Model, version 0.7.
Description
This function is used to submit a synchronous interrupt transfer to a target endpoint of a USB
device. The target endpoint is specified by DeviceAddress and EndpointAddress. In the
USB Specification, Revision 1.1, interrupt transfer is one of the four USB transfer types. In the
EFI_USB_HC_PROTOCOL
, interrupt transfer is divided further into synchronous interrupt transfer
and asynchronous interrupt transfer.
The synchronous interrupt transfer is designed to retrieve small amounts of data from a USB device
through an interrupt endpoint. A synchronous interrupt transfer is only executed once for each
request. This is the most significant difference from the asynchronous interrupt transfer.
If the synchronous interrupt transfer is successful, then EFI_SUCCESS is returned. If the USB
transfer cannot be completed within the timeout specified by Timeout, then EFI_TIMEOUT is
returned. If an error other than timeout occurs during the USB transfer, then
EFI_DEVICE_ERROR is returned and the detailed status code is returned in TransferResult.
EFI_INVALID_PARAMETER is returned if one of the following conditions is satisfied:
1. Data transfer direction indicated by EndPointAddress is not EfiUsbDataIn.
2. Data is NULL.
3. DataLength is 0.
4. MaximumPacketLength is not valid. The legal value of this parameter is for the full-speed
device, it should be 8, 16, 32, or 64; for the slow device, it is limited to 8.
5. DataToggle points to a value other than 0 and 1.
6. TransferResult is NULL.
Status Codes Returned
EFI_SUCCESS The synchronous interrupt transfer was completed successfully.
EFI_OUT_OF_RESOURCES The synchronous interrupt transfer could not be submitted due to lack of
resource.
EFI_INVALID_PARAMETER Some parameters are invalid. The possible invalid parameters are
described in Description above.
EFI_TIMEOUT The synchronous interrupt transfer failed due to timeout.
EFI_DEVICE_ERROR The synchronous interrupt transfer failed due to host controller or device
error. Caller should check
TransferResult for detailed error
information.