From 9e14e643c5e8bac2b8aeb4efb76cff3f86bf80ca Mon Sep 17 00:00:00 2001 From: Andre Heider Date: Tue, 22 Nov 2022 09:39:12 +0100 Subject: utils: add iwinfo_band2ghz() and iwinfo_ghz2band() helpers To classify bands, to be used as ubus values. Signed-off-by: Andre Heider --- include/iwinfo/utils.h | 3 +++ iwinfo_utils.c | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/include/iwinfo/utils.h b/include/iwinfo/utils.h index a7645de..7b8ceea 100644 --- a/include/iwinfo/utils.h +++ b/include/iwinfo/utils.h @@ -46,6 +46,9 @@ static inline int iwinfo_mbm2dbm(int gain) const char * const iwinfo_band_name(int mask); const char * const iwinfo_htmode_name(int mask); +uint32_t iwinfo_band2ghz(uint8_t band); +uint8_t iwinfo_ghz2band(uint32_t ghz); + size_t iwinfo_format_hwmodes(int modes, char *buf, size_t len); int iwinfo_htmode_is_ht(int htmode); int iwinfo_htmode_is_vht(int htmode); diff --git a/iwinfo_utils.c b/iwinfo_utils.c index 83f049a..a342b6a 100644 --- a/iwinfo_utils.c +++ b/iwinfo_utils.c @@ -115,6 +115,40 @@ const char * const iwinfo_htmode_name(int mask) return iwinfo_name(mask, IWINFO_HTMODE_COUNT, IWINFO_HTMODE_NAMES); } +uint32_t iwinfo_band2ghz(uint8_t band) +{ + switch (band) + { + case IWINFO_BAND_24: + return 2; + case IWINFO_BAND_5: + return 5; + case IWINFO_BAND_6: + return 6; + case IWINFO_BAND_60: + return 60; + } + + return 0; +} + +uint8_t iwinfo_ghz2band(uint32_t ghz) +{ + switch (ghz) + { + case 2: + return IWINFO_BAND_24; + case 5: + return IWINFO_BAND_5; + case 6: + return IWINFO_BAND_6; + case 60: + return IWINFO_BAND_60; + } + + return 0; +} + size_t iwinfo_format_hwmodes(int modes, char *buf, size_t len) { // bit numbers as per IWINFO_80211_*: ad ac ax a b g n -- cgit v1.2.1