4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/** @file
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync The definition for EHCI register operation routines.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncCopyright (c) 2007 - 2010, 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#ifndef _EFI_UHCI_SCHED_H_
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define _EFI_UHCI_SCHED_H_
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define UHCI_ASYNC_INT_SIGNATURE SIGNATURE_32 ('u', 'h', 'c', 'a')
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// The failure mask for USB transfer return status. If any of
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// these bit is set, the transfer failed. EFI_USB_ERR_NOEXECUTE
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// and EFI_USB_ERR_NAK are not considered as error condition:
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// the transfer is still going on.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define USB_ERR_FAIL_MASK (EFI_USB_ERR_STALL | EFI_USB_ERR_BUFFER | \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_USB_ERR_BABBLE | EFI_USB_ERR_CRC | \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_USB_ERR_TIMEOUT | EFI_USB_ERR_BITSTUFF | \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_USB_ERR_SYSTEM)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// Structure to return the result of UHCI QH execution.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// Result is the final result of the QH's QTD. NextToggle
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// is the next data toggle to use. Complete is the actual
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// length of data transferred.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 Result;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 NextToggle;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINTN Complete;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} UHCI_QH_RESULT;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct _UHCI_ASYNC_REQUEST UHCI_ASYNC_REQUEST;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// Structure used to manager the asynchronous interrupt transfers.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncstruct _UHCI_ASYNC_REQUEST{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINTN Signature;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync LIST_ENTRY Link;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UHCI_ASYNC_REQUEST *Recycle;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync //
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // Endpoint attributes
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync //
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 DevAddr;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 EndPoint;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync BOOLEAN IsLow;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINTN Interval;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync //
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // Data and UHC structures
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync //
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UHCI_QH_SW *QhSw;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UHCI_TD_SW *FirstTd;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 *Data; // Allocated host memory, not mapped memory
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINTN DataLen;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync VOID *Mapping;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync //
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // User callback and its context
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync //
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_ASYNC_USB_TRANSFER_CALLBACK Callback;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync VOID *Context;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync};
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define UHCI_ASYNC_INT_FROM_LINK(a) \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CR (a, UHCI_ASYNC_REQUEST, Link, UHCI_ASYNC_INT_SIGNATURE)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Create Frame List Structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Uhc The UHCI device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return EFI_OUT_OF_RESOURCES Can't allocate memory resources.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return EFI_UNSUPPORTED Map memory fail.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return EFI_SUCCESS Success.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUhciInitFrameList (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN USB_HC_DEV *Uhc
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Destory FrameList buffer.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Uhc The UHCI device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return None.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncVOID
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUhciDestoryFrameList (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN USB_HC_DEV *Uhc
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Convert the poll rate to the maxium 2^n that is smaller
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync than Interval.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Interval The poll rate to convert.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return The converted poll rate.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUINTN
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUhciConvertPollRate (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINTN Interval
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Link a queue head (for asynchronous interrupt transfer) to
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync the frame list.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Uhc The UHCI device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Qh The queue head to link into.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncVOID
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUhciLinkQhToFrameList (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync USB_HC_DEV *Uhc,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UHCI_QH_SW *Qh
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Unlink QH from the frame list is easier: find all
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync the precedence node, and pointer there next to QhSw's
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync next.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Uhc The UHCI device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Qh The queue head to unlink.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncVOID
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUhciUnlinkQhFromFrameList (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync USB_HC_DEV *Uhc,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UHCI_QH_SW *Qh
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Check the result of the transfer.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Uhc The UHCI device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Qh The queue head of the transfer.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Td The first TDs of the transfer.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param TimeOut TimeOut value in milliseconds.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param IsLow Is Low Speed Device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param QhResult The variable to return result.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The transfer finished with success.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_DEVICE_ERROR Transfer failed.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUhciExecuteTransfer (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN USB_HC_DEV *Uhc,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UHCI_QH_SW *Qh,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UHCI_TD_SW *Td,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINTN TimeOut,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN BOOLEAN IsLow,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync OUT UHCI_QH_RESULT *QhResult
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Create Async Request node, and Link to List.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Uhc The UHCI device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Qh The queue head of the transfer.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param FirstTd First TD of the transfer.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param DevAddr Device Address.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param EndPoint EndPoint Address.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param DataLen Data length.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Interval Polling Interval when inserted to frame list.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Data Data buffer, unmapped.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Callback Callback after interrupt transfeer.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Context Callback Context passed as function parameter.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param IsLow Is Low Speed.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS An asynchronous transfer is created.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER Paremeter is error.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_OUT_OF_RESOURCES Failed because of resource shortage.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUhciCreateAsyncReq (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN USB_HC_DEV *Uhc,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UHCI_QH_SW *Qh,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UHCI_TD_SW *FirstTd,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT8 DevAddr,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT8 EndPoint,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINTN DataLen,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINTN Interval,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT8 *Data,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_ASYNC_USB_TRANSFER_CALLBACK Callback,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN VOID *Context,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN BOOLEAN IsLow
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Delete Async Interrupt QH and TDs.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Uhc The UHCI device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param DevAddr Device Address.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param EndPoint EndPoint Address.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Toggle The next data toggle to use.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The request is deleted.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER Paremeter is error.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_NOT_FOUND The asynchronous isn't found.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUhciRemoveAsyncReq (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN USB_HC_DEV *Uhc,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT8 DevAddr,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT8 EndPoint,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync OUT UINT8 *Toggle
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Release all the asynchronous transfers on the lsit.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Uhc The UHCI device.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return None.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncVOID
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUhciFreeAllAsyncReq (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN USB_HC_DEV *Uhc
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Interrupt transfer periodic check handler.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Event The event of the time.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Context Context of the event, pointer to USB_HC_DEV.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return None.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncVOID
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFIAPI
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUhciMonitorAsyncReqList (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_EVENT Event,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN VOID *Context
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#endif