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

📄 emac.h

📁 一个网卡的应用
💻 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 + -