/** @file Provides some data struct used by OHCI controller driver. Copyright (c) 2013-2015 Intel Corporation. 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. **/ #ifndef _OHCI_URB_H #define _OHCI_URB_H #include "Descriptor.h" // // Func List // /** Create a TD @Param Ohc UHC private data @retval TD structure pointer **/ TD_DESCRIPTOR * OhciCreateTD ( IN USB_OHCI_HC_DEV *Ohc ); /** Free a TD @Param Ohc UHC private data @Param Td Pointer to a TD to free @retval EFI_SUCCESS TD freed **/ EFI_STATUS OhciFreeTD ( IN USB_OHCI_HC_DEV *Ohc, IN TD_DESCRIPTOR *Td ); /** Create a ED @Param Ohc Device private data @retval ED descriptor pointer **/ ED_DESCRIPTOR * OhciCreateED ( USB_OHCI_HC_DEV *Ohc ); /** Free a ED @Param Ohc UHC private data @Param Ed Pointer to a ED to free @retval EFI_SUCCESS ED freed **/ EFI_STATUS OhciFreeED ( IN USB_OHCI_HC_DEV *Ohc, IN ED_DESCRIPTOR *Ed ); /** Free ED @Param Ohc Device private data @Param Ed Pointer to a ED to free @retval EFI_SUCCESS ED freed **/ EFI_STATUS OhciFreeAllTDFromED ( IN USB_OHCI_HC_DEV *Ohc, IN ED_DESCRIPTOR *Ed ); /** Attach an ED @Param Ed Ed to be attached @Param NewEd Ed to attach @retval EFI_SUCCESS NewEd attached to Ed @retval EFI_INVALID_PARAMETER Ed is NULL **/ EFI_STATUS OhciAttachED ( IN ED_DESCRIPTOR *Ed, IN ED_DESCRIPTOR *NewEd ); /** Attach an ED to an ED list @Param OHC UHC private data @Param ListType Type of the ED list @Param Ed ED to attach @Param EdList ED list to be attached @retval EFI_SUCCESS ED attached to ED list **/ EFI_STATUS OhciAttachEDToList ( IN USB_OHCI_HC_DEV *Ohc, IN DESCRIPTOR_LIST_TYPE ListType, IN ED_DESCRIPTOR *Ed, IN ED_DESCRIPTOR *EdList ); EFI_STATUS OhciLinkTD ( IN TD_DESCRIPTOR *Td1, IN TD_DESCRIPTOR *Td2 ); /** Attach TD list to ED @Param Ed ED which TD list attach on @Param HeadTd Head of the TD list to attach @retval EFI_SUCCESS TD list attached on the ED **/ EFI_STATUS OhciAttachTDListToED ( IN ED_DESCRIPTOR *Ed, IN TD_DESCRIPTOR *HeadTd ); /** Set value to ED specific field @Param Ed ED to be set @Param Field Field to be set @Param Value Value to set @retval EFI_SUCCESS Value set **/ EFI_STATUS OhciSetEDField ( IN ED_DESCRIPTOR *Ed, IN UINT32 Field, IN UINT32 Value ); /** Get value from an ED's specific field @Param Ed ED pointer @Param Field Field to get value from @retval Value of the field **/ UINT32 OhciGetEDField ( IN ED_DESCRIPTOR *Ed, IN UINT32 Field ); /** Set value to TD specific field @Param Td TD to be set @Param Field Field to be set @Param Value Value to set @retval EFI_SUCCESS Value set **/ EFI_STATUS OhciSetTDField ( IN TD_DESCRIPTOR *Td, IN UINT32 Field, IN UINT32 Value ); /** Get value from ED specific field @Param Td TD pointer @Param Field Field to get value from @retval Value of the field **/ UINT32 OhciGetTDField ( IN TD_DESCRIPTOR *Td, IN UINT32 Field ); #endif