- 浏览: 845194 次
- 性别:
- 来自: 北京
最新评论
-
xingqinstar:
简单浏览一遍,博主将项目管理比喻成谈女朋友,结婚,很通俗易懂, ...
关于项目管理的通俗讲解 -
xingwang.ye:
W_h 写道热血又沸腾了问题是沸腾了过不了多久又冷却了如果一点 ...
一位软件工程师的6年总结 -
daive_java:
受益匪浅啦!
一位软件工程师的6年总结 -
berylcc:
学 历 代表 过 去、能力代表 现 在、学 习 力代表未来感触 ...
一位软件工程师的6年总结 -
greenwen:
学习,谨记~~;
一位软件工程师的6年总结
文章列表
来北京也有半年了,这半年里,想疯的时候就去工体西路的Babyface,不想疯的时候就去权金城.喜欢权金城其实是没有理由的,但仔细想想又还是有理由的.
洗浴费39元,像我同学办了张银卡,于是每次只要29元.洗完了要按摩就按摩,不按 ...
- 2007-08-05 15:45
- 浏览 541
- 评论(0)
其实信号量这东西,就像北京户口,你占了一个名额,我就可能没有了名额.但是有些事情,没有北京户口你又办不成.比如我满怀壮志的走到医院向医生表达说我希望死了以后可以捐献遗体,可得到的只是医生冷冷的回复,对不起,你没有资格,因为你没有户口.
我们前面说过,Linux中,有信号量
- 2007-08-04 16:47
- 浏览 572
- 评论(0)
多情自古伤离别,更那堪,冷落清秋节!
今宵酒醒何处?
杨柳岸,晓风残月.
此去经年,应是良辰好景虚设.
便纵有,千种风情,更与何人说?
- 2007-08-04 15:26
- 浏览 637
- 评论(0)
device_reset()完了之后我们来看bus_reset().同样来自drivers/usb/storage/scsiglue.c中.
265 /* This resets the device's USB port. */ 266 /* It refuses to work if there's more than one interface in 267 * the device, so that other users are not affected. */ 268 /* This is always called with scsi_lock(srb->host) hel ...
- 2007-08-04 13:44
- 浏览 435
- 评论(0)
上帝给了每个人一支书写人生的铅笔,却未曾给我们橡皮擦.但计算机的世界却并非如此,电脑用着用着觉得不正常了,按一下reset键就一切ok了. (当然你要是中了熊猫烧香啊中了冲击波啥的病毒那就另当别论了,喂,别打岔行不行,我们讲正事呢.)如果人生也可以这样,那么星爷的那段经典的妇孺皆知的”人世间最悲哀的……假如……”的对白恐怕就没有意义了
- 2007-08-03 22:51
- 浏览 666
- 评论(0)
这一节我们来分析一个在很多企业的产品中都存在的bug.写设备驱动是一件很实在的事情,你得根据实实在在的硬件来编写你的代码,如果你的硬件存在某种bug,那么你就要去fix它.如果你希望成为通用的驱动程序,那么你就要兼顾各家 ...
- 2007-08-02 23:09
- 浏览 645
- 评论(0)
回到usb_stor_invoke_transport()中来,540行,还是老套路,又问是不是命令被放弃了,放弃了当然下面的就别执行了.goto Handle_Abort去.
546行,如果有错误,注意正如前面所说,USB_STOR_TRANSPORT_ERROR表示传输本身就是有问题的,比如管道堵塞.而USB_STOR_TRANSPORT_FAILED则只是说明命令传输是没有问题的,就比如你作为场外观众给非常六加一发短信了,然后李咏随机抽到你,给你打电话
- 2007-08-01 23:26
- 浏览 669
- 评论(0)
接下来的时间里我们会接触两个变量,fake_sense和need_auto_sense,sense顾名思义,感觉.所以就让我们跟着感觉走.我们前面提到过,如果设备想发送比期望值更多的数据,那么我们前面就设了fake_sense为1.这里就来看看设为1之后怎么办.这里咱们看到了这个一个冬冬,usb_stor_sense_invalidCDB,她是谁?
让我们把镜头对准drivers/usb/storage/scsiglue.c,
479 /* To Report "Illegal Request: Invalid Field in CDB */
- 2007-08-01 21:17
- 浏览 595
- 评论(0)
接下来咱们该看看如何处理CSW了.1018行,usb_stor_bulk_transfer_buf()函数再一次被调用,这次是获得CSW,期望长度是US_BULK_CS_WRAP_LEN,这个宏来自drivers/usb/storage/transport.h中:
109 #define US_BULK_CS_WRAP_LEN 13
13对应CSW的长度,13个bytes.而cswlen记录了实际传输的长度.1025行,如果返回值是USB_STOR_XFER_SHORT,表明数据传少了,没有达到我们期望的那么多,而假如cswlen又等于0,那么说明没有获得真正的
- 2007-07-31 23:24
- 浏览 854
- 评论(0)
usb_stor_bulk_transfer_sglist()这个函数有一定的蛊惑性,我们前面说过,之所以采用sglist,就是为了提高传输效率.我们更知道,sg的目的就是让一堆不连续的buffers一次DMA操作就都传输出去.其实在usb的故事中,事情并非如此.不过如果你对usb core里边的行为不关心的话,那就无所谓了.有些事情,你不知道也好.
446行,447行,aborting了或者disconnecting了,就不要传递数据了
- 2007-07-31 21:59
- 浏览 505
- 评论(0)
在讲数据传输阶段之前,先解决刚才的历史遗留问题. usb_stor_bulk_transfer_buf()中,429行,有一个很有趣的函数interpret_urb_result()被调用.这个函数同样来自drivers/usb/storage/transport.c:
277 /* 278 * Interpret the results of a URB transfer 279 * 280 * This function prints appropriate debugging messages, clears halts on 281 * non-control endpoints, ...
- 2007-07-31 02:21
- 浏览 517
- 评论(0)
在usb_stor_Bulk_transport()中, 古人一针见血的为我们指出了这个函数中调用的第一个最重要的函数,那就是usb_stor_bulk_transfer_buf().仍然是来自drivers/usb/stroage/transport.c.
409 /* 410 * Transfer one buffer via bulk pipe, without timeouts, but allowing early 411 * termination. Return codes are USB_STOR_XFER_xxx. If the bulk pipe 412 * stall ...
- 2007-07-31 01:36
- 浏览 732
- 评论(0)
其实故事已经讲了很久了,但如果你觉得到这里你已经把故事都看明白了,那么你错了.不仅仅是错了,你这种想法无异于就是,手里拿着一把刀,就以为自己是刀郎,手里举着一个窝头,就以为自己是托塔李天王.不信,我们就继续看,先看535行,us->transport(),这个函数指针同样是在storage_probe的时候被赋值,对于咱们的u盘,她遵守的是Bulk-Only协议,因此us->transport()被赋值为usb_stor_Bulk_transport().来看usb_stor_Bulk_transport(),她同样来自drivers/usb/storage/transport.c ...
- 2007-07-31 00:35
- 浏览 831
- 评论(0)
2006年的最后一个星期,来到了北京,开始了北漂的生活.和上海不同的是,在这里待了三个月之后,发现竟然没有下过一次雨,难怪日本小孩说:”你们北京小孩真幸福,城外就是大沙漠,出了城就可以骑骆驼看日落了.”不过,今天下雨了,下了大雨,好大好大,一阵阵的闪电,回家的时候下半身都湿了…(天哪,怎么写着写着又往那个方向走去了…算了,我承认我只是一个用下半身思考的男青年.)
很累,
- 2007-07-31 00:20
- 浏览 749
- 评论(0)
usb_stor_control_thread()基本讲完了,但是其中下面这几行,正是高潮中的高潮.所谓的Bulk传输,所谓的Bulk-Only协议.正是在这里体现出来的.
372 /* we've got a command, let's do it! */ 373 else { 374 US_DEBUG(usb_stor_show_command(us->srb)); 375 us->proto_handler(us->srb, us); 376 }
所谓的US_DEBUG,我们前面已经讲过,无非就是打印条是信息的.而眼下这句话就是执行usb_stor_show_co ...
- 2007-07-28 23:14
- 浏览 633
- 评论(0)