Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
0002 /* Copyright(c) 2018-2019  Realtek Corporation
0003  */
0004 
0005 #ifndef __RTW_UTIL_H__
0006 #define __RTW_UTIL_H__
0007 
0008 struct rtw_dev;
0009 
0010 #define rtw_iterate_vifs(rtwdev, iterator, data)                               \
0011     ieee80211_iterate_active_interfaces(rtwdev->hw,                        \
0012             IEEE80211_IFACE_ITER_NORMAL, iterator, data)
0013 #define rtw_iterate_vifs_atomic(rtwdev, iterator, data)                        \
0014     ieee80211_iterate_active_interfaces_atomic(rtwdev->hw,                 \
0015             IEEE80211_IFACE_ITER_NORMAL, iterator, data)
0016 #define rtw_iterate_stas_atomic(rtwdev, iterator, data)                        \
0017     ieee80211_iterate_stations_atomic(rtwdev->hw, iterator, data)
0018 #define rtw_iterate_keys(rtwdev, vif, iterator, data)                  \
0019     ieee80211_iter_keys(rtwdev->hw, vif, iterator, data)
0020 #define rtw_iterate_keys_rcu(rtwdev, vif, iterator, data)              \
0021     ieee80211_iter_keys_rcu((rtwdev)->hw, vif, iterator, data)
0022 
0023 static inline u8 *get_hdr_bssid(struct ieee80211_hdr *hdr)
0024 {
0025     __le16 fc = hdr->frame_control;
0026     u8 *bssid;
0027 
0028     if (ieee80211_has_tods(fc))
0029         bssid = hdr->addr1;
0030     else if (ieee80211_has_fromds(fc))
0031         bssid = hdr->addr2;
0032     else
0033         bssid = hdr->addr3;
0034 
0035     return bssid;
0036 }
0037 
0038 #endif