网卡驱动
linux下有三大设备:字符设备,块设备,网卡设备
回忆:
字符设备的控制流程
字符设备程序编写流程:
- 主设备号
- file_operation()
- register_chrdev()
- 入口函数
- 出口函数
块设备的控制流程
1、网卡驱动
1.1网卡驱动程序框架
网卡驱动程序编写流程:
- 分配一个 net_device 结构体
- 设置
2.1 发包函数: hard_start_xmit
2.2 收到数据时(在中断处理函数里)用netif_rx上报数据
2.3 其他设置 - 注册 register_net
注意:很多结构体中都包含一个私有数据,是分配结构体时,多分配的一块内存,结构中有一个指针指向私有数据,一般不需要的话就设置为0,就可以了