(转)Linux网络驱动程序编写(二) 2
来源:互联网 发布:淘宝网耐克男鞋特价 编辑:程序博客网 时间:2024/05/17 04:28
(转)Linux网络驱动程序编写(二) 2
网络设备做为一个对象,提供一些方法供系统访问。正是这些有统一接口的方法,掩蔽了硬件的具体细节,让系统对各种网络设备的访问都采用统一的形式,做到硬件无关性。
下面解释最基本的方法。
2.2.1 初始化(initialize)
驱动程序必须有一个初始化方法。在把驱动程序载入系统的时候会调用这个初始化程序。它做以下几方面的工作。检测设备。在初始化程序里你可以根据硬件的特征检查硬件是否存在,然后决定是否启动这个驱动程序。配置和初始化硬件。在初始化程序里你可以完成对硬件资源的配置,比如即插即用的硬件就可以在这个时候进行配置(Linux内核对PnP功能没有很好的支持,可以在驱动程序里完成这个功能)。配置或协商好硬件占用的资源以后,就可以向系统申请这些资源。有些资源是能)。配置或协商好硬件占用的资源以后,就可以向系统申请这些资源。有些资源是可以和别的设备共享的,如中断。有些是不能共享的,如IO、DMA。接下来你要初始化device结构中的变量。最后,你可以让硬件正式开始工作。
2.2.2 打开(open)
open这个方法在网络设备驱动程序里是网络设备被激活的时候被调用(即设备状态由down-->up)。所以实际上很多在initialize中的工作可以放到这里来做。比如资源的申请,硬件的激活。如果dev->open返回非0(error),则硬件的状态还是down。
open方法另一个作用是如果驱动程序做为一个模块被装入,则要防止模块卸载时设备处于打开状态。在open方法里要调用MOD_INC_USE_COUNT宏。
2.2.3 关闭(stop)
close方法做和open相反的工作。可以释放某些资源以减少系统负担。close是在设备状态由up转为down时被调用的。另外如果是做为模块装入的驱动程序,close里应该调用MOD_DEC_USE_COUNT,减少设备被引用的次数,以使驱动程序可以被卸载。另外close方法必须返回成功(0==success)。
上一页 1 2 3 4 5 下一页
2.2 网络驱动程序的基本方法网络设备做为一个对象,提供一些方法供系统访问。正是这些有统一接口的方法,掩蔽了硬件的具体细节,让系统对各种网络设备的访问都采用统一的形式,做到硬件无关性。
下面解释最基本的方法。
2.2.1 初始化(initialize)
驱动程序必须有一个初始化方法。在把驱动程序载入系统的时候会调用这个初始化程序。它做以下几方面的工作。检测设备。在初始化程序里你可以根据硬件的特征检查硬件是否存在,然后决定是否启动这个驱动程序。配置和初始化硬件。在初始化程序里你可以完成对硬件资源的配置,比如即插即用的硬件就可以在这个时候进行配置(Linux内核对PnP功能没有很好的支持,可以在驱动程序里完成这个功能)。配置或协商好硬件占用的资源以后,就可以向系统申请这些资源。有些资源是能)。配置或协商好硬件占用的资源以后,就可以向系统申请这些资源。有些资源是可以和别的设备共享的,如中断。有些是不能共享的,如IO、DMA。接下来你要初始化device结构中的变量。最后,你可以让硬件正式开始工作。
2.2.2 打开(open)
open这个方法在网络设备驱动程序里是网络设备被激活的时候被调用(即设备状态由down-->up)。所以实际上很多在initialize中的工作可以放到这里来做。比如资源的申请,硬件的激活。如果dev->open返回非0(error),则硬件的状态还是down。
open方法另一个作用是如果驱动程序做为一个模块被装入,则要防止模块卸载时设备处于打开状态。在open方法里要调用MOD_INC_USE_COUNT宏。
2.2.3 关闭(stop)
close方法做和open相反的工作。可以释放某些资源以减少系统负担。close是在设备状态由up转为down时被调用的。另外如果是做为模块装入的驱动程序,close里应该调用MOD_DEC_USE_COUNT,减少设备被引用的次数,以使驱动程序可以被卸载。另外close方法必须返回成功(0==success)。
上一页
- (转)Linux网络驱动程序编写(二) 2
- Linux网络驱动程序编写(二)
- Linux网络驱动程序编写(二) 嵌入式Linux网络驱动程序开发设计 Linux网络驱动程序编写(二)
- (转)Linux网络驱动程序编写(二)3
- Linux网络驱动程序编写(二) 4
- Linux网络驱动程序编写(二)5
- Linux网络驱动程序编写
- Linux网络驱动程序编写
- Linux网络驱动程序编写
- Linux网络驱动程序编写
- Linux网络驱动程序编写(三)转
- Linux网络驱动程序编写(一)
- Linux操作系统网络驱动程序编写
- Linux操作系统网络驱动程序编写
- Linux操作系统网络驱动程序编写
- Linux操作系统网络驱动程序编写
- Linux操作系统网络驱动程序编写
- Linux操作系统网络驱动程序编写
- blog重心转向
- 香水与名人(转)
- QQ群实名登记。。。
- 寿险业务系统分析笔记
- 面向21世纪系列教材一体化建设研究报告[转]
- (转)Linux网络驱动程序编写(二) 2
- Red Hat Linux 9 安装心得
- 要放假啦!
- 形式邏輯 (台湾大百科智库)
- (转)Linux网络驱动程序编写(二)3
- wxPython学习2005-07-21
- 快速上手Spring--5.Bean的标志符(id与name)
- 设计模式单件(Singleton)---对象创建型模式
- Quiz: Ace These Interview Questions