danos/system/drivers
Daniel Samson af2c766f42
The flip: PCI enumeration leaves the kernel (M19.3)
enumeratePci, addBars, pciConfigurationPtr, and the PciHeader struct are
deleted; the kernel seeds only the host bridge, and the ring-3 pci-bus
driver's reports are the sole source of PCI function nodes. The manager
matches PCI drivers from reported identity, deduped by registered device
id so a bus restart never double-spawns.

The flip did its job by exposing a latent SMP race: ring-3
device_register made the broker table concurrent for the first time, and
mmio_map read it lock-free — under load a torn resource length mapped
hpet's window wrong (its user fault) and underflowed r.len-1 into a
kernel integer-overflow panic. Fixed: the broker read in mmio_map (and
claim) runs under the big kernel lock, the arithmetic rejects
zero-length and wrapping windows cleanly, and pci-bus no longer registers
unimplemented size-0 BARs. driver-restart hammered 6x, suite 55/55.
2026-07-13 02:54:50 +01:00
..
bus WIP: USB 2026-07-12 22:24:47 +01:00
hpet refactor 2026-07-11 04:32:17 +01:00
pci-bus The flip: PCI enumeration leaves the kernel (M19.3) 2026-07-13 02:54:50 +01:00
ps2-bus code lint 2026-07-12 19:36:10 +01:00
usb-xhci-bus The application surface: enumerate, subscribe, and device-list (M18.3) 2026-07-13 00:49:03 +01:00