使用procfs和sysfs访问pci设备有什么区别?



procfs file: /proc/bus/pci/00/00.0

sysfs file: /sys/bus/pci/devices/0000:00:00.0/resource

我看到一些驱动程序使用procfs文件和一些使用sysfs。有什么区别呢?对于我所需要的,我发现mmap -ing sysfs/resource<n>?文件和读/写工作,因为我需要它,但对procfs文件的类似操作不起作用。但是很明显,procfs文件在其他地方被成功地使用了。

您引用的procfs文件(/proc/bus/pci/00/00.0)提供对设备配置头文件的访问。在sysfs中也可以访问/sys/bus/pci/devices/0000:00:00.0/config

您正在谈论的sysfs文件(/sys/bus/pci/devices/0000:00:00.0/resource<N>)提供对设备BAR区域的访问。请参阅https://en.wikipedia.org/wiki/PCI_configuration_space了解这些关系的解释。此外,您可能需要阅读linux内核文档https://www.kernel.org/doc/Documentation/filesystems/sysfs-pci.txt

最新更新