You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
708 srb->sense_buffer[12] == 0 &&<br />
709 srb->sense_buffer[13] == 0) {<br />
710 srb->result = SAM_STAT_GOOD;<br />
711 srb->sense_buffer[0] = 0x0;<br />
712 }<br />
713 }<br />
714<br />
715 /* Did we transfer less than the minimum amount required? */<br />
716 if (srb->result == SAM_STAT_GOOD &&<br />
717 srb->request_bufflen - srb->resid < srb->underflow)<br />
718 srb->result = (DID_ERROR transport_reset(us);<br />
728 }<br />
好家伙,洋洋洒洒两百余行的一个函数,怎一个壮观二字了得! 欧阳修大哥曾经的一首蝶恋花把这个复杂的<br />
函数可谓描绘的淋漓尽致.<br />
庭院深深深几许?杨柳堆烟,帘幕无重数.<br />
150<br />
玉勒雕鞍游冶处,楼高不见章台路.<br />
雨横风狂三月暮,门掩黄昏,无计留春住.<br />
泪眼问花花不语,乱红飞过秋千去.<br />
上片深几许,无重数,不见章台路正是写的这段代码的复杂,调用关系一层又一层,让很多新手看了感觉无可<br />
奈何,如果没有高人的指导,盲目的去阅读代码或者去看那些很垃圾的书,那么无异于对美好生命的戕害.下<br />
片狂风暴雨正是比喻这种盲目的学习的害处,词中以花被摧残喻读代码者自己青春被毁.韶华空逝,人生易<br />
老.<br />
何必呢?<br />
迷雾重重的 Bulk 传输(二)<br />
其实故事已经讲了很久了,但如果你觉得到这里你已经把故事都看明白了,那么你错了.不仅仅是错了,你<br />
这种想法无异于就是,手里拿着一把刀,就以为自己是刀郎,手里举着一个窝头,就以为自己是托塔李天王.不<br />
信,我们就继续看,先看535 行,us->transport(),这个函数指针同样是在storage_probe 的时候被赋值,<br />
对于咱们的u 盘,她遵守的是Bulk-Only 协议,因此us->transport()被赋值为<br />
usb_stor_Bulk_transport().来看usb_stor_Bulk_transport(),她同样来自<br />
drivers/usb/storage/transport.c:<br />
948 int usb_stor_Bulk_transport(struct scsi_cmnd *srb, struct us_data *us)<br />
949 {