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 + -
显示快捷键?