Skip to content

Commit 5c7fae5

Browse files
committed
ubus_qmodem: add get_avalible_device method
1 parent f85e716 commit 5c7fae5

File tree

1 file changed

+38
-0
lines changed
  • application/qmodem/files/usr/libexec/rpcd

1 file changed

+38
-0
lines changed

application/qmodem/files/usr/libexec/rpcd/qmodem

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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": {}
@@ -743,6 +744,43 @@ EOF
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

Comments
 (0)