Browse Source

utils: add iwinfo_band2ghz() and iwinfo_ghz2band() helpers

To classify bands, to be used as ubus values.

Signed-off-by: Andre Heider <a.heider@gmail.com>
Andre Heider 1 year ago
parent
commit
9e14e643c5
2 changed files with 37 additions and 0 deletions
  1. 3 0
      include/iwinfo/utils.h
  2. 34 0
      iwinfo_utils.c

+ 3 - 0
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);

+ 34 - 0
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