Implementation in the Kernel
The kernel provides an extensive framework for PCI drivers that can be roughly divided into two categories.
□ Initialization of the PCI system (and, depending on system, the assignment of resources) together with the provision of corresponding data structures to reflect the contents and capabilities of the individual buses and devices so that they can be manipulated easily
□ Standardized function interfaces to support access to all PCI options
PCI system initialization sometimes differs greatly between the individual system types. For example, IA-32 systems allocate all relevant PCI resources themselves with the help of the BIOS at boot time so that there's little left for the kernel to do. As Alpha systems have no BIOS nor any suitable equivalent, this must be done manually by the kernel. Consequently, when describing the relevant data structures in kernel memory, I shall make the assumption that all PCI devices and buses have already been fully initialized.
Continue reading here: Data Structures
Was this article helpful?