Skip to content

Draft: Pcid scheme

Jacob Lorentzon requested to merge 4lDO2/drivers:pcid-scheme into master

This MR refactors pcid by separating it into two binaries: (1) pcid, which will enumerate the bus and then run as a traditional scheme-based driver daemon, and (2) pcid-spawner, which uses information from the pci: scheme to find matching drivers from a config file and spawn them. The pipe-based communication mechanism now uses a bidirectional pipe from the pci: scheme to replace the old pipe2-based one.

The motivation for this MR is to separate the driver logic from the subdriver spawning logic, and, a PCI scheme will probably also be useful for e.g. lspci, but mostly to have a better interface when acpid needs to be able to read from/write to PCI configuration space. In the future pcid-spawner might evolve into a more general driver manager, possibly more closely involved with init. If/when kernel!194 (closed) is merged, the scheme can also provide IRQ handles directly from the kernel within a PCI device's "directory".

Edited by Jacob Lorentzon

Merge request reports