4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/** @file
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Provides most USB APIs to support the Hid requests defined in USB Hid 1.1 spec
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync and the standard requests defined in USB 1.1 spec.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncCopyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncThis program and the accompanying materials
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncare licensed and made available under the terms and conditions of the BSD License
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncwhich accompanies this distribution. The full text of the license may be found at
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynchttp://opensource.org/licenses/bsd-license.php
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncTHE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncWITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#ifndef __USB_DXE_LIB_H__
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define __USB_DXE_LIB_H__
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include <Protocol/UsbIo.h>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Get the descriptor of the specified USB HID interface.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Submit a UsbGetHidDescriptor() request for the USB device specified by UsbIo
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync and Interface, and return the HID descriptor in HidDescriptor.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If UsbIo is NULL, then ASSERT().
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If HidDescriptor is NULL, then ASSERT().
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param UsbIo A pointer to the USB I/O Protocol instance for the specific USB target.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Interface The index of the HID interface on the USB target.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param HidDescriptor Pointer to the USB HID descriptor that was retrieved from
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync the specified USB target and interface. Type EFI_USB_HID_DESCRIPTOR
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync is defined in the MDE Package Industry Standard include file Usb.h.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The request executed successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_TIMEOUT A timeout occurred executing the request.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_DEVICE_ERROR The request failed due to a device error.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFIAPI
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUsbGetHidDescriptor (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_USB_IO_PROTOCOL *UsbIo,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT8 Interface,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync OUT EFI_USB_HID_DESCRIPTOR *HidDescriptor
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Get the report descriptor of the specified USB HID interface.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Submit a USB get HID report descriptor request for the USB device specified by
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UsbIo and Interface, and return the report descriptor in DescriptorBuffer.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If UsbIo is NULL, then ASSERT().
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If DescriptorBuffer is NULL, then ASSERT().
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param UsbIo A pointer to the USB I/O Protocol instance for the specific USB target.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Interface The index of the report interface on the USB target.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param DescriptorLength The size, in bytes, of DescriptorBuffer.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param DescriptorBuffer A pointer to the buffer to store the report class descriptor.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The request executed successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_OUT_OF_RESOURCES The request could not be completed because the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync buffer specified by DescriptorLength and DescriptorBuffer
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync is not large enough to hold the result of the request.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_TIMEOUT A timeout occurred executing the request.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_DEVICE_ERROR The request failed due to a device error.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFIAPI
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUsbGetReportDescriptor (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_USB_IO_PROTOCOL *UsbIo,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT8 Interface,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT16 DescriptorLength,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync OUT UINT8 *DescriptorBuffer
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Get the HID protocol of the specified USB HID interface.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Submit a USB get HID protocol request for the USB device specified by UsbIo
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync and Interface, and return the protocol retrieved in Protocol.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If UsbIo is NULL, then ASSERT().
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If Protocol is NULL, then ASSERT().
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param UsbIo A pointer to the USB I/O Protocol instance for the specific USB target.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Interface The index of the report interface on the USB target.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Protocol A pointer to the protocol for the specified USB target.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The request executed successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_TIMEOUT A timeout occurred executing the request.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_DEVICE_ERROR The request failed due to a device error.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFIAPI
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUsbGetProtocolRequest (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_USB_IO_PROTOCOL *UsbIo,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT8 Interface,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync OUT UINT8 *Protocol
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Set the HID protocol of the specified USB HID interface.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Submit a USB set HID protocol request for the USB device specified by UsbIo
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync and Interface, and set the protocol to the value specified by Protocol.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If UsbIo is NULL, then ASSERT().
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param UsbIo A pointer to the USB I/O Protocol instance for the specific USB target.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Interface The index of the report interface on the USB target.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Protocol The protocol value to set for the specified USB target.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The request executed successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_TIMEOUT A timeout occurred executing the request.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_DEVICE_ERROR The request failed due to a device error.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFIAPI
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUsbSetProtocolRequest (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_USB_IO_PROTOCOL *UsbIo,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT8 Interface,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT8 Protocol
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Set the idle rate of the specified USB HID report.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Submit a USB set HID report idle request for the USB device specified by UsbIo,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Interface, and ReportId, and set the idle rate to the value specified by Duration.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If UsbIo is NULL, then ASSERT().
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param UsbIo A pointer to the USB I/O Protocol instance for the specific USB target.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Interface The index of the report interface on the USB target.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param ReportId The identifier of the report to retrieve.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Duration The idle rate to set for the specified USB target.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The request executed successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_TIMEOUT A timeout occurred executing the request.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_DEVICE_ERROR The request failed due to a device error.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFIAPI
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUsbSetIdleRequest (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_USB_IO_PROTOCOL *UsbIo,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT8 Interface,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT8 ReportId,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT8 Duration
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Get the idle rate of the specified USB HID report.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Submit a USB get HID report idle request for the USB device specified by UsbIo,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Interface, and ReportId, and return the ide rate in Duration.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If UsbIo is NULL, then ASSERT().
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If Duration is NULL, then ASSERT().
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param UsbIo A pointer to the USB I/O Protocol instance for the specific USB target.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Interface The index of the report interface on the USB target.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param ReportId The identifier of the report to retrieve.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Duration A pointer to the idle rate retrieved from the specified USB target.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The request executed successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_TIMEOUT A timeout occurred executing the request.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_DEVICE_ERROR The request failed due to a device error.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFIAPI
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUsbGetIdleRequest (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_USB_IO_PROTOCOL *UsbIo,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT8 Interface,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT8 ReportId,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync OUT UINT8 *Duration
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Set the report descriptor of the specified USB HID interface.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Submit a USB set HID report request for the USB device specified by UsbIo,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Interface, ReportId, and ReportType, and set the report descriptor using the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync buffer specified by ReportLength and Report.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If UsbIo is NULL, then ASSERT().
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If Report is NULL, then ASSERT().
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param UsbIo A pointer to the USB I/O Protocol instance for the specific USB target.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Interface The index of the report interface on the USB target.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param ReportId The identifier of the report to retrieve.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param ReportType The type of report to retrieve.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param ReportLength The size, in bytes, of Report.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Report A pointer to the report descriptor buffer to set.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The request executed successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_TIMEOUT A timeout occurred executing the request.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_DEVICE_ERROR The request failed due to a device error.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFIAPI
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUsbSetReportRequest (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_USB_IO_PROTOCOL *UsbIo,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT8 Interface,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT8 ReportId,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT8 ReportType,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT16 ReportLen,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT8 *Report
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Get the report descriptor of the specified USB HID interface.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Submit a USB get HID report request for the USB device specified by UsbIo,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Interface, ReportId, and ReportType, and return the report in the buffer
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync specified by Report.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If UsbIo is NULL, then ASSERT().
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If Report is NULL, then ASSERT().
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param UsbIo A pointer to the USB I/O Protocol instance for the specific USB target.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Interface The index of the report interface on the USB target.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param ReportId The identifier of the report to retrieve.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param ReportType The type of report to retrieve.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param ReportLength The size, in bytes, of Report.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Report A pointer to the buffer to store the report descriptor.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The request executed successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_OUT_OF_RESOURCES The request could not be completed because the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync buffer specified by ReportLength and Report is not
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync large enough to hold the result of the request.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_TIMEOUT A timeout occurred executing the request.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_DEVICE_ERROR The request failed due to a device error.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFIAPI
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUsbGetReportRequest (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_USB_IO_PROTOCOL *UsbIo,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT8 Interface,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT8 ReportId,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT8 ReportType,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT16 ReportLen,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync OUT UINT8 *Report
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Get the descriptor of the specified USB device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Submit a USB get descriptor request for the USB device specified by UsbIo, Value,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync and Index, and return the descriptor in the buffer specified by Descriptor.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync The status of the transfer is returned in Status.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If UsbIo is NULL, then ASSERT().
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If Descriptor is NULL, then ASSERT().
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If Status is NULL, then ASSERT().
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param UsbIo A pointer to the USB I/O Protocol instance for the specific USB target.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Value The device request value.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Index The device request index.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param DescriptorLength The size, in bytes, of Descriptor.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Descriptor A pointer to the descriptor buffer to get.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Status A pointer to the status of the transfer.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The request executed successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_OUT_OF_RESOURCES The request could not be completed because the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync buffer specified by DescriptorLength and Descriptor
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync is not large enough to hold the result of the request.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_TIMEOUT A timeout occurred executing the request.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_DEVICE_ERROR The request failed due to a device error. The transfer
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync status is returned in Status.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFIAPI
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUsbGetDescriptor (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_USB_IO_PROTOCOL *UsbIo,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT16 Value,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT16 Index,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT16 DescriptorLength,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync OUT VOID *Descriptor,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync OUT UINT32 *Status
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Set the descriptor of the specified USB device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Submit a USB set descriptor request for the USB device specified by UsbIo,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Value, and Index, and set the descriptor using the buffer specified by DesriptorLength
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync and Descriptor. The status of the transfer is returned in Status.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If UsbIo is NULL, then ASSERT().
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If Descriptor is NULL, then ASSERT().
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If Status is NULL, then ASSERT().
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param UsbIo A pointer to the USB I/O Protocol instance for the specific USB target.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Value The device request value.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Index The device request index.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param DescriptorLength The size, in bytes, of Descriptor.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Descriptor A pointer to the descriptor buffer to set.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Status A pointer to the status of the transfer.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The request executed successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_TIMEOUT A timeout occurred executing the request.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_DEVICE_ERROR The request failed due to a device error.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync The transfer status is returned in Status.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFIAPI
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUsbSetDescriptor (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_USB_IO_PROTOCOL *UsbIo,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT16 Value,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT16 Index,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT16 DescriptorLength,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN VOID *Descriptor,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync OUT UINT32 *Status
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Get the interface setting of the specified USB device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Submit a USB get interface request for the USB device specified by UsbIo,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync and Interface, and place the result in the buffer specified by AlternateSetting.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync The status of the transfer is returned in Status.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If UsbIo is NULL, then ASSERT().
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If AlternateSetting is NULL, then ASSERT().
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If Status is NULL, then ASSERT().
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param UsbIo A pointer to the USB I/O Protocol instance for the specific USB target.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Interface The interface index value.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param AlternateSetting A pointer to the alternate setting to be retrieved.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Status A pointer to the status of the transfer.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The request executed successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_TIMEOUT A timeout occurred executing the request.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_DEVICE_ERROR The request failed due to a device error.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync The transfer status is returned in Status.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFIAPI
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUsbGetInterface (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_USB_IO_PROTOCOL *UsbIo,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT16 Interface,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync OUT UINT16 *AlternateSetting,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync OUT UINT32 *Status
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Set the interface setting of the specified USB device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Submit a USB set interface request for the USB device specified by UsbIo, and
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Interface, and set the alternate setting to the value specified by AlternateSetting.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync The status of the transfer is returned in Status.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If UsbIo is NULL, then ASSERT().
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If Status is NULL, then ASSERT().
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param UsbIo A pointer to the USB I/O Protocol instance for the specific USB target.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Interface The interface index value.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param AlternateSetting The alternate setting to be set.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Status A pointer to the status of the transfer.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The request executed successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_TIMEOUT A timeout occurred executing the request.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The request failed due to a device error.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync The transfer status is returned in Status.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFIAPI
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUsbSetInterface (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_USB_IO_PROTOCOL *UsbIo,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT16 Interface,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT16 AlternateSetting,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync OUT UINT32 *Status
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Get the device configuration.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Submit a USB get configuration request for the USB device specified by UsbIo
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync and place the result in the buffer specified by ConfigurationValue. The status
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync of the transfer is returned in Status.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If UsbIo is NULL, then ASSERT().
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If ConfigurationValue is NULL, then ASSERT().
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If Status is NULL, then ASSERT().
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param UsbIo A pointer to the USB I/O Protocol instance for the specific USB target.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param ConfigurationValue A pointer to the device configuration to be retrieved.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Status A pointer to the status of the transfer.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The request executed successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_TIMEOUT A timeout occurred executing the request.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_DEVICE_ERROR The request failed due to a device error.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync The transfer status is returned in Status.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFIAPI
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUsbGetConfiguration (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_USB_IO_PROTOCOL *UsbIo,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync OUT UINT16 *ConfigurationValue,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync OUT UINT32 *Status
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Set the device configuration.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Submit a USB set configuration request for the USB device specified by UsbIo
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync and set the device configuration to the value specified by ConfigurationValue.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync The status of the transfer is returned in Status.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If UsbIo is NULL, then ASSERT().
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If Status is NULL, then ASSERT().
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param UsbIo A pointer to the USB I/O Protocol instance for the specific USB target.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param ConfigurationValue The device configuration value to be set.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Status A pointer to the status of the transfer.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The request executed successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_TIMEOUT A timeout occurred executing the request.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_DEVICE_ERROR The request failed due to a device error.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync The transfer status is returned in Status.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFIAPI
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUsbSetConfiguration (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_USB_IO_PROTOCOL *UsbIo,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT16 ConfigurationValue,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync OUT UINT32 *Status
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Set the specified feature of the specified device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Submit a USB set device feature request for the USB device specified by UsbIo,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Recipient, and Target to the value specified by Value. The status of the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync transfer is returned in Status.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If UsbIo is NULL, then ASSERT().
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If Status is NULL, then ASSERT().
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param UsbIo A pointer to the USB I/O Protocol instance for the specific USB target.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Recipient The USB data recipient type (i.e. Device, Interface, Endpoint).
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Type USB_TYPES_DEFINITION is defined in the MDE Package Industry
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Standard include file Usb.h.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Value The value of the feature to be set.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Target The index of the device to be set.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Status A pointer to the status of the transfer.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The request executed successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_TIMEOUT A timeout occurred executing the request.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_DEVICE_ERROR The request failed due to a device error.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync The transfer status is returned in Status.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFIAPI
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUsbSetFeature (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_USB_IO_PROTOCOL *UsbIo,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN USB_TYPES_DEFINITION Recipient,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT16 Value,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT16 Target,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync OUT UINT32 *Status
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Clear the specified feature of the specified device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Submit a USB clear device feature request for the USB device specified by UsbIo,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Recipient, and Target to the value specified by Value. The status of the transfer
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync is returned in Status.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If UsbIo is NULL, then ASSERT().
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If Status is NULL, then ASSERT().
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param UsbIo A pointer to the USB I/O Protocol instance for the specific USB target.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Recipient The USB data recipient type (i.e. Device, Interface, Endpoint).
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Type USB_TYPES_DEFINITION is defined in the MDE Package Industry Standard
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync include file Usb.h.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Value The value of the feature to be cleared.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Target The index of the device to be cleared.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Status A pointer to the status of the transfer.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The request executed successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_TIMEOUT A timeout occurred executing the request.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_DEVICE_ERROR The request failed due to a device error.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync The transfer status is returned in Status.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFIAPI
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUsbClearFeature (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_USB_IO_PROTOCOL *UsbIo,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN USB_TYPES_DEFINITION Recipient,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT16 Value,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT16 Target,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync OUT UINT32 *Status
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Get the status of the specified device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Submit a USB device get status request for the USB device specified by UsbIo,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Recipient, and Target, and place the result in the buffer specified by DeviceStatus.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync The status of the transfer is returned in Status.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If UsbIo is NULL, then ASSERT().
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If DeviceStatus is NULL, then ASSERT().
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If Status is NULL, then ASSERT().
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param UsbIo A pointer to the USB I/O Protocol instance for the specific USB target.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Recipient The USB data recipient type (i.e. Device, Interface, Endpoint).
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Type USB_TYPES_DEFINITION is defined in the MDE Package Industry Standard
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync include file Usb.h.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Target The index of the device to be get the status of.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param DeviceStatus A pointer to the device status to be retrieved.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Status A pointer to the status of the transfer.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The request executed successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_TIMEOUT A timeout occurred executing the request.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_DEVICE_ERROR The request failed due to a device error.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync The transfer status is returned in Status.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFIAPI
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUsbGetStatus (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_USB_IO_PROTOCOL *UsbIo,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN USB_TYPES_DEFINITION Recipient,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT16 Target,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync OUT UINT16 *DeviceStatus,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync OUT UINT32 *Status
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Clear halt feature of the specified usb endpoint.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Retrieve the USB endpoint descriptor specified by UsbIo and EndPoint.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If the USB endpoint descriptor can not be retrieved, then return EFI_NOT_FOUND.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If the endpoint descriptor is found, then clear the halt feature of this USB endpoint.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync The status of the transfer is returned in Status.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If UsbIo is NULL, then ASSERT().
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If Status is NULL, then ASSERT().
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param UsbIo A pointer to the USB I/O Protocol instance for the specific USB target.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Endpoint The endpoint address.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Status A pointer to the status of the transfer.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The request executed successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_TIMEOUT A timeout occurred executing the request.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_DEVICE_ERROR The request failed due to a device error.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync The transfer status is returned in Status.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_NOT_FOUND The specified USB endpoint descriptor can not be found
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFIAPI
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUsbClearEndpointHalt (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_USB_IO_PROTOCOL *UsbIo,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT8 Endpoint,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync OUT UINT32 *Status
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#endif