使用 procfs 和 sysfs 访问 pci 设备有什么区别
what is the difference between accessing a pci device using procfs vs sysfs
procfs
文件:/proc/bus/pci/00/00.0
对比
sysfs
文件:/sys/bus/pci/devices/0000:00:00.0/resource
我看到有些驱动程序使用 procfs
文件,有些使用 sysfs
。有什么不同?对于我需要的,我发现 mmap
-ing sysfs/resource<n>?
文件和 read/write 可以按我的需要工作,但是对 procfs
文件的类似操作不起作用。但显然 procfs
文件在其他地方使用成功。
您引用的 procfs
文件 (/proc/bus/pci/00/00.0
) 提供对设备配置的访问 header。它也可以在 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
procfs
文件:/proc/bus/pci/00/00.0
对比
sysfs
文件:/sys/bus/pci/devices/0000:00:00.0/resource
我看到有些驱动程序使用 procfs
文件,有些使用 sysfs
。有什么不同?对于我需要的,我发现 mmap
-ing sysfs/resource<n>?
文件和 read/write 可以按我的需要工作,但是对 procfs
文件的类似操作不起作用。但显然 procfs
文件在其他地方使用成功。
您引用的 procfs
文件 (/proc/bus/pci/00/00.0
) 提供对设备配置的访问 header。它也可以在 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