PCI in I/O Kit

PCI in the I/O Kit is handled by the IOPCIFamily, which, just like the IOUSBFamily, is implemented in its own KEXT. The IOPCIFamily is simpler than the IOUSBFamily in terms of the number of provided classes. This means there are fewer building blocks to help us out when implementing drivers. PCI is more low-level than USB from a driver point-of-view, and, as such, the writing of drivers for PCI devices is often more complex. Figure 9-2 shows the class hierarchy of the IOPCIFamily.

images

Figure 9-2. IOPCIFamily class hierarchy

The IOPCIDevice object acts a nub or provider for all PCI-based devices, including PCIe, Thunderbolt, and ...

Get OS X and iOS Kernel Programming now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.