目前,我有一个 Linux 2.6 内核模块,它通过pci_get_device()
和访问某个设备pci_read_config_dword()
。将来,该模块将被修改为也可以在似乎没有 PCI 总线(/sys/bus/pci 不存在)但在固定的已知地址具有特定设备的不同机器上工作。现在,我想拥有一个在两台机器上都可以使用的不带参数的模块二进制文件。为了能够在非PCI机器上加载模块,我想我必须避免使用pci_get_device()
等;因此我必须以其他方式在 PCI 机器上获取所需的配置空间信息。我可以从/sys/bus/pci/devices/.../resource
我的init_module()
,但我认为让内核模块读取文件被认为是不好的做法。有没有更好的方法来实现我的目标?
问问题
3346 次
1 回答
0
当pci_get_device()
不能使用类似的功能时(因为模块必须也可以与不提供此类功能的内核一起使用),显然没有比读取更好的方法来获取 PCI 地址信息/sys/bus/pci/devices/.../resource
。我求助于这样做,使用filp_open()
,vfs_read()
并filp_close()
基于如何在 Linux 内核模块中读/写文件?.
于 2013-07-17T07:00:46.727 回答