📄 etherif.h
字号:
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 = 16, /* default number of receive buffers */ Ntb = 2, /* 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)extern void printea(uchar*);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -