我是libpci
的新手。
我写了一个C程序,可以检测GPU并给它vendor_id
和device_id
。现在,我不知道是否可以使用vendor_name
从其ID中获取libpci
。
vendor = pci_lookup_name(pci_access, buffer, sizeof(buffer), PCI_LOOKUP_VENDOR, radeon->vendor);
我对这段代码感到满意,但它似乎没有用。通过一些文档帮助我,非常感谢。 :)
答案 0 :(得分:0)
该库的文档似乎很不稳定。
linux上的 lspci
使用它来填充它的pci信息,所以我推荐以下内容:
* lspci source code
* pci.h
头文件(位于ubuntu上的/usr/include/pci/pci.h
,一旦安装了libpci-dev)
就您的代码而言,您似乎错过了va_args末尾的设备ID。不确定为什么需要它,但它已在pci.h
中记录。
请改为尝试:
vendor = pci_lookup_name(pci_access, buffer, sizeof(buffer), PCI_LOOKUP_VENDOR, radeon->vendor_id, radeon->device_id);
This看起来像lspci
来源