]> git.proxmox.com Git - mirror_edk2.git/blob - QuarkSocPkg/QuarkSouthCluster/Usb/Ohci/Pei/OhciUrb.h
8376b0a8482d7f243b947fcd33e9b70970fc35cd
[mirror_edk2.git] / QuarkSocPkg / QuarkSouthCluster / Usb / Ohci / Pei / OhciUrb.h
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