danos/system/devices
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
..
aml zig fmt 2026-07-12 16:04:58 +01:00
acpi-ids.zig Name ACPI hardware IDs instead of magic _HID strings 2026-07-11 23:23:16 +01:00
acpi.zig The flip: PCI enumeration leaves the kernel (M19.3) 2026-07-13 02:54:50 +01:00
device-abi.zig WIP: USB 2026-07-12 22:24:47 +01:00
device-model.zig zig fmt 2026-07-12 16:04:58 +01:00
device-tree.zig Re-organize the source tree as a monorepo mirroring the FHS 2026-07-10 12:55:56 +01:00
pci-class.zig Decode PCI class codes in device discovery 2026-07-10 21:35:20 +01:00
platform.zig Discovery-migration prerequisites (M19.0) 2026-07-13 01:59:32 +01:00
power.zig Re-organize the source tree as a monorepo mirroring the FHS 2026-07-10 12:55:56 +01:00
usb-abi.zig WIP: USB 2026-07-12 22:24:47 +01:00
usb-ids.zig WIP: USB 2026-07-12 22:24:47 +01:00