07.06.2013 Views

Scsi - Index of

Scsi - Index of

Scsi - Index of

SHOW MORE
SHOW LESS

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 {

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!