0035aa65cc
usb-core: scheme.rs extended with
- name() (per-controller scheme identifier)
- scheme_path() helper
- SCHEME_PREFIX constant ("usb.")
- UsbError::Unsupported variant
uhcid: 459 LoC -> 463 LoC
- Added controller name field derived from device path
- Free function control_transfer() -> UhciController::do_control_transfer() method
- impl UsbHostController for UhciController
- port_status maps to USB trait PortStatus (with high_speed=false)
- control_transfer handles SetupPacket by serializing 8-byte buffer
- bulk_transfer / interrupt_transfer return Err(Unsupported) — see P4/P5
- set_address returns true (no UHCI controller command)
- Class driver spawn now uses per-controller scheme name
ohcid: 280 LoC -> 304 LoC
- Same pattern as UHCI
- control_transfer method on OhciController
- impl UsbHostController for OhciController
- Linux 7.1 ohci-q.c PIPE_CONTROL pattern preserved
- Per-controller scheme name in spawn
Both drivers cross-reference Linux 7.1 source for register
definitions (xhci-ext-caps.h, ohci.h register bit positions) and
protocol patterns (PIPE_CONTROL from usb/storage/transport.c).
Cross-compile clean: usb-core, uhcid, ohcid, ehcid all build.
Two of three P1-A sub-tasks done (UHCI + OHCI on the trait).
Remaining: xhcid thin-trait adapter (deferred — xhcid scheme.rs is
2,839 LoC and operates under its own well-tested scheme protocol).
Reference: USB-IMPLEMENTATION-PLAN.md v3 §P1-A