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