]> git.proxmox.com Git - mirror_edk2.git/blame - EdkCompatibilityPkg/Foundation/Efi/Protocol/UsbIo/UsbIo.h
Update the copyright notice format
[mirror_edk2.git] / EdkCompatibilityPkg / Foundation / Efi / Protocol / UsbIo / UsbIo.h
CommitLineData
3eb9473e 1/*++\r
2\r
f57387d5
HT
3Copyright (c) 2004, Intel Corporation. All rights reserved.<BR>\r
4This program and the accompanying materials \r
3eb9473e 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
12Module Name:\r
13\r
14 UsbIo.h\r
15\r
16Abstract:\r
17\r
18 EFI Usb I/O Protocol\r
19\r
20Revision History\r
21\r
22--*/\r
23\r
24#ifndef _EFI_USB_IO_H\r
25#define _EFI_USB_IO_H\r
26\r
27#include "usb.h"\r
28\r
29//\r
30// Global ID for the USB I/O Protocol\r
31//\r
32#define EFI_USB_IO_PROTOCOL_GUID \\r
33 { \\r
7ccf38a3 34 0x2B2F68D6, 0x0CD2, 0x44cf, {0x8E, 0x8B, 0xBB, 0xA2, 0x0B, 0x1B, 0x5B, 0x75} \\r
3eb9473e 35 }\r
36\r
37EFI_FORWARD_DECLARATION (EFI_USB_IO_PROTOCOL);\r
38\r
39//\r
40// Asynchronous USB transfer call back function\r
41//\r
42typedef\r
43EFI_STATUS\r
44(EFIAPI *EFI_ASYNC_USB_TRANSFER_CALLBACK) (\r
45 IN VOID *Data,\r
46 IN UINTN DataLength,\r
47 IN VOID *Context,\r
48 IN UINT32 Status\r
49 );\r
50\r
51//\r
52// Prototype for EFI USB I/O protocol\r
53//\r
54typedef\r
55EFI_STATUS\r
56(EFIAPI *EFI_USB_IO_CONTROL_TRANSFER) (\r
57 IN EFI_USB_IO_PROTOCOL * This,\r
58 IN EFI_USB_DEVICE_REQUEST * Request,\r
59 IN EFI_USB_DATA_DIRECTION Direction,\r
60 IN UINT32 Timeout,\r
61 IN OUT VOID *Data OPTIONAL,\r
62 IN UINTN DataLength OPTIONAL,\r
63 OUT UINT32 *Status\r
64 );\r
65\r
66typedef\r
67EFI_STATUS\r
68(EFIAPI *EFI_USB_IO_BULK_TRANSFER) (\r
69 IN EFI_USB_IO_PROTOCOL * This,\r
70 IN UINT8 DeviceEndpoint,\r
71 IN OUT VOID *Data,\r
72 IN OUT UINTN *DataLength,\r
73 IN UINTN Timeout,\r
74 OUT UINT32 *Status\r
75 );\r
76\r
77typedef\r
78EFI_STATUS\r
79(EFIAPI *EFI_USB_IO_ASYNC_INTERRUPT_TRANSFER) (\r
80 IN EFI_USB_IO_PROTOCOL * This,\r
81 IN UINT8 DeviceEndpoint,\r
82 IN BOOLEAN IsNewTransfer,\r
83 IN UINTN PollingInterval OPTIONAL,\r
84 IN UINTN DataLength OPTIONAL,\r
85 IN EFI_ASYNC_USB_TRANSFER_CALLBACK InterruptCallBack OPTIONAL,\r
86 IN VOID *Context OPTIONAL\r
87 );\r
88\r
89typedef\r
90EFI_STATUS\r
91(EFIAPI *EFI_USB_IO_SYNC_INTERRUPT_TRANSFER) (\r
92 IN EFI_USB_IO_PROTOCOL * This,\r
93 IN UINT8 DeviceEndpoint,\r
94 IN OUT VOID *Data,\r
95 IN OUT UINTN *DataLength,\r
96 IN UINTN Timeout,\r
97 OUT UINT32 *Status\r
98 );\r
99\r
100typedef\r
101EFI_STATUS\r
102(EFIAPI *EFI_USB_IO_ISOCHRONOUS_TRANSFER) (\r
103 IN EFI_USB_IO_PROTOCOL * This,\r
104 IN UINT8 DeviceEndpoint,\r
105 IN OUT VOID *Data,\r
106 IN UINTN DataLength,\r
107 OUT UINT32 *Status\r
108 );\r
109\r
110typedef\r
111EFI_STATUS\r
112(EFIAPI *EFI_USB_IO_ASYNC_ISOCHRONOUS_TRANSFER) (\r
113 IN EFI_USB_IO_PROTOCOL * This,\r
114 IN UINT8 DeviceEndpoint,\r
115 IN OUT VOID *Data,\r
116 IN UINTN DataLength,\r
117 IN EFI_ASYNC_USB_TRANSFER_CALLBACK IsochronousCallBack,\r
118 IN VOID *Context OPTIONAL\r
119 );\r
120\r
121typedef\r
122EFI_STATUS\r
123(EFIAPI *EFI_USB_IO_PORT_RESET) (\r
124 IN EFI_USB_IO_PROTOCOL * This\r
125 );\r
126\r
127typedef\r
128EFI_STATUS\r
129(EFIAPI *EFI_USB_IO_GET_DEVICE_DESCRIPTOR) (\r
130 IN EFI_USB_IO_PROTOCOL * This,\r
131 OUT EFI_USB_DEVICE_DESCRIPTOR * DeviceDescriptor\r
132 );\r
133\r
134typedef\r
135EFI_STATUS\r
136(EFIAPI *EFI_USB_IO_GET_CONFIG_DESCRIPTOR) (\r
137 IN EFI_USB_IO_PROTOCOL * This,\r
138 OUT EFI_USB_CONFIG_DESCRIPTOR * ConfigurationDescriptor\r
139 );\r
140\r
141typedef\r
142EFI_STATUS\r
143(EFIAPI *EFI_USB_IO_GET_INTERFACE_DESCRIPTOR) (\r
144 IN EFI_USB_IO_PROTOCOL * This,\r
145 OUT EFI_USB_INTERFACE_DESCRIPTOR * InterfaceDescriptor\r
146 );\r
147\r
148typedef\r
149EFI_STATUS\r
150(EFIAPI *EFI_USB_IO_GET_ENDPOINT_DESCRIPTOR) (\r
151 IN EFI_USB_IO_PROTOCOL * This,\r
152 IN UINT8 EndpointIndex,\r
153 OUT EFI_USB_ENDPOINT_DESCRIPTOR * EndpointDescriptor\r
154 );\r
155\r
156typedef\r
157EFI_STATUS\r
158(EFIAPI *EFI_USB_IO_GET_STRING_DESCRIPTOR) (\r
159 IN EFI_USB_IO_PROTOCOL * This,\r
160 IN UINT16 LangID,\r
161 IN UINT8 StringID,\r
162 OUT CHAR16 **String\r
163 );\r
164\r
165typedef\r
166EFI_STATUS\r
167(EFIAPI *EFI_USB_IO_GET_SUPPORTED_LANGUAGE) (\r
168 IN EFI_USB_IO_PROTOCOL * This,\r
169 OUT UINT16 **LangIDTable,\r
170 OUT UINT16 *TableSize\r
171 );\r
172\r
173//\r
174// Protocol Interface Structure\r
175//\r
e5bce275 176struct _EFI_USB_IO_PROTOCOL {\r
3eb9473e 177 //\r
178 // IO transfer\r
179 //\r
180 EFI_USB_IO_CONTROL_TRANSFER UsbControlTransfer;\r
181 EFI_USB_IO_BULK_TRANSFER UsbBulkTransfer;\r
182 EFI_USB_IO_ASYNC_INTERRUPT_TRANSFER UsbAsyncInterruptTransfer;\r
183 EFI_USB_IO_SYNC_INTERRUPT_TRANSFER UsbSyncInterruptTransfer;\r
184 EFI_USB_IO_ISOCHRONOUS_TRANSFER UsbIsochronousTransfer;\r
185 EFI_USB_IO_ASYNC_ISOCHRONOUS_TRANSFER UsbAsyncIsochronousTransfer;\r
186\r
187 //\r
188 // Common device request\r
189 //\r
190 EFI_USB_IO_GET_DEVICE_DESCRIPTOR UsbGetDeviceDescriptor;\r
191 EFI_USB_IO_GET_CONFIG_DESCRIPTOR UsbGetConfigDescriptor;\r
192 EFI_USB_IO_GET_INTERFACE_DESCRIPTOR UsbGetInterfaceDescriptor;\r
193 EFI_USB_IO_GET_ENDPOINT_DESCRIPTOR UsbGetEndpointDescriptor;\r
194 EFI_USB_IO_GET_STRING_DESCRIPTOR UsbGetStringDescriptor;\r
195 EFI_USB_IO_GET_SUPPORTED_LANGUAGE UsbGetSupportedLanguages;\r
196\r
197 //\r
198 // Reset controller's parent port\r
199 //\r
200 EFI_USB_IO_PORT_RESET UsbPortReset;\r
e5bce275 201};\r
3eb9473e 202\r
203extern EFI_GUID gEfiUsbIoProtocolGuid;\r
204\r
205#endif\r