@ -379,6 +379,22 @@ static __le64 __mac80211_hwsim_get_tsf(struct mac80211_hwsim_data *data)
return cpu_to_le64 ( now + data - > tsf_offset ) ;
return cpu_to_le64 ( now + data - > tsf_offset ) ;
}
}
static u64 mac80211_hwsim_get_tsf ( struct ieee80211_hw * hw ,
struct ieee80211_vif * vif )
{
struct mac80211_hwsim_data * data = hw - > priv ;
return le64_to_cpu ( __mac80211_hwsim_get_tsf ( data ) ) ;
}
static void mac80211_hwsim_set_tsf ( struct ieee80211_hw * hw ,
struct ieee80211_vif * vif , u64 tsf )
{
struct mac80211_hwsim_data * data = hw - > priv ;
struct timeval tv = ktime_to_timeval ( ktime_get_real ( ) ) ;
u64 now = tv . tv_sec * USEC_PER_SEC + tv . tv_usec ;
data - > tsf_offset = tsf - now ;
}
static void mac80211_hwsim_monitor_rx ( struct ieee80211_hw * hw ,
static void mac80211_hwsim_monitor_rx ( struct ieee80211_hw * hw ,
struct sk_buff * tx_skb )
struct sk_buff * tx_skb )
{
{
@ -1224,6 +1240,8 @@ static struct ieee80211_ops mac80211_hwsim_ops =
. sw_scan_start = mac80211_hwsim_sw_scan ,
. sw_scan_start = mac80211_hwsim_sw_scan ,
. sw_scan_complete = mac80211_hwsim_sw_scan_complete ,
. sw_scan_complete = mac80211_hwsim_sw_scan_complete ,
. flush = mac80211_hwsim_flush ,
. flush = mac80211_hwsim_flush ,
. get_tsf = mac80211_hwsim_get_tsf ,
. set_tsf = mac80211_hwsim_set_tsf ,
} ;
} ;