linux驱动模型---笔记(2)

来源:未知 责任编辑:责任编辑 发表时间:2014-04-20 03:41 点击:

match()方法检查要加入(或删除)的设备是否和驱动程序“匹配”,如果匹配成功,则对设备

调用总线或驱动程序中定义的probe(或remove)方法。添加设备时产生KOBJ_ADD uevent,

删除设备时产生KOBJ_REMOVE uevent

5 总结一下在总线中添加和删除驱动程序的过程:
 
(1) 驱动程序添加
 
driver_register(drv)-> bus_add_driver (drv)-> driver_attach(drv)
 
->__driver_attach(dev,drv)
 
->bus_type():match(dev,drv) then
 
->driver_probe_device()->really_probe()
 
->bus_type:probe() 或device_driver:probe()
 
driver_register(drv)-> kobject_uevent(KOBJ_ADD)
 
(2) 驱动程序删除
 
driver_unregister(dev)->bus_remove_driver(drv)-> driver_detach(drv)
 
->__ device_release_driver(dev) [dev-drv 管理的所有设备]
 
->bus_type:remove() 或device_driver:remove()
 
(3) 当在总线上添加(或删除)驱动程序时,会依次遍历总线上的所有设备,调用总线定义的
 

match()方法检查要加入(或删除)的驱动程序是否和设备“匹配”,如果匹配成功,则对设备

调用总线或驱动程序中定义的probe(或remove)方法。添加驱动程序时产生KOBJ_ADD

uevent,删除驱动程序时产生KOBJ_REMOVE uevent。[注:KOBJ_REMOVE uevent 在

kobject_put(&drv->p->kobj)中产生]

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • /etc/fstab 详解
  • nginx主主集群
  •  LVS-NAT和LVS-DR模式的实现详解
  •  RHCE考试之磁盘配额
  • 学习笔记:ACL详解
  •  LVM逻辑卷管理器
  • suse linux双网卡双网关配置
  •  Nginx主主负载均衡架构
  • ubuntu学习Mysql

快速直达

操作系统导航

LinuxWindows虚拟机
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1