Intel Extensible Firmware Interface User Manual

Page 557

Advertising
background image

Protocols

— USB Support

Version 1.10

12/01/02

14-17

DataToggle

A pointer to the data toggle value. On input, it is valid when

IsNewTransfer

is

TRUE

, and it indicates the initial data

toggle value the asynchronous interrupt transfer should adopt.
On output, it is valid when

IsNewTransfer

is

FALSE

, and it

is updated to indicate the data toggle value of the subsequent
asynchronous interrupt transfer.

PollingInterval

Indicates the interval, in milliseconds, that the asynchronous
interrupt transfer is polled. This parameter is required when

IsNewTransfer

is

TRUE

.

DataLength

Indicates the length of data to be received at the rate specified by

PollingInterval

from the target asynchronous interrupt

endpoint. This parameter is only required when

IsNewTransfer

is

TRUE

.

CallBackFunction

The Callback function. This function is called at the rate
specified by

PollingInterval

. This parameter is only

required when

IsNewTransfer

is

TRUE

. Refer to

Section 2.5.3 of EFI1.1 USB Driver Model, version 0.7, for the
definition of this type.

Context

The context that is passed to the

CallBackFunction

. This is

an optional parameter and may be

NULL

.

Description

This function is used to submit asynchronous 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.

An asynchronous interrupt transfer is typically used to query a device’s status at a fixed rate. For
example, keyboard, mouse, and hub devices use this type of transfer to query their interrupt
endpoints at a fixed rate. The asynchronous interrupt transfer is intended to support the interrupt
transfer type of “submit once, execute periodically.” Unless an explicit request is made, the
asychronous transfer will never retire.

If

IsNewTransfer

is

TRUE

, then an interrupt transfer is started at a fixed rate. The rate is

specified by

PollingInterval

, the size of the receive buffer is specified by

DataLength

,

and the callback function is specified by

CallBackFunction

.

Context

specifies an optional

context that is passed to the

CallBackFunction

each time it is called. The

CallBackFunction

is intended to provide a means for the host to periodically process interrupt

transfer data.

Advertising