summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/iwinfo/utils.h3
-rw-r--r--iwinfo_utils.c34
2 files changed, 37 insertions, 0 deletions
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