etherif.h

来自「这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易」· C头文件 代码 · 共 47 行

H
47
字号
typedef struct RingBuf {	uchar	owner;	uchar	unused;	ushort	len;	uchar	pkt[sizeof(Etherpkt)];} RingBuf;enum {	Host		= 0,		/* buffer owned by host */	Interface	= 1,		/* buffer owned by card */	Nrb		= 32,		/* default number of receive buffers */	Ntb		= 8,		/* default number of transmit buffers */};typedef struct Ether Ether;struct Ether {	ISAConf;			/* hardware info */	int	ctlrno;	int	state;	int	tbdf;	void	(*attach)(Ether*);	/* filled in by reset routine */	void	(*transmit)(Ether*);	void	(*interrupt)(Ureg*, void*);	void	(*detach)(Ether*);	void	*ctlr;	ushort	nrb;			/* number of software receive buffers */	ushort	ntb;			/* number of software transmit buffers */	RingBuf *rb;			/* software receive buffers */	RingBuf *tb;			/* software transmit buffers */	ushort	rh;			/* first receive buffer belonging to host */	ushort	ri;			/* first receive buffer belonging to card */		ushort	th;			/* first transmit buffer belonging to host */		ushort	ti;			/* first transmit buffer belonging to card */	int	tbusy;			/* transmitter is busy */	};extern void etherrloop(Ether*, Etherpkt*, long);extern void addethercard(char*, int(*)(Ether*));#define NEXT(x, l)	(((x)+1)%(l))#define PREV(x, l)	(((x) == 0) ? (l)-1: (x)-1)

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?