您的位置:首页 > 运维架构 > Linux

linux那些事之我是USB

2013-11-28 22:10 211 查看
这两天闲着没事,就翻开这本<linux那些事之我是USB>看了一下,这里做些笔记,帮助自己以后复习用。

usb的主要代码位于/driver/usb/storage下面,核心代码在/driver/usb/storage/core目录下面,



这幅图是看书的过程中画的,这就是一个简单的总线设备模型,相信不难理解,当设备连接上时会被添加到总线的devices链表中,那么驱动通过usb_register注册的时候也会加入到对应的drivers链表中,那么设备和驱动是怎么联系起来的呢?

相信从图中不难看出,首先,要说的是,一个设备只能对于一个驱动,但是一个驱动却可以支持多种设备。

驱动遍历devices链表,找到device_driver指正为空的device,然后查看这个设备的特征,如果是自己支持的设备,那么就让这个指针指向自己,并且把这个device加入到自己的list_head链表中,到这里总线、设备、驱动这个三角形就简历起来了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: