Draft: Pcid scheme
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".