📄 emac.h
字号:
#ifndef EMAC
#define EMAC
extern void emac_init(void);
typedef struct {
unsigned address;
unsigned size;
} rbd_list;
#define LISTLENGTH 20
#define MAXFRAME ( ( 1522 >> 2 ) + 1 )
#define TYPE_ARP 0x0806
#define TYPE_IP 0x0800
#define SWAP16(x) ( ((x&0xff) << 8) | (x >> 8) )
#define FCOUNT 36000
#define HI_HALF(c) ( c>>4 )
#define LO_HALF(c) ( c&0xF )
#define TO_ASCII(c) ( c>9?(c-10+'A'):(c+'0') )
#define ASCII_HI(c) ( TO_ASCII( HI_HALF(c) ) )
#define ASCII_LO(c) ( TO_ASCII( LO_HALF(c) ) )
enum arp_op { REQUEST=1, REPLY };
typedef struct arp_packet{
unsigned char dstAddr[6]; //ethernet header, dst MAC
unsigned char srcAddr[6]; //src MAC
unsigned short frameLen; //frame type or length
unsigned short hardware; //type of network
unsigned short protocol; //type of protocol
unsigned char hlen; //mac address length
unsigned char plen; //ip length
unsigned short operation; //1:request, 2:repy
unsigned char sendHA[6]; //sender MAC
unsigned char sendIP[4]; //sender IP
unsigned char targetHA[6]; //target MAC
unsigned char targetIP[4]; //target IP
unsigned char stuff[18]; //stuff code
} arp_packet;
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -