]> git.proxmox.com Git - mirror_edk2.git/blob - MdeModulePkg/Bus/Usb/UsbBusDxe/UsbUtility.h
Import Usb/UsbBusDxe and Usb/UsbMassStorageDxe into MdeModulePkg.
[mirror_edk2.git] / MdeModulePkg / Bus / Usb / UsbBusDxe / UsbUtility.h
1 /** @file
2
3 Copyright (c) 2007, Intel Corporation
4 All rights reserved. This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
8
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11
12 Module Name:
13
14 UsbUtility.h
15
16 Abstract:
17
18 Manage Usb Port/Hc/Etc
19
20 Revision History
21
22
23 **/
24
25 #ifndef _USB_UTILITY_H
26 #define _USB_UTILITY_H
27
28 EFI_STATUS
29 UsbHcGetCapability (
30 IN USB_BUS *UsbBus,
31 OUT UINT8 *MaxSpeed,
32 OUT UINT8 *NumOfPort,
33 OUT UINT8 *Is64BitCapable
34 );
35
36 EFI_STATUS
37 UsbHcReset (
38 IN USB_BUS *UsbBus,
39 IN UINT16 Attributes
40 );
41
42
43 EFI_STATUS
44 UsbHcGetState (
45 IN USB_BUS *UsbBus,
46 OUT EFI_USB_HC_STATE *State
47 );
48
49
50 EFI_STATUS
51 UsbHcSetState (
52 IN USB_BUS *UsbBus,
53 IN EFI_USB_HC_STATE State
54 );
55
56
57 EFI_STATUS
58 UsbHcGetRootHubPortStatus (
59 IN USB_BUS *UsbBus,
60 IN UINT8 PortIndex,
61 OUT EFI_USB_PORT_STATUS *PortStatus
62 );
63
64
65 EFI_STATUS
66 UsbHcSetRootHubPortFeature (
67 IN USB_BUS *UsbBus,
68 IN UINT8 PortIndex,
69 IN EFI_USB_PORT_FEATURE Feature
70 );
71
72
73 EFI_STATUS
74 UsbHcClearRootHubPortFeature (
75 IN USB_BUS *UsbBus,
76 IN UINT8 PortIndex,
77 IN EFI_USB_PORT_FEATURE Feature
78 );
79
80
81 EFI_STATUS
82 UsbHcControlTransfer (
83 IN USB_BUS *UsbBus,
84 IN UINT8 DevAddr,
85 IN UINT8 DevSpeed,
86 IN UINTN MaxPacket,
87 IN EFI_USB_DEVICE_REQUEST *Request,
88 IN EFI_USB_DATA_DIRECTION Direction,
89 IN OUT VOID *Data,
90 IN OUT UINTN *DataLength,
91 IN UINTN TimeOut,
92 IN EFI_USB2_HC_TRANSACTION_TRANSLATOR *Translator,
93 OUT UINT32 *UsbResult
94 );
95
96
97 EFI_STATUS
98 UsbHcBulkTransfer (
99 IN USB_BUS *UsbBus,
100 IN UINT8 DevAddr,
101 IN UINT8 EpAddr,
102 IN UINT8 DevSpeed,
103 IN UINTN MaxPacket,
104 IN UINT8 BufferNum,
105 IN OUT VOID *Data[EFI_USB_MAX_BULK_BUFFER_NUM],
106 IN OUT UINTN *DataLength,
107 IN OUT UINT8 *DataToggle,
108 IN UINTN TimeOut,
109 IN EFI_USB2_HC_TRANSACTION_TRANSLATOR *Translator,
110 OUT UINT32 *UsbResult
111 );
112
113
114 EFI_STATUS
115 UsbHcAsyncInterruptTransfer (
116 IN USB_BUS *UsbBus,
117 IN UINT8 DevAddr,
118 IN UINT8 EpAddr,
119 IN UINT8 DevSpeed,
120 IN UINTN MaxPacket,
121 IN BOOLEAN IsNewTransfer,
122 IN OUT UINT8 *DataToggle,
123 IN UINTN PollingInterval,
124 IN UINTN DataLength,
125 IN EFI_USB2_HC_TRANSACTION_TRANSLATOR *Translator,
126 IN EFI_ASYNC_USB_TRANSFER_CALLBACK Callback,
127 IN VOID *Context OPTIONAL
128 );
129
130
131 EFI_STATUS
132 UsbHcSyncInterruptTransfer (
133 IN USB_BUS *UsbBus,
134 IN UINT8 DevAddr,
135 IN UINT8 EpAddr,
136 IN UINT8 DevSpeed,
137 IN UINTN MaxPacket,
138 IN OUT VOID *Data,
139 IN OUT UINTN *DataLength,
140 IN OUT UINT8 *DataToggle,
141 IN UINTN TimeOut,
142 IN EFI_USB2_HC_TRANSACTION_TRANSLATOR *Translator,
143 OUT UINT32 *UsbResult
144 );
145
146
147 EFI_STATUS
148 UsbHcIsochronousTransfer (
149 IN USB_BUS *UsbBus,
150 IN UINT8 DevAddr,
151 IN UINT8 EpAddr,
152 IN UINT8 DevSpeed,
153 IN UINTN MaxPacket,
154 IN UINT8 BufferNum,
155 IN OUT VOID *Data[EFI_USB_MAX_ISO_BUFFER_NUM],
156 IN UINTN DataLength,
157 IN EFI_USB2_HC_TRANSACTION_TRANSLATOR *Translator,
158 OUT UINT32 *UsbResult
159 );
160
161
162 EFI_STATUS
163 UsbHcAsyncIsochronousTransfer (
164 IN USB_BUS *UsbBus,
165 IN UINT8 DevAddr,
166 IN UINT8 EpAddr,
167 IN UINT8 DevSpeed,
168 IN UINTN MaxPacket,
169 IN UINT8 BufferNum,
170 IN OUT VOID *Data[EFI_USB_MAX_ISO_BUFFER_NUM],
171 IN UINTN DataLength,
172 IN EFI_USB2_HC_TRANSACTION_TRANSLATOR *Translator,
173 IN EFI_ASYNC_USB_TRANSFER_CALLBACK Callback,
174 IN VOID *Context
175 );
176
177
178 EFI_STATUS
179 UsbOpenHostProtoByChild (
180 IN USB_BUS *Bus,
181 IN EFI_HANDLE Child
182 );
183
184
185 VOID
186 UsbCloseHostProtoByChild (
187 IN USB_BUS *Bus,
188 IN EFI_HANDLE Child
189 );
190
191
192 EFI_TPL
193 UsbGetCurrentTpl (
194 VOID
195 );
196
197 //
198 // USB debug support routines
199 //
200 #ifdef EFI_DEBUG
201 #define USB_DEBUG(arg) UsbDebug arg
202 #define USB_ERROR(arg) UsbError arg
203 #else
204 #define USB_DEBUG(arg)
205 #define USB_ERROR(arg)
206 #endif
207
208 VOID
209 UsbDebug (
210 IN CHAR8 *Format,
211 ...
212 );
213
214
215 VOID
216 UsbError (
217 IN CHAR8 *Format,
218 ...
219 );
220 #endif