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

📄 ge_arp.h

📁 程序是一个vxworks下对PMC公司3386千兆MAC芯片的驱动和配置
💻 H
字号:
/**-**-**-**-**-**-**-**-**-**-**-**-**-**-**-**-**-**-**-**-**-**-**-**-**-**-
*	GE_arp.h - Ethernet 100M code. . 
*
*	Copyright 2001-12 by GDT, Inc
*
*	modification history
*	--------------------
*       2001-12-14,yang xinyan created.
*
*/

#ifndef GE_ARP_H
#define GE_ARP_H 

#include <vxWorks.h>
#include "GE_Global.h"

#define  ARP_REQ	         1
#define  ARP_REP	 	 2
#define  ETH_HW			 1

/*********************************************************/
typedef struct IP_MAC_BAND
{        
        ULONG	      	proAddr;
        unsigned short 	addrCount;
        unsigned short 	liveTime;
        unsigned char 	PhyAddr[MAC_ADD_SIZ];
        struct IP_MAC_BAND* next;
}IP_MAC_BAND;

typedef struct 
{        
	struct IP_MAC_BAND *  next;
}ARP_LIST;

typedef struct 
{        
	ARP_LIST    ArpList[2];
}HASHVALUE;

extern	HASHVALUE hashValue[256];

typedef struct
{

	unsigned short	arHd;      /* 硬件类型 */
	unsigned short	arPro;     /* 协议类型 */
	unsigned char	arHln;     /* 硬件地址长度 */
	unsigned char	arPln;     /* 协议地址长度 */
	unsigned short	arOp;      /* 操作类型 */
	unsigned char	arSha[6];  /* 发送方硬件地址 */
	unsigned char  	arSpa[4];  /* 发送方协议地址 */
	
	unsigned char	arTha[6];  /* 接收方硬件地址 */
	unsigned char	arTpa[4];  /* 接收方协议地址 */	
}ARP_PKT_STRUCTURE;

typedef struct
{
	unsigned int  dataType;
	unsigned int  dataLen;
	unsigned char indexType;	/*检索类型*/
	unsigned char interNum;		/*接口号*/
	unsigned char ipAddr[4];	/*ip地址*/
		
}ARP_INDEX_REQUEST;

typedef struct
{
	unsigned int  dataType;
	unsigned int  dataLen;
	unsigned char portNum;
	unsigned char interNum;
	unsigned char macAddr[6];
	unsigned int  ipAddr;
	unsigned int  liveTime;
	unsigned int  result;
}ARP_INDEX_REPLY;


extern STATUS  		GE_ArpInit(void);
extern STATUS   	GE_ArpDel (void);
extern STATUS   	GE_ArpReinit (void);
extern STATUS   	GE_Arp(void);
extern STATUS    	GE_Arp_packet_receive(unsigned char ,ULONG * );
extern STATUS   	GE_Check_valid_for_arp_packet (unsigned char,ARP_PKT_STRUCTURE*);
extern STATUS   	GE_Arp_request_packet_generation(unsigned char ,ULONG );
extern unsigned char    hashFun(ULONG ipaddr);
extern STATUS 		GE_Arp_send_reply (unsigned char , ULONG * arpInBuf);
extern struct           IP_MAC_BAND 	*GE_Arp_entry_lookup(unsigned char , ULONG );
extern STATUS 		GE_ArpTableAdd(unsigned char, IP_MAC_BAND *);
extern STATUS           GE_SuspendArp();
extern STATUS           GE_ResumeArp();
extern STATUS		arp_del(unsigned char unit, ULONG ipAddr);
extern	STATUS		GE_ArpTimer();
extern	STATUS 		GE_Arp_entry_index();
extern	IP_MAC_BAND*	GE_Arp_entry_lookup(unsigned char unit, ULONG ipAddr) ;
extern	STATUS	arp_del(unsigned char unit, ULONG ipAddr);
extern	void arp_sta(char unit);
extern	void show_arp(char unit);

#endif   /*GE_ARP_H*/	/* end of GE_Arp.h */

⌨️ 快捷键说明

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