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 7 the terms and conditions of the BSD License that accompanies this distribution. 9 The full text of the license may be found at 11 http://opensource.org/licenses/bsd-license.php. 13 15 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 17 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 19 21 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