audk/Vlv2TbltDevicePkg/Include/Library/UsbDeviceModeLib.h

182 lines
2.6 KiB
C

/*++
Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR>
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