0d494d8e89
usb-core spawn.rs: - class_driver_for_usb_class() extended to cover all Red Bear class drivers: Audio(0x01)→redbear-usbaudiod, CDC ACM(0x02/0x02)→redbear-acmd, CDC ECM(0x02/0x06)→redbear-ecmd, HID(0x03)→usbhidd, Mass Storage(0x08)→usbscsid, Hub(0x09)→usbhubd, Vendor(0xFF)→redbear-ftdi - Subclass-aware matching (Audio Control vs Streaming, CDC ACM vs ECM) - is_trusted_usb_driver() whitelist extended with all 7 driver binaries - Test suite updated with new assertions (11/11 pass) redbear-usb-hotplugd: - DRIVER_MAP extended to 11 entries with subclass-aware matching - Recursive port scanning: scan_ports_recursive() traverses child hub port directories (handles port1.port2.port3 paths) - extract_port_id() parses full port paths to extract controller name and port string for child hub ports - Protocol-aware extra arg: Storage passes protocol byte (0x50/0x62), all other classes pass interface number - Skips CDC Data interfaces (0x0A) and hub interfaces (0x09) when reading descriptors — matches Linux's interface matching logic - Improved disconnect detection via descriptor accessibility heuristic - Cleaner structure: find_driver(), scan_controllers(), scan_ports(), try_read_descriptors(), main loop with connect/disconnect tracking All 7 Red Bear USB class drivers now auto-spawning on device connect: usbhidd, usbscsid, usbhubd, redbear-acmd, redbear-ecmd, redbear-usbaudiod, redbear-ftdi