📄 uhci.h
字号:
BOOLEAN
IsQHHorizontalQHSelect(
IN QH_STRUCT *ptrQH
) ;
VOID
SetQHVerticalValidorInvalid(
IN QH_STRUCT *ptrQH,
IN BOOLEAN bValid
) ;
BOOLEAN
GetQHVerticalValidorInvalid(
IN QH_STRUCT *ptrQH
) ;
EFI_STATUS
AllocateTDStruct(
IN USB_HC_DEV *HcDev,
OUT TD_STRUCT **ppTDStruct
) ;
VOID
InitTD(
IN TD_STRUCT *ptrTD
) ;
EFI_STATUS
CreateTD(
IN USB_HC_DEV *HcDev,
OUT TD_STRUCT **pptrTD
) ;
EFI_STATUS
GenSetupStageTD(
IN USB_HC_DEV *HcDev,
IN UINT8 DevAddr,
IN UINT8 Endpoint,
IN BOOLEAN bSlow,
IN UINT8 *pDevReq,
IN UINT8 RequestLen,
OUT TD_STRUCT **ppTD
) ;
EFI_STATUS
GenDataTD(
IN USB_HC_DEV *HcDev,
IN UINT8 DevAddr,
IN UINT8 Endpoint,
IN UINT8 *pData,
IN UINT8 Len,
IN UINT8 PktID,
IN UINT8 Toggle,
IN BOOLEAN bSlow,
OUT TD_STRUCT **ppTD
);
EFI_STATUS
CreateStatusTD(
IN USB_HC_DEV *HcDev,
IN UINT8 DevAddr,
IN UINT8 Endpoint,
IN UINT8 PktID,
IN BOOLEAN bSlow,
OUT TD_STRUCT **ppTD
) ;
VOID
SetTDLinkPtrValidorInvalid(
IN TD_STRUCT *ptrTDStruct,
IN BOOLEAN bValid
) ;
VOID
SetTDLinkPtrQHorTDSelect(
IN TD_STRUCT *ptrTDStruct,
IN BOOLEAN bQH
) ;
VOID
SetTDLinkPtrDepthorBreadth(
IN TD_STRUCT *ptrTDStruct,
IN BOOLEAN bDepth
) ;
VOID
SetTDLinkPtr(
IN TD_STRUCT *ptrTDStruct,
IN VOID *ptrNext
) ;
VOID*
GetTDLinkPtr(
IN TD_STRUCT *ptrTDStruct
) ;
VOID
EnableorDisableTDShortPacket (
IN TD_STRUCT *ptrTDStruct,
IN BOOLEAN bEnable
) ;
VOID
SetTDControlErrorCounter(
IN TD_STRUCT *ptrTDStruct,
IN UINT8 nMaxErrors
) ;
VOID
SetTDLoworFullSpeedDevice (
IN TD_STRUCT *ptrTDStruct,
IN BOOLEAN bLowSpeedDevice
) ;
VOID
SetTDControlIsochronousorNot(
IN TD_STRUCT *ptrTDStruct,
IN BOOLEAN bIsochronous
) ;
VOID
SetorClearTDControlIOC(
IN TD_STRUCT *ptrTDStruct,
IN BOOLEAN bSet
) ;
VOID
SetTDStatusActiveorInactive(
IN TD_STRUCT *ptrTDStruct,
IN BOOLEAN bActive
) ;
UINT16
SetTDTokenMaxLength(
IN TD_STRUCT *ptrTDStruct,
IN UINT16 nMaxLen
) ;
VOID
SetTDTokenDataToggle1(
IN TD_STRUCT *ptrTDStruct
) ;
VOID
SetTDTokenDataToggle0(
IN TD_STRUCT *ptrTDStruct
) ;
UINT8
GetTDTokenDataToggle(
IN TD_STRUCT *ptrTDStruct
) ;
VOID
SetTDTokenEndPoint(
IN TD_STRUCT *ptrTDStruct,
IN UINTN nEndPoint
) ;
VOID
SetTDTokenDeviceAddress(
IN TD_STRUCT *ptrTDStruct,
IN UINTN nDevAddr
) ;
VOID
SetTDTokenPacketID(
IN TD_STRUCT *ptrTDStruct,
IN UINT8 nPID
) ;
VOID
SetTDDataBuffer(
IN TD_STRUCT *ptrTDStruct
) ;
BOOLEAN
IsTDStatusActive(
IN TD_STRUCT *ptrTDStruct
) ;
BOOLEAN
IsTDStatusStalled(
IN TD_STRUCT *ptrTDStruct
) ;
BOOLEAN
IsTDStatusBufferError(
IN TD_STRUCT *ptrTDStruct
) ;
BOOLEAN
IsTDStatusBabbleError(
IN TD_STRUCT *ptrTDStruct
) ;
BOOLEAN
IsTDStatusNAKReceived(
IN TD_STRUCT *ptrTDStruct
) ;
BOOLEAN
IsTDStatusCRCTimeOutError(
IN TD_STRUCT *ptrTDStruct
) ;
BOOLEAN
IsTDStatusBitStuffError(
IN TD_STRUCT *ptrTDStruct
) ;
UINT16
GetTDStatusActualLength (
IN TD_STRUCT *ptrTDStruct
) ;
UINT16
GetTDTokenMaxLength(
IN TD_STRUCT *ptrTDStruct
) ;
UINT8
GetTDTokenEndPoint(
IN TD_STRUCT *ptrTDStruct
) ;
UINT8
GetTDTokenDeviceAddress(
IN TD_STRUCT *ptrTDStruct
) ;
UINT8
GetTDTokenPacketID(
IN TD_STRUCT *ptrTDStruct
) ;
UINT8*
GetTDDataBuffer(
IN TD_STRUCT *ptrTDStruct
) ;
BOOLEAN
GetTDLinkPtrValidorInvalid(
IN TD_STRUCT *ptrTDStruct
) ;
UINTN
CountTDsNumber(
IN TD_STRUCT *ptrFirstTD
) ;
VOID
LinkTDToQH(
IN QH_STRUCT *ptrQH,
IN TD_STRUCT *ptrTD
) ;
VOID
LinkTDToTD(
IN TD_STRUCT *ptrPreTD,
IN TD_STRUCT *ptrTD
) ;
VOID
SetorClearCurFrameListTerminate(
IN FRAMELIST_ENTRY *pCurEntry,
IN BOOLEAN bSet
) ;
VOID
SetCurFrameListQHorTD(
IN FRAMELIST_ENTRY *pCurEntry,
IN BOOLEAN bQH
) ;
BOOLEAN
GetCurFrameListTerminate(
IN FRAMELIST_ENTRY *pCurEntry
) ;
VOID
SetCurFrameListPointer(
IN FRAMELIST_ENTRY *pCurEntry,
IN UINT8 *ptr
);
VOID*
GetCurFrameListPointer(
IN FRAMELIST_ENTRY *pCurEntry
) ;
VOID
LinkQHToFrameList(
IN FRAMELIST_ENTRY *pEntry,
IN UINT16 FrameListIndex,
IN QH_STRUCT *ptrQH
);
VOID
DeleteQHTDs(
IN FRAMELIST_ENTRY *pEntry,
IN QH_STRUCT *ptrQH,
IN TD_STRUCT *ptrFirstTD,
IN UINT16 FrameListIndex,
IN BOOLEAN SearchOther
) ;
VOID
DelLinkSingleQH (
IN USB_HC_DEV *HcDev,
IN QH_STRUCT *ptrQH,
IN UINT16 FrameListIndex,
IN BOOLEAN SearchOther,
IN BOOLEAN Delete
);
VOID
DeleteQueuedTDs(
IN USB_HC_DEV *HcDev,
IN TD_STRUCT *ptrFirstTD
);
VOID
InsertQHTDToINTList(
IN USB_HC_DEV *HcDev,
IN QH_STRUCT *ptrQH,
IN TD_STRUCT *ptrFirstTD,
IN UINT8 DeviceAddress,
IN UINT8 EndPointAddress,
IN UINT8 DataToggle,
IN UINTN DataLength,
IN UINTN PollingInterval,
IN VOID *Mapping,
IN UINT8 *DataBuffer,
IN EFI_ASYNC_USB_TRANSFER_CALLBACK CallBackFunction,
IN VOID *Context
);
EFI_STATUS
DeleteAsyncINTQHTDs(
IN USB_HC_DEV *HcDev,
IN UINT8 DeviceAddress,
IN UINT8 EndPointAddress,
OUT UINT8 *DataToggle
);
BOOLEAN
CheckTDsResults(
IN TD_STRUCT *ptrTD,
OUT UINT32 *Result,
OUT UINTN *ErrTDPos,
OUT UINTN *ActualTransferSize
);
VOID
ExecuteAsyncINTTDs(
IN USB_HC_DEV *HcDev,
IN INTERRUPT_LIST *ptrList,
OUT UINT32 *Result,
OUT UINTN *ErrTDPos,
OUT UINTN *ActualLen
) ;
VOID
UpdateAsyncINTQHTDs(
IN INTERRUPT_LIST *ptrList,
IN UINT32 Result,
IN UINT32 ErrTDPos
) ;
VOID
ClearTDStatus(
IN TD_STRUCT *ptrTD
) ;
VOID
ReleaseInterruptList(
IN USB_HC_DEV *HcDev,
IN EFI_LIST_ENTRY *ListHead
) ;
EFI_STATUS
ExecuteControlTransfer (
IN USB_HC_DEV *HcDev,
IN TD_STRUCT *ptrTD,
IN UINT32 wIndex,
OUT UINTN *ActualLen,
IN UINTN TimeOut,
OUT UINT32 *TransferResult
);
EFI_STATUS
ExecBulkorSyncInterruptTransfer (
IN USB_HC_DEV *HcDev,
IN TD_STRUCT *ptrTD,
IN UINT32 wIndex,
OUT UINTN *ActualLen,
OUT UINT8 *DataToggle,
IN UINTN TimeOut,
OUT UINT32 *TransferResult
);
EFI_STATUS
InitializeMemoryManagement (
USB_HC_DEV *HcDev
);
EFI_STATUS
CreateMemoryBlock (
USB_HC_DEV *HcDev,
MEMORY_MANAGE_HEADER **MemoryHeader,
UINTN MemoryBlockSizeInPages
);
EFI_STATUS
FreeMemoryHeader (
USB_HC_DEV *HcDev,
MEMORY_MANAGE_HEADER *MemoryHeader
);
EFI_STATUS
UhciAllocatePool (
USB_HC_DEV *UhcDev,
UINT8 **Pool,
UINTN AllocSize
);
VOID
UhciFreePool (
USB_HC_DEV *HcDev,
UINT8 *Pool,
UINTN AllocSize
);
VOID
InsertMemoryHeaderToList (
MEMORY_MANAGE_HEADER *MemoryHeader,
MEMORY_MANAGE_HEADER *NewMemoryHeader
);
EFI_STATUS
AllocMemInMemoryBlock (
MEMORY_MANAGE_HEADER *MemoryHeader,
VOID **Pool,
UINTN NumberOfMemoryUnit
);
BOOLEAN
IsMemoryBlockEmptied (
MEMORY_MANAGE_HEADER *MemoryHeaderPtr
);
VOID
DelinkMemoryBlock (
MEMORY_MANAGE_HEADER *FirstMemoryHeader,
MEMORY_MANAGE_HEADER *FreeMemoryHeader
);
EFI_STATUS
DelMemoryManagement (
USB_HC_DEV *HcDev
);
VOID
SelfLinkBulkTransferQH (
IN QH_STRUCT *ptrQH
);
VOID
EnableUhc (
IN EFI_PCI_IO_PROTOCOL *PciIo
);
VOID
EnableMaxPacketSize (
USB_HC_DEV *HcDev
);
EFI_STATUS
GenPseudoTD (
USB_HC_DEV *HcDev,
UINT8 DeviceAddress,
UINT8 Endpoint,
UINT8 PktID,
UINT8 DataToggle,
BOOLEAN bSlowDevice,
TD_STRUCT **ppTD
);
VOID
MakeQHLoop (
QH_STRUCT *PseudoQH,
QH_STRUCT *ptrQH
);
BOOLEAN
IsQHsLooped (
QH_STRUCT *CurrentQH,
QH_STRUCT **LastLoopQH
);
VOID
CleanUsbTransactions (
USB_HC_DEV *HcDev
);
VOID
TurnOffUSBEmulation (
IN EFI_PCI_IO_PROTOCOL *PciIo
);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -