自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(9)
  • 资源 (5)
  • 收藏
  • 关注

原创 《Linux那些事儿之我是USB》我是U盘(25)彼岸花的传说(四)

我们刚刚跟着storage_probe()几乎完整地走了一遍,貌似一切都该结束了,可是你不觉得你到目前为止还根本没有看明白设备究竟怎么工作的吗?U盘,不仅仅是USB设备,还是“盘”,它还需遵守USB Mass Storage协议,以及Transparent SCSI规范。从驱动程序的角度来看,它和一般的SCSI磁盘差不多。正是因为如此,所以U盘的工作真正需要的是四个模块,usbcore,scsi_

2011-10-30 18:51:09 16054 8

原创 《Linux那些事儿之我是USB》我是U盘(24)彼岸花的传说(三)

前面已经说了,回到usb_stor_acquire_resources()函数中,返回了0。于是咱们终于回到了storage_probe()函数中来。1008行,scsi_add_host()函数被执行,之前申请的us->host被作为参数传递给它,同时,intf->dev也被传递给它,这个东西是被用来注册sysfs的。前面已经说过,在scsi_host_alloc之后,必须执行scsi_ad

2011-10-26 20:38:21 11089

原创 《Linux那些事儿之我是USB》我是U盘(23)彼岸花的传说(二)

如果让大家投票的话,usb_stor_control_thread()这个函数中的代码无疑是整个模块中最为精华的代码。我们只需要它中间306行的for(;;)就知道,这是一个死循环,即使别的代码都执行完了,即使别的函数都退出了,这个函数也仍然像永不消逝的电波一般,经典常驻。显然,只有死循环才能代表永恒,才能代表忠诚。这是每一个守护者的职责。usb_stor_control_thread(),其

2011-10-25 18:12:33 11017 1

原创 《Linux那些事儿之我是USB》我是U盘(22)彼岸花的传说(一)

彼岸花,花语是悲伤的回忆。很久很久以前,城市的边缘开满了大片大片的曼珠沙华,它的花香有一种魔力,可以让人想起自己前世的事情。守护曼珠沙华的是两个妖精,一个是花妖叫曼珠,一个是叶妖叫沙华。他们守候了几千年,可是从来没有见过面,因为开花时,就没有叶子,有叶子时没有花。他们疯狂地想念着彼此,并被这种痛苦折磨着。终于有一天,他们决定违背神的规定偷偷地见一次面。那一年的曼珠沙华红艳艳的花被惹眼的绿色衬托

2011-10-20 22:02:52 11920 3

原创 《Linux那些事儿之我是USB》我是U盘(21)传说中的URB

有人问,怎么写一个驱动写这么久啊?的确,一路走来,大家都不容易,但既然已经走到今天,我们能做的也只有是坚持下去。usb_stor_acquire_resources(),从名字上来看是获取资源。什么是资源?之前不是申请了一大堆内存了吗?写个USB设备驱动程序怎么这么麻烦啊?不是专门为USB Mass Storage设备准备了一个struct us_data这么一个结构体了吗?不是说故事已经

2011-10-19 21:25:15 10243 2

原创 《Linux那些事儿之我是USB》我是U盘(20)通往春天的管道

1991年,一个在Linux中引入了管道这个概念,并且把管道用在很多地方,如文件系统、设备驱动中。于是后来我们看到在Linux中有了各种各样的管道。但是相同的是,所有管道都是用来传输东西的,只不过有些管道传输的是实实在在的物质,而有些管道传输的是数据。眼下我们在USB代码中看

2011-10-18 21:38:29 4750 4

原创 《Linux那些事儿之我是USB》我是U盘(19)冬天来了,春天还会远吗?(五)

看完了get_transport()继续看get_protocol()函数和get_pipes()函数。仍然是来自drivers/usb/storage/usb.c中:672 static int get_protocol(struct us_data *us)673

2011-10-13 22:28:41 5222 2

原创 《Linux那些事儿之我是USB》我是U盘(18)冬天来了,春天还会远吗?(四)

结束了get_device_info,我们继续沿着storage_probe一步一步地走下去。继续,这就是我们前面提到过的三个函数,get_transport、get_protocol和get_pipes。一旦结束了这三个函数,我们就将进入本故事的高潮部分。而在这之前,我们只能一

2011-10-10 21:49:01 6771 3

原创 《Linux那些事儿之我是USB》我是U盘(17)冬天来了,春天还会远吗?(三)

从两张表得到了我们需要的东西,然后下面的代码就是围绕着这两个指针来展开了。(unusual_dev和id)继续看get_device_info()。497行,把unusual_dev给记录在us里面,反正us里面也有这么一个成员。这样记录下来以后使用起来就方便了,因为us是贯

2011-10-08 19:31:59 4089 1

Linux那些事儿之我是USB Core(v1.0)

2.6.22内核的usb core源码分析。原文为blog.csdn.net/fudan_abc上的《linux那些事儿之戏说USB》。

2007-11-05

Linux那些事儿之我是Hub

2.6.22.1内核的usb hub driver分析.Beta版.

2007-09-29

Linux那些事儿之我是U盘

Linux 2.6 kernel usb mass storage driver<br>设备驱动源代码分析

2007-08-07

Linux那些事儿之我是U盘

Linux 2.6 内核 usb 设备驱动&lt;br&gt;电子书&lt;br&gt;pdf格式

2007-08-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除