Lines Matching full:wiphy

50  * The fundamental structure for each device is the 'wiphy', of which each
52 * such wiphy can have zero, one, or many virtual interfaces associated with
60 * Each wiphy structure contains device capability information, and also has
65 struct wiphy;
223 * core code when registering the wiphy.
226 * core code when registering the wiphy.
229 * core code when registering the wiphy.
545 * This structure describes a frequency band a wiphy
710 * @wiphy: the wireless device to get extra limits for
719 * sure to call it only if channels in wiphy are copied and can be modified
727 void wiphy_read_of_freq_limits(struct wiphy *wiphy);
729 static inline void wiphy_read_of_freq_limits(struct wiphy *wiphy)
1047 * @wiphy: the wiphy to validate against
1052 bool cfg80211_chandef_usable(struct wiphy *wiphy,
1058 * @wiphy: the wiphy to validate against
1064 int cfg80211_chandef_dfs_required(struct wiphy *wiphy,
1071 * @wiphy: the wiphy to validate against
1077 bool cfg80211_chandef_dfs_usable(struct wiphy *wiphy,
1083 * @wiphy: the wiphy to validate against
1089 cfg80211_chandef_dfs_cac_time(struct wiphy *wiphy,
1144 * @wiphy: the wiphy to check for
1151 bool cfg80211_any_usable_channels(struct wiphy *wiphy,
1621 * @radio_idx: wiphy radio index or -1 for global
1867 * @wiphy: the wiphy this operates on
1879 int cfg80211_check_station_change(struct wiphy *wiphy,
2078 * @signal: The signal strength, type depends on the wiphy's signal_type.
2080 * @signal_avg: Average signal strength, type depends on the wiphy's
2170 * @signal: The signal strength, type depends on the wiphy's signal_type.
2172 * @signal_avg: Average signal strength, type depends on the wiphy's signal_type.
2738 * in the wiphy structure.
2814 * @wiphy: the wiphy this was for
2850 struct wiphy *wiphy;
2930 * @wiphy: the wiphy this was for
2986 struct wiphy *wiphy;
3015 * @signal: signal strength value, according to the wiphy's
3099 * @signal: signal strength value (type depends on the wiphy's signal_type)
3110 * @priv: private area for driver use, has at least wiphy->bss_priv_size bytes
3577 * @WIPHY_PARAM_RETRY_SHORT: wiphy->retry_short has changed
3578 * @WIPHY_PARAM_RETRY_LONG: wiphy->retry_long has changed
3579 * @WIPHY_PARAM_FRAG_THRESHOLD: wiphy->frag_threshold has changed
3580 * @WIPHY_PARAM_RTS_THRESHOLD: wiphy->rts_threshold has changed
4437 * All operations are invoked with the wiphy mutex held. The RTNL may be
4442 * @suspend: wiphy device needs to be suspended. The variable @wow will
4445 * @resume: wiphy device needs to be resumed
4452 * the new netdev in the wiphy's network namespace! Returns the struct
4610 * @set_wiphy_params: Notify that wiphy parameters have changed;
4613 * struct wiphy. If returning an error, no value should be changed.
4617 * wdev may be %NULL if power was set for the wiphy, and will
4831 * (invoked with the wiphy mutex held)
4843 int (*suspend)(struct wiphy *wiphy, struct cfg80211_wowlan *wow);
4844 int (*resume)(struct wiphy *wiphy);
4845 void (*set_wakeup)(struct wiphy *wiphy, bool enabled);
4847 struct wireless_dev * (*add_virtual_intf)(struct wiphy *wiphy,
4852 int (*del_virtual_intf)(struct wiphy *wiphy,
4854 int (*change_virtual_intf)(struct wiphy *wiphy,
4859 int (*add_intf_link)(struct wiphy *wiphy,
4862 void (*del_intf_link)(struct wiphy *wiphy,
4866 int (*add_key)(struct wiphy *wiphy, struct net_device *netdev,
4869 int (*get_key)(struct wiphy *wiphy, struct net_device *netdev,
4873 int (*del_key)(struct wiphy *wiphy, struct net_device *netdev,
4876 int (*set_default_key)(struct wiphy *wiphy,
4879 int (*set_default_mgmt_key)(struct wiphy *wiphy,
4882 int (*set_default_beacon_key)(struct wiphy *wiphy,
4887 int (*start_ap)(struct wiphy *wiphy, struct net_device *dev,
4889 int (*change_beacon)(struct wiphy *wiphy, struct net_device *dev,
4891 int (*stop_ap)(struct wiphy *wiphy, struct net_device *dev,
4895 int (*add_station)(struct wiphy *wiphy, struct net_device *dev,
4898 int (*del_station)(struct wiphy *wiphy, struct net_device *dev,
4900 int (*change_station)(struct wiphy *wiphy, struct net_device *dev,
4903 int (*get_station)(struct wiphy *wiphy, struct net_device *dev,
4905 int (*dump_station)(struct wiphy *wiphy, struct net_device *dev,
4908 int (*add_mpath)(struct wiphy *wiphy, struct net_device *dev,
4910 int (*del_mpath)(struct wiphy *wiphy, struct net_device *dev,
4912 int (*change_mpath)(struct wiphy *wiphy, struct net_device *dev,
4914 int (*get_mpath)(struct wiphy *wiphy, struct net_device *dev,
4916 int (*dump_mpath)(struct wiphy *wiphy, struct net_device *dev,
4919 int (*get_mpp)(struct wiphy *wiphy, struct net_device *dev,
4921 int (*dump_mpp)(struct wiphy *wiphy, struct net_device *dev,
4924 int (*get_mesh_config)(struct wiphy *wiphy,
4927 int (*update_mesh_config)(struct wiphy *wiphy,
4930 int (*join_mesh)(struct wiphy *wiphy, struct net_device *dev,
4933 int (*leave_mesh)(struct wiphy *wiphy, struct net_device *dev);
4935 int (*join_ocb)(struct wiphy *wiphy, struct net_device *dev,
4937 int (*leave_ocb)(struct wiphy *wiphy, struct net_device *dev);
4939 int (*change_bss)(struct wiphy *wiphy, struct net_device *dev,
4942 void (*inform_bss)(struct wiphy *wiphy, struct cfg80211_bss *bss,
4945 int (*set_txq_params)(struct wiphy *wiphy, struct net_device *dev,
4948 int (*libertas_set_mesh_channel)(struct wiphy *wiphy,
4952 int (*set_monitor_channel)(struct wiphy *wiphy,
4956 int (*scan)(struct wiphy *wiphy,
4958 void (*abort_scan)(struct wiphy *wiphy, struct wireless_dev *wdev);
4960 int (*auth)(struct wiphy *wiphy, struct net_device *dev,
4962 int (*assoc)(struct wiphy *wiphy, struct net_device *dev,
4964 int (*deauth)(struct wiphy *wiphy, struct net_device *dev,
4966 int (*disassoc)(struct wiphy *wiphy, struct net_device *dev,
4969 int (*connect)(struct wiphy *wiphy, struct net_device *dev,
4971 int (*update_connect_params)(struct wiphy *wiphy,
4975 int (*disconnect)(struct wiphy *wiphy, struct net_device *dev,
4978 int (*join_ibss)(struct wiphy *wiphy, struct net_device *dev,
4980 int (*leave_ibss)(struct wiphy *wiphy, struct net_device *dev);
4982 int (*set_mcast_rate)(struct wiphy *wiphy, struct net_device *dev,
4985 int (*set_wiphy_params)(struct wiphy *wiphy, int radio_idx,
4988 int (*set_tx_power)(struct wiphy *wiphy, struct wireless_dev *wdev,
4991 int (*get_tx_power)(struct wiphy *wiphy, struct wireless_dev *wdev,
4994 void (*rfkill_poll)(struct wiphy *wiphy);
4997 int (*testmode_cmd)(struct wiphy *wiphy, struct wireless_dev *wdev,
4999 int (*testmode_dump)(struct wiphy *wiphy, struct sk_buff *skb,
5004 int (*set_bitrate_mask)(struct wiphy *wiphy,
5010 int (*dump_survey)(struct wiphy *wiphy, struct net_device *netdev,
5013 int (*set_pmksa)(struct wiphy *wiphy, struct net_device *netdev,
5015 int (*del_pmksa)(struct wiphy *wiphy, struct net_device *netdev,
5017 int (*flush_pmksa)(struct wiphy *wiphy, struct net_device *netdev);
5019 int (*remain_on_channel)(struct wiphy *wiphy,
5024 int (*cancel_remain_on_channel)(struct wiphy *wiphy,
5028 int (*mgmt_tx)(struct wiphy *wiphy, struct wireless_dev *wdev,
5031 int (*mgmt_tx_cancel_wait)(struct wiphy *wiphy,
5035 int (*set_power_mgmt)(struct wiphy *wiphy, struct net_device *dev,
5038 int (*set_cqm_rssi_config)(struct wiphy *wiphy,
5042 int (*set_cqm_rssi_range_config)(struct wiphy *wiphy,
5046 int (*set_cqm_txe_config)(struct wiphy *wiphy,
5050 void (*update_mgmt_frame_registrations)(struct wiphy *wiphy,
5054 int (*set_antenna)(struct wiphy *wiphy, int radio_idx,
5056 int (*get_antenna)(struct wiphy *wiphy, int radio_idx,
5059 int (*sched_scan_start)(struct wiphy *wiphy,
5062 int (*sched_scan_stop)(struct wiphy *wiphy, struct net_device *dev,
5065 int (*set_rekey_data)(struct wiphy *wiphy, struct net_device *dev,
5068 int (*tdls_mgmt)(struct wiphy *wiphy, struct net_device *dev,
5073 int (*tdls_oper)(struct wiphy *wiphy, struct net_device *dev,
5076 int (*probe_client)(struct wiphy *wiphy, struct net_device *dev,
5079 int (*set_noack_map)(struct wiphy *wiphy,
5083 int (*get_channel)(struct wiphy *wiphy,
5088 int (*start_p2p_device)(struct wiphy *wiphy,
5090 void (*stop_p2p_device)(struct wiphy *wiphy,
5093 int (*set_mac_acl)(struct wiphy *wiphy, struct net_device *dev,
5096 int (*start_radar_detection)(struct wiphy *wiphy,
5100 void (*end_cac)(struct wiphy *wiphy,
5102 int (*update_ft_ies)(struct wiphy *wiphy, struct net_device *dev,
5104 int (*crit_proto_start)(struct wiphy *wiphy,
5108 void (*crit_proto_stop)(struct wiphy *wiphy,
5110 int (*set_coalesce)(struct wiphy *wiphy,
5113 int (*channel_switch)(struct wiphy *wiphy,
5117 int (*set_qos_map)(struct wiphy *wiphy,
5121 int (*set_ap_chanwidth)(struct wiphy *wiphy, struct net_device *dev,
5125 int (*add_tx_ts)(struct wiphy *wiphy, struct net_device *dev,
5128 int (*del_tx_ts)(struct wiphy *wiphy, struct net_device *dev,
5131 int (*tdls_channel_switch)(struct wiphy *wiphy,
5135 void (*tdls_cancel_channel_switch)(struct wiphy *wiphy,
5138 int (*start_nan)(struct wiphy *wiphy, struct wireless_dev *wdev,
5140 void (*stop_nan)(struct wiphy *wiphy, struct wireless_dev *wdev);
5141 int (*add_nan_func)(struct wiphy *wiphy, struct wireless_dev *wdev,
5143 void (*del_nan_func)(struct wiphy *wiphy, struct wireless_dev *wdev,
5145 int (*nan_change_conf)(struct wiphy *wiphy,
5150 int (*set_multicast_to_unicast)(struct wiphy *wiphy,
5154 int (*get_txq_stats)(struct wiphy *wiphy,
5158 int (*set_pmk)(struct wiphy *wiphy, struct net_device *dev,
5160 int (*del_pmk)(struct wiphy *wiphy, struct net_device *dev,
5162 int (*external_auth)(struct wiphy *wiphy, struct net_device *dev,
5165 int (*tx_control_port)(struct wiphy *wiphy,
5172 int (*get_ftm_responder_stats)(struct wiphy *wiphy,
5176 int (*start_pmsr)(struct wiphy *wiphy, struct wireless_dev *wdev,
5178 void (*abort_pmsr)(struct wiphy *wiphy, struct wireless_dev *wdev,
5180 int (*update_owe_info)(struct wiphy *wiphy, struct net_device *dev,
5182 int (*probe_mesh_link)(struct wiphy *wiphy, struct net_device *dev,
5184 int (*set_tid_config)(struct wiphy *wiphy, struct net_device *dev,
5186 int (*reset_tid_config)(struct wiphy *wiphy, struct net_device *dev,
5188 int (*set_sar_specs)(struct wiphy *wiphy,
5190 int (*color_change)(struct wiphy *wiphy,
5193 int (*set_fils_aad)(struct wiphy *wiphy, struct net_device *dev,
5195 int (*set_radar_background)(struct wiphy *wiphy,
5197 int (*add_link_station)(struct wiphy *wiphy, struct net_device *dev,
5199 int (*mod_link_station)(struct wiphy *wiphy, struct net_device *dev,
5201 int (*del_link_station)(struct wiphy *wiphy, struct net_device *dev,
5203 int (*set_hw_timestamp)(struct wiphy *wiphy, struct net_device *dev,
5205 int (*set_ttlm)(struct wiphy *wiphy, struct net_device *dev,
5207 u32 (*get_radio_mask)(struct wiphy *wiphy, struct net_device *dev);
5208 int (*assoc_ml_reconf)(struct wiphy *wiphy, struct net_device *dev,
5210 int (*set_epcs)(struct wiphy *wiphy, struct net_device *dev,
5220 * enum wiphy_flags - wiphy capability flags
5225 * wiphy at all
5582 int (*doit)(struct wiphy *wiphy, struct wireless_dev *wdev,
5584 int (*dumpit)(struct wiphy *wiphy, struct wireless_dev *wdev,
5615 * @wiphy: the wiphy to look up from
5621 cfg80211_get_iftype_ext_capa(struct wiphy *wiphy, enum nl80211_iftype type);
5680 * struct wiphy_radio_cfg - physical radio config of a wiphy
5682 * wiphy. It is used to denote per-radio attributes belonging to a wiphy.
5692 * struct wiphy_radio_freq_range - wiphy frequency range
5703 * struct wiphy_radio - physical radio of a wiphy
5704 * This structure describes a physical radio belonging to a wiphy.
5742 * This structure describes the NAN capabilities of a wiphy.
5766 * struct wiphy - wireless hardware description
5793 * @_net: the network namespace this wiphy currently lives in
5808 * @debugfsdir: debugfs directory used for this wiphy (ieee80211/<wiphyname>).
5809 * It will be renamed automatically on wiphy renames
5810 * @dev: (virtual) struct device for this wiphy. The item in
5815 * @interface_modes: bitmask of interfaces types valid for this wiphy,
5822 * @flags: wiphy flags, see &enum wiphy_flags
5823 * @regulatory_flags: wiphy regulatory flags, see
5855 * wiphy is theirs, e.g. in global notifiers
5873 * when the wiphy flag @WIPHY_FLAG_AP_PROBE_RESP_OFFLOAD is set.
5988 * @radio_cfg: configuration of radios belonging to a muli-radio wiphy. This
5990 * used only for multi-radio wiphy.
5992 * @radio: radios belonging to this wiphy
5995 struct wiphy {
5998 /* assign these fields before you register the wiphy */
6078 void (*reg_notifier)(struct wiphy *wiphy,
6154 static inline struct net *wiphy_net(struct wiphy *wiphy)
6156 return read_pnet(&wiphy->_net);
6159 static inline void wiphy_net_set(struct wiphy *wiphy, struct net *net)
6161 write_pnet(&wiphy->_net, net);
6165 * wiphy_priv - return priv from wiphy
6167 * @wiphy: the wiphy whose priv pointer to return
6168 * Return: The priv of @wiphy.
6170 static inline void *wiphy_priv(struct wiphy *wiphy)
6172 BUG_ON(!wiphy);
6173 return &wiphy->priv;
6177 * priv_to_wiphy - return the wiphy containing the priv
6180 * Return: The wiphy of @priv.
6182 static inline struct wiphy *priv_to_wiphy(void *priv)
6185 return container_of(priv, struct wiphy, priv);
6189 * set_wiphy_dev - set device pointer for wiphy
6191 * @wiphy: The wiphy whose device to bind
6194 static inline void set_wiphy_dev(struct wiphy *wiphy, struct device *dev)
6196 wiphy->dev.parent = dev;
6200 * wiphy_dev - get wiphy dev pointer
6202 * @wiphy: The wiphy whose device struct to look up
6203 * Return: The dev of @wiphy.
6205 static inline struct device *wiphy_dev(struct wiphy *wiphy)
6207 return wiphy->dev.parent;
6211 * wiphy_name - get wiphy name
6213 * @wiphy: The wiphy whose name to return
6214 * Return: The name of @wiphy.
6216 static inline const char *wiphy_name(const struct wiphy *wiphy)
6218 return dev_name(&wiphy->dev);
6222 * wiphy_new_nm - create a new wiphy for use with cfg80211
6229 * Create a new wiphy and associate the given operations with it.
6232 * Return: A pointer to the new wiphy. This pointer must be
6235 struct wiphy *wiphy_new_nm(const struct cfg80211_ops *ops, int sizeof_priv,
6239 * wiphy_new - create a new wiphy for use with cfg80211
6244 * Create a new wiphy and associate the given operations with it.
6247 * Return: A pointer to the new wiphy. This pointer must be
6250 static inline struct wiphy *wiphy_new(const struct cfg80211_ops *ops,
6257 * wiphy_register - register a wiphy with cfg80211
6259 * @wiphy: The wiphy to register.
6261 * Return: A non-negative wiphy index or a negative error code.
6263 int wiphy_register(struct wiphy *wiphy);
6266 #define lockdep_assert_wiphy(wiphy) lockdep_assert_held(&(wiphy)->mtx)
6270 * @wiphy: the wiphy to check the locking on
6276 #define rcu_dereference_wiphy(wiphy, p) \
6277 rcu_dereference_check(p, lockdep_is_held(&wiphy->mtx))
6280 * wiphy_dereference - fetch RCU pointer when updates are prevented by wiphy mtx
6281 * @wiphy: the wiphy to check the locking on
6285 * READ_ONCE(), because caller holds the wiphy mutex used for updates.
6287 #define wiphy_dereference(wiphy, p) \
6288 rcu_dereference_protected(p, lockdep_is_held(&wiphy->mtx))
6291 * get_wiphy_regdom - get custom regdomain for the given wiphy
6292 * @wiphy: the wiphy to get the regdomain from
6294 * Context: Requires any of RTNL, wiphy mutex or RCU protection.
6296 * Return: pointer to the regulatory domain associated with the wiphy
6298 const struct ieee80211_regdomain *get_wiphy_regdom(struct wiphy *wiphy);
6301 * wiphy_unregister - deregister a wiphy from cfg80211
6303 * @wiphy: The wiphy to unregister.
6309 void wiphy_unregister(struct wiphy *wiphy);
6312 * wiphy_free - free wiphy
6314 * @wiphy: The wiphy to free
6316 void wiphy_free(struct wiphy *wiphy);
6325 * wiphy_lock - lock the wiphy
6326 * @wiphy: the wiphy to lock
6335 * When cfg80211 ops are called, the wiphy is already locked.
6340 static inline void wiphy_lock(struct wiphy *wiphy)
6341 __acquires(&wiphy->mtx)
6343 mutex_lock(&wiphy->mtx);
6344 __acquire(&wiphy->mtx);
6348 * wiphy_unlock - unlock the wiphy again
6349 * @wiphy: the wiphy to unlock
6351 static inline void wiphy_unlock(struct wiphy *wiphy)
6352 __releases(&wiphy->mtx)
6354 __release(&wiphy->mtx);
6355 mutex_unlock(&wiphy->mtx);
6358 DEFINE_GUARD(wiphy, struct wiphy *,
6363 typedef void (*wiphy_work_func_t)(struct wiphy *, struct wiphy_work *);
6378 * wiphy_work_queue - queue work for the wiphy
6379 * @wiphy: the wiphy to queue for
6383 * queued here has the special property that the wiphy mutex will be
6389 void wiphy_work_queue(struct wiphy *wiphy, struct wiphy_work *work);
6393 * @wiphy: the wiphy, for debug purposes
6397 * called under the wiphy mutex acquired by wiphy_lock().
6399 void wiphy_work_cancel(struct wiphy *wiphy, struct wiphy_work *work);
6403 * @wiphy: the wiphy, for debug purposes
6407 * under the wiphy mutex acquired by wiphy_lock().
6409 void wiphy_work_flush(struct wiphy *wiphy, struct wiphy_work *work);
6413 struct wiphy *wiphy;
6427 * wiphy_delayed_work_queue - queue delayed work for the wiphy
6428 * @wiphy: the wiphy to queue for
6433 * queued here has the special property that the wiphy mutex will be
6439 void wiphy_delayed_work_queue(struct wiphy *wiphy,
6445 * @wiphy: the wiphy, for debug purposes
6449 * called under the wiphy mutex acquired by wiphy_lock().
6451 void wiphy_delayed_work_cancel(struct wiphy *wiphy,
6456 * @wiphy: the wiphy, for debug purposes
6460 * under the wiphy mutex acquired by wiphy_lock().
6462 void wiphy_delayed_work_flush(struct wiphy *wiphy,
6466 * wiphy_delayed_work_pending - Find out whether a wiphy delayable
6469 * @wiphy: the wiphy, for debug purposes
6475 * when it expires calls wiphy_work_queue() to queue the wiphy work.
6506 bool wiphy_delayed_work_pending(struct wiphy *wiphy,
6532 * however, drivers must lock the wiphy before registering or
6534 * called from cfg80211, the wiphy is already locked.)
6541 * @wiphy: pointer to hardware description
6544 * @registering: indicates we're doing registration under wiphy lock
6606 struct wiphy *wiphy;
6738 * wdev_priv - return wiphy priv from wireless_dev
6740 * @wdev: The wireless device whose wiphy's priv pointer to return
6741 * Return: The wiphy priv of @wdev.
6746 return wiphy_priv(wdev->wiphy);
6846 * ieee80211_get_channel_khz - get channel struct from wiphy for specified
6848 * @wiphy: the struct wiphy to get the channel for
6850 * Return: The channel struct from @wiphy at @freq.
6853 ieee80211_get_channel_khz(struct wiphy *wiphy, u32 freq);
6856 * ieee80211_get_channel - get channel struct from wiphy for specified frequency
6858 * @wiphy: the struct wiphy to get the channel for
6860 * Return: The channel struct from @wiphy at @freq.
6863 ieee80211_get_channel(struct wiphy *wiphy, int freq)
6865 return ieee80211_get_channel_khz(wiphy, MHZ_TO_KHZ(freq));
6888 * @radio: wiphy radio
7424 * @wiphy: the wireless device giving the hint (used only for reporting
7438 * The wiphy must have been registered to cfg80211 prior to this call.
7447 int regulatory_hint(struct wiphy *wiphy, const char *alpha2);
7451 * @wiphy: the wireless device we want to process the regulatory domain on
7452 * @rd: the regulatory domain information to use for this wiphy
7460 int regulatory_set_wiphy_regd(struct wiphy *wiphy,
7465 * @wiphy: the wireless device we want to process the regulatory domain on
7466 * @rd: the regulatory domain information to use for this wiphy
7468 * This functions requires the RTNL and the wiphy mutex to be held and
7469 * applies the new regdomain synchronously to this wiphy. For more details
7474 int regulatory_set_wiphy_regd_sync(struct wiphy *wiphy,
7479 * @wiphy: the wireless device we want to process the regulatory domain on
7480 * @regd: the custom regulatory domain to use for this wiphy
7484 * domains. This routine must be called prior to wiphy registration. The
7488 * Drivers using this for a wiphy should also set the wiphy flag
7489 * REGULATORY_CUSTOM_REG or cfg80211 will set it for the wiphy
7492 void wiphy_apply_custom_regulatory(struct wiphy *wiphy,
7497 * @wiphy: the wiphy for which we want to process this rule for
7513 const struct ieee80211_reg_rule *freq_reg_info(struct wiphy *wiphy,
7529 * @wiphy: wiphy for which pre-CAC capability is checked.
7535 bool regulatory_pre_cac_allowed(struct wiphy *wiphy);
7579 * @wiphy: the wiphy which got scheduled scan results
7582 void cfg80211_sched_scan_results(struct wiphy *wiphy, u64 reqid);
7587 * @wiphy: the wiphy on which the scheduled scan stopped
7594 void cfg80211_sched_scan_stopped(struct wiphy *wiphy, u64 reqid);
7599 * @wiphy: the wiphy on which the scheduled scan stopped
7605 * This function should be called with the wiphy mutex held.
7607 void cfg80211_sched_scan_stopped_locked(struct wiphy *wiphy, u64 reqid);
7611 * @wiphy: the wiphy reporting the BSS
7624 cfg80211_inform_bss_frame_data(struct wiphy *wiphy,
7630 cfg80211_inform_bss_frame(struct wiphy *wiphy,
7640 return cfg80211_inform_bss_frame_data(wiphy, &data, mgmt, len, gfp);
7736 * @wiphy: the wiphy reporting the BSS
7754 cfg80211_inform_bss_data(struct wiphy *wiphy,
7762 cfg80211_inform_bss(struct wiphy *wiphy,
7774 return cfg80211_inform_bss_data(wiphy, &data, ftype, bssid, tsf,
7781 * @wiphy: the wiphy this BSS struct belongs to
7792 struct cfg80211_bss *__cfg80211_get_bss(struct wiphy *wiphy,
7802 * @wiphy: the wiphy this BSS struct belongs to
7815 cfg80211_get_bss(struct wiphy *wiphy, struct ieee80211_channel *channel,
7820 return __cfg80211_get_bss(wiphy, channel, bssid, ssid, ssid_len,
7826 cfg80211_get_ibss(struct wiphy *wiphy,
7830 return cfg80211_get_bss(wiphy, channel, NULL, ssid, ssid_len,
7837 * @wiphy: the wiphy this BSS struct belongs to
7842 void cfg80211_ref_bss(struct wiphy *wiphy, struct cfg80211_bss *bss);
7846 * @wiphy: the wiphy this BSS struct belongs to
7851 void cfg80211_put_bss(struct wiphy *wiphy, struct cfg80211_bss *bss);
7855 * @wiphy: the wiphy
7863 void cfg80211_unlink_bss(struct wiphy *wiphy, struct cfg80211_bss *bss);
7868 * This function iterates over the BSS entries associated with the given wiphy
7872 * @wiphy: the wiphy
7878 void cfg80211_bss_iter(struct wiphy *wiphy,
7880 void (*iter)(struct wiphy *wiphy,
8086 * @wiphy: the wiphy
8090 void wiphy_rfkill_set_hw_state_reason(struct wiphy *wiphy, bool blocked,
8093 static inline void wiphy_rfkill_set_hw_state(struct wiphy *wiphy, bool blocked)
8095 wiphy_rfkill_set_hw_state_reason(wiphy, blocked,
8101 * @wiphy: the wiphy
8103 void wiphy_rfkill_start_polling(struct wiphy *wiphy);
8107 * @wiphy: the wiphy
8109 static inline void wiphy_rfkill_stop_polling(struct wiphy *wiphy)
8111 rfkill_pause_polling(wiphy->rfkill);
8124 * in struct wiphy, with handlers for each one. Each command has an
8134 struct sk_buff *__cfg80211_alloc_reply_skb(struct wiphy *wiphy,
8139 struct sk_buff *__cfg80211_alloc_event_skb(struct wiphy *wiphy,
8151 * @wiphy: the wiphy
8173 cfg80211_vendor_cmd_alloc_reply_skb(struct wiphy *wiphy, int approxlen)
8175 return __cfg80211_alloc_reply_skb(wiphy, NL80211_CMD_VENDOR,
8195 * @wiphy: the wiphy
8201 unsigned int cfg80211_vendor_cmd_get_sender(struct wiphy *wiphy);
8205 * @wiphy: the wiphy
8207 * @event_idx: index of the vendor event in the wiphy's vendor_events
8225 cfg80211_vendor_event_alloc(struct wiphy *wiphy, struct wireless_dev *wdev,
8228 return __cfg80211_alloc_event_skb(wiphy, wdev, NL80211_CMD_VENDOR,
8235 * @wiphy: the wiphy
8237 * @event_idx: index of the vendor event in the wiphy's vendor_events
8258 cfg80211_vendor_event_alloc_ucast(struct wiphy *wiphy,
8263 return __cfg80211_alloc_event_skb(wiphy, wdev, NL80211_CMD_VENDOR,
8295 * @wiphy: the wiphy
8303 * The returned skb is pre-filled with the wiphy index and set up in
8317 cfg80211_testmode_alloc_reply_skb(struct wiphy *wiphy, int approxlen)
8319 return __cfg80211_alloc_reply_skb(wiphy, NL80211_CMD_TESTMODE,
8342 * @wiphy: the wiphy
8362 cfg80211_testmode_alloc_event_skb(struct wiphy *wiphy, int approxlen, gfp_t gfp)
8364 return __cfg80211_alloc_event_skb(wiphy, NULL, NL80211_CMD_TESTMODE,
9099 * @wiphy: the wiphy
9106 void __cfg80211_radar_event(struct wiphy *wiphy,
9111 cfg80211_radar_event(struct wiphy *wiphy,
9115 __cfg80211_radar_event(wiphy, chandef, false, gfp);
9119 cfg80211_background_radar_event(struct wiphy *wiphy,
9123 __cfg80211_radar_event(wiphy, chandef, true, gfp);
9159 * @wiphy: the wiphy
9164 void cfg80211_background_cac_abort(struct wiphy *wiphy);
9236 * @wiphy: The wiphy that received the beacon
9246 void cfg80211_report_obss_beacon_khz(struct wiphy *wiphy, const u8 *frame,
9251 * @wiphy: The wiphy that received the beacon
9261 static inline void cfg80211_report_obss_beacon(struct wiphy *wiphy,
9265 cfg80211_report_obss_beacon_khz(wiphy, frame, len, MHZ_TO_KHZ(freq),
9274 * NOTE: If this is set, wiphy mutex must be held.
9286 * @wiphy: the wiphy
9293 bool cfg80211_reg_check_beaconing(struct wiphy *wiphy,
9299 * @wiphy: the wiphy
9307 cfg80211_reg_can_beacon(struct wiphy *wiphy,
9315 return cfg80211_reg_check_beaconing(wiphy, chandef, &config);
9320 * @wiphy: the wiphy
9329 * Context: Requires the wiphy mutex to be held.
9332 cfg80211_reg_can_beacon_relax(struct wiphy *wiphy,
9341 return cfg80211_reg_check_beaconing(wiphy, chandef, &config);
9350 * Caller must hold wiphy mutex, therefore must only be called from sleepable
9459 * Context: Requires the RTNL and wiphy mutex to be held.
9472 * Context: Requires the RTNL and wiphy mutex to be held.
9487 * Context: Requires the RTNL and wiphy mutex to be held.
9644 * @wiphy: the wiphy
9648 unsigned int ieee80211_get_num_supported_channels(struct wiphy *wiphy);
9653 * @wiphy: the wiphy
9662 int cfg80211_check_combinations(struct wiphy *wiphy,
9668 * @wiphy: the wiphy
9679 int cfg80211_iter_combinations(struct wiphy *wiphy,
9687 * @wiphy: the wiphy
9692 int cfg80211_get_radio_idx_by_chan(struct wiphy *wiphy,
9699 * @wiphy: the wiphy
9708 void cfg80211_stop_iface(struct wiphy *wiphy, struct wireless_dev *wdev,
9712 * cfg80211_shutdown_all_interfaces - shut down all interfaces for a wiphy
9713 * @wiphy: the wiphy to shut down
9715 * This function shuts down all interfaces belonging to this wiphy by
9723 void cfg80211_shutdown_all_interfaces(struct wiphy *wiphy);
9728 * @wiphy: the wiphy to modify.
9732 * &struct wiphy.@ext_features)
9734 static inline void wiphy_ext_feature_set(struct wiphy *wiphy,
9739 ft_byte = &wiphy->ext_features[ftidx / 8];
9746 * @wiphy: the wiphy to modify.
9750 * &struct wiphy.@ext_features)
9755 wiphy_ext_feature_isset(struct wiphy *wiphy,
9760 ft_byte = wiphy->ext_features[ftidx / 8];
9866 * @wiphy: the wiphy
9877 bool cfg80211_iftype_allowed(struct wiphy *wiphy, enum nl80211_iftype iftype,
9897 #define wiphy_printk(level, wiphy, format, args...) \
9898 dev_printk(level, &(wiphy)->dev, format, ##args)
9899 #define wiphy_emerg(wiphy, format, args...) \
9900 dev_emerg(&(wiphy)->dev, format, ##args)
9901 #define wiphy_alert(wiphy, format, args...) \
9902 dev_alert(&(wiphy)->dev, format, ##args)
9903 #define wiphy_crit(wiphy, format, args...) \
9904 dev_crit(&(wiphy)->dev, format, ##args)
9905 #define wiphy_err(wiphy, format, args...) \
9906 dev_err(&(wiphy)->dev, format, ##args)
9907 #define wiphy_warn(wiphy, format, args...) \
9908 dev_warn(&(wiphy)->dev, format, ##args)
9909 #define wiphy_notice(wiphy, format, args...) \
9910 dev_notice(&(wiphy)->dev, format, ##args)
9911 #define wiphy_info(wiphy, format, args...) \
9912 dev_info(&(wiphy)->dev, format, ##args)
9913 #define wiphy_info_once(wiphy, format, args...) \
9914 dev_info_once(&(wiphy)->dev, format, ##args)
9916 #define wiphy_err_ratelimited(wiphy, format, args...) \
9917 dev_err_ratelimited(&(wiphy)->dev, format, ##args)
9918 #define wiphy_warn_ratelimited(wiphy, format, args...) \
9919 dev_warn_ratelimited(&(wiphy)->dev, format, ##args)
9921 #define wiphy_debug(wiphy, format, args...) \
9922 wiphy_printk(KERN_DEBUG, wiphy, format, ##args)
9924 #define wiphy_dbg(wiphy, format, args...) \
9925 dev_dbg(&(wiphy)->dev, format, ##args)
9930 #define wiphy_vdbg(wiphy, format, args...) \
9933 wiphy_printk(KERN_DEBUG, wiphy, format, ##args); \
9943 #define wiphy_WARN(wiphy, format, args...) \
9944 WARN(1, "wiphy: %s\n" format, wiphy_name(wiphy), ##args);
9958 * @wiphy: the wiphy
9960 void cfg80211_bss_flush(struct wiphy *wiphy);
10138 * @wiphy: the wiphy to use
10145 * @handler: the read handler to call (under wiphy lock)
10150 ssize_t wiphy_locked_debugfs_read(struct wiphy *wiphy, struct file *file,
10154 ssize_t (*handler)(struct wiphy *wiphy,
10163 * @wiphy: the wiphy to use
10169 * @handler: the write handler to call (under wiphy lock)
10174 ssize_t wiphy_locked_debugfs_write(struct wiphy *wiphy, struct file *file,
10177 ssize_t (*handler)(struct wiphy *wiphy,
10218 * @wiphy: wiphy the channel belongs to
10229 cfg80211_s1g_get_primary_sibling(struct wiphy *wiphy,
10250 return ieee80211_get_channel_khz(wiphy, sibling_1mhz_khz);