3
據SCSI驅動程序(內核2.6.23)所使用的內核結構struct scsi_device
:如何在內核scsi_device結構中區分USB和(S)ATA設備?
http://lxr.linux.no/linux+v2.6.23/include/scsi/scsi_device.h#L49
是否有區別,如果該設備是USB設備或ATA設備的可靠方法?
據SCSI驅動程序(內核2.6.23)所使用的內核結構struct scsi_device
:如何在內核scsi_device結構中區分USB和(S)ATA設備?
http://lxr.linux.no/linux+v2.6.23/include/scsi/scsi_device.h#L49
是否有區別,如果該設備是USB設備或ATA設備的可靠方法?
對於每個scsi_device
,您可以獲得與其對應的scsi_host
,並從那裏獲得,這是SCSI LLD的vtable。從那裏,你可以看看名字字段。 drivers/scsi/storage/usb.c告訴我們該字符串應該是「usb-storage」。
因此,我認爲'sdev'爲scsi_device指針,如果它是來自USB大容量存儲設備的LUN,則sdev->shost->hostt->name
應該解析爲「usb-storage」。從設計的角度來看,這可能被認爲是以這種方式完成任務的「黑客」,但沒有合適的API是最簡單的方法。