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