如何在linux内核编程中从'dev_t'获取'device struct'?

时间:2013-02-16 13:11:45

标签: linux usb kernel

我对内核编程很陌生,我正在遵循以下教程: USB boot authentication

我想获得一个USB驱动器的“设备结构”。我有USB设备的'dev_t'实例。此外,我想检查设备结构是否是USB设备。我无法弄清楚如何开始......

由于

2 个答案:

答案 0 :(得分:2)

正如hiteshradia所说,dev_t是设备编号(主要编号和次编号)。但是,您可以使用此功能以及阻止设备访问与其关联的struct device的知识。为此,请使用struct block_device *bdget(dev_t)中的linux/fs.h。在此之后,您可以使用block_device->bd_part获取设备的struct hd_struct *,最后使用struct device *part_to_dev(struct hd_struct *)中定义为linux/genhd.h的宏。{/ p>

答案 1 :(得分:1)

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