gpt4 book ai didi

linux - 如何获取所有PCI设备的Vendor ID和Device ID?

转载 作者:太空宇宙 更新时间:2023-11-04 05:07:49 24 4
gpt4 key购买 nike

我需要使用 C/C++(允许内联汇编)从 Linux 获取所有 PCI 总线设备的供应商 ID 和设备 ID,但我什至不知道从哪里开始。

请给我一些建议或代码部分。

最佳答案

How to get Vendor ID and Device ID of all PCI Devices?

简而言之,您必须编写一个 C 程序来执行以下操作:

grep PCI_ID /sys/bus/pci/devices/*/uevent

并提取=后和:后的相关数据。

所以你要做的是:

  • 使用 readdir_r 迭代 /sys/bus/pci/devices 中的目录
  • 对于每个目录
    • 从该目录中打开 uevent 文件
    • 从文件中读取行,直到找到 PCI_ID
    • 如果找到
      • sscanf(line, "PCI_ID=%4x:%4x\n", &vendor_id, &device_id) 基本匹配

我在 /sys/bus/pci/devices 中找不到任何有关 uevent 的文档。这个答案基于逆向工程busybox lspci.c sources .

关于linux - 如何获取所有PCI设备的Vendor ID和Device ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59010671/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com