/** @file | |
Provides some data struct used by OHCI controller driver. | |
Copyright (c) 2013 Intel Corporation. | |
Redistribution and use in source and binary forms, with or without | |
modification, are permitted provided that the following conditions | |
are met: | |
* Redistributions of source code must retain the above copyright | |
notice, this list of conditions and the following disclaimer. | |
* Redistributions in binary form must reproduce the above copyright | |
notice, this list of conditions and the following disclaimer in | |
the documentation and/or other materials provided with the | |
distribution. | |
* Neither the name of Intel Corporation nor the names of its | |
contributors may be used to endorse or promote products derived | |
from this software without specific prior written permission. | |
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | |
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | |
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | |
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | |
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | |
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | |
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | |
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
**/ | |
#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 |