Mac OS X,C用于读取PCI设备信息的工具

时间:2011-01-21 10:14:29

标签: c macos pci

我正在尝试学习如何从Mac OS X中的PCI设备获取信息。到目前为止,我还没有在sysctl(3)中找到任何关于它的信息,而且似乎旧的devinfo(3)设施来自BSD不可用。

我需要一个C工具,我知道Objective C有一个I / O工具包框架,但我不能使用它。

我所追求的具体信息非常基本,只是供应商和设备ID。

1 个答案:

答案 0 :(得分:1)

I / O Kit 设备信息的系统框架。它不是Objective-C API;相反,Apple使用C ++的受限子集。引用I/O Kit Fundamentals文档,

  

Apple考虑了I / O Kit的几种编程语言,并选择了受限制的C ++子集。

     

选择C ++有几个原因。 C ++编译器很成熟,语言为系统编程提供支持。此外,已经有大量的具有C ++经验的Macintosh(和BSD)开发人员。

     

受限制的子集不允许使用C ++的某些功能,包括

     
      
  • 例外
  •   
  • 多重继承
  •   
  • 模板
  •   
  • 运行时类型信息(RTTI) - I / O Kit使用自己的运行时类型系统实现
  •   
     

这些功能被删除,因为它们被认为不适合在多线程内核中使用。如果您觉得需要这些功能,则应重新考虑您的设计。您应该能够使用I / O Kit编写您需要的任何驱动程序,并具有这些限制。

如果您不能使用C ++,那么另一种方法是让您的C程序调用{​​{1}}并解析其结果。


修改:您可能需要查看Accessing Hardware from Applications文档。看起来访问I / O注册表可以使用C代码完成大部分(如果不是全部),还有一点Core Foundation。