www.pudn.com > e041tcpipc51.rar > ethernet.h


#ifndef BYTE 
#define BYTE unsigned char 
#endif 
 
#ifndef WORD 
#define WORD unsigned int 
#endif 
 
#ifndef LWORD 
#define LWORD  unsigned long 
#endif 
 
#define MACLEN        6					// Ehternet (MAC) address length 
#define CRCLEN        4					// Ethernet Hardware CRC length 
 
 
// Ethernet hardware Receive frame length includs  trailing  CRC 
#define	MAXFRAMEC    1518			//maxinum frame size (incl. CRC) 
#define MINFRAMEC	 64				//mininum frame size (incl. CRC) 
 
// Higher_level Drivers exclude the CRC from the FRAME Length  
#define MAXFRAME	 1514			//maxinum frame size (excl. CRC) 
#define MINFRAME	 60				//mininum frame size (excl. CRC) 
 
typedef struct { 
				BYTE  dest[MACLEN];			//destination MAC Address 
				BYTE  srce[MACLEN];			//source      MAC Address  
				WORD  ptype;				// Protocol type 
				}ETHERHDR; 
 
/* Ethernet (DIX)  frame ;data size is frame size minus header & CRC */ 
#define ETHERMTU   (MAXFRAME-sizeof(ETHERHDR)) 
 
typedef struct { 
				ETHERHDR   e;					/*  header  */ 
				BYTE       edata[ETHERMTU];		/*  edata   */ 
				LWORD      crc;					/*  CRC    */ 
				}ETHERFRAME; 
 
 
#define min(a,b)  (a)<(b) ? a :b 
#define max(a,b)  (a)>(b) ? a :b 
void resetnic(void); 
WORD get_ethernet(void *efp); 
WORD put_ethernet(void *efp,WORD len); 
void delay_ms(int number); 
void delay_100ms(int number); 
int make_frame(ETHERFRAME *efp, BYTE srce[],BYTE dest[], WORD pcol, WORD dlen); 
WORD csum(void *dp, WORD count);