diff options
Diffstat (limited to 'net/mac80211/driver-trace.h')
| -rw-r--r-- | net/mac80211/driver-trace.h | 275 | 
1 files changed, 275 insertions, 0 deletions
diff --git a/net/mac80211/driver-trace.h b/net/mac80211/driver-trace.h index 41baf730a5c..e209cb82ff2 100644 --- a/net/mac80211/driver-trace.h +++ b/net/mac80211/driver-trace.h @@ -32,6 +32,10 @@ static inline void trace_ ## name(proto) {}  #define VIF_PR_FMT	" vif:%s(%d)"  #define VIF_PR_ARG	__get_str(vif_name), __entry->vif_type +/* + * Tracing for driver callbacks. + */ +  TRACE_EVENT(drv_start,  	TP_PROTO(struct ieee80211_local *local, int ret), @@ -766,6 +770,277 @@ TRACE_EVENT(drv_flush,  		LOCAL_PR_ARG, __entry->drop  	)  ); + +/* + * Tracing for API calls that drivers call. + */ + +TRACE_EVENT(api_start_tx_ba_session, +	TP_PROTO(struct ieee80211_sta *sta, u16 tid), + +	TP_ARGS(sta, tid), + +	TP_STRUCT__entry( +		STA_ENTRY +		__field(u16, tid) +	), + +	TP_fast_assign( +		STA_ASSIGN; +		__entry->tid = tid; +	), + +	TP_printk( +		STA_PR_FMT " tid:%d", +		STA_PR_ARG, __entry->tid +	) +); + +TRACE_EVENT(api_start_tx_ba_cb, +	TP_PROTO(struct ieee80211_sub_if_data *sdata, const u8 *ra, u16 tid), + +	TP_ARGS(sdata, ra, tid), + +	TP_STRUCT__entry( +		VIF_ENTRY +		__array(u8, ra, ETH_ALEN) +		__field(u16, tid) +	), + +	TP_fast_assign( +		VIF_ASSIGN; +		memcpy(__entry->ra, ra, ETH_ALEN); +		__entry->tid = tid; +	), + +	TP_printk( +		VIF_PR_FMT " ra:%pM tid:%d", +		VIF_PR_ARG, __entry->ra, __entry->tid +	) +); + +TRACE_EVENT(api_stop_tx_ba_session, +	TP_PROTO(struct ieee80211_sta *sta, u16 tid, u16 initiator), + +	TP_ARGS(sta, tid, initiator), + +	TP_STRUCT__entry( +		STA_ENTRY +		__field(u16, tid) +		__field(u16, initiator) +	), + +	TP_fast_assign( +		STA_ASSIGN; +		__entry->tid = tid; +		__entry->initiator = initiator; +	), + +	TP_printk( +		STA_PR_FMT " tid:%d initiator:%d", +		STA_PR_ARG, __entry->tid, __entry->initiator +	) +); + +TRACE_EVENT(api_stop_tx_ba_cb, +	TP_PROTO(struct ieee80211_sub_if_data *sdata, const u8 *ra, u16 tid), + +	TP_ARGS(sdata, ra, tid), + +	TP_STRUCT__entry( +		VIF_ENTRY +		__array(u8, ra, ETH_ALEN) +		__field(u16, tid) +	), + +	TP_fast_assign( +		VIF_ASSIGN; +		memcpy(__entry->ra, ra, ETH_ALEN); +		__entry->tid = tid; +	), + +	TP_printk( +		VIF_PR_FMT " ra:%pM tid:%d", +		VIF_PR_ARG, __entry->ra, __entry->tid +	) +); + +TRACE_EVENT(api_restart_hw, +	TP_PROTO(struct ieee80211_local *local), + +	TP_ARGS(local), + +	TP_STRUCT__entry( +		LOCAL_ENTRY +	), + +	TP_fast_assign( +		LOCAL_ASSIGN; +	), + +	TP_printk( +		LOCAL_PR_FMT, +		LOCAL_PR_ARG +	) +); + +TRACE_EVENT(api_beacon_loss, +	TP_PROTO(struct ieee80211_sub_if_data *sdata), + +	TP_ARGS(sdata), + +	TP_STRUCT__entry( +		VIF_ENTRY +	), + +	TP_fast_assign( +		VIF_ASSIGN; +	), + +	TP_printk( +		VIF_PR_FMT, +		VIF_PR_ARG +	) +); + +TRACE_EVENT(api_connection_loss, +	TP_PROTO(struct ieee80211_sub_if_data *sdata), + +	TP_ARGS(sdata), + +	TP_STRUCT__entry( +		VIF_ENTRY +	), + +	TP_fast_assign( +		VIF_ASSIGN; +	), + +	TP_printk( +		VIF_PR_FMT, +		VIF_PR_ARG +	) +); + +TRACE_EVENT(api_cqm_rssi_notify, +	TP_PROTO(struct ieee80211_sub_if_data *sdata, +		 enum nl80211_cqm_rssi_threshold_event rssi_event), + +	TP_ARGS(sdata, rssi_event), + +	TP_STRUCT__entry( +		VIF_ENTRY +		__field(u32, rssi_event) +	), + +	TP_fast_assign( +		VIF_ASSIGN; +		__entry->rssi_event = rssi_event; +	), + +	TP_printk( +		VIF_PR_FMT " event:%d", +		VIF_PR_ARG, __entry->rssi_event +	) +); + +TRACE_EVENT(api_scan_completed, +	TP_PROTO(struct ieee80211_local *local, bool aborted), + +	TP_ARGS(local, aborted), + +	TP_STRUCT__entry( +		LOCAL_ENTRY +		__field(bool, aborted) +	), + +	TP_fast_assign( +		LOCAL_ASSIGN; +		__entry->aborted = aborted; +	), + +	TP_printk( +		LOCAL_PR_FMT " aborted:%d", +		LOCAL_PR_ARG, __entry->aborted +	) +); + +TRACE_EVENT(api_sta_block_awake, +	TP_PROTO(struct ieee80211_local *local, +		 struct ieee80211_sta *sta, bool block), + +	TP_ARGS(local, sta, block), + +	TP_STRUCT__entry( +		LOCAL_ENTRY +		STA_ENTRY +		__field(bool, block) +	), + +	TP_fast_assign( +		LOCAL_ASSIGN; +		STA_ASSIGN; +		__entry->block = block; +	), + +	TP_printk( +		LOCAL_PR_FMT STA_PR_FMT " block:%d", +		LOCAL_PR_ARG, STA_PR_FMT, __entry->block +	) +); + +/* + * Tracing for internal functions + * (which may also be called in response to driver calls) + */ + +TRACE_EVENT(wake_queue, +	TP_PROTO(struct ieee80211_local *local, u16 queue, +		 enum queue_stop_reason reason), + +	TP_ARGS(local, queue, reason), + +	TP_STRUCT__entry( +		LOCAL_ENTRY +		__field(u16, queue) +		__field(u32, reason) +	), + +	TP_fast_assign( +		LOCAL_ASSIGN; +		__entry->queue = queue; +		__entry->reason = reason; +	), + +	TP_printk( +		LOCAL_PR_FMT " queue:%d, reason:%d", +		LOCAL_PR_ARG, __entry->queue, __entry->reason +	) +); + +TRACE_EVENT(stop_queue, +	TP_PROTO(struct ieee80211_local *local, u16 queue, +		 enum queue_stop_reason reason), + +	TP_ARGS(local, queue, reason), + +	TP_STRUCT__entry( +		LOCAL_ENTRY +		__field(u16, queue) +		__field(u32, reason) +	), + +	TP_fast_assign( +		LOCAL_ASSIGN; +		__entry->queue = queue; +		__entry->reason = reason; +	), + +	TP_printk( +		LOCAL_PR_FMT " queue:%d, reason:%d", +		LOCAL_PR_ARG, __entry->queue, __entry->reason +	) +);  #endif /* !__MAC80211_DRIVER_TRACE || TRACE_HEADER_MULTI_READ */  #undef TRACE_INCLUDE_PATH  |