1 /** @file 2 Provides some data struct used by OHCI controller driver. 3 4 Copyright (c) 2013-2015 Intel Corporation. 5 6 This program and the accompanying materials 7 are licensed and made available under the terms and conditions of the BSD License 8 which accompanies this distribution. The full text of the license may be found at 9 http://opensource.org/licenses/bsd-license.php 10 11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 13 14 **/ 15 16 17 #ifndef _OHCI_URB_H 18 #define _OHCI_URB_H 19 20 #include "Descriptor.h" 21 22 23 // 24 // Func List 25 // 26 27 28 /** 29 30 Create a TD 31 32 @Param Ohc UHC private data 33 34 @retval TD structure pointer 35 36 **/ 37 TD_DESCRIPTOR * 38 OhciCreateTD ( 39 IN USB_OHCI_HC_DEV *Ohc 40 ); 41 42 /** 43 44 Free a TD 45 46 @Param Ohc UHC private data 47 @Param Td Pointer to a TD to free 48 49 @retval EFI_SUCCESS TD freed 50 51 **/ 52 EFI_STATUS 53 OhciFreeTD ( 54 IN USB_OHCI_HC_DEV *Ohc, 55 IN TD_DESCRIPTOR *Td 56 ); 57 58 /** 59 60 Create a ED 61 62 @Param Ohc Device private data 63 64 @retval ED descriptor pointer 65 66 **/ 67 ED_DESCRIPTOR * 68 OhciCreateED ( 69 USB_OHCI_HC_DEV *Ohc 70 ); 71 72 73 /** 74 75 Free a ED 76 77 @Param Ohc UHC private data 78 @Param Ed Pointer to a ED to free 79 80 @retval EFI_SUCCESS ED freed 81 82 **/ 83 84 EFI_STATUS 85 OhciFreeED ( 86 IN USB_OHCI_HC_DEV *Ohc, 87 IN ED_DESCRIPTOR *Ed 88 ); 89 90 /** 91 92 Free ED 93 94 @Param Ohc Device private data 95 @Param Ed Pointer to a ED to free 96 97 @retval EFI_SUCCESS ED freed 98 99 **/ 100 EFI_STATUS 101 OhciFreeAllTDFromED ( 102 IN USB_OHCI_HC_DEV *Ohc, 103 IN ED_DESCRIPTOR *Ed 104 ); 105 106 /** 107 108 Attach an ED 109 110 @Param Ed Ed to be attached 111 @Param NewEd Ed to attach 112 113 @retval EFI_SUCCESS NewEd attached to Ed 114 @retval EFI_INVALID_PARAMETER Ed is NULL 115 116 **/ 117 EFI_STATUS 118 OhciAttachED ( 119 IN ED_DESCRIPTOR *Ed, 120 IN ED_DESCRIPTOR *NewEd 121 ); 122 /** 123 124 Attach an ED to an ED list 125 126 @Param OHC UHC private data 127 @Param ListType Type of the ED list 128 @Param Ed ED to attach 129 @Param EdList ED list to be attached 130 131 @retval EFI_SUCCESS ED attached to ED list 132 133 **/ 134 EFI_STATUS 135 OhciAttachEDToList ( 136 IN USB_OHCI_HC_DEV *Ohc, 137 IN DESCRIPTOR_LIST_TYPE ListType, 138 IN ED_DESCRIPTOR *Ed, 139 IN ED_DESCRIPTOR *EdList 140 ); 141 EFI_STATUS 142 OhciLinkTD ( 143 IN TD_DESCRIPTOR *Td1, 144 IN TD_DESCRIPTOR *Td2 145 ); 146 147 148 /** 149 150 Attach TD list to ED 151 152 @Param Ed ED which TD list attach on 153 @Param HeadTd Head of the TD list to attach 154 155 @retval EFI_SUCCESS TD list attached on the ED 156 157 **/ 158 EFI_STATUS 159 OhciAttachTDListToED ( 160 IN ED_DESCRIPTOR *Ed, 161 IN TD_DESCRIPTOR *HeadTd 162 ); 163 164 165 /** 166 167 Set value to ED specific field 168 169 @Param Ed ED to be set 170 @Param Field Field to be set 171 @Param Value Value to set 172 173 @retval EFI_SUCCESS Value set 174 175 **/ 176 EFI_STATUS 177 OhciSetEDField ( 178 IN ED_DESCRIPTOR *Ed, 179 IN UINT32 Field, 180 IN UINT32 Value 181 ); 182 183 184 /** 185 186 Get value from an ED's specific field 187 188 @Param Ed ED pointer 189 @Param Field Field to get value from 190 191 @retval Value of the field 192 193 **/ 194 UINT32 195 OhciGetEDField ( 196 IN ED_DESCRIPTOR *Ed, 197 IN UINT32 Field 198 ); 199 200 201 /** 202 203 Set value to TD specific field 204 205 @Param Td TD to be set 206 @Param Field Field to be set 207 @Param Value Value to set 208 209 @retval EFI_SUCCESS Value set 210 211 **/ 212 EFI_STATUS 213 OhciSetTDField ( 214 IN TD_DESCRIPTOR *Td, 215 IN UINT32 Field, 216 IN UINT32 Value 217 ); 218 219 220 /** 221 222 Get value from ED specific field 223 224 @Param Td TD pointer 225 @Param Field Field to get value from 226 227 @retval Value of the field 228 229 **/ 230 231 UINT32 232 OhciGetTDField ( 233 IN TD_DESCRIPTOR *Td, 234 IN UINT32 Field 235 ); 236 237 #endif 238