• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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