《Linux那些事儿之我是USB》我是U盘(19)冬天来了,春天还会远吗(三)--总结

(1)

usb_stor_probe1()--->

static int get_device_info(struct us_data *us, const struct usb_device_id *id,struct us_unusual_dev *unusual_dev)
{
     us->unusual_dev = unusual_dev; //把unusual_dev给记录在us里面,us里面也有这么一个成员
    us->subclass = (unusual_dev->useProtocol == USB_SC_DEVICE) ?
            idesc->bInterfaceSubClass :
            unusual_dev->useProtocol;
    us->protocol = (unusual_dev->useTransport == USB_PR_DEVICE) ?
            idesc->bInterfaceProtocol :
            unusual_dev->useTransport;
    us->fflags = id->driver_info;
//给us的另外三个成员赋值,subclass、protocol和flags。比如我们的U盘,它属于主流设备,在us_unusual_dev_list列表中能找到它,其subclass是US_SC_SCSI,而protocol是Bulk-only,即这里用宏US_PR_BULK代表。
}
get_device_info这个函数就结束了它的使命。在USB Storage这部戏里,它将不再出场

猜你喜欢

转载自blog.csdn.net/sinat_37817094/article/details/80398950
今日推荐