gpt4 book ai didi

linux - 如何区分内核scsi_device结构中的USB和(S)ATA设备?

转载 作者:太空狗 更新时间:2023-10-29 11:20:22 24 4
gpt4 key购买 nike

根据SCSI驱动使用的内核结构struct scsi_device(kernel 2.6.23):

http://lxr.linux.no/linux+v2.6.23/include/scsi/scsi_device.h#L49

是否有可靠的方法来区分设备是 USB 设备还是 ATA 设备?

最佳答案

对于每个scsi_device,你可以得到对应的scsi_host,然后从那里得到scsi_host_template,它是设备的vtable SCSI LLD。从那里,您可以查看名称字段。 drivers/scsi/storage/usb.c 告诉我们字符串应该是“usb-storage”。

因此,我认为给定“sdev”作为 scsi_device 指针,sdev->shost->hostt->name 应该解析为“usb-storage”,以防它是来自 USB 大容量的 LUN储存设备。从设计的角度来看,以这种方式完成任务可能被认为是一种“hack”,但如果没有适当的 API,那是最简单的方法。

关于linux - 如何区分内核scsi_device结构中的USB和(S)ATA设备?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7767934/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com