⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xtemac.h

📁 xilinx trimode mac driver for linux
💻 H
📖 第 1 页 / 共 4 页
字号:
* @note** Signature: u32 XTemac_mIsTxDre(XTemac *InstancePtr)*******************************************************************************/#define XTemac_mIsTxDre(InstancePtr) (((InstancePtr)->Config.TxDre) ?  \                                      TRUE : FALSE)/*****************************************************************************//**** This macro determines if the device is configured with checksum offloading* on the receive channel** @param InstancePtr is a pointer to the XTemac instance to be worked on.** @return** Boolean TRUE if the device is configured with checksum offloading, or* FALSE otherwise.** @note** Signature: u32 XTemac_mIsRxCsum(XTemac *InstancePtr)*******************************************************************************/#define XTemac_mIsRxCsum(InstancePtr) (((InstancePtr)->Config.RxCsum) ?  \                                       TRUE : FALSE)/*****************************************************************************//**** This macro determines if the device is configured with checksum offloading* on the transmit channel** @param InstancePtr is a pointer to the XTemac instance to be worked on.** @return** Boolean TRUE if the device is configured with checksum offloading, or* FALSE otherwise.** @note** Signature: u32 XTemac_mIsTxCsum(XTemac *InstancePtr)*******************************************************************************/#define XTemac_mIsTxCsum(InstancePtr) (((InstancePtr)->Config.TxCsum) ?  \                                       TRUE : FALSE)/*****************************************************************************//**** This macro returns the type of PHY interface being used by the given* instance.** @param InstancePtr is a pointer to the XTemac instance to be worked on.** @return** One of XTE_PHY_TYPE_<x> where <x> is MII, GMII, RGMII_1_3, RGMII_2_0,* SGMII, or 1000BASE_X.** @note** Signature: int XTemac_mGetPhysicalInterface(XTemac *InstancePtr)*******************************************************************************/#define XTemac_mGetPhysicalInterface(InstancePtr)       \    ((InstancePtr)->Config.PhyType)/*****************************************************************************//**** Return the next buffer descriptor in the list on the send channel.** @param InstancePtr is a pointer to the XTemac instance to be worked on.* @param BdPtr is the source descriptor** @return Next descriptor in the SGDMA transmit ring (i.e. BdPtr->Next)** @note** Signature: XDmaBdV3 XTemac_mSgSendBdNext(XTemac *InstancePtr,*                                          XDmaBdV3 *BdPtr)*******************************************************************************/#define XTemac_mSgSendBdNext(InstancePtr, BdPtr)        \    XDmaV3_mSgBdNext(&(InstancePtr)->SendDma, (BdPtr))/*****************************************************************************//**** Return the previous buffer descriptor in the list on the send channel.** @param InstancePtr is a pointer to the XTemac instance to be worked on.* @param BdPtr is the source descriptor** @return Previous descriptor in the SGDMA transmit ring (i.e. BdPtr->Prev)** @note** Signature: XDmaBdV3 XTemac_mSgSendBdPrev(XTemac *InstancePtr,*                                          XDmaBdV3 *BdPtr)*******************************************************************************/#define XTemac_mSgSendBdPrev(InstancePtr, BdPtr)        \    XDmaV3_mSgBdPrev(&(InstancePtr)->SendDma, (BdPtr))/*****************************************************************************//**** Return the next buffer descriptor in the list on the receive channel.** @param InstancePtr is a pointer to the XTemac instance to be worked on.* @param BdPtr is the source descriptor** @return Next descriptor in the SGDMA receive ring (i.e. BdPtr->Next)** @note** Signature: XDmaBdV3 XTemac_mSgRecvBdNext(XTemac *InstancePtr,*                                          XDmaBdV3 *BdPtr)*******************************************************************************/#define XTemac_mSgRecvBdNext(InstancePtr, BdPtr)        \    XDmaV3_mSgBdNext(&(InstancePtr)->RecvDma, (BdPtr))/*****************************************************************************//**** Return the previous buffer descriptor in the list on the receive channel.** @param InstancePtr is a pointer to the XTemac instance to be worked on.* @param BdPtr is the source descriptor** @return Previous descriptor in the SGDMA receive ring (i.e. BdPtr->Prev)** @note** Signature: XDmaBdV3 XTemac_mSgRecvBdPrev(XTemac *InstancePtr,*                                          XDmaBdV3 *BdPtr)*******************************************************************************/#define XTemac_mSgRecvBdPrev(InstancePtr, BdPtr)        \    XDmaV3_mSgBdNext(&(InstancePtr)->RecvDma, (BdPtr))/*****************************************************************************//**** Retrieve the received frame checksum as calculated by HW** @param BdPtr is the source descriptor** @return 16-bit checksum value* @note** Signature: u16 XTemac_mSgRecvBdCsumGet(XDmaBdV3 *BdPtr)*******************************************************************************/#define XTemac_mSgRecvBdCsumGet(BdPtr)                          \    (*(u16*)((u32)(BdPtr) + XTE_BD_RX_CSRAW_OFFSET))/*****************************************************************************//**** Enable transmit side checksum calculation for the given descriptor.** @param BdPtr is the source descriptor** @note** Signature: void XTemac_mSgSendBdCsumEnable(XDmaBdV3 *BdPtr)*******************************************************************************/#define XTemac_mSgSendBdCsumEnable(BdPtr)                       \    *(u16*)((u32)(BdPtr) + XTE_BD_TX_CSCNTRL_OFFSET) =  \        XTE_BD_TX_CSCNTRL_CALC_MASK/*****************************************************************************//**** Disable transmit side checksum calculation for the given descriptor.** @param BdPtr is the source descriptor** @note** Signature: void XTemac_mSgSendBdCsumDisable(XDmaBdV3 *BdPtr)*******************************************************************************/#define XTemac_mSgSendBdCsumDisable(BdPtr)                              \    *(u16*)((u32)(BdPtr) + XTE_BD_TX_CSCNTRL_OFFSET) = 0/*****************************************************************************//**** Setup checksum attributes for a transmit frame. If a seed value is required* XTemac_mSgSendBdCsumSeed() can be used** @param BdPtr is the source descriptor* @param StartOffset is the byte offset where HW will begin checksumming data* @param InsertOffset is the byte offset where HW will insert the calculated*        checksum value** @note** Signature: void XTemac_mSgSendBdCsumSetup(XDmaBdV3 *BdPtr,*                                           u16 StartOffset,*                                           u16 InsertOffset)*******************************************************************************/#define XTemac_mSgSendBdCsumSetup(BdPtr, StartOffset, InsertOffset)     \    *(u32*)((u32)(BdPtr) + XTE_BD_TX_CSBEGIN_OFFSET) =          \        ((StartOffset) << 16) | (InsertOffset)/*****************************************************************************//**** Set the initial checksum seed for a transmit frame. HW will add this value* to the calculated frame checksum. If not required then the seed should be* set to 0.** @param BdPtr is the source descriptor* @param Seed is added to the calculated checksum** @note** Signature: void XTemac_mSgSendBdCsumSeed(XDmaBdV3 *BdPtr, u16 Seed)*******************************************************************************/#define XTemac_mSgSendBdCsumSeed(BdPtr, Seed)                           \    *(u16*)((u32)(BdPtr) + XTE_BD_TX_CSINIT_OFFSET) = (Seed)/************************** Function Prototypes ******************************//* * Initialization functions in xtemac.c */XStatus XTemac_CfgInitialize(XTemac *InstancePtr, XTemac_Config *CfgPtr,                             u32 VirtualAddress);XStatus XTemac_Start(XTemac *InstancePtr);void    XTemac_Stop(XTemac *InstancePtr);void    XTemac_Reset(XTemac *InstancePtr, int HardCoreAction);/* * Initialization functions in xtemac_sinit.c */XStatus XTemac_Initialize(XTemac *InstancePtr, u16 DeviceId);XStatus XTemac_VmInitialize(XTemac *InstancePtr, u16 DeviceId,                            u32 VirtualAddress);XTemac_Config *XTemac_LookupConfig(u16 DeviceId);/* * General interrupt-related functions in xtemac_intr.c */XStatus XTemac_SetHandler(XTemac *InstancePtr, u32 HandlerType,                          void *CallbackFunc, void *CallbackRef);/* * Fifo direct mode functions implemented in xtemac_fifo.c */XStatus XTemac_FifoWrite(XTemac *InstancePtr, void *BufPtr, u32 ByteCount,                         int Eop);XStatus XTemac_FifoSend(XTemac *InstancePtr, u32 TxByteCount);XStatus XTemac_FifoRecv(XTemac *InstancePtr, u32 *ByteCountPtr);XStatus XTemac_FifoRead(XTemac *InstancePtr, void *BufPtr, u32 ByteCount,                        int Eop);u32 XTemac_FifoGetFreeBytes(XTemac *InstancePtr, u32 Direction);XStatus XTemac_FifoQuerySendStatus(XTemac *InstancePtr, u32 *SendStatusPtr);XStatus XTemac_FifoQueryRecvStatus(XTemac *InstancePtr);/* * Interrupt management functions for FIFO direct mode implemented in * xtemac_intr_fifo.c. */void   XTemac_IntrFifoEnable(XTemac *InstancePtr, u32 Direction);void   XTemac_IntrFifoDisable(XTemac *InstancePtr, u32 Direction);extern void XTemac_IntrFifoHandler(void *InstancePtr);/* * SG DMA mode functions implemented in xtemac_sgdma.c */XStatus  XTemac_SgAlloc(XTemac *InstancePtr, u32 Direction,                        unsigned NumBd, XDmaBdV3 **BdPtr);XStatus  XTemac_SgUnAlloc(XTemac *InstancePtr, u32 Direction,                          unsigned NumBd, XDmaBdV3 *BdPtr);XStatus  XTemac_SgCommit(XTemac *InstancePtr, u32 Direction,                         unsigned NumBd, XDmaBdV3 *BdPtr);unsigned XTemac_SgGetProcessed(XTemac *InstancePtr, u32 Direction,                               unsigned NumBd, XDmaBdV3 **BdPtr);XStatus  XTemac_SgFree(XTemac *InstancePtr, u32 Direction,                       unsigned NumBd, XDmaBdV3 *BdPtr);XStatus  XTemac_SgCheck(XTemac *InstancePtr, u32 Direction);XStatus  XTemac_SgSetSpace(XTemac *InstancePtr, u32 Direction,                           u32 PhysicalAddr, u32 VirtualAddr,                           u32 Alignment, unsigned BdCount,                           XDmaBdV3 *BdTemplate);/* * Interrupt management functions for SG DMA mode implemented in * xtemac_intr_sgdma.c */void    XTemac_IntrSgEnable(XTemac *InstancePtr, u32 Direction);void    XTemac_IntrSgDisable(XTemac *InstancePtr, u32 Direction);XStatus XTemac_IntrSgCoalSet(XTemac *InstancePtr, u32 Direction,                             u16 Threshold, u16 Timer);XStatus XTemac_IntrSgCoalGet(XTemac *InstancePtr, u32 Direction,                             u16 *ThresholdPtr, u16 *TimerPtr);extern void XTemac_IntrSgHandler(void *InstancePtr);/* * MAC configuration/control functions in xtemac_control.c */XStatus XTemac_SetOptions(XTemac *InstancePtr, u32 Options);XStatus XTemac_ClearOptions(XTemac *InstancePtr, u32 Options);u32 XTemac_GetOptions(XTemac *InstancePtr);XStatus XTemac_SetMacAddress(XTemac *InstancePtr, void *AddressPtr);void    XTemac_GetMacAddress(XTemac *InstancePtr, void *AddressPtr);XStatus XTemac_SetMacPauseAddress(XTemac *InstancePtr, void *AddressPtr);void    XTemac_GetMacPauseAddress(XTemac *InstancePtr, void *AddressPtr);XStatus XTemac_SendPausePacket(XTemac *InstancePtr, u16 PauseValue);XStatus XTemac_GetSgmiiStatus(XTemac *InstancePtr, u16 *SpeedPtr);XStatus XTemac_GetRgmiiStatus(XTemac *InstancePtr, u16 *SpeedPtr,                              u32 *IsFullDuplexPtr, u32 *IsLinkUpPtr);u16 XTemac_GetOperatingSpeed(XTemac *InstancePtr);void    XTemac_SetOperatingSpeed(XTemac *InstancePtr, u16 Speed);void    XTemac_PhySetMdioDivisor(XTemac *InstancePtr, u8 Divisor);XStatus XTemac_PhyRead(XTemac *InstancePtr, u32 PhyAddress,                       u32 RegisterNum, u16 *PhyDataPtr);XStatus XTemac_PhyWrite(XTemac *InstancePtr, u32 PhyAddress,                        u32 RegisterNum, u16 PhyData);XStatus XTemac_MulticastAdd(XTemac *InstancePtr, void *AddressPtr, int Entry);void    XTemac_MulticastGet(XTemac *InstancePtr, void *AddressPtr, int Entry);XStatus XTemac_MulticastClear(XTemac *InstancePtr, int Entry);/* * Statistics in xtemac_stats.c */void XTemac_GetSoftStats(XTemac *InstancePtr, XTemac_SoftStats *StatsPtr);void XTemac_ClearSoftStats(XTemac *InstancePtr);/* * Diagnostic functions in xtemac_selftest.c */XStatus XTemac_SelfTest(XTemac *InstancePtr);#ifdef __cplusplus}#endif#endif            /* end of protection macro */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -