📄 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);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -