我很新的内核编程,我在给定的教程如下: USB boot authentication如何在Linux内核编程中从'dev_t'获取'device struct'?
我希望得到一个USB驱动器的“设备结构”。我有USB设备的'dev_t'实例。此外,我想检查设备结构是否是USB设备。我无法弄清楚如何开始......
感谢
我很新的内核编程,我在给定的教程如下: USB boot authentication如何在Linux内核编程中从'dev_t'获取'device struct'?
我希望得到一个USB驱动器的“设备结构”。我有USB设备的'dev_t'实例。此外,我想检查设备结构是否是USB设备。我无法弄清楚如何开始......
感谢
正如hiteshradia说dev_t
是设备号(主设备号和次设备号)。但是,您可以使用此功能以及知道块设备可以访问与之关联的struct device
。为此,请使用linux/fs.h
中的struct block_device *bdget(dev_t)
。由此您可以使用block_device->bd_part
获取设备的struct hd_struct *
,最后使用linux/genhd.h
中定义为宏的struct device *part_to_dev(struct hd_struct *)
。
dev_t
仅代表从你的链接看到/dev/sdb1
分区的设备数量。使用它无法获取底层USB驱动器详细信息。
在链接,你只要有部分
if(udev->serial != NULL)
{
if((strcmp(udev->serial, "3513001D97827E69")) == 0) /* Hard coded usb device serial here*/
{
key_dev_found = 1;
}
}
那里你可以得到USB设备的详细信息和struct usb_device *udev