www.pudn.com > ARM_RTL8019.rar > IP.H


#ifdef IP_GLOBALS 
#define IP_EXT  
#else 
#define IP_EXT extern  
#endif  
 
#ifdef Big_End 
union   w {  uint32 	dwords; 
             struct {uint16 	high ;uint16 	 low;}words; 
	  	     struct {uint8 	byte3;uint8  byte2;uint8 	byte1;uint8 	byte0;}bytes; 
          }; 
#endif 
 
#ifdef Little_End 
union   w {  uint32 	dwords; 
             struct {uint16 	 low;uint16 	 high;}words; 
	  	     struct {uint8 	byte0;uint8  byte1;uint8 	byte2;uint8 	byte3;}bytes; 
          }; 
#endif 
 
typedef struct {  
            uint8 	VerandIphLen;   /*版本与头长度*/ 
            uint8 	ServerType;     /*服务类型*/ 
            uint16 	TotalLen;       /*总长度*/ 
            uint16 	FrameIndex;     /*IP帧序号*/ 
            uint16 	Segment;        /*分段标志*/ 
            uint8 	ttl;            /*生存时间*/ 
            uint8 	NextProtocal;   /*下一层协议*/ 
            uint16 	Crc;            /*校验和*/ 
            uint8 	SourceIp[4];    /*源IP*/ 
            uint8 	DestId[4];      /*目的IP*/ 
}eip; 
 
EX_RAM union ip_rc	{ 
				eip e_ip; 
			 	struct 	{uint16 	 	wordbuf[10];}words; 
			}; 
typedef struct{ uint8 	*RecDataPtr; 
				uint16			length; 
				uint8			num; 
				uint8 			ip[4]; 
				uint8			My_Ip[4]; 
				}Rec_Ptr; 
#define Q_Max_Size 20 
//IP_EXT Rec_Ptr	RECQ[MAX_REC_BUFF]; 
IP_EXT void * 	RecIcmpQ[Q_Max_Size]; 
IP_EXT void * 	RecUdpQ[Q_Max_Size]; 
IP_EXT void * 	RecTcpQ[Q_Max_Size]; 
 
/*IP_EXT OS_EVENT  		*RecIcmpQFlag; 
IP_EXT OS_EVENT  		*RecTcpQFlag; 
IP_EXT OS_EVENT  		*RecUdpQFlag; 
 
IP_EXT OS_EVENT  		*SendFlag;     */ 
 
IP_EXT  uint16  CreateIpHeadCrc(uint8 * Ip);// USE_XDATA ; 
IP_EXT uint8 Send_Ip_Frame(struct _pkst *TxdData,uint8 * de_ip,uint8 * so_ip,uint8 PROTOCOL);// USE_XDATA  keilreentrant ;//keilreentrant ; 
 
IP_EXT uint8 IP_PROCESS(uint8 * RecData,uint8 num);// USE_XDATA keilreentrant ;