Lines Matching refs: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;
204 * core code when registering the wiphy.
207 * core code when registering the wiphy.
210 * core code when registering the wiphy.
513 * This structure describes a frequency band a wiphy
642 * @wiphy: the wireless device to get extra limits for
651 * sure to call it only if channels in wiphy are copied and can be modified
659 void wiphy_read_of_freq_limits(struct wiphy *wiphy);
661 static inline void wiphy_read_of_freq_limits(struct wiphy *wiphy)
935 * @wiphy: the wiphy to validate against
940 bool cfg80211_chandef_usable(struct wiphy *wiphy,
946 * @wiphy: the wiphy to validate against
952 int cfg80211_chandef_dfs_required(struct wiphy *wiphy,
1031 * @wiphy: the wiphy to check for
1036 bool cfg80211_any_usable_channels(struct wiphy *wiphy,
1679 * @wiphy: the wiphy this operates on
1689 int cfg80211_check_station_change(struct wiphy *wiphy,
1890 * @signal: The signal strength, type depends on the wiphy's signal_type.
1892 * @signal_avg: Average signal strength, type depends on the wiphy's signal_type.
2423 * in the wiphy structure.
2500 * @wiphy: the wiphy this was for
2536 struct wiphy *wiphy;
2625 * @wiphy: the wiphy this was for
2682 struct wiphy *wiphy;
2712 * @signal: signal strength value, according to the wiphy's
2786 * @signal: signal strength value (type depends on the wiphy's signal_type)
2791 * @priv: private area for driver use, has at least wiphy->bss_priv_size bytes
3219 * @WIPHY_PARAM_RETRY_SHORT: wiphy->retry_short has changed
3220 * @WIPHY_PARAM_RETRY_LONG: wiphy->retry_long has changed
3221 * @WIPHY_PARAM_FRAG_THRESHOLD: wiphy->frag_threshold has changed
3222 * @WIPHY_PARAM_RTS_THRESHOLD: wiphy->rts_threshold has changed
4013 * All operations are invoked with the wiphy mutex held. The RTNL may be
4018 * @suspend: wiphy device needs to be suspended. The variable @wow will
4021 * @resume: wiphy device needs to be resumed
4028 * the new netdev in the wiphy's network namespace! Returns the struct
4186 * @set_wiphy_params: Notify that wiphy parameters have changed;
4189 * struct wiphy. If returning an error, no value should be changed.
4193 * wdev may be %NULL if power was set for the wiphy, and will
4406 int (*suspend)(struct wiphy *wiphy, struct cfg80211_wowlan *wow);
4407 int (*resume)(struct wiphy *wiphy);
4408 void (*set_wakeup)(struct wiphy *wiphy, bool enabled);
4410 struct wireless_dev * (*add_virtual_intf)(struct wiphy *wiphy,
4415 int (*del_virtual_intf)(struct wiphy *wiphy,
4417 int (*change_virtual_intf)(struct wiphy *wiphy,
4422 int (*add_intf_link)(struct wiphy *wiphy,
4425 void (*del_intf_link)(struct wiphy *wiphy,
4429 int (*add_key)(struct wiphy *wiphy, struct net_device *netdev,
4432 int (*get_key)(struct wiphy *wiphy, struct net_device *netdev,
4436 int (*del_key)(struct wiphy *wiphy, struct net_device *netdev,
4439 int (*set_default_key)(struct wiphy *wiphy,
4442 int (*set_default_mgmt_key)(struct wiphy *wiphy,
4445 int (*set_default_beacon_key)(struct wiphy *wiphy,
4450 int (*start_ap)(struct wiphy *wiphy, struct net_device *dev,
4452 int (*change_beacon)(struct wiphy *wiphy, struct net_device *dev,
4454 int (*stop_ap)(struct wiphy *wiphy, struct net_device *dev,
4458 int (*add_station)(struct wiphy *wiphy, struct net_device *dev,
4461 int (*del_station)(struct wiphy *wiphy, struct net_device *dev,
4463 int (*change_station)(struct wiphy *wiphy, struct net_device *dev,
4466 int (*get_station)(struct wiphy *wiphy, struct net_device *dev,
4468 int (*dump_station)(struct wiphy *wiphy, struct net_device *dev,
4471 int (*add_mpath)(struct wiphy *wiphy, struct net_device *dev,
4473 int (*del_mpath)(struct wiphy *wiphy, struct net_device *dev,
4475 int (*change_mpath)(struct wiphy *wiphy, struct net_device *dev,
4477 int (*get_mpath)(struct wiphy *wiphy, struct net_device *dev,
4479 int (*dump_mpath)(struct wiphy *wiphy, struct net_device *dev,
4482 int (*get_mpp)(struct wiphy *wiphy, struct net_device *dev,
4484 int (*dump_mpp)(struct wiphy *wiphy, struct net_device *dev,
4487 int (*get_mesh_config)(struct wiphy *wiphy,
4490 int (*update_mesh_config)(struct wiphy *wiphy,
4493 int (*join_mesh)(struct wiphy *wiphy, struct net_device *dev,
4496 int (*leave_mesh)(struct wiphy *wiphy, struct net_device *dev);
4498 int (*join_ocb)(struct wiphy *wiphy, struct net_device *dev,
4500 int (*leave_ocb)(struct wiphy *wiphy, struct net_device *dev);
4502 int (*change_bss)(struct wiphy *wiphy, struct net_device *dev,
4505 void (*inform_bss)(struct wiphy *wiphy, struct cfg80211_bss *bss,
4508 int (*set_txq_params)(struct wiphy *wiphy, struct net_device *dev,
4511 int (*libertas_set_mesh_channel)(struct wiphy *wiphy,
4515 int (*set_monitor_channel)(struct wiphy *wiphy,
4518 int (*scan)(struct wiphy *wiphy,
4520 void (*abort_scan)(struct wiphy *wiphy, struct wireless_dev *wdev);
4522 int (*auth)(struct wiphy *wiphy, struct net_device *dev,
4524 int (*assoc)(struct wiphy *wiphy, struct net_device *dev,
4526 int (*deauth)(struct wiphy *wiphy, struct net_device *dev,
4528 int (*disassoc)(struct wiphy *wiphy, struct net_device *dev,
4531 int (*connect)(struct wiphy *wiphy, struct net_device *dev,
4533 int (*update_connect_params)(struct wiphy *wiphy,
4537 int (*disconnect)(struct wiphy *wiphy, struct net_device *dev,
4540 int (*join_ibss)(struct wiphy *wiphy, struct net_device *dev,
4542 int (*leave_ibss)(struct wiphy *wiphy, struct net_device *dev);
4544 int (*set_mcast_rate)(struct wiphy *wiphy, struct net_device *dev,
4547 int (*set_wiphy_params)(struct wiphy *wiphy, u32 changed);
4549 int (*set_tx_power)(struct wiphy *wiphy, struct wireless_dev *wdev,
4551 int (*get_tx_power)(struct wiphy *wiphy, struct wireless_dev *wdev,
4554 void (*rfkill_poll)(struct wiphy *wiphy);
4557 int (*testmode_cmd)(struct wiphy *wiphy, struct wireless_dev *wdev,
4559 int (*testmode_dump)(struct wiphy *wiphy, struct sk_buff *skb,
4564 int (*set_bitrate_mask)(struct wiphy *wiphy,
4570 int (*dump_survey)(struct wiphy *wiphy, struct net_device *netdev,
4573 int (*set_pmksa)(struct wiphy *wiphy, struct net_device *netdev,
4575 int (*del_pmksa)(struct wiphy *wiphy, struct net_device *netdev,
4577 int (*flush_pmksa)(struct wiphy *wiphy, struct net_device *netdev);
4579 int (*remain_on_channel)(struct wiphy *wiphy,
4584 int (*cancel_remain_on_channel)(struct wiphy *wiphy,
4588 int (*mgmt_tx)(struct wiphy *wiphy, struct wireless_dev *wdev,
4591 int (*mgmt_tx_cancel_wait)(struct wiphy *wiphy,
4595 int (*set_power_mgmt)(struct wiphy *wiphy, struct net_device *dev,
4598 int (*set_cqm_rssi_config)(struct wiphy *wiphy,
4602 int (*set_cqm_rssi_range_config)(struct wiphy *wiphy,
4606 int (*set_cqm_txe_config)(struct wiphy *wiphy,
4610 void (*update_mgmt_frame_registrations)(struct wiphy *wiphy,
4614 int (*set_antenna)(struct wiphy *wiphy, u32 tx_ant, u32 rx_ant);
4615 int (*get_antenna)(struct wiphy *wiphy, u32 *tx_ant, u32 *rx_ant);
4617 int (*sched_scan_start)(struct wiphy *wiphy,
4620 int (*sched_scan_stop)(struct wiphy *wiphy, struct net_device *dev,
4623 int (*set_rekey_data)(struct wiphy *wiphy, struct net_device *dev,
4626 int (*tdls_mgmt)(struct wiphy *wiphy, struct net_device *dev,
4631 int (*tdls_oper)(struct wiphy *wiphy, struct net_device *dev,
4634 int (*probe_client)(struct wiphy *wiphy, struct net_device *dev,
4637 int (*set_noack_map)(struct wiphy *wiphy,
4641 int (*get_channel)(struct wiphy *wiphy,
4646 int (*start_p2p_device)(struct wiphy *wiphy,
4648 void (*stop_p2p_device)(struct wiphy *wiphy,
4651 int (*set_mac_acl)(struct wiphy *wiphy, struct net_device *dev,
4654 int (*start_radar_detection)(struct wiphy *wiphy,
4658 void (*end_cac)(struct wiphy *wiphy,
4660 int (*update_ft_ies)(struct wiphy *wiphy, struct net_device *dev,
4662 int (*crit_proto_start)(struct wiphy *wiphy,
4666 void (*crit_proto_stop)(struct wiphy *wiphy,
4668 int (*set_coalesce)(struct wiphy *wiphy,
4671 int (*channel_switch)(struct wiphy *wiphy,
4675 int (*set_qos_map)(struct wiphy *wiphy,
4679 int (*set_ap_chanwidth)(struct wiphy *wiphy, struct net_device *dev,
4683 int (*add_tx_ts)(struct wiphy *wiphy, struct net_device *dev,
4686 int (*del_tx_ts)(struct wiphy *wiphy, struct net_device *dev,
4689 int (*tdls_channel_switch)(struct wiphy *wiphy,
4693 void (*tdls_cancel_channel_switch)(struct wiphy *wiphy,
4696 int (*start_nan)(struct wiphy *wiphy, struct wireless_dev *wdev,
4698 void (*stop_nan)(struct wiphy *wiphy, struct wireless_dev *wdev);
4699 int (*add_nan_func)(struct wiphy *wiphy, struct wireless_dev *wdev,
4701 void (*del_nan_func)(struct wiphy *wiphy, struct wireless_dev *wdev,
4703 int (*nan_change_conf)(struct wiphy *wiphy,
4708 int (*set_multicast_to_unicast)(struct wiphy *wiphy,
4712 int (*get_txq_stats)(struct wiphy *wiphy,
4716 int (*set_pmk)(struct wiphy *wiphy, struct net_device *dev,
4718 int (*del_pmk)(struct wiphy *wiphy, struct net_device *dev,
4720 int (*external_auth)(struct wiphy *wiphy, struct net_device *dev,
4723 int (*tx_control_port)(struct wiphy *wiphy,
4730 int (*get_ftm_responder_stats)(struct wiphy *wiphy,
4734 int (*start_pmsr)(struct wiphy *wiphy, struct wireless_dev *wdev,
4736 void (*abort_pmsr)(struct wiphy *wiphy, struct wireless_dev *wdev,
4738 int (*update_owe_info)(struct wiphy *wiphy, struct net_device *dev,
4740 int (*probe_mesh_link)(struct wiphy *wiphy, struct net_device *dev,
4742 int (*set_tid_config)(struct wiphy *wiphy, struct net_device *dev,
4744 int (*reset_tid_config)(struct wiphy *wiphy, struct net_device *dev,
4746 int (*set_sar_specs)(struct wiphy *wiphy,
4748 int (*color_change)(struct wiphy *wiphy,
4751 int (*set_fils_aad)(struct wiphy *wiphy, struct net_device *dev,
4753 int (*set_radar_background)(struct wiphy *wiphy,
4755 int (*add_link_station)(struct wiphy *wiphy, struct net_device *dev,
4757 int (*mod_link_station)(struct wiphy *wiphy, struct net_device *dev,
4759 int (*del_link_station)(struct wiphy *wiphy, struct net_device *dev,
4761 int (*set_hw_timestamp)(struct wiphy *wiphy, struct net_device *dev,
4771 * enum wiphy_flags - wiphy capability flags
4776 * wiphy at all
5124 int (*doit)(struct wiphy *wiphy, struct wireless_dev *wdev,
5126 int (*dumpit)(struct wiphy *wiphy, struct wireless_dev *wdev,
5157 * @wiphy: the wiphy to look up from
5161 cfg80211_get_iftype_ext_capa(struct wiphy *wiphy, enum nl80211_iftype type);
5222 * struct wiphy - wireless hardware description
5249 * @_net: the network namespace this wiphy currently lives in
5264 * @debugfsdir: debugfs directory used for this wiphy (ieee80211/<wiphyname>).
5265 * It will be renamed automatically on wiphy renames
5266 * @dev: (virtual) struct device for this wiphy. The item in
5271 * @interface_modes: bitmask of interfaces types valid for this wiphy,
5278 * @flags: wiphy flags, see &enum wiphy_flags
5279 * @regulatory_flags: wiphy regulatory flags, see
5311 * wiphy is theirs, e.g. in global notifiers
5329 * when the wiphy flag @WIPHY_FLAG_AP_PROBE_RESP_OFFLOAD is set.
5438 struct wiphy {
5441 /* assign these fields before you register the wiphy */
5521 void (*reg_notifier)(struct wiphy *wiphy,
5590 static inline struct net *wiphy_net(struct wiphy *wiphy)
5592 return read_pnet(&wiphy->_net);
5595 static inline void wiphy_net_set(struct wiphy *wiphy, struct net *net)
5597 write_pnet(&wiphy->_net, net);
5601 * wiphy_priv - return priv from wiphy
5603 * @wiphy: the wiphy whose priv pointer to return
5604 * Return: The priv of @wiphy.
5606 static inline void *wiphy_priv(struct wiphy *wiphy)
5608 BUG_ON(!wiphy);
5609 return &wiphy->priv;
5613 * priv_to_wiphy - return the wiphy containing the priv
5616 * Return: The wiphy of @priv.
5618 static inline struct wiphy *priv_to_wiphy(void *priv)
5621 return container_of(priv, struct wiphy, priv);
5625 * set_wiphy_dev - set device pointer for wiphy
5627 * @wiphy: The wiphy whose device to bind
5630 static inline void set_wiphy_dev(struct wiphy *wiphy, struct device *dev)
5632 wiphy->dev.parent = dev;
5636 * wiphy_dev - get wiphy dev pointer
5638 * @wiphy: The wiphy whose device struct to look up
5639 * Return: The dev of @wiphy.
5641 static inline struct device *wiphy_dev(struct wiphy *wiphy)
5643 return wiphy->dev.parent;
5647 * wiphy_name - get wiphy name
5649 * @wiphy: The wiphy whose name to return
5650 * Return: The name of @wiphy.
5652 static inline const char *wiphy_name(const struct wiphy *wiphy)
5654 return dev_name(&wiphy->dev);
5658 * wiphy_new_nm - create a new wiphy for use with cfg80211
5665 * Create a new wiphy and associate the given operations with it.
5668 * Return: A pointer to the new wiphy. This pointer must be
5671 struct wiphy *wiphy_new_nm(const struct cfg80211_ops *ops, int sizeof_priv,
5675 * wiphy_new - create a new wiphy for use with cfg80211
5680 * Create a new wiphy and associate the given operations with it.
5683 * Return: A pointer to the new wiphy. This pointer must be
5686 static inline struct wiphy *wiphy_new(const struct cfg80211_ops *ops,
5693 * wiphy_register - register a wiphy with cfg80211
5695 * @wiphy: The wiphy to register.
5697 * Return: A non-negative wiphy index or a negative error code.
5699 int wiphy_register(struct wiphy *wiphy);
5702 #define lockdep_assert_wiphy(wiphy) lockdep_assert_held(&(wiphy)->mtx)
5706 * @wiphy: the wiphy to check the locking on
5712 #define rcu_dereference_wiphy(wiphy, p) \
5713 rcu_dereference_check(p, lockdep_is_held(&wiphy->mtx))
5716 * wiphy_dereference - fetch RCU pointer when updates are prevented by wiphy mtx
5717 * @wiphy: the wiphy to check the locking on
5721 * READ_ONCE(), because caller holds the wiphy mutex used for updates.
5723 #define wiphy_dereference(wiphy, p) \
5724 rcu_dereference_protected(p, lockdep_is_held(&wiphy->mtx))
5727 * get_wiphy_regdom - get custom regdomain for the given wiphy
5728 * @wiphy: the wiphy to get the regdomain from
5730 const struct ieee80211_regdomain *get_wiphy_regdom(struct wiphy *wiphy);
5733 * wiphy_unregister - deregister a wiphy from cfg80211
5735 * @wiphy: The wiphy to unregister.
5741 void wiphy_unregister(struct wiphy *wiphy);
5744 * wiphy_free - free wiphy
5746 * @wiphy: The wiphy to free
5748 void wiphy_free(struct wiphy *wiphy);
5757 * wiphy_lock - lock the wiphy
5758 * @wiphy: the wiphy to lock
5767 * When cfg80211 ops are called, the wiphy is already locked.
5772 static inline void wiphy_lock(struct wiphy *wiphy)
5773 __acquires(&wiphy->mtx)
5775 mutex_lock(&wiphy->mtx);
5776 __acquire(&wiphy->mtx);
5780 * wiphy_unlock - unlock the wiphy again
5781 * @wiphy: the wiphy to unlock
5783 static inline void wiphy_unlock(struct wiphy *wiphy)
5784 __releases(&wiphy->mtx)
5786 __release(&wiphy->mtx);
5787 mutex_unlock(&wiphy->mtx);
5791 typedef void (*wiphy_work_func_t)(struct wiphy *, struct wiphy_work *);
5806 * wiphy_work_queue - queue work for the wiphy
5807 * @wiphy: the wiphy to queue for
5811 * queued here has the special property that the wiphy mutex will be
5817 void wiphy_work_queue(struct wiphy *wiphy, struct wiphy_work *work);
5821 * @wiphy: the wiphy, for debug purposes
5825 * called under the wiphy mutex acquired by wiphy_lock().
5827 void wiphy_work_cancel(struct wiphy *wiphy, struct wiphy_work *work);
5831 * @wiphy: the wiphy, for debug purposes
5835 * under the wiphy mutex acquired by wiphy_lock().
5837 void wiphy_work_flush(struct wiphy *wiphy, struct wiphy_work *work);
5841 struct wiphy *wiphy;
5855 * wiphy_delayed_work_queue - queue delayed work for the wiphy
5856 * @wiphy: the wiphy to queue for
5861 * queued here has the special property that the wiphy mutex will be
5867 void wiphy_delayed_work_queue(struct wiphy *wiphy,
5873 * @wiphy: the wiphy, for debug purposes
5877 * called under the wiphy mutex acquired by wiphy_lock().
5879 void wiphy_delayed_work_cancel(struct wiphy *wiphy,
5884 * @wiphy: the wiphy, for debug purposes
5888 * under the wiphy mutex acquired by wiphy_lock().
5890 void wiphy_delayed_work_flush(struct wiphy *wiphy,
5901 * however, drivers must lock the wiphy before registering or
5903 * called from cfg80211, the wiphy is already locked.)
5910 * @wiphy: pointer to hardware description
5913 * @registering: indicates we're doing registration under wiphy lock
5977 struct wiphy *wiphy;
6107 * wdev_priv - return wiphy priv from wireless_dev
6109 * @wdev: The wireless device whose wiphy's priv pointer to return
6110 * Return: The wiphy priv of @wdev.
6115 return wiphy_priv(wdev->wiphy);
6225 * ieee80211_get_channel_khz - get channel struct from wiphy for specified
6227 * @wiphy: the struct wiphy to get the channel for
6229 * Return: The channel struct from @wiphy at @freq.
6232 ieee80211_get_channel_khz(struct wiphy *wiphy, u32 freq);
6235 * ieee80211_get_channel - get channel struct from wiphy for specified frequency
6237 * @wiphy: the struct wiphy to get the channel for
6239 * Return: The channel struct from @wiphy at @freq.
6242 ieee80211_get_channel(struct wiphy *wiphy, int freq)
6244 return ieee80211_get_channel_khz(wiphy, MHZ_TO_KHZ(freq));
6747 * @wiphy: the wireless device giving the hint (used only for reporting
6761 * The wiphy must have been registered to cfg80211 prior to this call.
6770 int regulatory_hint(struct wiphy *wiphy, const char *alpha2);
6774 * @wiphy: the wireless device we want to process the regulatory domain on
6775 * @rd: the regulatory domain informatoin to use for this wiphy
6783 int regulatory_set_wiphy_regd(struct wiphy *wiphy,
6788 * @wiphy: the wireless device we want to process the regulatory domain on
6789 * @rd: the regulatory domain information to use for this wiphy
6791 * This functions requires the RTNL and the wiphy mutex to be held and
6792 * applies the new regdomain synchronously to this wiphy. For more details
6797 int regulatory_set_wiphy_regd_sync(struct wiphy *wiphy,
6802 * @wiphy: the wireless device we want to process the regulatory domain on
6803 * @regd: the custom regulatory domain to use for this wiphy
6807 * domains. This routine must be called prior to wiphy registration. The
6811 * Drivers using this for a wiphy should also set the wiphy flag
6812 * REGULATORY_CUSTOM_REG or cfg80211 will set it for the wiphy
6815 void wiphy_apply_custom_regulatory(struct wiphy *wiphy,
6820 * @wiphy: the wiphy for which we want to process this rule for
6836 const struct ieee80211_reg_rule *freq_reg_info(struct wiphy *wiphy,
6850 * @wiphy: wiphy for which pre-CAC capability is checked.
6854 bool regulatory_pre_cac_allowed(struct wiphy *wiphy);
6898 * @wiphy: the wiphy which got scheduled scan results
6901 void cfg80211_sched_scan_results(struct wiphy *wiphy, u64 reqid);
6906 * @wiphy: the wiphy on which the scheduled scan stopped
6913 void cfg80211_sched_scan_stopped(struct wiphy *wiphy, u64 reqid);
6918 * @wiphy: the wiphy on which the scheduled scan stopped
6924 * This function should be called with the wiphy mutex held.
6926 void cfg80211_sched_scan_stopped_locked(struct wiphy *wiphy, u64 reqid);
6930 * @wiphy: the wiphy reporting the BSS
6943 cfg80211_inform_bss_frame_data(struct wiphy *wiphy,
6949 cfg80211_inform_bss_width_frame(struct wiphy *wiphy,
6961 return cfg80211_inform_bss_frame_data(wiphy, &data, mgmt, len, gfp);
6965 cfg80211_inform_bss_frame(struct wiphy *wiphy,
6976 return cfg80211_inform_bss_frame_data(wiphy, &data, mgmt, len, gfp);
7049 * @wiphy: the wiphy reporting the BSS
7067 cfg80211_inform_bss_data(struct wiphy *wiphy,
7075 cfg80211_inform_bss_width(struct wiphy *wiphy,
7089 return cfg80211_inform_bss_data(wiphy, &data, ftype, bssid, tsf,
7095 cfg80211_inform_bss(struct wiphy *wiphy,
7108 return cfg80211_inform_bss_data(wiphy, &data, ftype, bssid, tsf,
7115 * @wiphy: the wiphy this BSS struct belongs to
7123 struct cfg80211_bss *cfg80211_get_bss(struct wiphy *wiphy,
7130 cfg80211_get_ibss(struct wiphy *wiphy,
7134 return cfg80211_get_bss(wiphy, channel, NULL, ssid, ssid_len,
7141 * @wiphy: the wiphy this BSS struct belongs to
7146 void cfg80211_ref_bss(struct wiphy *wiphy, struct cfg80211_bss *bss);
7150 * @wiphy: the wiphy this BSS struct belongs to
7155 void cfg80211_put_bss(struct wiphy *wiphy, struct cfg80211_bss *bss);
7159 * @wiphy: the wiphy
7167 void cfg80211_unlink_bss(struct wiphy *wiphy, struct cfg80211_bss *bss);
7172 * This function iterates over the BSS entries associated with the given wiphy
7176 * @wiphy: the wiphy
7182 void cfg80211_bss_iter(struct wiphy *wiphy,
7184 void (*iter)(struct wiphy *wiphy,
7403 * @wiphy: the wiphy
7407 void wiphy_rfkill_set_hw_state_reason(struct wiphy *wiphy, bool blocked,
7410 static inline void wiphy_rfkill_set_hw_state(struct wiphy *wiphy, bool blocked)
7412 wiphy_rfkill_set_hw_state_reason(wiphy, blocked,
7418 * @wiphy: the wiphy
7420 void wiphy_rfkill_start_polling(struct wiphy *wiphy);
7424 * @wiphy: the wiphy
7426 static inline void wiphy_rfkill_stop_polling(struct wiphy *wiphy)
7428 rfkill_pause_polling(wiphy->rfkill);
7441 * in struct wiphy, with handlers for each one, each command has an
7451 struct sk_buff *__cfg80211_alloc_reply_skb(struct wiphy *wiphy,
7456 struct sk_buff *__cfg80211_alloc_event_skb(struct wiphy *wiphy,
7468 * @wiphy: the wiphy
7490 cfg80211_vendor_cmd_alloc_reply_skb(struct wiphy *wiphy, int approxlen)
7492 return __cfg80211_alloc_reply_skb(wiphy, NL80211_CMD_VENDOR,
7512 * @wiphy: the wiphy
7517 unsigned int cfg80211_vendor_cmd_get_sender(struct wiphy *wiphy);
7521 * @wiphy: the wiphy
7523 * @event_idx: index of the vendor event in the wiphy's vendor_events
7541 cfg80211_vendor_event_alloc(struct wiphy *wiphy, struct wireless_dev *wdev,
7544 return __cfg80211_alloc_event_skb(wiphy, wdev, NL80211_CMD_VENDOR,
7551 * @wiphy: the wiphy
7553 * @event_idx: index of the vendor event in the wiphy's vendor_events
7574 cfg80211_vendor_event_alloc_ucast(struct wiphy *wiphy,
7579 return __cfg80211_alloc_event_skb(wiphy, wdev, NL80211_CMD_VENDOR,
7611 * @wiphy: the wiphy
7619 * The returned skb is pre-filled with the wiphy index and set up in
7633 cfg80211_testmode_alloc_reply_skb(struct wiphy *wiphy, int approxlen)
7635 return __cfg80211_alloc_reply_skb(wiphy, NL80211_CMD_TESTMODE,
7658 * @wiphy: the wiphy
7678 cfg80211_testmode_alloc_event_skb(struct wiphy *wiphy, int approxlen, gfp_t gfp)
7680 return __cfg80211_alloc_event_skb(wiphy, NULL, NL80211_CMD_TESTMODE,
8391 * @wiphy: the wiphy
8398 void __cfg80211_radar_event(struct wiphy *wiphy,
8403 cfg80211_radar_event(struct wiphy *wiphy,
8407 __cfg80211_radar_event(wiphy, chandef, false, gfp);
8411 cfg80211_background_radar_event(struct wiphy *wiphy,
8415 __cfg80211_radar_event(wiphy, chandef, true, gfp);
8449 * @wiphy: the wiphy
8454 void cfg80211_background_cac_abort(struct wiphy *wiphy);
8524 * @wiphy: The wiphy that received the beacon
8534 void cfg80211_report_obss_beacon_khz(struct wiphy *wiphy, const u8 *frame,
8539 * @wiphy: The wiphy that received the beacon
8549 static inline void cfg80211_report_obss_beacon(struct wiphy *wiphy,
8553 cfg80211_report_obss_beacon_khz(wiphy, frame, len, MHZ_TO_KHZ(freq),
8559 * @wiphy: the wiphy
8566 bool cfg80211_reg_can_beacon(struct wiphy *wiphy,
8572 * @wiphy: the wiphy
8581 * Requires the wiphy mutex to be held.
8583 bool cfg80211_reg_can_beacon_relax(struct wiphy *wiphy,
8691 * Requires the RTNL and wiphy mutex to be held.
8704 * Requires the RTNL and wiphy mutex to be held.
8717 * Requires the RTNL and wiphy mutex to be held.
8862 * @wiphy: the wiphy
8866 unsigned int ieee80211_get_num_supported_channels(struct wiphy *wiphy);
8871 * @wiphy: the wiphy
8878 int cfg80211_check_combinations(struct wiphy *wiphy,
8884 * @wiphy: the wiphy
8893 int cfg80211_iter_combinations(struct wiphy *wiphy,
8902 * @wiphy: the wiphy
8911 void cfg80211_stop_iface(struct wiphy *wiphy, struct wireless_dev *wdev,
8915 * cfg80211_shutdown_all_interfaces - shut down all interfaces for a wiphy
8916 * @wiphy: the wiphy to shut down
8918 * This function shuts down all interfaces belonging to this wiphy by
8926 void cfg80211_shutdown_all_interfaces(struct wiphy *wiphy);
8931 * @wiphy: the wiphy to modify.
8935 * &struct wiphy.@ext_features)
8937 static inline void wiphy_ext_feature_set(struct wiphy *wiphy,
8942 ft_byte = &wiphy->ext_features[ftidx / 8];
8949 * @wiphy: the wiphy to modify.
8953 * &struct wiphy.@ext_features)
8956 wiphy_ext_feature_isset(struct wiphy *wiphy,
8961 ft_byte = wiphy->ext_features[ftidx / 8];
9067 * @wiphy: the wiphy
9076 bool cfg80211_iftype_allowed(struct wiphy *wiphy, enum nl80211_iftype iftype,
9096 #define wiphy_printk(level, wiphy, format, args...) \
9097 dev_printk(level, &(wiphy)->dev, format, ##args)
9098 #define wiphy_emerg(wiphy, format, args...) \
9099 dev_emerg(&(wiphy)->dev, format, ##args)
9100 #define wiphy_alert(wiphy, format, args...) \
9101 dev_alert(&(wiphy)->dev, format, ##args)
9102 #define wiphy_crit(wiphy, format, args...) \
9103 dev_crit(&(wiphy)->dev, format, ##args)
9104 #define wiphy_err(wiphy, format, args...) \
9105 dev_err(&(wiphy)->dev, format, ##args)
9106 #define wiphy_warn(wiphy, format, args...) \
9107 dev_warn(&(wiphy)->dev, format, ##args)
9108 #define wiphy_notice(wiphy, format, args...) \
9109 dev_notice(&(wiphy)->dev, format, ##args)
9110 #define wiphy_info(wiphy, format, args...) \
9111 dev_info(&(wiphy)->dev, format, ##args)
9112 #define wiphy_info_once(wiphy, format, args...) \
9113 dev_info_once(&(wiphy)->dev, format, ##args)
9115 #define wiphy_err_ratelimited(wiphy, format, args...) \
9116 dev_err_ratelimited(&(wiphy)->dev, format, ##args)
9117 #define wiphy_warn_ratelimited(wiphy, format, args...) \
9118 dev_warn_ratelimited(&(wiphy)->dev, format, ##args)
9120 #define wiphy_debug(wiphy, format, args...) \
9121 wiphy_printk(KERN_DEBUG, wiphy, format, ##args)
9123 #define wiphy_dbg(wiphy, format, args...) \
9124 dev_dbg(&(wiphy)->dev, format, ##args)
9129 #define wiphy_vdbg(wiphy, format, args...) \
9132 wiphy_printk(KERN_DEBUG, wiphy, format, ##args); \
9142 #define wiphy_WARN(wiphy, format, args...) \
9143 WARN(1, "wiphy: %s\n" format, wiphy_name(wiphy), ##args);
9157 * @wiphy: the wiphy
9159 void cfg80211_bss_flush(struct wiphy *wiphy);