@@ -285,6 +285,7 @@ case "$1" in
285285 "scan_all": {},
286286 "get_pcie_devices": {},
287287 "get_usb_devices": {},
288+ "get_available_devices": {},
288289 "get_leds": {},
289290 "get_network_interfaces": {},
290291 "get_tty_ports": {}
743744 json_dump
744745 ;;
745746
747+ get_available_devices)
748+ json_init
749+ json_add_object " devices"
750+ # Add PCIe devices
751+ if [ -d " /sys/bus/pci/devices/" ]; then
752+ for device in /sys/bus/pci/devices/* ; do
753+ [ -e " $device " ] || continue
754+ device_id=$( basename " $device " )
755+ # Convert to UCI-safe name
756+ uci_name=$( echo " $device_id " | sed ' s/\./_/g; s/:/_/g; s/-/_/g' )
757+ json_add_object " $uci_name "
758+ json_add_string " label" " $device_id [pcie]"
759+ json_add_string " type" " pcie"
760+ json_add_string " path" " /sys/bus/pci/devices/$device_id "
761+ json_close_object
762+ done
763+ fi
764+ # Add USB devices
765+ if [ -d " /sys/bus/usb/devices/" ]; then
766+ for device in /sys/bus/usb/devices/* ; do
767+ [ -e " $device " ] || continue
768+ device_id=$( basename " $device " )
769+ # Skip root hubs (usb1, usb2, etc.)
770+ echo " $device_id " | grep -q ' ^usb[0-9]\+$' && continue
771+ # Convert to UCI-safe name
772+ uci_name=$( echo " $device_id " | sed ' s/\./_/g; s/:/_/g; s/-/_/g' )
773+ json_add_object " $uci_name "
774+ json_add_string " label" " $device_id [usb]"
775+ json_add_string " type" " usb"
776+ json_add_string " path" " /sys/bus/usb/devices/$device_id "
777+ json_close_object
778+ done
779+ fi
780+ json_close_object
781+ json_dump
782+ ;;
783+
746784 get_leds)
747785 json_init
748786 json_add_array " leds"
0 commit comments