当前位置:嗨网首页>书籍在线阅读

05-设备驱动功能层

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

16.1.3 设备驱动功能层

net_device结构体的成员(属性和函数指针)需要被设备驱动功能层的具体数值和函数赋予。对于具体的设备xxx,工程师应该编写设备驱动功能层的函数,这些函数形如xxx_open()、xxx_stop()、xxx_tx()、xxx_hard_header()、xxx_get_stats()、xxx_tx_timeout()等。

由于网络数据包的接收可由中断引发,设备驱动功能层中另一个主体部分将是中断处理函数,它负责读取硬件上接收的数据包并传送给上层协议,可能包含xxx_interrupt()和xxx_rx()函数,前者完成中断类型判断等基本的工作,后者则需完成数据包的生成和递交上层等复杂工作。

16.2~16.8节将对上述函数进行详细分析并给出参考设计模板。

对于特定的设备,我们还可以定义其相关私有数据和操作,并封装为一个私有信息结构体xxx_private,让其指针被赋值给net_device的priv成员。xxx_private结构体中可包含设备特殊的属性和操作、自旋锁与信号量、定时器以及统计信息等,由工程师自定义。