/** @file\r
- EFI Usb I/O Protocol\r
-\r
+ EFI Usb I/O Protocol as defined in UEFI specification.\r
+ This protocol is used by code, typically drivers, running in the EFI \r
+ boot services environment to access USB devices like USB keyboards, \r
+ mice and mass storage devices. In particular, functions for managing devices \r
+ on USB buses are defined here.\r
+ \r
Copyright (c) 2006 - 2008, Intel Corporation\r
All rights reserved. This program and the accompanying materials\r
are licensed and made available under the terms and conditions of the BSD License\r
executed.\r
@param DataLength Specifies the length, in bytes, of the data to be received from the\r
USB device.\r
- @param Context Data passed to the InterruptCallback function.\r
@param InterruptCallback The Callback function. This function is called if the asynchronous\r
interrupt transfer is completed.\r
+ @param Context Data passed to the InterruptCallback function.\r
\r
@retval EFI_SUCCESS The asynchronous USB transfer request transfer has been successfully executed.\r
@retval EFI_DEVICE_ERROR The asynchronous USB transfer request failed.\r
@param Data A pointer to the buffer of data that will be transmitted to USB\r
device or received from USB device.\r
@param DataLength The size, in bytes, of the data buffer specified by Data.\r
- @param Context Data passed to the IsochronousCallback() function.\r
@param IsochronousCallback The IsochronousCallback() function.\r
+ @param Context Data passed to the IsochronousCallback() function.\r
\r
@retval EFI_SUCCESS The asynchronous isochronous transfer has been successfully submitted\r
to the system.\r
OUT UINT16 *TableSize\r
);\r
\r
-//\r
-// Protocol Interface Structure\r
-//\r
+/** \r
+ @par Protocol Description:\r
+ The EFI_USB_IO_PROTOCOL provides four basic transfers types described \r
+ in the USB 1.1 Specification. These include control transfer, interrupt \r
+ transfer, bulk transfer and isochronous transfer. The EFI_USB_IO_PROTOCOL \r
+ also provides some basic USB device/controller management and configuration \r
+ interfaces. A USB device driver uses the services of this protocol to manage USB devices. \r
+\r
+ @param UsbControlTransfer \r
+ Accesses the USB Device through USB Control Transfer Pipe. \r
+\r
+ @param UsbBulkTransfer\r
+ Accesses the USB Device through USB Bulk Transfer Pipe. \r
+\r
+ @param UsbAsyncInterruptTransfer\r
+ Non-block USB interrupt transfer. \r
+\r
+ @param UsbSyncInterruptTransfer\r
+ Accesses the USB Device through USB Synchronous\r
+ Interrupt Transfer Pipe. \r
+\r
+ @param UsbIsochronousTransfer\r
+ Accesses the USB Device through USB Isochronous Transfer Pipe. \r
+\r
+ @param UsbAsyncIsochronousTransfer\r
+ Nonblock USB isochronous transfer. \r
+\r
+ @param UsbGetDeviceDescriptor\r
+ Retrieves the device descriptor of a USB device. \r
+\r
+ @param UsbGetConfigDescriptor\r
+ Retrieves the activated configuration descriptor of a USB device. \r
+\r
+ @param UsbGetInterfaceDescriptor\r
+ Retrieves the interface descriptor of a USB Controller. \r
+\r
+ @param UsbGetEndpointDescriptor\r
+ Retrieves the endpoint descriptor of a USB Controller. \r
+\r
+ @param UsbGetStringDescriptor\r
+ Retrieves the string descriptor inside a USB Device. \r
+\r
+ @param UsbGetSupportedLanguages\r
+ Retrieves the array of languages that the USB device supports. \r
+\r
+ @param UsbPortReset\r
+ Resets and reconfigures the USB controller. \r
+**/\r
struct _EFI_USB_IO_PROTOCOL {\r
//\r
// IO transfer\r