]> git.proxmox.com Git - mirror_edk2.git/blob - Vlv2TbltDevicePkg/Include/Library/UsbDeviceModeLib.h
Upload BSD-licensed Vlv2TbltDevicePkg and Vlv2DeviceRefCodePkg to
[mirror_edk2.git] / Vlv2TbltDevicePkg / Include / Library / UsbDeviceModeLib.h
1 /*++
2
3 Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR>
4
5 This program and the accompanying materials are licensed and made available under
6 the terms and conditions of the BSD License that accompanies this distribution.
7 The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php.
9
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12
13
14 **/
15
16 #ifndef __BASE_USBDEVICEMODE_LIB_H__
17 #define __BASE_USBDEVICEMODE_LIB_H__
18
19 #pragma pack(1)
20 typedef struct {
21 UINT8 bLength;
22 UINT8 bDescriptorType;
23 UINT8 bMaxBurst;
24 UINT8 bmAttributes;
25 UINT16 wBytesPerInterval;
26 } endpointCompanionDescriptor;
27 #pragma pack()
28
29 #pragma pack(1)
30 typedef struct {
31 UINT8 bLength;
32 UINT8 bDescriptorType;
33 UINT8 bEndpointAddress;
34 UINT8 bmAttributes;
35 UINT16 wMaxPacketSize;
36 UINT8 bInterval;
37 } endpointDescriptor;
38 #pragma pack()
39
40 typedef struct {
41 endpointDescriptor *pEpDesc;
42 endpointCompanionDescriptor *pEpCompDesc;
43 } USB_DEV_EP_INFO; //usbdEpInfo;
44
45 typedef struct {
46 VOID *pBuf;
47 UINT32 dataLen;
48 } USBD_IO_INFO;
49
50 typedef struct {
51 USBD_IO_INFO ioInfo;
52 USB_DEV_EP_INFO epInfo;
53 } USBD_IO_REQ;
54
55 UINTN
56 EFIAPI
57 usbdInitDCI (
58 VOID
59 );
60
61 BOOLEAN
62 EFIAPI
63 fbInit (
64 OUT VOID *pParams
65 );
66
67 BOOLEAN
68 EFIAPI
69 fbDeinit (
70 VOID
71 );
72
73 BOOLEAN
74 EFIAPI
75 fbStart (
76 VOID
77 );
78
79 BOOLEAN
80 EFIAPI
81 fbStop (
82 VOID
83 );
84
85 BOOLEAN
86 EFIAPI
87 usbdSetMmioBar (
88 UINT32 mmioBar
89 );
90
91 BOOLEAN
92 EFIAPI
93 udciDeinit (
94 VOID *pUdciHndl,
95 UINT32 flags
96 );
97
98 BOOLEAN
99 EFIAPI
100 udciIsr (
101 VOID *pUdciHndl
102 );
103
104 BOOLEAN
105 EFIAPI
106 udciConnect (
107 VOID *pUdciHndl
108 );
109
110 BOOLEAN
111 EFIAPI
112 udciDisconnect (
113 VOID *pUdciHndl
114 );
115
116 BOOLEAN
117 EFIAPI
118 udciSetAddress (
119 VOID *pUdciHndl,
120 UINT8 address
121 );
122
123 BOOLEAN
124 EFIAPI
125 udciInitEp (
126 VOID *pUdciHndl,
127 USB_DEV_EP_INFO *pEpInfo
128 );
129
130 BOOLEAN
131 EFIAPI
132 udciEnableEp (
133 VOID *pUdciHndl,
134 USB_DEV_EP_INFO *pEpInfo
135 );
136
137 BOOLEAN
138 EFIAPI
139 udciDisableEp (
140 VOID *pUdciHndl,
141 USB_DEV_EP_INFO *pEpInfo
142 );
143
144 BOOLEAN
145 EFIAPI
146 udciStallEp (
147 VOID *pUdciHndl,
148 USB_DEV_EP_INFO *pEpInfo
149 );
150
151 BOOLEAN
152 EFIAPI
153 udciClearStallEp (
154 VOID *pUdciHndl,
155 USB_DEV_EP_INFO *pEpInfo
156 );
157
158
159 BOOLEAN
160 EFIAPI
161 udciEp0TxStatus (
162 VOID *pUdciHndl
163 );
164
165
166 BOOLEAN
167 EFIAPI
168 udciEpTxData (
169 VOID *pUdciHndl,
170 USBD_IO_REQ *pIoReq
171 );
172
173 BOOLEAN
174 EFIAPI
175 udciEpRxData (
176 VOID *pUdciHndl,
177 USBD_IO_REQ *pIoReq
178 );
179
180 BOOLEAN
181 EFIAPI
182 udciRegisterCallbacks (
183 VOID *pUdciHndl
184 );
185
186 #endif