我很新的內核編程,我在給定的教程如下: 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