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

我对内核编程相当陌生,我正在按照USB引导authentication给出的教程

我想获得一个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