summaryrefslogtreecommitdiffstats
path: root/bins/ls/src
diff options
context:
space:
mode:
authorsalmonik <salmonik@tuta.io>2026-08-01 15:00:47 +0200
committersalmonik <salmonik@tuta.io>2026-08-01 15:00:47 +0200
commitd562e9df2bc5e69bba7298a9439e2adca5c18faf (patch)
tree8d763e60d512e7a4230413f13caaf9153cb2ec54 /bins/ls/src
parentklog: [ssss.mmm] millisecond timestamps from the PIT (diff)
downloadrs-dos-d562e9df2bc5e69bba7298a9439e2adca5c18faf.tar.gz
rs-dos-d562e9df2bc5e69bba7298a9439e2adca5c18faf.zip
rsnix: runtime device detection — rescan for hotplugged/removed disks
Phase 1: make the boot discovery pipeline re-runnable and diff it against live hardware state. - ahci: store ABAR/NP/port bitmap; poll_dirty() (cheap PxSSTS.DET check per port) and rescan() which starts newly-present ports and tombstones the slots of removed ones. Slots never shift, so disk indices stay valid. select() now rejects tombstoned slots. - fat: Volume gets a mounted flag; rescan() unmounts volumes whose disk left and mounts every disk without a mounted volume (re-trying failed boot mounts). UID dedup ignores tombstones so a re-plugged disk keeps its /disk/<UID> name. - fs: init's mount loop factored into rescan_disks(), which lazily creates /disk, ensures a mount node per mounted volume and tombstones nodes of unmounted ones. - shell: 'rescan' command + automatic deep rescan before each prompt when ahci::poll_dirty() sees a port-presence change. Rescan events flow through serial_println so they land in klog too. Removal (PxSSTS) is a real-hardware path: QEMU q35 rejects disk hotplug on the ich9-ahci IDE buses, and PCIe device_del is a guest-cooperative protocol this kernel does not implement.
Diffstat (limited to 'bins/ls/src')
0 files changed, 0 insertions, 0 deletions