码迷,mamicode.com
首页 > 其他好文 > 详细

网络设备驱动程序框架

时间:2014-08-05 22:53:30      阅读:246      评论:0      收藏:0      [点我收藏+]

标签:网络   程序   

1网络设备驱动程序框架可以分为四层

                                                 网络协议接口层
----------------------------------------------------------------------------------------------------------
数据的发送                                                                数据的接收                     
hard_start_xmit(struct sk_buffer *skb sturt *net_device) |      netif_rx(struct sk_buffer *skb sturt *net_device)  
----------------------------------------------------------------------------------------------------------
                                                          ||
                                                          ||
                                                          \/
                                               设备接口层
----------------------------------------------------------------------------------------------------------
                                                  struct  net_device
该结构体上层提供(网络协议接口层)提供发送和接收的函数,是下层(设备驱动层)各种属性和函数操作的集合。
该层主要分为五个部分
1:全局变量及其该结构体各个操作函数的初始化及其对该结构体赋值
 例如,char name[IFNAMESIZE],int (*init)(struct net_device *dev)等,其中init函数是在模块初始化的时候调用,该函数的作用
 就是初始化 struct net_device 中的一些函数 比如网络的打开、关闭、 sbk的发送、接收以ioctl、超时函数等
2:硬件的相关信息
 例如共享内存的起始/结束地址mem_start/mem_end,io的基地址以及设备使用的中断号等等
3:接口信息
 例如设备的接口的硬件类型type,设备的硬件地址dev_addr[MAX_ADDR_LEN]和广播地址brodcast[MAX_ADDR_LEN]等
4:设备的各种操作函数
 例如网络的打开open(struct net_device* dev)/close(struct net_device* dev)/hard_start_xmit(...)/netif_rx(...)
5: 辅助成员
 例如私有数据 void *priv,最后一次发送和接收数据包的时间
----------------------------------------------------------------------------------------------------------
                                                         ||
                                                         ||
                                                         \/
                                                    设备驱动层
----------------------------------------------------------------------------------------------------------
该层主要是实现net_device结构体中的各个函数,如打开和关闭网络函数、发送和接收数据包的函数,超时函数等等
----------------------------------------------------------------------------------------------------------
                                                          ||
                                                          ||
                                                          \/
                                                     设备与媒介
----------------------------------------------------------------------------------------------------------
该层说是设备与媒介,不怎么好听,我个人理解就是真正的硬件操作,比如操作寄存器,
该层主要是操作寄存器,比如从寄存器上读数据发送数据


本文出自 “菜鸟的驱动之路” 博客,转载请与作者联系!

网络设备驱动程序框架,布布扣,bubuko.com

网络设备驱动程序框架

标签:网络   程序   

原文地址:http://junzhang.blog.51cto.com/4634169/1536117

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!