繁体   English   中英

不使用pci_get_device(),我的内核模块如何访问PCI设备?

[英]How can my kernel module access a PCI device without using pci_get_device()?

目前,我有一个Linux 2.6内核模块,可以通过pci_get_device()pci_read_config_dword()访问某个设备。 将来,应修改该模块,使其可以在另一台似乎没有PCI总线(/ sys / bus / pci不存在),但具有固定已知地址的设备的机器上工作。 现在,我想拥有一个 不带参数的二进制模块,该模块可在两台机器上使用。 为了能够在非PCI机器上加载模块,我认为我必须避免使用pci_get_device()等。 因此,我必须以其他方式在PCI机器上获取所需的配置空间信息。 我可以从init_module() /sys/bus/pci/devices/.../resource中读取它,但是我认为使内核模块读取文件被认为是不好的做法。 有没有更好的方法可以实现我的目标?

当无法使用pci_get_device()类的功能时(因为该模块还必须与不提供此类功能的内核一起工作),显然,没有比读取/sys/bus/pci/devices/.../resource更好的方法来获取PCI地址信息了。 /sys/bus/pci/devices/.../resource 我基于在Linux内核模块如何读取/写入文件的方式使用filp_open()vfs_read()filp_close()来执行此操作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM