etherif.h.svn-base
来自「数字广播系统的开发源码」· SVN-BASE 代码 · 共 39 行
SVN-BASE
39 行
/*
*/
/* net interface. fetch packet and send packet */
#define ETHER_TYPE_IP 0x0800
#define ETHER_TYPE_ARP 0x0806
#define ETHER_ADDR_LEN 6
/* the header of Ethernet packet */
struct SEtherHead
{
unsigned char DestAddr[ETHER_ADDR_LEN];
unsigned char ScrAddr[ETHER_ADDR_LEN];
/* 16 bits.0800H IP, 0806H ARP, value less than 0x0600 used in
IEEE802 to indicate the length of the packet*/
unsigned int type;
};
/* struct for every ethernet device */
struct SEtherDevice
{
unsigned char Addr[ETHER_ADDR_LEN];
/* send by this device */
BOOL (code * send)(void xdata *buf, unsigned int size) reentrant;
/* get a packet from device buffer. returned packet is sorted
in buffer pointed by SMemHead. If no packet return NULL */
struct SMemHead xdata * (code * recv)() reentrant;
};
unsigned char EtherOutput(struct SMemHead xdata *MemHead,struct SNetIf xdata* NetIf,unsigned long DestIP) reentrant;
void EtherInput(struct SNetIf xdata * NetIf) reentrant;
void EtherDevInit(struct SEtherDevice xdata * pDevice, unsigned char EtherAddr[],unsigned char (code * send)(void xdata *buf, unsigned int size) reentrant,struct SMemHead xdata *(code * recv)() reentrant) reentrant;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?