From 3cd93505d664e36dafc2c7f26a309f5346b4b92a Mon Sep 17 00:00:00 2001 From: James Prestwood Date: Fri, 9 Dec 2022 11:39:27 -0800 Subject: [PATCH] wiphy: use enum band_freq with rates getter wiphy_get_supported_rates expected an enum defined in the nl80211 header but the argument type was an unsigned int, not exactly intuitive to anyone using the API. Since the nl80211 enum value was only used in a switch statement it could just as well be IWD's internal enum band_freq. This also allows modules which do not reference nl80211.h to use wiphy_get_supported_rates(). --- src/scan.c | 2 +- src/wiphy.c | 9 +++++---- src/wiphy.h | 4 +++- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/scan.c b/src/scan.c index ef222f66..5d2f2957 100644 --- a/src/scan.c +++ b/src/scan.c @@ -426,7 +426,7 @@ static struct l_genl_msg *scan_build_cmd(struct scan_context *sc, * rates we don't want to advertise support for 802.11b rates. */ if (L_WARN_ON(!(supported = wiphy_get_supported_rates(sc->wiphy, - NL80211_BAND_2GHZ, + BAND_FREQ_2_4_GHZ, &num_supported)))) goto done; diff --git a/src/wiphy.c b/src/wiphy.c index 10514572..37e0cdb8 100644 --- a/src/wiphy.c +++ b/src/wiphy.c @@ -788,19 +788,20 @@ bool wiphy_supports_iftype(struct wiphy *wiphy, uint32_t iftype) return wiphy->supported_iftypes & (1 << (iftype - 1)); } -const uint8_t *wiphy_get_supported_rates(struct wiphy *wiphy, unsigned int band, +const uint8_t *wiphy_get_supported_rates(struct wiphy *wiphy, + enum band_freq band, unsigned int *out_num) { struct band *bandp; switch (band) { - case NL80211_BAND_2GHZ: + case BAND_FREQ_2_4_GHZ: bandp = wiphy->band_2g; break; - case NL80211_BAND_5GHZ: + case BAND_FREQ_5_GHZ: bandp = wiphy->band_5g; break; - case NL80211_BAND_6GHZ: + case BAND_FREQ_6_GHZ: bandp = wiphy->band_6g; break; default: diff --git a/src/wiphy.h b/src/wiphy.h index f8de7e0e..410105dd 100644 --- a/src/wiphy.h +++ b/src/wiphy.h @@ -29,6 +29,7 @@ struct scan_freq_set; struct wiphy_radio_work_item; struct ie_rsn_info; enum security; +enum band_freq; typedef bool (*wiphy_radio_work_func_t)(struct wiphy_radio_work_item *item); typedef void (*wiphy_radio_work_destroy_func_t)( @@ -112,7 +113,8 @@ uint8_t wiphy_get_max_num_ssids_per_scan(struct wiphy *wiphy); uint16_t wiphy_get_max_scan_ie_len(struct wiphy *wiphy); uint32_t wiphy_get_max_roc_duration(struct wiphy *wiphy); bool wiphy_supports_iftype(struct wiphy *wiphy, uint32_t iftype); -const uint8_t *wiphy_get_supported_rates(struct wiphy *wiphy, unsigned int band, +const uint8_t *wiphy_get_supported_rates(struct wiphy *wiphy, + enum band_freq band, unsigned int *out_num); bool wiphy_supports_adhoc_rsn(struct wiphy *wiphy); bool wiphy_can_offchannel_tx(struct wiphy *wiphy);