主要全局成员
char name[INFAMSIZ] 设备名,如:eh%d
unsigned long state 设备状态
unsigned long base_addr I/O基地址
unsigned int irq 中断号
主要设备方法有
首先看打开和关闭网络设备的函数: int (*open)(struct net_device *dev);
打开接口。ifconfig激活时,接口将被打开 int (*stop)(struct net_device *dev);
停止接口,ifconfig eth% down时调用
要注意的是ifconfig是interface config的缩写,通常我们在用户空间输入:
ifconfig eth0 up 会调用这里的open函数。
在用户空间输入:
ifconfig eth0 down 会调用这里的stop函数。
在使用ifconfig向接口赋予地址时,要执行两个任务。首先,它通过ioctl(SIOCSIFADDR)(Socket I/O Control Set Interface Address)赋予地址,然后通过ioctl(SIOCSIFFLAGS)(Socket I/O Control Set Interface Flags)设置dev->flag中的IFF_UP标志以打开接口。这个调用会使得设备的open方法得到调用。类似的,在接口关闭时,ifconfig使用ioctl(SIOCSIFFLAGS)来清理IFF_UP标志,然后调用stop函数。
int
(*init)(struct
net_device *dev)
初始化函数,该函数在register_netdev时被调用来完成对net_device结构的初始化
int (*hard_start_xmit)(struct sk_buf*skb,struct net_device *dev)
数据发送函数