/*++ Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef __BASE_USBDEVICEMODE_LIB_H__ #define __BASE_USBDEVICEMODE_LIB_H__ #pragma pack(1) typedef struct { UINT8 bLength; UINT8 bDescriptorType; UINT8 bMaxBurst; UINT8 bmAttributes; UINT16 wBytesPerInterval; } endpointCompanionDescriptor; #pragma pack() #pragma pack(1) typedef struct { UINT8 bLength; UINT8 bDescriptorType; UINT8 bEndpointAddress; UINT8 bmAttributes; UINT16 wMaxPacketSize; UINT8 bInterval; } endpointDescriptor; #pragma pack() typedef struct { endpointDescriptor *pEpDesc; endpointCompanionDescriptor *pEpCompDesc; } USB_DEV_EP_INFO; //usbdEpInfo; typedef struct { VOID *pBuf; UINT32 dataLen; } USBD_IO_INFO; typedef struct { USBD_IO_INFO ioInfo; USB_DEV_EP_INFO epInfo; } USBD_IO_REQ; UINTN EFIAPI usbdInitDCI ( VOID ); BOOLEAN EFIAPI fbInit ( OUT VOID *pParams ); BOOLEAN EFIAPI fbDeinit ( VOID ); BOOLEAN EFIAPI fbStart ( VOID ); BOOLEAN EFIAPI fbStop ( VOID ); BOOLEAN EFIAPI usbdSetMmioBar ( UINT32 mmioBar ); BOOLEAN EFIAPI udciDeinit ( VOID *pUdciHndl, UINT32 flags ); BOOLEAN EFIAPI udciIsr ( VOID *pUdciHndl ); BOOLEAN EFIAPI udciConnect ( VOID *pUdciHndl ); BOOLEAN EFIAPI udciDisconnect ( VOID *pUdciHndl ); BOOLEAN EFIAPI udciSetAddress ( VOID *pUdciHndl, UINT8 address ); BOOLEAN EFIAPI udciInitEp ( VOID *pUdciHndl, USB_DEV_EP_INFO *pEpInfo ); BOOLEAN EFIAPI udciEnableEp ( VOID *pUdciHndl, USB_DEV_EP_INFO *pEpInfo ); BOOLEAN EFIAPI udciDisableEp ( VOID *pUdciHndl, USB_DEV_EP_INFO *pEpInfo ); BOOLEAN EFIAPI udciStallEp ( VOID *pUdciHndl, USB_DEV_EP_INFO *pEpInfo ); BOOLEAN EFIAPI udciClearStallEp ( VOID *pUdciHndl, USB_DEV_EP_INFO *pEpInfo ); BOOLEAN EFIAPI udciEp0TxStatus ( VOID *pUdciHndl ); BOOLEAN EFIAPI udciEpTxData ( VOID *pUdciHndl, USBD_IO_REQ *pIoReq ); BOOLEAN EFIAPI udciEpRxData ( VOID *pUdciHndl, USBD_IO_REQ *pIoReq ); BOOLEAN EFIAPI udciRegisterCallbacks ( VOID *pUdciHndl ); #endif