wifi: cfg80211: add cfg80211_get_iftype_ext_capa()
authorJohannes Berg <johannes.berg@intel.com>
Tue, 12 Jul 2022 16:32:49 +0000 (18:32 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Fri, 15 Jul 2022 09:43:23 +0000 (11:43 +0200)
Add a helper function cfg80211_get_iftype_ext_capa() to
look up interface type-specific (extended) capabilities.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
include/net/cfg80211.h
net/wireless/util.c

index 8dbc642..d5af3a7 100644 (file)
@@ -5006,6 +5006,14 @@ struct wiphy_iftype_ext_capab {
 };
 
 /**
+ * cfg80211_get_iftype_ext_capa - lookup interface type extended capability
+ * @wiphy: the wiphy to look up from
+ * @type: the interface type to look up
+ */
+const struct wiphy_iftype_ext_capab *
+cfg80211_get_iftype_ext_capa(struct wiphy *wiphy, enum nl80211_iftype type);
+
+/**
  * struct cfg80211_pmsr_capabilities - cfg80211 peer measurement capabilities
  * @max_peers: maximum number of peers in a single measurement
  * @report_ap_tsf: can report assoc AP's TSF for radio resource measurement
index fe7956c..2c12795 100644 (file)
@@ -2490,3 +2490,17 @@ int cfg80211_remove_virtual_intf(struct cfg80211_registered_device *rdev,
 
        return rdev_del_virtual_intf(rdev, wdev);
 }
+
+const struct wiphy_iftype_ext_capab *
+cfg80211_get_iftype_ext_capa(struct wiphy *wiphy, enum nl80211_iftype type)
+{
+       int i;
+
+       for (i = 0; i < wiphy->num_iftype_ext_capab; i++) {
+               if (wiphy->iftype_ext_capab[i].iftype == type)
+                       return &wiphy->iftype_ext_capab[i];
+       }
+
+       return NULL;
+}
+EXPORT_SYMBOL(cfg80211_get_iftype_ext_capa);