X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=MdePkg%2FInclude%2FLibrary%2FUefiUsbLib.h;h=6f625a04482ad56a88aeb1d0d551ce6892e7f968;hb=08855193cafebaa2e071ffb5f083bcb3cb6d4df0;hp=ad482188820d6c2f6be04b96171748915d93a342;hpb=5f439bb0aaa315f4c965cbe3733fed7cf9ff76cf;p=mirror_edk2.git diff --git a/MdePkg/Include/Library/UefiUsbLib.h b/MdePkg/Include/Library/UefiUsbLib.h index ad48218882..6f625a0448 100644 --- a/MdePkg/Include/Library/UefiUsbLib.h +++ b/MdePkg/Include/Library/UefiUsbLib.h @@ -1,14 +1,15 @@ /** @file - Common Dxe Libarary for USB. + Provides most USB APIs to support the Hid requests defined in USB Hid 1.1 spec + and the standard requests defined in USB 1.1 spec. - Copyright (c) 2006 - 2008, Intel Corporation
- All rights reserved. This program and the accompanying materials - are licensed and made available under the terms and conditions of the BSD License - which accompanies this distribution. The full text of the license may be found at - http://opensource.org/licenses/bsd-license.php +Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.
+This program and the accompanying materials +are licensed and made available under the terms and conditions of the BSD License +which accompanies this distribution. The full text of the license may be found at +http://opensource.org/licenses/bsd-license.php - THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, - WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. **/ @@ -18,63 +19,79 @@ #include -/// -/// define the timeout time as 3ms -/// -#define TIMEOUT_VALUE 3 * 1000 - /** - Get Hid Descriptor. + Get the descriptor of the specified USB HID interface. + + Submit a UsbGetHidDescriptor() request for the USB device specified by UsbIo + and Interface, and return the HID descriptor in HidDescriptor. + If UsbIo is NULL, then ASSERT(). + If HidDescriptor is NULL, then ASSERT(). - @param UsbIo A pointer to EFI_USB_IO_PROTOCOL. - @param InterfaceNum Hid interface number. - @param HidDescriptor Caller allocated buffer to store Usb hid descriptor if - successfully returned. + @param UsbIo A pointer to the USB I/O Protocol instance for the specific USB target. + @param Interface The index of the HID interface on the USB target. + @param HidDescriptor Pointer to the USB HID descriptor that was retrieved from + the specified USB target and interface. Type EFI_USB_HID_DESCRIPTOR + is defined in the MDE Package Industry Standard include file Usb.h. - @return Status of getting HID descriptor through USB I/O - protocol's UsbControlTransfer(). + @retval EFI_SUCCESS The request executed successfully. + @retval EFI_TIMEOUT A timeout occurred executing the request. + @retval EFI_DEVICE_ERROR The request failed due to a device error. **/ EFI_STATUS EFIAPI UsbGetHidDescriptor ( IN EFI_USB_IO_PROTOCOL *UsbIo, - IN UINT8 InterfaceNum, + IN UINT8 Interface, OUT EFI_USB_HID_DESCRIPTOR *HidDescriptor ); /** - get Report Class descriptor. + Get the report descriptor of the specified USB HID interface. + + Submit a USB get HID report descriptor request for the USB device specified by + UsbIo and Interface, and return the report descriptor in DescriptorBuffer. + If UsbIo is NULL, then ASSERT(). + If DescriptorBuffer is NULL, then ASSERT(). - @param UsbIo A pointer to EFI_USB_IO_PROTOCOL. - @param InterfaceNum Report interface number. - @param DescriptorSize Length of DescriptorBuffer. - @param DescriptorBuffer Caller allocated buffer to store Usb report descriptor - if successfully returned. + @param UsbIo A pointer to the USB I/O Protocol instance for the specific USB target. + @param Interface The index of the report interface on the USB target. + @param DescriptorLength The size, in bytes, of DescriptorBuffer. + @param DescriptorBuffer A pointer to the buffer to store the report class descriptor. - @return Status of getting Report Class descriptor through USB - I/O protocol's UsbControlTransfer(). + @retval EFI_SUCCESS The request executed successfully. + @retval EFI_OUT_OF_RESOURCES The request could not be completed because the + buffer specified by DescriptorLength and DescriptorBuffer + is not large enough to hold the result of the request. + @retval EFI_TIMEOUT A timeout occurred executing the request. + @retval EFI_DEVICE_ERROR The request failed due to a device error. **/ EFI_STATUS EFIAPI UsbGetReportDescriptor ( IN EFI_USB_IO_PROTOCOL *UsbIo, - IN UINT8 InterfaceNum, - IN UINT16 DescriptorSize, + IN UINT8 Interface, + IN UINT16 DescriptorLength, OUT UINT8 *DescriptorBuffer ); /** - Get Hid Protocol Request. + Get the HID protocol of the specified USB HID interface. - @param UsbIo A pointer to EFI_USB_IO_PROTOCOL. - @param Interface Which interface the caller wants to get protocol. - @param Protocol Protocol value returned. + Submit a USB get HID protocol request for the USB device specified by UsbIo + and Interface, and return the protocol retrieved in Protocol. + If UsbIo is NULL, then ASSERT(). + If Protocol is NULL, then ASSERT(). - @return Status of getting Protocol Request through USB I/O - protocol's UsbControlTransfer(). + @param UsbIo A pointer to the USB I/O Protocol instance for the specific USB target. + @param Interface The index of the report interface on the USB target. + @param Protocol A pointer to the protocol for the specified USB target. + + @retval EFI_SUCCESS The request executed successfully. + @retval EFI_TIMEOUT A timeout occurred executing the request. + @retval EFI_DEVICE_ERROR The request failed due to a device error. **/ EFI_STATUS @@ -82,18 +99,23 @@ EFIAPI UsbGetProtocolRequest ( IN EFI_USB_IO_PROTOCOL *UsbIo, IN UINT8 Interface, - IN UINT8 *Protocol + OUT UINT8 *Protocol ); /** - Set Hid Protocol Request. + Set the HID protocol of the specified USB HID interface. + + Submit a USB set HID protocol request for the USB device specified by UsbIo + and Interface, and set the protocol to the value specified by Protocol. + If UsbIo is NULL, then ASSERT(). - @param UsbIo A pointer to EFI_USB_IO_PROTOCOL. - @param Interface Which interface the caller wants to set protocol. - @param Protocol Protocol value the caller wants to set. + @param UsbIo A pointer to the USB I/O Protocol instance for the specific USB target. + @param Interface The index of the report interface on the USB target. + @param Protocol The protocol value to set for the specified USB target. - @return Status of setting Protocol Request through USB I/O - protocol's UsbControlTransfer(). + @retval EFI_SUCCESS The request executed successfully. + @retval EFI_TIMEOUT A timeout occurred executing the request. + @retval EFI_DEVICE_ERROR The request failed due to a device error. **/ EFI_STATUS @@ -105,15 +127,20 @@ UsbSetProtocolRequest ( ); /** - Set Idel request. + Set the idle rate of the specified USB HID report. + + Submit a USB set HID report idle request for the USB device specified by UsbIo, + Interface, and ReportId, and set the idle rate to the value specified by Duration. + If UsbIo is NULL, then ASSERT(). - @param UsbIo A pointer to EFI_USB_IO_PROTOCOL. - @param Interface Which interface the caller wants to set. - @param ReportId Which report the caller wants to set. - @param Duration Idle rate the caller wants to set. + @param UsbIo A pointer to the USB I/O Protocol instance for the specific USB target. + @param Interface The index of the report interface on the USB target. + @param ReportId The identifier of the report to retrieve. + @param Duration The idle rate to set for the specified USB target. - @return Status of setting IDLE Request through USB I/O - protocol's UsbControlTransfer(). + @retval EFI_SUCCESS The request executed successfully. + @retval EFI_TIMEOUT A timeout occurred executing the request. + @retval EFI_DEVICE_ERROR The request failed due to a device error. **/ EFI_STATUS @@ -126,15 +153,21 @@ UsbSetIdleRequest ( ); /** - Get Idel request. + Get the idle rate of the specified USB HID report. - @param UsbIo A pointer to EFI_USB_IO_PROTOCOL. - @param Interface Which interface the caller wants to get. - @param ReportId Which report the caller wants to get. - @param Duration Idle rate the caller wants to get. + Submit a USB get HID report idle request for the USB device specified by UsbIo, + Interface, and ReportId, and return the ide rate in Duration. + If UsbIo is NULL, then ASSERT(). + If Duration is NULL, then ASSERT(). - @return Status of getting IDLE Request through USB I/O - protocol's UsbControlTransfer(). + @param UsbIo A pointer to the USB I/O Protocol instance for the specific USB target. + @param Interface The index of the report interface on the USB target. + @param ReportId The identifier of the report to retrieve. + @param Duration A pointer to the idle rate retrieved from the specified USB target. + + @retval EFI_SUCCESS The request executed successfully. + @retval EFI_TIMEOUT A timeout occurred executing the request. + @retval EFI_DEVICE_ERROR The request failed due to a device error. **/ EFI_STATUS @@ -147,17 +180,24 @@ UsbGetIdleRequest ( ); /** - Hid Set Report request. + Set the report descriptor of the specified USB HID interface. + + Submit a USB set HID report request for the USB device specified by UsbIo, + Interface, ReportId, and ReportType, and set the report descriptor using the + buffer specified by ReportLength and Report. + If UsbIo is NULL, then ASSERT(). + If Report is NULL, then ASSERT(). - @param UsbIo A pointer to EFI_USB_IO_PROTOCOL. - @param Interface Which interface the caller wants to set. - @param ReportId Which report the caller wants to set. - @param ReportType Type of report. - @param ReportLen Length of report descriptor. - @param Report Report Descriptor buffer. + @param UsbIo A pointer to the USB I/O Protocol instance for the specific USB target. + @param Interface The index of the report interface on the USB target. + @param ReportId The identifier of the report to retrieve. + @param ReportType The type of report to retrieve. + @param ReportLength The size, in bytes, of Report. + @param Report A pointer to the report descriptor buffer to set. - @return Status of setting Report Request through USB I/O - protocol's UsbControlTransfer(). + @retval EFI_SUCCESS The request executed successfully. + @retval EFI_TIMEOUT A timeout occurred executing the request. + @retval EFI_DEVICE_ERROR The request failed due to a device error. **/ EFI_STATUS @@ -172,43 +212,64 @@ UsbSetReportRequest ( ); /** - Hid Set Report request. - - @param UsbIo A pointer to EFI_USB_IO_PROTOCOL. - @param Interface Which interface the caller wants to set. - @param ReportId Which report the caller wants to set. - @param ReportType Type of report. - @param ReportLen Length of report descriptor. - @param Report Caller allocated buffer to store Report Descriptor. - - @return Status of getting Report Request through USB I/O - protocol's UsbControlTransfer(). + Get the report descriptor of the specified USB HID interface. + + Submit a USB get HID report request for the USB device specified by UsbIo, + Interface, ReportId, and ReportType, and return the report in the buffer + specified by Report. + If UsbIo is NULL, then ASSERT(). + If Report is NULL, then ASSERT(). + + @param UsbIo A pointer to the USB I/O Protocol instance for the specific USB target. + @param Interface The index of the report interface on the USB target. + @param ReportId The identifier of the report to retrieve. + @param ReportType The type of report to retrieve. + @param ReportLength The size, in bytes, of Report. + @param Report A pointer to the buffer to store the report descriptor. + + @retval EFI_SUCCESS The request executed successfully. + @retval EFI_OUT_OF_RESOURCES The request could not be completed because the + buffer specified by ReportLength and Report is not + large enough to hold the result of the request. + @retval EFI_TIMEOUT A timeout occurred executing the request. + @retval EFI_DEVICE_ERROR The request failed due to a device error. **/ EFI_STATUS EFIAPI UsbGetReportRequest ( - IN EFI_USB_IO_PROTOCOL *UsbIo, - IN UINT8 Interface, - IN UINT8 ReportId, - IN UINT8 ReportType, - IN UINT16 ReportLen, - IN UINT8 *Report + IN EFI_USB_IO_PROTOCOL *UsbIo, + IN UINT8 Interface, + IN UINT8 ReportId, + IN UINT8 ReportType, + IN UINT16 ReportLen, + OUT UINT8 *Report ); /** - Usb Get Descriptor. - - @param UsbIo A pointer to EFI_USB_IO_PROTOCOL. - @param Value Device Request Value. - @param Index Device Request Index. - @param DescriptorLength Descriptor Length. - @param Descriptor Descriptor buffer to contain result. - @param Status Transfer Status. - - @retval EFI_INVALID_PARAMETER Parameter is error. - @retval EFI_SUCCESS Success. - @retval EFI_TIMEOUT Device has no response. + Get the descriptor of the specified USB device. + + Submit a USB get descriptor request for the USB device specified by UsbIo, Value, + and Index, and return the descriptor in the buffer specified by Descriptor. + The status of the transfer is returned in Status. + If UsbIo is NULL, then ASSERT(). + If Descriptor is NULL, then ASSERT(). + If Status is NULL, then ASSERT(). + + @param UsbIo A pointer to the USB I/O Protocol instance for the specific USB target. + @param Value The device request value. + @param Index The device request index. + @param DescriptorLength The size, in bytes, of Descriptor. + @param Descriptor A pointer to the descriptor buffer to get. + @param Status A pointer to the status of the transfer. + + @retval EFI_SUCCESS The request executed successfully. + @retval EFI_OUT_OF_RESOURCES The request could not be completed because the + buffer specified by DescriptorLength and Descriptor + is not large enough to hold the result of the request. + @retval EFI_TIMEOUT A timeout occurred executing the request. + @retval EFI_DEVICE_ERROR The request failed due to a device error. The transfer + status is returned in Status. **/ EFI_STATUS @@ -223,18 +284,26 @@ UsbGetDescriptor ( ); /** - Usb Set Descriptor. - - @param UsbIo A pointer to EFI_USB_IO_PROTOCOL. - @param Value Device Request Value. - @param Index Device Request Index. - @param DescriptorLength Descriptor Length. - @param Descriptor Descriptor buffer to set. - @param Status Transfer Status. - - @retval EFI_INVALID_PARAMETER Parameter is error. - @retval EFI_SUCCESS Success. - @retval EFI_TIMEOUT Device has no response. + Set the descriptor of the specified USB device. + + Submit a USB set descriptor request for the USB device specified by UsbIo, + Value, and Index, and set the descriptor using the buffer specified by DesriptorLength + and Descriptor. The status of the transfer is returned in Status. + If UsbIo is NULL, then ASSERT(). + If Descriptor is NULL, then ASSERT(). + If Status is NULL, then ASSERT(). + + @param UsbIo A pointer to the USB I/O Protocol instance for the specific USB target. + @param Value The device request value. + @param Index The device request index. + @param DescriptorLength The size, in bytes, of Descriptor. + @param Descriptor A pointer to the descriptor buffer to set. + @param Status A pointer to the status of the transfer. + + @retval EFI_SUCCESS The request executed successfully. + @retval EFI_TIMEOUT A timeout occurred executing the request. + @retval EFI_DEVICE_ERROR The request failed due to a device error. + The transfer status is returned in Status. **/ EFI_STATUS @@ -249,178 +318,245 @@ UsbSetDescriptor ( ); /** - Usb Get Device Interface. + Get the interface setting of the specified USB device. + + Submit a USB get interface request for the USB device specified by UsbIo, + and Interface, and place the result in the buffer specified by AlternateSetting. + The status of the transfer is returned in Status. + If UsbIo is NULL, then ASSERT(). + If AlternateSetting is NULL, then ASSERT(). + If Status is NULL, then ASSERT(). - @param UsbIo A pointer to EFI_USB_IO_PROTOCOL. - @param Index Interface index value. - @param AltSetting Alternate setting. - @param Status Trasnsfer status. + @param UsbIo A pointer to the USB I/O Protocol instance for the specific USB target. + @param Interface The interface index value. + @param AlternateSetting A pointer to the alternate setting to be retrieved. + @param Status A pointer to the status of the transfer. - @retval EFI_INVALID_PARAMETER Parameter is error. - @retval EFI_SUCCESS Success. - @retval EFI_TIMEOUT Device has no response. + @retval EFI_SUCCESS The request executed successfully. + @retval EFI_TIMEOUT A timeout occurred executing the request. + @retval EFI_DEVICE_ERROR The request failed due to a device error. + The transfer status is returned in Status. **/ EFI_STATUS EFIAPI UsbGetInterface ( IN EFI_USB_IO_PROTOCOL *UsbIo, - IN UINT16 Index, - OUT UINT8 *AltSetting, + IN UINT16 Interface, + OUT UINT16 *AlternateSetting, OUT UINT32 *Status ); /** - Usb Set Device Interface. + Set the interface setting of the specified USB device. - @param UsbIo A pointer to EFI_USB_IO_PROTOCOL. - @param InterfaceNo Interface Number. - @param AltSetting Alternate setting. - @param Status Trasnsfer status. + Submit a USB set interface request for the USB device specified by UsbIo, and + Interface, and set the alternate setting to the value specified by AlternateSetting. + The status of the transfer is returned in Status. + If UsbIo is NULL, then ASSERT(). + If Status is NULL, then ASSERT(). - @retval EFI_INVALID_PARAMETER Parameter is error. - @retval EFI_SUCCESS Success. - @retval EFI_TIMEOUT Device has no response. + @param UsbIo A pointer to the USB I/O Protocol instance for the specific USB target. + @param Interface The interface index value. + @param AlternateSetting The alternate setting to be set. + @param Status A pointer to the status of the transfer. + + @retval EFI_SUCCESS The request executed successfully. + @retval EFI_TIMEOUT A timeout occurred executing the request. + @retval EFI_SUCCESS The request failed due to a device error. + The transfer status is returned in Status. **/ EFI_STATUS EFIAPI UsbSetInterface ( IN EFI_USB_IO_PROTOCOL *UsbIo, - IN UINT16 InterfaceNo, - IN UINT16 AltSetting, + IN UINT16 Interface, + IN UINT16 AlternateSetting, OUT UINT32 *Status ); /** - Usb Get Device Configuration. + Get the device configuration. + + Submit a USB get configuration request for the USB device specified by UsbIo + and place the result in the buffer specified by ConfigurationValue. The status + of the transfer is returned in Status. + If UsbIo is NULL, then ASSERT(). + If ConfigurationValue is NULL, then ASSERT(). + If Status is NULL, then ASSERT(). - @param UsbIo A pointer to EFI_USB_IO_PROTOCOL. - @param ConfigValue Config Value. - @param Status Transfer Status. + @param UsbIo A pointer to the USB I/O Protocol instance for the specific USB target. + @param ConfigurationValue A pointer to the device configuration to be retrieved. + @param Status A pointer to the status of the transfer. - @retval EFI_INVALID_PARAMETER Parameter is error. - @retval EFI_SUCCESS Success. - @retval EFI_TIMEOUT Device has no response. + @retval EFI_SUCCESS The request executed successfully. + @retval EFI_TIMEOUT A timeout occurred executing the request. + @retval EFI_DEVICE_ERROR The request failed due to a device error. + The transfer status is returned in Status. **/ EFI_STATUS EFIAPI UsbGetConfiguration ( IN EFI_USB_IO_PROTOCOL *UsbIo, - OUT UINT8 *ConfigValue, + OUT UINT16 *ConfigurationValue, OUT UINT32 *Status ); /** - Usb Set Device Configuration. + Set the device configuration. - @param UsbIo A pointer to EFI_USB_IO_PROTOCOL. - @param Value Configuration Value to set. - @param Status Transfer status. + Submit a USB set configuration request for the USB device specified by UsbIo + and set the device configuration to the value specified by ConfigurationValue. + The status of the transfer is returned in Status. + If UsbIo is NULL, then ASSERT(). + If Status is NULL, then ASSERT(). - @retval EFI_INVALID_PARAMETER Parameter is error. - @retval EFI_SUCCESS Success. - @retval EFI_TIMEOUT Device has no response. + @param UsbIo A pointer to the USB I/O Protocol instance for the specific USB target. + @param ConfigurationValue The device configuration value to be set. + @param Status A pointer to the status of the transfer. + + @retval EFI_SUCCESS The request executed successfully. + @retval EFI_TIMEOUT A timeout occurred executing the request. + @retval EFI_DEVICE_ERROR The request failed due to a device error. + The transfer status is returned in Status. **/ EFI_STATUS EFIAPI UsbSetConfiguration ( IN EFI_USB_IO_PROTOCOL *UsbIo, - IN UINT16 Value, + IN UINT16 ConfigurationValue, OUT UINT32 *Status ); /** - Usb Set Device Feature. - - @param UsbIo A pointer to EFI_USB_IO_PROTOCOL. - @param Recipient Interface/Device/Endpoint. - @param Value Request value. - @param Target Request Index. - @param Status Transfer status. - - @retval EFI_INVALID_PARAMETER Parameter is error. - @retval EFI_SUCCESS Success. - @retval EFI_TIMEOUT Device has no response. + Set the specified feature of the specified device. + + Submit a USB set device feature request for the USB device specified by UsbIo, + Recipient, and Target to the value specified by Value. The status of the + transfer is returned in Status. + If UsbIo is NULL, then ASSERT(). + If Status is NULL, then ASSERT(). + + @param UsbIo A pointer to the USB I/O Protocol instance for the specific USB target. + @param Recipient The USB data recipient type (i.e. Device, Interface, Endpoint). + Type USB_TYPES_DEFINITION is defined in the MDE Package Industry + Standard include file Usb.h. + @param Value The value of the feature to be set. + @param Target The index of the device to be set. + @param Status A pointer to the status of the transfer. + + @retval EFI_SUCCESS The request executed successfully. + @retval EFI_TIMEOUT A timeout occurred executing the request. + @retval EFI_DEVICE_ERROR The request failed due to a device error. + The transfer status is returned in Status. **/ EFI_STATUS EFIAPI UsbSetFeature ( IN EFI_USB_IO_PROTOCOL *UsbIo, - IN UINTN Recipient, + IN USB_TYPES_DEFINITION Recipient, IN UINT16 Value, IN UINT16 Target, OUT UINT32 *Status ); /** - Usb Clear Device Feature. - - @param UsbIo A pointer to EFI_USB_IO_PROTOCOL. - @param Recipient Interface/Device/Endpoint. - @param Value Request value. - @param Target Request Index. - @param Status Transfer status. - - @retval EFI_INVALID_PARAMETER Parameter is error. - @retval EFI_SUCCESS Success. - @retval EFI_TIMEOUT Device has no response. + Clear the specified feature of the specified device. + + Submit a USB clear device feature request for the USB device specified by UsbIo, + Recipient, and Target to the value specified by Value. The status of the transfer + is returned in Status. + If UsbIo is NULL, then ASSERT(). + If Status is NULL, then ASSERT(). + + @param UsbIo A pointer to the USB I/O Protocol instance for the specific USB target. + @param Recipient The USB data recipient type (i.e. Device, Interface, Endpoint). + Type USB_TYPES_DEFINITION is defined in the MDE Package Industry Standard + include file Usb.h. + @param Value The value of the feature to be cleared. + @param Target The index of the device to be cleared. + @param Status A pointer to the status of the transfer. + + @retval EFI_SUCCESS The request executed successfully. + @retval EFI_TIMEOUT A timeout occurred executing the request. + @retval EFI_DEVICE_ERROR The request failed due to a device error. + The transfer status is returned in Status. **/ EFI_STATUS EFIAPI UsbClearFeature ( IN EFI_USB_IO_PROTOCOL *UsbIo, - IN UINTN Recipient, + IN USB_TYPES_DEFINITION Recipient, IN UINT16 Value, IN UINT16 Target, OUT UINT32 *Status ); /** - Usb Get Device Status. - - @param UsbIo A pointer to EFI_USB_IO_PROTOCOL. - @param Recipient Interface/Device/Endpoint. - @param Target Request index. - @param DevStatus Device status. - @param Status Transfer status. - - @retval EFI_INVALID_PARAMETER Parameter is error. - @retval EFI_SUCCESS Success. - @retval EFI_TIMEOUT Device has no response. + Get the status of the specified device. + + Submit a USB device get status request for the USB device specified by UsbIo, + Recipient, and Target, and place the result in the buffer specified by DeviceStatus. + The status of the transfer is returned in Status. + If UsbIo is NULL, then ASSERT(). + If DeviceStatus is NULL, then ASSERT(). + If Status is NULL, then ASSERT(). + + @param UsbIo A pointer to the USB I/O Protocol instance for the specific USB target. + @param Recipient The USB data recipient type (i.e. Device, Interface, Endpoint). + Type USB_TYPES_DEFINITION is defined in the MDE Package Industry Standard + include file Usb.h. + @param Target The index of the device to be get the status of. + @param DeviceStatus A pointer to the device status to be retrieved. + @param Status A pointer to the status of the transfer. + + @retval EFI_SUCCESS The request executed successfully. + @retval EFI_TIMEOUT A timeout occurred executing the request. + @retval EFI_DEVICE_ERROR The request failed due to a device error. + The transfer status is returned in Status. **/ EFI_STATUS EFIAPI UsbGetStatus ( IN EFI_USB_IO_PROTOCOL *UsbIo, - IN UINTN Recipient, + IN USB_TYPES_DEFINITION Recipient, IN UINT16 Target, - OUT UINT16 *DevStatus, + OUT UINT16 *DeviceStatus, OUT UINT32 *Status ); /** - Clear endpoint stall. + Clear halt feature of the specified usb endpoint. + + Retrieve the USB endpoint descriptor specified by UsbIo and EndPoint. + If the USB endpoint descriptor can not be retrieved, then return EFI_NOT_FOUND. + If the endpoint descriptor is found, then clear the halt feature of this USB endpoint. + The status of the transfer is returned in Status. + If UsbIo is NULL, then ASSERT(). + If Status is NULL, then ASSERT(). - @param UsbIo A pointer to EFI_USB_IO_PROTOCOL. - @param EndpointNo Endpoint Number. - @param Status Transfer Status. + @param UsbIo A pointer to the USB I/O Protocol instance for the specific USB target. + @param Endpoint The endpoint address. + @param Status A pointer to the status of the transfer. - @retval EFI_NOT_FOUND Can't find the Endpoint. - @retval EFI_DEVICE_ERROR Hardware error. - @retval EFI_SUCCESS Success. + @retval EFI_SUCCESS The request executed successfully. + @retval EFI_TIMEOUT A timeout occurred executing the request. + @retval EFI_DEVICE_ERROR The request failed due to a device error. + The transfer status is returned in Status. + @retval EFI_NOT_FOUND The specified USB endpoint descriptor can not be found **/ EFI_STATUS EFIAPI UsbClearEndpointHalt ( IN EFI_USB_IO_PROTOCOL *UsbIo, - IN UINT8 EndpointNo, + IN UINT8 Endpoint, OUT UINT32 *Status );