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

📄 rclanmtl.h

📁 linux和2410结合开发 用他可以生成2410所需的zImage文件
💻 H
📖 第 1 页 / 共 2 页
字号:
***/ /* Buffer Segment Descriptor */typedef struct {	U32 size;	U32 phyAddress;} BSD, *PBSD;typedef PU32 PRCTCB;/*** -------------------------------------------------------------------------** Exported functions comprising the API to the LAN I2O message transport layer** -------------------------------------------------------------------------*/ /*    ** InitRCI2OMsgLayer()    **     ** Called once prior to using the I2O LAN message transport layer.  User     ** provides both the physical and virual address of a locked page buffer     ** that is used as a private buffer for the RedCreek I2O message    ** transport layer.  This buffer must be a contigous memory block of a     ** minimum of 16K bytes and long word aligned.  The user also must provide    ** the base address of the RedCreek PCI adapter assigned by BIOS or operating    ** system.      **    ** Inputs:  dev - the net_device struct for the device.    **          TransmitCallbackFunction - address of user's TX callback function    **          ReceiveCallbackFunction  - address of user's RX callback function    **          RebootCallbackFunction  - address of user's reboot callback function    **  */RC_RETURN RCInitI2OMsgLayer (struct net_device *dev,			     PFNTXCALLBACK TransmitCallbackFunction,			     PFNRXCALLBACK ReceiveCallbackFunction,			     PFNCALLBACK RebootCallbackFunction); /*    ** RCSetRavlinIPandMask()    **    ** Set the Ravlin 45/PCI cards IP address and network mask.    **    ** IP address and mask must be in network byte order.    ** For example, IP address 1.2.3.4 and mask 255.255.255.0 would be    ** 0x04030201 and 0x00FFFFFF on a little endian machine.    **  */RC_RETURN RCSetRavlinIPandMask (struct net_device *dev, U32 ipAddr,				U32 netMask);/*** =========================================================================** RCGetRavlinIPandMask()**** get the IP address and MASK from the card** ** =========================================================================*/RC_RETURNRCGetRavlinIPandMask (struct net_device *dev, PU32 pIpAddr, PU32 pNetMask,		      PFNWAITCALLBACK WaitCallback); /*     ** RCProcI2OMsgQ()    **     ** Called from user's polling loop or Interrupt Service Routine for a PCI     ** interrupt from the RedCreek PCI adapter.  User responsible for determining    ** and hooking the PCI interrupt. This function will call the registered    ** callback functions, TransmitCallbackFunction or ReceiveCallbackFunction,    ** if a TX or RX transaction has completed.  */void RCProcI2OMsgQ (struct net_device *dev); /*    ** Disable and Enable I2O interrupts.  I2O interrupts are enabled at Init time    ** but can be disabled and re-enabled through these two function calls.    ** Packets will still be put into any posted received buffers and packets will    ** be sent through RCI2OSendPacket() functions.  Disabling I2O interrupts    ** will prevent hardware interrupt to host even though the outbound I2O msg    ** queue is not emtpy.  */RC_RETURN RCEnableI2OInterrupts (struct net_device *dev);RC_RETURN RCDisableI2OInterrupts (struct net_device *dev); /*     ** RCPostRecvBuffers()    **     ** Post user's page locked buffers for use by the PCI adapter to    ** return ethernet packets received from the LAN.  Transaction Control Block,    ** provided by user, contains buffer descriptor(s) which includes a buffer    ** context number along with buffer size and physical address.  See TCB above.    ** The buffer context and actual packet length are returned to the     ** ReceiveCallbackFunction when packets have been received.  Buffers posted    ** to the RedCreek adapter are considered owned by the adapter until the    ** context is return to user through the ReceiveCallbackFunction.  */RC_RETURN RCPostRecvBuffers (struct net_device *dev,			     PRCTCB pTransactionCtrlBlock);#define MAX_NMBR_POST_BUFFERS_PER_MSG 32 /*    ** RCI2OSendPacket()    **     ** Send user's ethernet packet from a locked page buffer.      ** Packet must have full MAC header, however without a CRC.      ** Initiator context is a user provided value that is returned     ** to the TransmitCallbackFunction when packet buffer is free.    ** Transmit buffer are considered owned by the adapter until context's    ** returned to user through the TransmitCallbackFunction.  */RC_RETURN RCI2OSendPacket (struct net_device *dev,			   U32 context, PRCTCB pTransactionCtrlBlock); /* Ethernet Link Statistics structure */typedef struct tag_RC_link_stats {	U32 TX_good;		/* good transmit frames */	U32 TX_maxcol;		/* frames not TX due to MAX collisions */	U32 TX_latecol;		/* frames not TX due to late collisions */	U32 TX_urun;		/* frames not TX due to DMA underrun */	U32 TX_crs;		/* frames TX with lost carrier sense */	U32 TX_def;		/* frames deferred due to activity on link */	U32 TX_singlecol;	/* frames TX with one and only on collision */	U32 TX_multcol;		/* frames TX with more than one collision */	U32 TX_totcol;		/* total collisions detected during TX */	U32 Rcv_good;		/* good frames received */	U32 Rcv_CRCerr;		/* frames RX and discarded with CRC errors */	U32 Rcv_alignerr;	/* frames RX with alignment and CRC errors */	U32 Rcv_reserr;		/* good frames discarded due to no RX buffer */	U32 Rcv_orun;		/* RX frames lost due to FIFO overrun */	U32 Rcv_cdt;		/* RX frames with collision during RX */	U32 Rcv_runt;		/* RX frames shorter than 64 bytes */} RCLINKSTATS, *P_RCLINKSTATS; /*    ** RCGetLinkStatistics()    **    ** Returns link statistics in user's structure at address StatsReturnAddr    ** If given, not NULL, the function WaitCallback is called during the wait    ** loop while waiting for the adapter to respond.  */RC_RETURN RCGetLinkStatistics (struct net_device *dev,			       P_RCLINKSTATS StatsReturnAddr,			       PFNWAITCALLBACK WaitCallback); /*    ** RCGetLinkStatus()    **    ** Return link status, up or down, to user's location addressed by ReturnAddr.    ** If given, not NULL, the function WaitCallback is called during the wait    ** loop while waiting for the adapter to respond.  */RC_RETURN RCGetLinkStatus (struct net_device *dev,			   PU32 pReturnStatus, PFNWAITCALLBACK WaitCallback); /* Link Status defines - value returned in pReturnStatus */#define RC_LAN_LINK_STATUS_DOWN     0#define RC_LAN_LINK_STATUS_UP       1 /*    ** RCGetMAC()    **    ** Get the current MAC address assigned to user.  RedCreek Ravlin 45/PCI     ** has two MAC addresses.  One which is private to the PCI Card, and     ** another MAC which is given to the user as its link layer MAC address. The    ** adapter runs in promiscous mode because of the dual address requirement.    ** The MAC address is returned to the unsigned char array pointer to by mac.  */RC_RETURN RCGetMAC (struct net_device *dev, PFNWAITCALLBACK WaitCallback); /*    ** RCSetMAC()    **    ** Set a new user port MAC address.  This address will be returned on    ** subsequent RCGetMAC() calls.  */RC_RETURN RCSetMAC (struct net_device *dev, PU8 mac); /*    ** RCSetLinkSpeed()    **    ** set adapter's link speed based on given input code.  */RC_RETURN RCSetLinkSpeed (struct net_device *dev, U16 LinkSpeedCode); /* Set link speed codes */#define LNK_SPD_AUTO_NEG_NWAY   0#define LNK_SPD_100MB_FULL      1#define LNK_SPD_100MB_HALF      2#define LNK_SPD_10MB_FULL       3#define LNK_SPD_10MB_HALF       4 /*    ** RCGetLinkSpeed()    **    ** Return link speed code.  */ /* Return link speed codes */#define LNK_SPD_UNKNOWN         0#define LNK_SPD_100MB_FULL      1#define LNK_SPD_100MB_HALF      2#define LNK_SPD_10MB_FULL       3#define LNK_SPD_10MB_HALF       4RC_RETURNRCGetLinkSpeed (struct net_device *dev, PU32 pLinkSpeedCode,		PFNWAITCALLBACK WaitCallback);/*** =========================================================================** RCSetPromiscuousMode(struct net_device *dev, U16 Mode)**** Defined values for Mode:**  0 - turn off promiscuous mode**  1 - turn on  promiscuous mode**** =========================================================================*/#define PROMISCUOUS_MODE_OFF 0#define PROMISCUOUS_MODE_ON  1RC_RETURN RCSetPromiscuousMode (struct net_device *dev, U16 Mode);/*** =========================================================================** RCGetPromiscuousMode(struct net_device *dev, PU32 pMode, PFNWAITCALLBACK WaitCallback)**** get promiscuous mode setting**** Possible return values placed in pMode:**  0 = promisuous mode not set**  1 = promisuous mode is set**** =========================================================================*/RC_RETURNRCGetPromiscuousMode (struct net_device *dev, PU32 pMode,		      PFNWAITCALLBACK WaitCallback);/*** =========================================================================** RCSetBroadcastMode(struct net_device *dev, U16 Mode)**** Defined values for Mode:**  0 - turn off promiscuous mode**  1 - turn on  promiscuous mode**** =========================================================================*/#define BROADCAST_MODE_OFF 0#define BROADCAST_MODE_ON  1RC_RETURN RCSetBroadcastMode (struct net_device *dev, U16 Mode);/*** =========================================================================** RCGetBroadcastMode(struct net_device *dev, PU32 pMode, PFNWAITCALLBACK WaitCallback)**** get broadcast mode setting**** Possible return values placed in pMode:**  0 = broadcast mode not set**  1 = broadcast mode is set**** =========================================================================*/RC_RETURNRCGetBroadcastMode (struct net_device *dev, PU32 pMode,		    PFNWAITCALLBACK WaitCallback);/*** =========================================================================** RCReportDriverCapability(struct net_device *dev, U32 capability)**** Currently defined bits:** WARM_REBOOT_CAPABLE   0x01**** =========================================================================*/RC_RETURN RCReportDriverCapability (struct net_device *dev, U32 capability);/*** RCGetFirmwareVer()**** Return firmware version in the form "SoftwareVersion : Bt BootVersion"**** WARNING: user's space pointed to by pFirmString should be at least 60 bytes.*/RC_RETURNRCGetFirmwareVer (struct net_device *dev, PU8 pFirmString,		  PFNWAITCALLBACK WaitCallback);/*** ----------------------------------------------** LAN adapter Reset and Shutdown functions** ----------------------------------------------*/ /* resource flag bit assignments for RCResetLANCard() & RCShutdownLANCard() */#define RC_RESOURCE_RETURN_POSTED_RX_BUCKETS  0x0001#define RC_RESOURCE_RETURN_PEND_TX_BUFFERS    0x0002 /*    ** RCResetLANCard()    **    ** Reset LAN card operation.  Causes a software reset of the ethernet    ** controller and restarts the command and receive units. Depending on     ** the ResourceFlags given, the buffers are either returned to the    ** host with reply status of I2O_REPLY_STATUS_ABORT_NO_DATA_TRANSFER and    ** detailed status of I2O_LAN_DSC_CANCELED (new receive buffers must be    ** posted after issuing this) OR the buffers are kept and reused by    ** the ethernet controller. If CallbackFunction is not NULL, the function    ** will be called when the reset is complete.  If the CallbackFunction is    ** NULL,a 1 will be put into the ReturnAddr after waiting for the reset     ** to complete (please disable I2O interrupts during this method).    ** Any outstanding transmit or receive buffers that are complete will be    ** returned via the normal reply messages before the requested resource    ** buffers are returned.    ** A call to RCPostRecvBuffers() is needed to return the ethernet to full    ** operation if the receive buffers were returned during LANReset.    ** Note: The IOP status is not affected by a LAN reset.  */RC_RETURN RCResetLANCard (struct net_device *dev, U16 ResourceFlags,			  PU32 ReturnAddr, PFNCALLBACK CallbackFunction); /*    ** RCShutdownLANCard()    **    ** Shutdown LAN card operation and put into an idle (suspended) state.    ** The LAN card is restarted with RCResetLANCard() function.    ** Depending on the ResourceFlags given, the buffers are either returned     ** to the host with reply status of I2O_REPLY_STATUS_ABORT_NO_DATA_TRANSFER     ** and detailed status of I2O_LAN_DSC_CANCELED (new receive buffers must be    ** posted after issuing this) OR the buffers are kept and reused by    ** the ethernet controller. If CallbackFunction is not NULL, the function    ** will be called when the reset is complete.  If the CallbackFunction is    ** NULL,a 1 will be put into the ReturnAddr after waiting for the reset     ** to complete (please disable I2O interrupts during this method).    ** Any outstanding transmit or receive buffers that are complete will be    ** returned via the normal reply messages before the requested resource    ** buffers are returned.    ** Note: The IOP status is not affected by a LAN shutdown.  */RC_RETURNRCShutdownLANCard (struct net_device *dev, U16 ResourceFlags, PU32 ReturnAddr,		   PFNCALLBACK CallbackFunction); /*    ** RCResetIOP();    **     Initializes IOPState to I2O_IOP_STATE_RESET.    **     Stops access to outbound message Q.    **     Discards any outstanding transmit or posted receive buffers.    **     Clears outbound message Q.   */RC_RETURN RCResetIOP (struct net_device *dev);#endif				/* RCLANMTL_H */

⌨️ 快捷键说明

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