aboutsummaryrefslogtreecommitdiffstats
path: root/package/kernel/mac80211/files/lib/netifd/mac80211.sh
blob: 92e5c0e395389e9e48b86dee3a3e7ef5f053f0f1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
mac80211_phy_to_path() {
	local phy="$1"

	[ -x /usr/bin/readlink -a -h /sys/class/ieee80211/${phy} ] || return

	local path="$(readlink -f /sys/class/ieee80211/${phy}/device)"
	[ -n "$path" ] || return

	path="${path##/sys/devices/}"
	case "$path" in
		platform*/pci*) path="${path##platform/}";;
	esac

	local p
	local seq=""
	for p in $(ls /sys/class/ieee80211/$phy/device/ieee80211); do
		[ "$p" = "$phy" ] && {
			echo "$path${seq:++$seq}"
			break
		}

		seq=$((${seq:-0} + 1))
	done
}

mac80211_path_to_phy() {
	local path="$1"

	local p
	for p in $(ls /sys/class/ieee80211); do
		local cur="$(mac80211_phy_to_path "$p")"
		case "$cur" in
			*$path) echo "$p"; return;;
		esac
	done
}