📄 arp.h.svn-base
字号:
/*
*/
/* arp */
/* arppacket->HardwareType */
#define ARP_HARDWARE_TYPE_ETHER 0x0001
/* arppacket->ProtocolType */
#define ARP_PROTOCOL_TYPE_IP 0x0800
#define ARP_HARDWARE_ADDR_LEN_ETHER ETHER_ADDR_LEN
#define ARP_PROTOCOL_ADDR_LEN_IP sizeof(IP_ADDR)
/* arppacket->type */
#define ARP_TYPE_ARP_REQUEST 0x0001
#define ARP_TYPE_ARP_REPLY 0x0002
#define ARP_TYPE_RARP_REQUEST 0x0003
#define ARP_TYPE_RARP_REPLY 0x0004
#define ARP_ENTRY_MAX_NUM 4 /* must <= 255 */
#define ARP_ENTRY_TIME_OUT 0xFFFF /* the time for refresh a entry */
/* arp entry */
struct SARPEntry
{
unsigned long IPAddr;
unsigned char EtherAddr[ETHER_ADDR_LEN];
/* decrease every time trick. when it hit to 0,
remove it from arp entry tabel. if time = 0 indicate
this entry is invalid*/
unsigned int time;
};
/* arp packet struct */
struct SARPPacket
{
/* header */
unsigned int HardwareType;
unsigned int ProtocolType;
unsigned char HardWareAddrLen;
unsigned char ProtocolAddrLen;
unsigned int type; /* refer to arp type */
/* arp content */
unsigned char EtherScrAddr[ETHER_ADDR_LEN];
unsigned long IPScrAddr;
unsigned char EtherDestAddr[ETHER_ADDR_LEN];
unsigned long IPDestAddr;
};
void ARPInit() reentrant;
struct SMemHead xdata * ARPQuery(struct SNetIf xdata *NetIf,unsigned long DestIP) reentrant;
struct SMemHead xdata *ARPInput(struct SMemHead xdata *MemHead, struct SNetIf xdata *NetIf) reentrant;
void ARPAddEntry(struct SARPPacket xdata *ARPPacket) reentrant;
unsigned char ARPFind(unsigned char EtherAddr[],unsigned long IPAddr) reentrant;
void ARPTimer() reentrant;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -