diff --git a/src/wiphy.c b/src/wiphy.c index ccff701e..dcd9e210 100644 --- a/src/wiphy.c +++ b/src/wiphy.c @@ -500,6 +500,21 @@ const struct scan_freq_set *wiphy_get_supported_freqs( return wiphy->supported_freqs; } +struct scan_freq_set *wiphy_get_allowed_freqs(const struct wiphy *wiphy, + uint32_t band_mask) +{ + struct scan_freq_set *allowed = scan_freq_set_clone( + wiphy->supported_freqs, + band_mask); + + if (!wiphy_constrain_freq_set(wiphy, allowed)) { + scan_freq_set_free(allowed); + allowed = NULL; + } + + return allowed; +} + static struct band *wiphy_get_band(const struct wiphy *wiphy, enum band_freq band) { switch (band) { diff --git a/src/wiphy.h b/src/wiphy.h index 9f24d171..cabb21c4 100644 --- a/src/wiphy.h +++ b/src/wiphy.h @@ -100,6 +100,8 @@ const char *wiphy_get_path(struct wiphy *wiphy); uint32_t wiphy_get_supported_bands(struct wiphy *wiphy); const struct scan_freq_set *wiphy_get_supported_freqs( const struct wiphy *wiphy); +struct scan_freq_set *wiphy_get_allowed_freqs(const struct wiphy *wiphy, + uint32_t band_mask); const struct band_freq_attrs *wiphy_get_frequency_info( const struct wiphy *wiphy,