162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Portions of this file 462306a36Sopenharmony_ci * Copyright(c) 2016-2017 Intel Deutschland GmbH 562306a36Sopenharmony_ci * Copyright (C) 2018 - 2023 Intel Corporation 662306a36Sopenharmony_ci */ 762306a36Sopenharmony_ci 862306a36Sopenharmony_ci#if !defined(__MAC80211_DRIVER_TRACE) || defined(TRACE_HEADER_MULTI_READ) 962306a36Sopenharmony_ci#define __MAC80211_DRIVER_TRACE 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ci#include <linux/tracepoint.h> 1262306a36Sopenharmony_ci#include <net/mac80211.h> 1362306a36Sopenharmony_ci#include "ieee80211_i.h" 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ci#undef TRACE_SYSTEM 1662306a36Sopenharmony_ci#define TRACE_SYSTEM mac80211 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ci#define MAXNAME 32 1962306a36Sopenharmony_ci#define LOCAL_ENTRY __array(char, wiphy_name, 32) 2062306a36Sopenharmony_ci#define LOCAL_ASSIGN strscpy(__entry->wiphy_name, wiphy_name(local->hw.wiphy), MAXNAME) 2162306a36Sopenharmony_ci#define LOCAL_PR_FMT "%s" 2262306a36Sopenharmony_ci#define LOCAL_PR_ARG __entry->wiphy_name 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ci#define STA_ENTRY __array(char, sta_addr, ETH_ALEN) 2562306a36Sopenharmony_ci#define STA_ASSIGN (sta ? memcpy(__entry->sta_addr, sta->addr, ETH_ALEN) : \ 2662306a36Sopenharmony_ci eth_zero_addr(__entry->sta_addr)) 2762306a36Sopenharmony_ci#define STA_NAMED_ASSIGN(s) memcpy(__entry->sta_addr, (s)->addr, ETH_ALEN) 2862306a36Sopenharmony_ci#define STA_PR_FMT " sta:%pM" 2962306a36Sopenharmony_ci#define STA_PR_ARG __entry->sta_addr 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ci#define VIF_ENTRY __field(enum nl80211_iftype, vif_type) __field(void *, sdata) \ 3262306a36Sopenharmony_ci __field(bool, p2p) \ 3362306a36Sopenharmony_ci __string(vif_name, sdata->name) 3462306a36Sopenharmony_ci#define VIF_ASSIGN __entry->vif_type = sdata->vif.type; __entry->sdata = sdata; \ 3562306a36Sopenharmony_ci __entry->p2p = sdata->vif.p2p; \ 3662306a36Sopenharmony_ci __assign_str(vif_name, sdata->name) 3762306a36Sopenharmony_ci#define VIF_PR_FMT " vif:%s(%d%s)" 3862306a36Sopenharmony_ci#define VIF_PR_ARG __get_str(vif_name), __entry->vif_type, __entry->p2p ? "/p2p" : "" 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ci#define CHANDEF_ENTRY __field(u32, control_freq) \ 4162306a36Sopenharmony_ci __field(u32, freq_offset) \ 4262306a36Sopenharmony_ci __field(u32, chan_width) \ 4362306a36Sopenharmony_ci __field(u32, center_freq1) \ 4462306a36Sopenharmony_ci __field(u32, freq1_offset) \ 4562306a36Sopenharmony_ci __field(u32, center_freq2) 4662306a36Sopenharmony_ci#define CHANDEF_ASSIGN(c) \ 4762306a36Sopenharmony_ci __entry->control_freq = (c) ? ((c)->chan ? (c)->chan->center_freq : 0) : 0; \ 4862306a36Sopenharmony_ci __entry->freq_offset = (c) ? ((c)->chan ? (c)->chan->freq_offset : 0) : 0; \ 4962306a36Sopenharmony_ci __entry->chan_width = (c) ? (c)->width : 0; \ 5062306a36Sopenharmony_ci __entry->center_freq1 = (c) ? (c)->center_freq1 : 0; \ 5162306a36Sopenharmony_ci __entry->freq1_offset = (c) ? (c)->freq1_offset : 0; \ 5262306a36Sopenharmony_ci __entry->center_freq2 = (c) ? (c)->center_freq2 : 0; 5362306a36Sopenharmony_ci#define CHANDEF_PR_FMT " control:%d.%03d MHz width:%d center: %d.%03d/%d MHz" 5462306a36Sopenharmony_ci#define CHANDEF_PR_ARG __entry->control_freq, __entry->freq_offset, __entry->chan_width, \ 5562306a36Sopenharmony_ci __entry->center_freq1, __entry->freq1_offset, __entry->center_freq2 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_ci#define MIN_CHANDEF_ENTRY \ 5862306a36Sopenharmony_ci __field(u32, min_control_freq) \ 5962306a36Sopenharmony_ci __field(u32, min_freq_offset) \ 6062306a36Sopenharmony_ci __field(u32, min_chan_width) \ 6162306a36Sopenharmony_ci __field(u32, min_center_freq1) \ 6262306a36Sopenharmony_ci __field(u32, min_freq1_offset) \ 6362306a36Sopenharmony_ci __field(u32, min_center_freq2) 6462306a36Sopenharmony_ci 6562306a36Sopenharmony_ci#define MIN_CHANDEF_ASSIGN(c) \ 6662306a36Sopenharmony_ci __entry->min_control_freq = (c)->chan ? (c)->chan->center_freq : 0; \ 6762306a36Sopenharmony_ci __entry->min_freq_offset = (c)->chan ? (c)->chan->freq_offset : 0; \ 6862306a36Sopenharmony_ci __entry->min_chan_width = (c)->width; \ 6962306a36Sopenharmony_ci __entry->min_center_freq1 = (c)->center_freq1; \ 7062306a36Sopenharmony_ci __entry->min_freq1_offset = (c)->freq1_offset; \ 7162306a36Sopenharmony_ci __entry->min_center_freq2 = (c)->center_freq2; 7262306a36Sopenharmony_ci#define MIN_CHANDEF_PR_FMT " min_control:%d.%03d MHz min_width:%d min_center: %d.%03d/%d MHz" 7362306a36Sopenharmony_ci#define MIN_CHANDEF_PR_ARG __entry->min_control_freq, __entry->min_freq_offset, \ 7462306a36Sopenharmony_ci __entry->min_chan_width, \ 7562306a36Sopenharmony_ci __entry->min_center_freq1, __entry->min_freq1_offset, \ 7662306a36Sopenharmony_ci __entry->min_center_freq2 7762306a36Sopenharmony_ci 7862306a36Sopenharmony_ci#define CHANCTX_ENTRY CHANDEF_ENTRY \ 7962306a36Sopenharmony_ci MIN_CHANDEF_ENTRY \ 8062306a36Sopenharmony_ci __field(u8, rx_chains_static) \ 8162306a36Sopenharmony_ci __field(u8, rx_chains_dynamic) 8262306a36Sopenharmony_ci#define CHANCTX_ASSIGN CHANDEF_ASSIGN(&ctx->conf.def) \ 8362306a36Sopenharmony_ci MIN_CHANDEF_ASSIGN(&ctx->conf.min_def) \ 8462306a36Sopenharmony_ci __entry->rx_chains_static = ctx->conf.rx_chains_static; \ 8562306a36Sopenharmony_ci __entry->rx_chains_dynamic = ctx->conf.rx_chains_dynamic 8662306a36Sopenharmony_ci#define CHANCTX_PR_FMT CHANDEF_PR_FMT MIN_CHANDEF_PR_FMT " chains:%d/%d" 8762306a36Sopenharmony_ci#define CHANCTX_PR_ARG CHANDEF_PR_ARG, MIN_CHANDEF_PR_ARG, \ 8862306a36Sopenharmony_ci __entry->rx_chains_static, __entry->rx_chains_dynamic 8962306a36Sopenharmony_ci 9062306a36Sopenharmony_ci#define KEY_ENTRY __field(u32, cipher) \ 9162306a36Sopenharmony_ci __field(u8, hw_key_idx) \ 9262306a36Sopenharmony_ci __field(u8, flags) \ 9362306a36Sopenharmony_ci __field(s8, keyidx) 9462306a36Sopenharmony_ci#define KEY_ASSIGN(k) __entry->cipher = (k)->cipher; \ 9562306a36Sopenharmony_ci __entry->flags = (k)->flags; \ 9662306a36Sopenharmony_ci __entry->keyidx = (k)->keyidx; \ 9762306a36Sopenharmony_ci __entry->hw_key_idx = (k)->hw_key_idx; 9862306a36Sopenharmony_ci#define KEY_PR_FMT " cipher:0x%x, flags=%#x, keyidx=%d, hw_key_idx=%d" 9962306a36Sopenharmony_ci#define KEY_PR_ARG __entry->cipher, __entry->flags, __entry->keyidx, __entry->hw_key_idx 10062306a36Sopenharmony_ci 10162306a36Sopenharmony_ci#define AMPDU_ACTION_ENTRY __field(enum ieee80211_ampdu_mlme_action, \ 10262306a36Sopenharmony_ci ieee80211_ampdu_mlme_action) \ 10362306a36Sopenharmony_ci STA_ENTRY \ 10462306a36Sopenharmony_ci __field(u16, tid) \ 10562306a36Sopenharmony_ci __field(u16, ssn) \ 10662306a36Sopenharmony_ci __field(u16, buf_size) \ 10762306a36Sopenharmony_ci __field(bool, amsdu) \ 10862306a36Sopenharmony_ci __field(u16, timeout) \ 10962306a36Sopenharmony_ci __field(u16, action) 11062306a36Sopenharmony_ci#define AMPDU_ACTION_ASSIGN STA_NAMED_ASSIGN(params->sta); \ 11162306a36Sopenharmony_ci __entry->tid = params->tid; \ 11262306a36Sopenharmony_ci __entry->ssn = params->ssn; \ 11362306a36Sopenharmony_ci __entry->buf_size = params->buf_size; \ 11462306a36Sopenharmony_ci __entry->amsdu = params->amsdu; \ 11562306a36Sopenharmony_ci __entry->timeout = params->timeout; \ 11662306a36Sopenharmony_ci __entry->action = params->action; 11762306a36Sopenharmony_ci#define AMPDU_ACTION_PR_FMT STA_PR_FMT " tid %d, ssn %d, buf_size %u, amsdu %d, timeout %d action %d" 11862306a36Sopenharmony_ci#define AMPDU_ACTION_PR_ARG STA_PR_ARG, __entry->tid, __entry->ssn, \ 11962306a36Sopenharmony_ci __entry->buf_size, __entry->amsdu, __entry->timeout, \ 12062306a36Sopenharmony_ci __entry->action 12162306a36Sopenharmony_ci 12262306a36Sopenharmony_ci/* 12362306a36Sopenharmony_ci * Tracing for driver callbacks. 12462306a36Sopenharmony_ci */ 12562306a36Sopenharmony_ci 12662306a36Sopenharmony_ciDECLARE_EVENT_CLASS(local_only_evt, 12762306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local), 12862306a36Sopenharmony_ci TP_ARGS(local), 12962306a36Sopenharmony_ci TP_STRUCT__entry( 13062306a36Sopenharmony_ci LOCAL_ENTRY 13162306a36Sopenharmony_ci ), 13262306a36Sopenharmony_ci TP_fast_assign( 13362306a36Sopenharmony_ci LOCAL_ASSIGN; 13462306a36Sopenharmony_ci ), 13562306a36Sopenharmony_ci TP_printk(LOCAL_PR_FMT, LOCAL_PR_ARG) 13662306a36Sopenharmony_ci); 13762306a36Sopenharmony_ci 13862306a36Sopenharmony_ciDECLARE_EVENT_CLASS(local_sdata_addr_evt, 13962306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 14062306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata), 14162306a36Sopenharmony_ci TP_ARGS(local, sdata), 14262306a36Sopenharmony_ci 14362306a36Sopenharmony_ci TP_STRUCT__entry( 14462306a36Sopenharmony_ci LOCAL_ENTRY 14562306a36Sopenharmony_ci VIF_ENTRY 14662306a36Sopenharmony_ci __array(char, addr, ETH_ALEN) 14762306a36Sopenharmony_ci ), 14862306a36Sopenharmony_ci 14962306a36Sopenharmony_ci TP_fast_assign( 15062306a36Sopenharmony_ci LOCAL_ASSIGN; 15162306a36Sopenharmony_ci VIF_ASSIGN; 15262306a36Sopenharmony_ci memcpy(__entry->addr, sdata->vif.addr, ETH_ALEN); 15362306a36Sopenharmony_ci ), 15462306a36Sopenharmony_ci 15562306a36Sopenharmony_ci TP_printk( 15662306a36Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT " addr:%pM", 15762306a36Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, __entry->addr 15862306a36Sopenharmony_ci ) 15962306a36Sopenharmony_ci); 16062306a36Sopenharmony_ci 16162306a36Sopenharmony_ciDECLARE_EVENT_CLASS(local_u32_evt, 16262306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, u32 value), 16362306a36Sopenharmony_ci TP_ARGS(local, value), 16462306a36Sopenharmony_ci 16562306a36Sopenharmony_ci TP_STRUCT__entry( 16662306a36Sopenharmony_ci LOCAL_ENTRY 16762306a36Sopenharmony_ci __field(u32, value) 16862306a36Sopenharmony_ci ), 16962306a36Sopenharmony_ci 17062306a36Sopenharmony_ci TP_fast_assign( 17162306a36Sopenharmony_ci LOCAL_ASSIGN; 17262306a36Sopenharmony_ci __entry->value = value; 17362306a36Sopenharmony_ci ), 17462306a36Sopenharmony_ci 17562306a36Sopenharmony_ci TP_printk( 17662306a36Sopenharmony_ci LOCAL_PR_FMT " value:%d", 17762306a36Sopenharmony_ci LOCAL_PR_ARG, __entry->value 17862306a36Sopenharmony_ci ) 17962306a36Sopenharmony_ci); 18062306a36Sopenharmony_ci 18162306a36Sopenharmony_ciDECLARE_EVENT_CLASS(local_sdata_evt, 18262306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 18362306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata), 18462306a36Sopenharmony_ci TP_ARGS(local, sdata), 18562306a36Sopenharmony_ci 18662306a36Sopenharmony_ci TP_STRUCT__entry( 18762306a36Sopenharmony_ci LOCAL_ENTRY 18862306a36Sopenharmony_ci VIF_ENTRY 18962306a36Sopenharmony_ci ), 19062306a36Sopenharmony_ci 19162306a36Sopenharmony_ci TP_fast_assign( 19262306a36Sopenharmony_ci LOCAL_ASSIGN; 19362306a36Sopenharmony_ci VIF_ASSIGN; 19462306a36Sopenharmony_ci ), 19562306a36Sopenharmony_ci 19662306a36Sopenharmony_ci TP_printk( 19762306a36Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT, 19862306a36Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG 19962306a36Sopenharmony_ci ) 20062306a36Sopenharmony_ci); 20162306a36Sopenharmony_ci 20262306a36Sopenharmony_ciDEFINE_EVENT(local_only_evt, drv_return_void, 20362306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local), 20462306a36Sopenharmony_ci TP_ARGS(local) 20562306a36Sopenharmony_ci); 20662306a36Sopenharmony_ci 20762306a36Sopenharmony_ciTRACE_EVENT(drv_return_int, 20862306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, int ret), 20962306a36Sopenharmony_ci TP_ARGS(local, ret), 21062306a36Sopenharmony_ci TP_STRUCT__entry( 21162306a36Sopenharmony_ci LOCAL_ENTRY 21262306a36Sopenharmony_ci __field(int, ret) 21362306a36Sopenharmony_ci ), 21462306a36Sopenharmony_ci TP_fast_assign( 21562306a36Sopenharmony_ci LOCAL_ASSIGN; 21662306a36Sopenharmony_ci __entry->ret = ret; 21762306a36Sopenharmony_ci ), 21862306a36Sopenharmony_ci TP_printk(LOCAL_PR_FMT " - %d", LOCAL_PR_ARG, __entry->ret) 21962306a36Sopenharmony_ci); 22062306a36Sopenharmony_ci 22162306a36Sopenharmony_ciTRACE_EVENT(drv_return_bool, 22262306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, bool ret), 22362306a36Sopenharmony_ci TP_ARGS(local, ret), 22462306a36Sopenharmony_ci TP_STRUCT__entry( 22562306a36Sopenharmony_ci LOCAL_ENTRY 22662306a36Sopenharmony_ci __field(bool, ret) 22762306a36Sopenharmony_ci ), 22862306a36Sopenharmony_ci TP_fast_assign( 22962306a36Sopenharmony_ci LOCAL_ASSIGN; 23062306a36Sopenharmony_ci __entry->ret = ret; 23162306a36Sopenharmony_ci ), 23262306a36Sopenharmony_ci TP_printk(LOCAL_PR_FMT " - %s", LOCAL_PR_ARG, (__entry->ret) ? 23362306a36Sopenharmony_ci "true" : "false") 23462306a36Sopenharmony_ci); 23562306a36Sopenharmony_ci 23662306a36Sopenharmony_ciTRACE_EVENT(drv_return_u32, 23762306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, u32 ret), 23862306a36Sopenharmony_ci TP_ARGS(local, ret), 23962306a36Sopenharmony_ci TP_STRUCT__entry( 24062306a36Sopenharmony_ci LOCAL_ENTRY 24162306a36Sopenharmony_ci __field(u32, ret) 24262306a36Sopenharmony_ci ), 24362306a36Sopenharmony_ci TP_fast_assign( 24462306a36Sopenharmony_ci LOCAL_ASSIGN; 24562306a36Sopenharmony_ci __entry->ret = ret; 24662306a36Sopenharmony_ci ), 24762306a36Sopenharmony_ci TP_printk(LOCAL_PR_FMT " - %u", LOCAL_PR_ARG, __entry->ret) 24862306a36Sopenharmony_ci); 24962306a36Sopenharmony_ci 25062306a36Sopenharmony_ciTRACE_EVENT(drv_return_u64, 25162306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, u64 ret), 25262306a36Sopenharmony_ci TP_ARGS(local, ret), 25362306a36Sopenharmony_ci TP_STRUCT__entry( 25462306a36Sopenharmony_ci LOCAL_ENTRY 25562306a36Sopenharmony_ci __field(u64, ret) 25662306a36Sopenharmony_ci ), 25762306a36Sopenharmony_ci TP_fast_assign( 25862306a36Sopenharmony_ci LOCAL_ASSIGN; 25962306a36Sopenharmony_ci __entry->ret = ret; 26062306a36Sopenharmony_ci ), 26162306a36Sopenharmony_ci TP_printk(LOCAL_PR_FMT " - %llu", LOCAL_PR_ARG, __entry->ret) 26262306a36Sopenharmony_ci); 26362306a36Sopenharmony_ci 26462306a36Sopenharmony_ciDEFINE_EVENT(local_only_evt, drv_start, 26562306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local), 26662306a36Sopenharmony_ci TP_ARGS(local) 26762306a36Sopenharmony_ci); 26862306a36Sopenharmony_ci 26962306a36Sopenharmony_ciDEFINE_EVENT(local_u32_evt, drv_get_et_strings, 27062306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, u32 sset), 27162306a36Sopenharmony_ci TP_ARGS(local, sset) 27262306a36Sopenharmony_ci); 27362306a36Sopenharmony_ci 27462306a36Sopenharmony_ciDEFINE_EVENT(local_u32_evt, drv_get_et_sset_count, 27562306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, u32 sset), 27662306a36Sopenharmony_ci TP_ARGS(local, sset) 27762306a36Sopenharmony_ci); 27862306a36Sopenharmony_ci 27962306a36Sopenharmony_ciDEFINE_EVENT(local_only_evt, drv_get_et_stats, 28062306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local), 28162306a36Sopenharmony_ci TP_ARGS(local) 28262306a36Sopenharmony_ci); 28362306a36Sopenharmony_ci 28462306a36Sopenharmony_ciDEFINE_EVENT(local_only_evt, drv_suspend, 28562306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local), 28662306a36Sopenharmony_ci TP_ARGS(local) 28762306a36Sopenharmony_ci); 28862306a36Sopenharmony_ci 28962306a36Sopenharmony_ciDEFINE_EVENT(local_only_evt, drv_resume, 29062306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local), 29162306a36Sopenharmony_ci TP_ARGS(local) 29262306a36Sopenharmony_ci); 29362306a36Sopenharmony_ci 29462306a36Sopenharmony_ciTRACE_EVENT(drv_set_wakeup, 29562306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, bool enabled), 29662306a36Sopenharmony_ci TP_ARGS(local, enabled), 29762306a36Sopenharmony_ci TP_STRUCT__entry( 29862306a36Sopenharmony_ci LOCAL_ENTRY 29962306a36Sopenharmony_ci __field(bool, enabled) 30062306a36Sopenharmony_ci ), 30162306a36Sopenharmony_ci TP_fast_assign( 30262306a36Sopenharmony_ci LOCAL_ASSIGN; 30362306a36Sopenharmony_ci __entry->enabled = enabled; 30462306a36Sopenharmony_ci ), 30562306a36Sopenharmony_ci TP_printk(LOCAL_PR_FMT " enabled:%d", LOCAL_PR_ARG, __entry->enabled) 30662306a36Sopenharmony_ci); 30762306a36Sopenharmony_ci 30862306a36Sopenharmony_ciDEFINE_EVENT(local_only_evt, drv_stop, 30962306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local), 31062306a36Sopenharmony_ci TP_ARGS(local) 31162306a36Sopenharmony_ci); 31262306a36Sopenharmony_ci 31362306a36Sopenharmony_ciDEFINE_EVENT(local_sdata_addr_evt, drv_add_interface, 31462306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 31562306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata), 31662306a36Sopenharmony_ci TP_ARGS(local, sdata) 31762306a36Sopenharmony_ci); 31862306a36Sopenharmony_ci 31962306a36Sopenharmony_ciTRACE_EVENT(drv_change_interface, 32062306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 32162306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 32262306a36Sopenharmony_ci enum nl80211_iftype type, bool p2p), 32362306a36Sopenharmony_ci 32462306a36Sopenharmony_ci TP_ARGS(local, sdata, type, p2p), 32562306a36Sopenharmony_ci 32662306a36Sopenharmony_ci TP_STRUCT__entry( 32762306a36Sopenharmony_ci LOCAL_ENTRY 32862306a36Sopenharmony_ci VIF_ENTRY 32962306a36Sopenharmony_ci __field(u32, new_type) 33062306a36Sopenharmony_ci __field(bool, new_p2p) 33162306a36Sopenharmony_ci ), 33262306a36Sopenharmony_ci 33362306a36Sopenharmony_ci TP_fast_assign( 33462306a36Sopenharmony_ci LOCAL_ASSIGN; 33562306a36Sopenharmony_ci VIF_ASSIGN; 33662306a36Sopenharmony_ci __entry->new_type = type; 33762306a36Sopenharmony_ci __entry->new_p2p = p2p; 33862306a36Sopenharmony_ci ), 33962306a36Sopenharmony_ci 34062306a36Sopenharmony_ci TP_printk( 34162306a36Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT " new type:%d%s", 34262306a36Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, __entry->new_type, 34362306a36Sopenharmony_ci __entry->new_p2p ? "/p2p" : "" 34462306a36Sopenharmony_ci ) 34562306a36Sopenharmony_ci); 34662306a36Sopenharmony_ci 34762306a36Sopenharmony_ciDEFINE_EVENT(local_sdata_addr_evt, drv_remove_interface, 34862306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 34962306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata), 35062306a36Sopenharmony_ci TP_ARGS(local, sdata) 35162306a36Sopenharmony_ci); 35262306a36Sopenharmony_ci 35362306a36Sopenharmony_ciTRACE_EVENT(drv_config, 35462306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 35562306a36Sopenharmony_ci u32 changed), 35662306a36Sopenharmony_ci 35762306a36Sopenharmony_ci TP_ARGS(local, changed), 35862306a36Sopenharmony_ci 35962306a36Sopenharmony_ci TP_STRUCT__entry( 36062306a36Sopenharmony_ci LOCAL_ENTRY 36162306a36Sopenharmony_ci __field(u32, changed) 36262306a36Sopenharmony_ci __field(u32, flags) 36362306a36Sopenharmony_ci __field(int, power_level) 36462306a36Sopenharmony_ci __field(int, dynamic_ps_timeout) 36562306a36Sopenharmony_ci __field(u16, listen_interval) 36662306a36Sopenharmony_ci __field(u8, long_frame_max_tx_count) 36762306a36Sopenharmony_ci __field(u8, short_frame_max_tx_count) 36862306a36Sopenharmony_ci CHANDEF_ENTRY 36962306a36Sopenharmony_ci __field(int, smps) 37062306a36Sopenharmony_ci ), 37162306a36Sopenharmony_ci 37262306a36Sopenharmony_ci TP_fast_assign( 37362306a36Sopenharmony_ci LOCAL_ASSIGN; 37462306a36Sopenharmony_ci __entry->changed = changed; 37562306a36Sopenharmony_ci __entry->flags = local->hw.conf.flags; 37662306a36Sopenharmony_ci __entry->power_level = local->hw.conf.power_level; 37762306a36Sopenharmony_ci __entry->dynamic_ps_timeout = local->hw.conf.dynamic_ps_timeout; 37862306a36Sopenharmony_ci __entry->listen_interval = local->hw.conf.listen_interval; 37962306a36Sopenharmony_ci __entry->long_frame_max_tx_count = 38062306a36Sopenharmony_ci local->hw.conf.long_frame_max_tx_count; 38162306a36Sopenharmony_ci __entry->short_frame_max_tx_count = 38262306a36Sopenharmony_ci local->hw.conf.short_frame_max_tx_count; 38362306a36Sopenharmony_ci CHANDEF_ASSIGN(&local->hw.conf.chandef) 38462306a36Sopenharmony_ci __entry->smps = local->hw.conf.smps_mode; 38562306a36Sopenharmony_ci ), 38662306a36Sopenharmony_ci 38762306a36Sopenharmony_ci TP_printk( 38862306a36Sopenharmony_ci LOCAL_PR_FMT " ch:%#x" CHANDEF_PR_FMT, 38962306a36Sopenharmony_ci LOCAL_PR_ARG, __entry->changed, CHANDEF_PR_ARG 39062306a36Sopenharmony_ci ) 39162306a36Sopenharmony_ci); 39262306a36Sopenharmony_ci 39362306a36Sopenharmony_ciTRACE_EVENT(drv_vif_cfg_changed, 39462306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 39562306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 39662306a36Sopenharmony_ci u64 changed), 39762306a36Sopenharmony_ci 39862306a36Sopenharmony_ci TP_ARGS(local, sdata, changed), 39962306a36Sopenharmony_ci 40062306a36Sopenharmony_ci TP_STRUCT__entry( 40162306a36Sopenharmony_ci LOCAL_ENTRY 40262306a36Sopenharmony_ci VIF_ENTRY 40362306a36Sopenharmony_ci __field(u64, changed) 40462306a36Sopenharmony_ci __field(bool, assoc) 40562306a36Sopenharmony_ci __field(bool, ibss_joined) 40662306a36Sopenharmony_ci __field(bool, ibss_creator) 40762306a36Sopenharmony_ci __field(u16, aid) 40862306a36Sopenharmony_ci __dynamic_array(u32, arp_addr_list, 40962306a36Sopenharmony_ci sdata->vif.cfg.arp_addr_cnt > IEEE80211_BSS_ARP_ADDR_LIST_LEN ? 41062306a36Sopenharmony_ci IEEE80211_BSS_ARP_ADDR_LIST_LEN : 41162306a36Sopenharmony_ci sdata->vif.cfg.arp_addr_cnt) 41262306a36Sopenharmony_ci __field(int, arp_addr_cnt) 41362306a36Sopenharmony_ci __dynamic_array(u8, ssid, sdata->vif.cfg.ssid_len) 41462306a36Sopenharmony_ci __field(int, s1g) 41562306a36Sopenharmony_ci __field(bool, idle) 41662306a36Sopenharmony_ci __field(bool, ps) 41762306a36Sopenharmony_ci ), 41862306a36Sopenharmony_ci 41962306a36Sopenharmony_ci TP_fast_assign( 42062306a36Sopenharmony_ci LOCAL_ASSIGN; 42162306a36Sopenharmony_ci VIF_ASSIGN; 42262306a36Sopenharmony_ci __entry->changed = changed; 42362306a36Sopenharmony_ci __entry->aid = sdata->vif.cfg.aid; 42462306a36Sopenharmony_ci __entry->assoc = sdata->vif.cfg.assoc; 42562306a36Sopenharmony_ci __entry->ibss_joined = sdata->vif.cfg.ibss_joined; 42662306a36Sopenharmony_ci __entry->ibss_creator = sdata->vif.cfg.ibss_creator; 42762306a36Sopenharmony_ci __entry->ps = sdata->vif.cfg.ps; 42862306a36Sopenharmony_ci 42962306a36Sopenharmony_ci __entry->arp_addr_cnt = sdata->vif.cfg.arp_addr_cnt; 43062306a36Sopenharmony_ci memcpy(__get_dynamic_array(arp_addr_list), 43162306a36Sopenharmony_ci sdata->vif.cfg.arp_addr_list, 43262306a36Sopenharmony_ci sizeof(u32) * (sdata->vif.cfg.arp_addr_cnt > IEEE80211_BSS_ARP_ADDR_LIST_LEN ? 43362306a36Sopenharmony_ci IEEE80211_BSS_ARP_ADDR_LIST_LEN : 43462306a36Sopenharmony_ci sdata->vif.cfg.arp_addr_cnt)); 43562306a36Sopenharmony_ci memcpy(__get_dynamic_array(ssid), 43662306a36Sopenharmony_ci sdata->vif.cfg.ssid, 43762306a36Sopenharmony_ci sdata->vif.cfg.ssid_len); 43862306a36Sopenharmony_ci __entry->s1g = sdata->vif.cfg.s1g; 43962306a36Sopenharmony_ci __entry->idle = sdata->vif.cfg.idle; 44062306a36Sopenharmony_ci ), 44162306a36Sopenharmony_ci 44262306a36Sopenharmony_ci TP_printk( 44362306a36Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT " changed:%#llx", 44462306a36Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, __entry->changed 44562306a36Sopenharmony_ci ) 44662306a36Sopenharmony_ci); 44762306a36Sopenharmony_ci 44862306a36Sopenharmony_ciTRACE_EVENT(drv_link_info_changed, 44962306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 45062306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 45162306a36Sopenharmony_ci struct ieee80211_bss_conf *link_conf, 45262306a36Sopenharmony_ci u64 changed), 45362306a36Sopenharmony_ci 45462306a36Sopenharmony_ci TP_ARGS(local, sdata, link_conf, changed), 45562306a36Sopenharmony_ci 45662306a36Sopenharmony_ci TP_STRUCT__entry( 45762306a36Sopenharmony_ci LOCAL_ENTRY 45862306a36Sopenharmony_ci VIF_ENTRY 45962306a36Sopenharmony_ci __field(u64, changed) 46062306a36Sopenharmony_ci __field(int, link_id) 46162306a36Sopenharmony_ci __field(bool, cts) 46262306a36Sopenharmony_ci __field(bool, shortpre) 46362306a36Sopenharmony_ci __field(bool, shortslot) 46462306a36Sopenharmony_ci __field(bool, enable_beacon) 46562306a36Sopenharmony_ci __field(u8, dtimper) 46662306a36Sopenharmony_ci __field(u16, bcnint) 46762306a36Sopenharmony_ci __field(u16, assoc_cap) 46862306a36Sopenharmony_ci __field(u64, sync_tsf) 46962306a36Sopenharmony_ci __field(u32, sync_device_ts) 47062306a36Sopenharmony_ci __field(u8, sync_dtim_count) 47162306a36Sopenharmony_ci __field(u32, basic_rates) 47262306a36Sopenharmony_ci __array(int, mcast_rate, NUM_NL80211_BANDS) 47362306a36Sopenharmony_ci __field(u16, ht_operation_mode) 47462306a36Sopenharmony_ci __field(s32, cqm_rssi_thold) 47562306a36Sopenharmony_ci __field(s32, cqm_rssi_hyst) 47662306a36Sopenharmony_ci __field(u32, channel_width) 47762306a36Sopenharmony_ci __field(u32, channel_cfreq1) 47862306a36Sopenharmony_ci __field(u32, channel_cfreq1_offset) 47962306a36Sopenharmony_ci __field(bool, qos) 48062306a36Sopenharmony_ci __field(bool, hidden_ssid) 48162306a36Sopenharmony_ci __field(int, txpower) 48262306a36Sopenharmony_ci __field(u8, p2p_oppps_ctwindow) 48362306a36Sopenharmony_ci ), 48462306a36Sopenharmony_ci 48562306a36Sopenharmony_ci TP_fast_assign( 48662306a36Sopenharmony_ci LOCAL_ASSIGN; 48762306a36Sopenharmony_ci VIF_ASSIGN; 48862306a36Sopenharmony_ci __entry->changed = changed; 48962306a36Sopenharmony_ci __entry->link_id = link_conf->link_id; 49062306a36Sopenharmony_ci __entry->shortpre = link_conf->use_short_preamble; 49162306a36Sopenharmony_ci __entry->cts = link_conf->use_cts_prot; 49262306a36Sopenharmony_ci __entry->shortslot = link_conf->use_short_slot; 49362306a36Sopenharmony_ci __entry->enable_beacon = link_conf->enable_beacon; 49462306a36Sopenharmony_ci __entry->dtimper = link_conf->dtim_period; 49562306a36Sopenharmony_ci __entry->bcnint = link_conf->beacon_int; 49662306a36Sopenharmony_ci __entry->assoc_cap = link_conf->assoc_capability; 49762306a36Sopenharmony_ci __entry->sync_tsf = link_conf->sync_tsf; 49862306a36Sopenharmony_ci __entry->sync_device_ts = link_conf->sync_device_ts; 49962306a36Sopenharmony_ci __entry->sync_dtim_count = link_conf->sync_dtim_count; 50062306a36Sopenharmony_ci __entry->basic_rates = link_conf->basic_rates; 50162306a36Sopenharmony_ci memcpy(__entry->mcast_rate, link_conf->mcast_rate, 50262306a36Sopenharmony_ci sizeof(__entry->mcast_rate)); 50362306a36Sopenharmony_ci __entry->ht_operation_mode = link_conf->ht_operation_mode; 50462306a36Sopenharmony_ci __entry->cqm_rssi_thold = link_conf->cqm_rssi_thold; 50562306a36Sopenharmony_ci __entry->cqm_rssi_hyst = link_conf->cqm_rssi_hyst; 50662306a36Sopenharmony_ci __entry->channel_width = link_conf->chandef.width; 50762306a36Sopenharmony_ci __entry->channel_cfreq1 = link_conf->chandef.center_freq1; 50862306a36Sopenharmony_ci __entry->channel_cfreq1_offset = link_conf->chandef.freq1_offset; 50962306a36Sopenharmony_ci __entry->qos = link_conf->qos; 51062306a36Sopenharmony_ci __entry->hidden_ssid = link_conf->hidden_ssid; 51162306a36Sopenharmony_ci __entry->txpower = link_conf->txpower; 51262306a36Sopenharmony_ci __entry->p2p_oppps_ctwindow = link_conf->p2p_noa_attr.oppps_ctwindow; 51362306a36Sopenharmony_ci ), 51462306a36Sopenharmony_ci 51562306a36Sopenharmony_ci TP_printk( 51662306a36Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT " link_id:%d, changed:%#llx", 51762306a36Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, __entry->link_id, 51862306a36Sopenharmony_ci __entry->changed 51962306a36Sopenharmony_ci ) 52062306a36Sopenharmony_ci); 52162306a36Sopenharmony_ci 52262306a36Sopenharmony_ciTRACE_EVENT(drv_prepare_multicast, 52362306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, int mc_count), 52462306a36Sopenharmony_ci 52562306a36Sopenharmony_ci TP_ARGS(local, mc_count), 52662306a36Sopenharmony_ci 52762306a36Sopenharmony_ci TP_STRUCT__entry( 52862306a36Sopenharmony_ci LOCAL_ENTRY 52962306a36Sopenharmony_ci __field(int, mc_count) 53062306a36Sopenharmony_ci ), 53162306a36Sopenharmony_ci 53262306a36Sopenharmony_ci TP_fast_assign( 53362306a36Sopenharmony_ci LOCAL_ASSIGN; 53462306a36Sopenharmony_ci __entry->mc_count = mc_count; 53562306a36Sopenharmony_ci ), 53662306a36Sopenharmony_ci 53762306a36Sopenharmony_ci TP_printk( 53862306a36Sopenharmony_ci LOCAL_PR_FMT " prepare mc (%d)", 53962306a36Sopenharmony_ci LOCAL_PR_ARG, __entry->mc_count 54062306a36Sopenharmony_ci ) 54162306a36Sopenharmony_ci); 54262306a36Sopenharmony_ci 54362306a36Sopenharmony_ciTRACE_EVENT(drv_configure_filter, 54462306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 54562306a36Sopenharmony_ci unsigned int changed_flags, 54662306a36Sopenharmony_ci unsigned int *total_flags, 54762306a36Sopenharmony_ci u64 multicast), 54862306a36Sopenharmony_ci 54962306a36Sopenharmony_ci TP_ARGS(local, changed_flags, total_flags, multicast), 55062306a36Sopenharmony_ci 55162306a36Sopenharmony_ci TP_STRUCT__entry( 55262306a36Sopenharmony_ci LOCAL_ENTRY 55362306a36Sopenharmony_ci __field(unsigned int, changed) 55462306a36Sopenharmony_ci __field(unsigned int, total) 55562306a36Sopenharmony_ci __field(u64, multicast) 55662306a36Sopenharmony_ci ), 55762306a36Sopenharmony_ci 55862306a36Sopenharmony_ci TP_fast_assign( 55962306a36Sopenharmony_ci LOCAL_ASSIGN; 56062306a36Sopenharmony_ci __entry->changed = changed_flags; 56162306a36Sopenharmony_ci __entry->total = *total_flags; 56262306a36Sopenharmony_ci __entry->multicast = multicast; 56362306a36Sopenharmony_ci ), 56462306a36Sopenharmony_ci 56562306a36Sopenharmony_ci TP_printk( 56662306a36Sopenharmony_ci LOCAL_PR_FMT " changed:%#x total:%#x", 56762306a36Sopenharmony_ci LOCAL_PR_ARG, __entry->changed, __entry->total 56862306a36Sopenharmony_ci ) 56962306a36Sopenharmony_ci); 57062306a36Sopenharmony_ci 57162306a36Sopenharmony_ciTRACE_EVENT(drv_config_iface_filter, 57262306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 57362306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 57462306a36Sopenharmony_ci unsigned int filter_flags, 57562306a36Sopenharmony_ci unsigned int changed_flags), 57662306a36Sopenharmony_ci 57762306a36Sopenharmony_ci TP_ARGS(local, sdata, filter_flags, changed_flags), 57862306a36Sopenharmony_ci 57962306a36Sopenharmony_ci TP_STRUCT__entry( 58062306a36Sopenharmony_ci LOCAL_ENTRY 58162306a36Sopenharmony_ci VIF_ENTRY 58262306a36Sopenharmony_ci __field(unsigned int, filter_flags) 58362306a36Sopenharmony_ci __field(unsigned int, changed_flags) 58462306a36Sopenharmony_ci ), 58562306a36Sopenharmony_ci 58662306a36Sopenharmony_ci TP_fast_assign( 58762306a36Sopenharmony_ci LOCAL_ASSIGN; 58862306a36Sopenharmony_ci VIF_ASSIGN; 58962306a36Sopenharmony_ci __entry->filter_flags = filter_flags; 59062306a36Sopenharmony_ci __entry->changed_flags = changed_flags; 59162306a36Sopenharmony_ci ), 59262306a36Sopenharmony_ci 59362306a36Sopenharmony_ci TP_printk( 59462306a36Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT 59562306a36Sopenharmony_ci " filter_flags: %#x changed_flags: %#x", 59662306a36Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, __entry->filter_flags, 59762306a36Sopenharmony_ci __entry->changed_flags 59862306a36Sopenharmony_ci ) 59962306a36Sopenharmony_ci); 60062306a36Sopenharmony_ci 60162306a36Sopenharmony_ciTRACE_EVENT(drv_set_tim, 60262306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 60362306a36Sopenharmony_ci struct ieee80211_sta *sta, bool set), 60462306a36Sopenharmony_ci 60562306a36Sopenharmony_ci TP_ARGS(local, sta, set), 60662306a36Sopenharmony_ci 60762306a36Sopenharmony_ci TP_STRUCT__entry( 60862306a36Sopenharmony_ci LOCAL_ENTRY 60962306a36Sopenharmony_ci STA_ENTRY 61062306a36Sopenharmony_ci __field(bool, set) 61162306a36Sopenharmony_ci ), 61262306a36Sopenharmony_ci 61362306a36Sopenharmony_ci TP_fast_assign( 61462306a36Sopenharmony_ci LOCAL_ASSIGN; 61562306a36Sopenharmony_ci STA_ASSIGN; 61662306a36Sopenharmony_ci __entry->set = set; 61762306a36Sopenharmony_ci ), 61862306a36Sopenharmony_ci 61962306a36Sopenharmony_ci TP_printk( 62062306a36Sopenharmony_ci LOCAL_PR_FMT STA_PR_FMT " set:%d", 62162306a36Sopenharmony_ci LOCAL_PR_ARG, STA_PR_ARG, __entry->set 62262306a36Sopenharmony_ci ) 62362306a36Sopenharmony_ci); 62462306a36Sopenharmony_ci 62562306a36Sopenharmony_ciTRACE_EVENT(drv_set_key, 62662306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 62762306a36Sopenharmony_ci enum set_key_cmd cmd, struct ieee80211_sub_if_data *sdata, 62862306a36Sopenharmony_ci struct ieee80211_sta *sta, 62962306a36Sopenharmony_ci struct ieee80211_key_conf *key), 63062306a36Sopenharmony_ci 63162306a36Sopenharmony_ci TP_ARGS(local, cmd, sdata, sta, key), 63262306a36Sopenharmony_ci 63362306a36Sopenharmony_ci TP_STRUCT__entry( 63462306a36Sopenharmony_ci LOCAL_ENTRY 63562306a36Sopenharmony_ci VIF_ENTRY 63662306a36Sopenharmony_ci STA_ENTRY 63762306a36Sopenharmony_ci __field(u32, cmd) 63862306a36Sopenharmony_ci KEY_ENTRY 63962306a36Sopenharmony_ci ), 64062306a36Sopenharmony_ci 64162306a36Sopenharmony_ci TP_fast_assign( 64262306a36Sopenharmony_ci LOCAL_ASSIGN; 64362306a36Sopenharmony_ci VIF_ASSIGN; 64462306a36Sopenharmony_ci STA_ASSIGN; 64562306a36Sopenharmony_ci __entry->cmd = cmd; 64662306a36Sopenharmony_ci KEY_ASSIGN(key); 64762306a36Sopenharmony_ci ), 64862306a36Sopenharmony_ci 64962306a36Sopenharmony_ci TP_printk( 65062306a36Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT STA_PR_FMT " cmd: %d" KEY_PR_FMT, 65162306a36Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, STA_PR_ARG, __entry->cmd, KEY_PR_ARG 65262306a36Sopenharmony_ci ) 65362306a36Sopenharmony_ci); 65462306a36Sopenharmony_ci 65562306a36Sopenharmony_ciTRACE_EVENT(drv_update_tkip_key, 65662306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 65762306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 65862306a36Sopenharmony_ci struct ieee80211_key_conf *conf, 65962306a36Sopenharmony_ci struct ieee80211_sta *sta, u32 iv32), 66062306a36Sopenharmony_ci 66162306a36Sopenharmony_ci TP_ARGS(local, sdata, conf, sta, iv32), 66262306a36Sopenharmony_ci 66362306a36Sopenharmony_ci TP_STRUCT__entry( 66462306a36Sopenharmony_ci LOCAL_ENTRY 66562306a36Sopenharmony_ci VIF_ENTRY 66662306a36Sopenharmony_ci STA_ENTRY 66762306a36Sopenharmony_ci __field(u32, iv32) 66862306a36Sopenharmony_ci ), 66962306a36Sopenharmony_ci 67062306a36Sopenharmony_ci TP_fast_assign( 67162306a36Sopenharmony_ci LOCAL_ASSIGN; 67262306a36Sopenharmony_ci VIF_ASSIGN; 67362306a36Sopenharmony_ci STA_ASSIGN; 67462306a36Sopenharmony_ci __entry->iv32 = iv32; 67562306a36Sopenharmony_ci ), 67662306a36Sopenharmony_ci 67762306a36Sopenharmony_ci TP_printk( 67862306a36Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT STA_PR_FMT " iv32:%#x", 67962306a36Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, STA_PR_ARG, __entry->iv32 68062306a36Sopenharmony_ci ) 68162306a36Sopenharmony_ci); 68262306a36Sopenharmony_ci 68362306a36Sopenharmony_ciDEFINE_EVENT(local_sdata_evt, drv_hw_scan, 68462306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 68562306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata), 68662306a36Sopenharmony_ci TP_ARGS(local, sdata) 68762306a36Sopenharmony_ci); 68862306a36Sopenharmony_ci 68962306a36Sopenharmony_ciDEFINE_EVENT(local_sdata_evt, drv_cancel_hw_scan, 69062306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 69162306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata), 69262306a36Sopenharmony_ci TP_ARGS(local, sdata) 69362306a36Sopenharmony_ci); 69462306a36Sopenharmony_ci 69562306a36Sopenharmony_ciDEFINE_EVENT(local_sdata_evt, drv_sched_scan_start, 69662306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 69762306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata), 69862306a36Sopenharmony_ci TP_ARGS(local, sdata) 69962306a36Sopenharmony_ci); 70062306a36Sopenharmony_ci 70162306a36Sopenharmony_ciDEFINE_EVENT(local_sdata_evt, drv_sched_scan_stop, 70262306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 70362306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata), 70462306a36Sopenharmony_ci TP_ARGS(local, sdata) 70562306a36Sopenharmony_ci); 70662306a36Sopenharmony_ci 70762306a36Sopenharmony_ciTRACE_EVENT(drv_sw_scan_start, 70862306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 70962306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 71062306a36Sopenharmony_ci const u8 *mac_addr), 71162306a36Sopenharmony_ci 71262306a36Sopenharmony_ci TP_ARGS(local, sdata, mac_addr), 71362306a36Sopenharmony_ci 71462306a36Sopenharmony_ci TP_STRUCT__entry( 71562306a36Sopenharmony_ci LOCAL_ENTRY 71662306a36Sopenharmony_ci VIF_ENTRY 71762306a36Sopenharmony_ci __array(char, mac_addr, ETH_ALEN) 71862306a36Sopenharmony_ci ), 71962306a36Sopenharmony_ci 72062306a36Sopenharmony_ci TP_fast_assign( 72162306a36Sopenharmony_ci LOCAL_ASSIGN; 72262306a36Sopenharmony_ci VIF_ASSIGN; 72362306a36Sopenharmony_ci memcpy(__entry->mac_addr, mac_addr, ETH_ALEN); 72462306a36Sopenharmony_ci ), 72562306a36Sopenharmony_ci 72662306a36Sopenharmony_ci TP_printk(LOCAL_PR_FMT ", " VIF_PR_FMT ", addr:%pM", 72762306a36Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, __entry->mac_addr) 72862306a36Sopenharmony_ci); 72962306a36Sopenharmony_ci 73062306a36Sopenharmony_ciDEFINE_EVENT(local_sdata_evt, drv_sw_scan_complete, 73162306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 73262306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata), 73362306a36Sopenharmony_ci TP_ARGS(local, sdata) 73462306a36Sopenharmony_ci); 73562306a36Sopenharmony_ci 73662306a36Sopenharmony_ciTRACE_EVENT(drv_get_stats, 73762306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 73862306a36Sopenharmony_ci struct ieee80211_low_level_stats *stats, 73962306a36Sopenharmony_ci int ret), 74062306a36Sopenharmony_ci 74162306a36Sopenharmony_ci TP_ARGS(local, stats, ret), 74262306a36Sopenharmony_ci 74362306a36Sopenharmony_ci TP_STRUCT__entry( 74462306a36Sopenharmony_ci LOCAL_ENTRY 74562306a36Sopenharmony_ci __field(int, ret) 74662306a36Sopenharmony_ci __field(unsigned int, ackfail) 74762306a36Sopenharmony_ci __field(unsigned int, rtsfail) 74862306a36Sopenharmony_ci __field(unsigned int, fcserr) 74962306a36Sopenharmony_ci __field(unsigned int, rtssucc) 75062306a36Sopenharmony_ci ), 75162306a36Sopenharmony_ci 75262306a36Sopenharmony_ci TP_fast_assign( 75362306a36Sopenharmony_ci LOCAL_ASSIGN; 75462306a36Sopenharmony_ci __entry->ret = ret; 75562306a36Sopenharmony_ci __entry->ackfail = stats->dot11ACKFailureCount; 75662306a36Sopenharmony_ci __entry->rtsfail = stats->dot11RTSFailureCount; 75762306a36Sopenharmony_ci __entry->fcserr = stats->dot11FCSErrorCount; 75862306a36Sopenharmony_ci __entry->rtssucc = stats->dot11RTSSuccessCount; 75962306a36Sopenharmony_ci ), 76062306a36Sopenharmony_ci 76162306a36Sopenharmony_ci TP_printk( 76262306a36Sopenharmony_ci LOCAL_PR_FMT " ret:%d", 76362306a36Sopenharmony_ci LOCAL_PR_ARG, __entry->ret 76462306a36Sopenharmony_ci ) 76562306a36Sopenharmony_ci); 76662306a36Sopenharmony_ci 76762306a36Sopenharmony_ciTRACE_EVENT(drv_get_key_seq, 76862306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 76962306a36Sopenharmony_ci struct ieee80211_key_conf *key), 77062306a36Sopenharmony_ci 77162306a36Sopenharmony_ci TP_ARGS(local, key), 77262306a36Sopenharmony_ci 77362306a36Sopenharmony_ci TP_STRUCT__entry( 77462306a36Sopenharmony_ci LOCAL_ENTRY 77562306a36Sopenharmony_ci KEY_ENTRY 77662306a36Sopenharmony_ci ), 77762306a36Sopenharmony_ci 77862306a36Sopenharmony_ci TP_fast_assign( 77962306a36Sopenharmony_ci LOCAL_ASSIGN; 78062306a36Sopenharmony_ci KEY_ASSIGN(key); 78162306a36Sopenharmony_ci ), 78262306a36Sopenharmony_ci 78362306a36Sopenharmony_ci TP_printk( 78462306a36Sopenharmony_ci LOCAL_PR_FMT KEY_PR_FMT, 78562306a36Sopenharmony_ci LOCAL_PR_ARG, KEY_PR_ARG 78662306a36Sopenharmony_ci ) 78762306a36Sopenharmony_ci); 78862306a36Sopenharmony_ci 78962306a36Sopenharmony_ciDEFINE_EVENT(local_u32_evt, drv_set_frag_threshold, 79062306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, u32 value), 79162306a36Sopenharmony_ci TP_ARGS(local, value) 79262306a36Sopenharmony_ci); 79362306a36Sopenharmony_ci 79462306a36Sopenharmony_ciDEFINE_EVENT(local_u32_evt, drv_set_rts_threshold, 79562306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, u32 value), 79662306a36Sopenharmony_ci TP_ARGS(local, value) 79762306a36Sopenharmony_ci); 79862306a36Sopenharmony_ci 79962306a36Sopenharmony_ciTRACE_EVENT(drv_set_coverage_class, 80062306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, s16 value), 80162306a36Sopenharmony_ci 80262306a36Sopenharmony_ci TP_ARGS(local, value), 80362306a36Sopenharmony_ci 80462306a36Sopenharmony_ci TP_STRUCT__entry( 80562306a36Sopenharmony_ci LOCAL_ENTRY 80662306a36Sopenharmony_ci __field(s16, value) 80762306a36Sopenharmony_ci ), 80862306a36Sopenharmony_ci 80962306a36Sopenharmony_ci TP_fast_assign( 81062306a36Sopenharmony_ci LOCAL_ASSIGN; 81162306a36Sopenharmony_ci __entry->value = value; 81262306a36Sopenharmony_ci ), 81362306a36Sopenharmony_ci 81462306a36Sopenharmony_ci TP_printk( 81562306a36Sopenharmony_ci LOCAL_PR_FMT " value:%d", 81662306a36Sopenharmony_ci LOCAL_PR_ARG, __entry->value 81762306a36Sopenharmony_ci ) 81862306a36Sopenharmony_ci); 81962306a36Sopenharmony_ci 82062306a36Sopenharmony_ciTRACE_EVENT(drv_sta_notify, 82162306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 82262306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 82362306a36Sopenharmony_ci enum sta_notify_cmd cmd, 82462306a36Sopenharmony_ci struct ieee80211_sta *sta), 82562306a36Sopenharmony_ci 82662306a36Sopenharmony_ci TP_ARGS(local, sdata, cmd, sta), 82762306a36Sopenharmony_ci 82862306a36Sopenharmony_ci TP_STRUCT__entry( 82962306a36Sopenharmony_ci LOCAL_ENTRY 83062306a36Sopenharmony_ci VIF_ENTRY 83162306a36Sopenharmony_ci STA_ENTRY 83262306a36Sopenharmony_ci __field(u32, cmd) 83362306a36Sopenharmony_ci ), 83462306a36Sopenharmony_ci 83562306a36Sopenharmony_ci TP_fast_assign( 83662306a36Sopenharmony_ci LOCAL_ASSIGN; 83762306a36Sopenharmony_ci VIF_ASSIGN; 83862306a36Sopenharmony_ci STA_ASSIGN; 83962306a36Sopenharmony_ci __entry->cmd = cmd; 84062306a36Sopenharmony_ci ), 84162306a36Sopenharmony_ci 84262306a36Sopenharmony_ci TP_printk( 84362306a36Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT STA_PR_FMT " cmd:%d", 84462306a36Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, STA_PR_ARG, __entry->cmd 84562306a36Sopenharmony_ci ) 84662306a36Sopenharmony_ci); 84762306a36Sopenharmony_ci 84862306a36Sopenharmony_ciTRACE_EVENT(drv_sta_state, 84962306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 85062306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 85162306a36Sopenharmony_ci struct ieee80211_sta *sta, 85262306a36Sopenharmony_ci enum ieee80211_sta_state old_state, 85362306a36Sopenharmony_ci enum ieee80211_sta_state new_state), 85462306a36Sopenharmony_ci 85562306a36Sopenharmony_ci TP_ARGS(local, sdata, sta, old_state, new_state), 85662306a36Sopenharmony_ci 85762306a36Sopenharmony_ci TP_STRUCT__entry( 85862306a36Sopenharmony_ci LOCAL_ENTRY 85962306a36Sopenharmony_ci VIF_ENTRY 86062306a36Sopenharmony_ci STA_ENTRY 86162306a36Sopenharmony_ci __field(u32, old_state) 86262306a36Sopenharmony_ci __field(u32, new_state) 86362306a36Sopenharmony_ci ), 86462306a36Sopenharmony_ci 86562306a36Sopenharmony_ci TP_fast_assign( 86662306a36Sopenharmony_ci LOCAL_ASSIGN; 86762306a36Sopenharmony_ci VIF_ASSIGN; 86862306a36Sopenharmony_ci STA_ASSIGN; 86962306a36Sopenharmony_ci __entry->old_state = old_state; 87062306a36Sopenharmony_ci __entry->new_state = new_state; 87162306a36Sopenharmony_ci ), 87262306a36Sopenharmony_ci 87362306a36Sopenharmony_ci TP_printk( 87462306a36Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT STA_PR_FMT " state: %d->%d", 87562306a36Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, STA_PR_ARG, 87662306a36Sopenharmony_ci __entry->old_state, __entry->new_state 87762306a36Sopenharmony_ci ) 87862306a36Sopenharmony_ci); 87962306a36Sopenharmony_ci 88062306a36Sopenharmony_ciTRACE_EVENT(drv_sta_set_txpwr, 88162306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 88262306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 88362306a36Sopenharmony_ci struct ieee80211_sta *sta), 88462306a36Sopenharmony_ci 88562306a36Sopenharmony_ci TP_ARGS(local, sdata, sta), 88662306a36Sopenharmony_ci 88762306a36Sopenharmony_ci TP_STRUCT__entry( 88862306a36Sopenharmony_ci LOCAL_ENTRY 88962306a36Sopenharmony_ci VIF_ENTRY 89062306a36Sopenharmony_ci STA_ENTRY 89162306a36Sopenharmony_ci __field(s16, txpwr) 89262306a36Sopenharmony_ci __field(u8, type) 89362306a36Sopenharmony_ci ), 89462306a36Sopenharmony_ci 89562306a36Sopenharmony_ci TP_fast_assign( 89662306a36Sopenharmony_ci LOCAL_ASSIGN; 89762306a36Sopenharmony_ci VIF_ASSIGN; 89862306a36Sopenharmony_ci STA_ASSIGN; 89962306a36Sopenharmony_ci __entry->txpwr = sta->deflink.txpwr.power; 90062306a36Sopenharmony_ci __entry->type = sta->deflink.txpwr.type; 90162306a36Sopenharmony_ci ), 90262306a36Sopenharmony_ci 90362306a36Sopenharmony_ci TP_printk( 90462306a36Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT STA_PR_FMT " txpwr: %d type %d", 90562306a36Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, STA_PR_ARG, 90662306a36Sopenharmony_ci __entry->txpwr, __entry->type 90762306a36Sopenharmony_ci ) 90862306a36Sopenharmony_ci); 90962306a36Sopenharmony_ci 91062306a36Sopenharmony_ciTRACE_EVENT(drv_sta_rc_update, 91162306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 91262306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 91362306a36Sopenharmony_ci struct ieee80211_sta *sta, 91462306a36Sopenharmony_ci u32 changed), 91562306a36Sopenharmony_ci 91662306a36Sopenharmony_ci TP_ARGS(local, sdata, sta, changed), 91762306a36Sopenharmony_ci 91862306a36Sopenharmony_ci TP_STRUCT__entry( 91962306a36Sopenharmony_ci LOCAL_ENTRY 92062306a36Sopenharmony_ci VIF_ENTRY 92162306a36Sopenharmony_ci STA_ENTRY 92262306a36Sopenharmony_ci __field(u32, changed) 92362306a36Sopenharmony_ci ), 92462306a36Sopenharmony_ci 92562306a36Sopenharmony_ci TP_fast_assign( 92662306a36Sopenharmony_ci LOCAL_ASSIGN; 92762306a36Sopenharmony_ci VIF_ASSIGN; 92862306a36Sopenharmony_ci STA_ASSIGN; 92962306a36Sopenharmony_ci __entry->changed = changed; 93062306a36Sopenharmony_ci ), 93162306a36Sopenharmony_ci 93262306a36Sopenharmony_ci TP_printk( 93362306a36Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT STA_PR_FMT " changed: 0x%x", 93462306a36Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, STA_PR_ARG, __entry->changed 93562306a36Sopenharmony_ci ) 93662306a36Sopenharmony_ci); 93762306a36Sopenharmony_ci 93862306a36Sopenharmony_ciDECLARE_EVENT_CLASS(sta_event, 93962306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 94062306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 94162306a36Sopenharmony_ci struct ieee80211_sta *sta), 94262306a36Sopenharmony_ci 94362306a36Sopenharmony_ci TP_ARGS(local, sdata, sta), 94462306a36Sopenharmony_ci 94562306a36Sopenharmony_ci TP_STRUCT__entry( 94662306a36Sopenharmony_ci LOCAL_ENTRY 94762306a36Sopenharmony_ci VIF_ENTRY 94862306a36Sopenharmony_ci STA_ENTRY 94962306a36Sopenharmony_ci ), 95062306a36Sopenharmony_ci 95162306a36Sopenharmony_ci TP_fast_assign( 95262306a36Sopenharmony_ci LOCAL_ASSIGN; 95362306a36Sopenharmony_ci VIF_ASSIGN; 95462306a36Sopenharmony_ci STA_ASSIGN; 95562306a36Sopenharmony_ci ), 95662306a36Sopenharmony_ci 95762306a36Sopenharmony_ci TP_printk( 95862306a36Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT STA_PR_FMT, 95962306a36Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, STA_PR_ARG 96062306a36Sopenharmony_ci ) 96162306a36Sopenharmony_ci); 96262306a36Sopenharmony_ci 96362306a36Sopenharmony_ciDEFINE_EVENT(sta_event, drv_sta_statistics, 96462306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 96562306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 96662306a36Sopenharmony_ci struct ieee80211_sta *sta), 96762306a36Sopenharmony_ci TP_ARGS(local, sdata, sta) 96862306a36Sopenharmony_ci); 96962306a36Sopenharmony_ci 97062306a36Sopenharmony_ciDEFINE_EVENT(sta_event, drv_sta_add, 97162306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 97262306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 97362306a36Sopenharmony_ci struct ieee80211_sta *sta), 97462306a36Sopenharmony_ci TP_ARGS(local, sdata, sta) 97562306a36Sopenharmony_ci); 97662306a36Sopenharmony_ci 97762306a36Sopenharmony_ciDEFINE_EVENT(sta_event, drv_sta_remove, 97862306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 97962306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 98062306a36Sopenharmony_ci struct ieee80211_sta *sta), 98162306a36Sopenharmony_ci TP_ARGS(local, sdata, sta) 98262306a36Sopenharmony_ci); 98362306a36Sopenharmony_ci 98462306a36Sopenharmony_ciDEFINE_EVENT(sta_event, drv_sta_pre_rcu_remove, 98562306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 98662306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 98762306a36Sopenharmony_ci struct ieee80211_sta *sta), 98862306a36Sopenharmony_ci TP_ARGS(local, sdata, sta) 98962306a36Sopenharmony_ci); 99062306a36Sopenharmony_ci 99162306a36Sopenharmony_ciDEFINE_EVENT(sta_event, drv_sync_rx_queues, 99262306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 99362306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 99462306a36Sopenharmony_ci struct ieee80211_sta *sta), 99562306a36Sopenharmony_ci TP_ARGS(local, sdata, sta) 99662306a36Sopenharmony_ci); 99762306a36Sopenharmony_ci 99862306a36Sopenharmony_ciDEFINE_EVENT(sta_event, drv_sta_rate_tbl_update, 99962306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 100062306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 100162306a36Sopenharmony_ci struct ieee80211_sta *sta), 100262306a36Sopenharmony_ci TP_ARGS(local, sdata, sta) 100362306a36Sopenharmony_ci); 100462306a36Sopenharmony_ci 100562306a36Sopenharmony_ciTRACE_EVENT(drv_conf_tx, 100662306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 100762306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 100862306a36Sopenharmony_ci unsigned int link_id, 100962306a36Sopenharmony_ci u16 ac, const struct ieee80211_tx_queue_params *params), 101062306a36Sopenharmony_ci 101162306a36Sopenharmony_ci TP_ARGS(local, sdata, link_id, ac, params), 101262306a36Sopenharmony_ci 101362306a36Sopenharmony_ci TP_STRUCT__entry( 101462306a36Sopenharmony_ci LOCAL_ENTRY 101562306a36Sopenharmony_ci VIF_ENTRY 101662306a36Sopenharmony_ci __field(unsigned int, link_id) 101762306a36Sopenharmony_ci __field(u16, ac) 101862306a36Sopenharmony_ci __field(u16, txop) 101962306a36Sopenharmony_ci __field(u16, cw_min) 102062306a36Sopenharmony_ci __field(u16, cw_max) 102162306a36Sopenharmony_ci __field(u8, aifs) 102262306a36Sopenharmony_ci __field(bool, uapsd) 102362306a36Sopenharmony_ci ), 102462306a36Sopenharmony_ci 102562306a36Sopenharmony_ci TP_fast_assign( 102662306a36Sopenharmony_ci LOCAL_ASSIGN; 102762306a36Sopenharmony_ci VIF_ASSIGN; 102862306a36Sopenharmony_ci __entry->link_id = link_id; 102962306a36Sopenharmony_ci __entry->ac = ac; 103062306a36Sopenharmony_ci __entry->txop = params->txop; 103162306a36Sopenharmony_ci __entry->cw_max = params->cw_max; 103262306a36Sopenharmony_ci __entry->cw_min = params->cw_min; 103362306a36Sopenharmony_ci __entry->aifs = params->aifs; 103462306a36Sopenharmony_ci __entry->uapsd = params->uapsd; 103562306a36Sopenharmony_ci ), 103662306a36Sopenharmony_ci 103762306a36Sopenharmony_ci TP_printk( 103862306a36Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT " link_id: %d, AC:%d", 103962306a36Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, __entry->link_id, __entry->ac 104062306a36Sopenharmony_ci ) 104162306a36Sopenharmony_ci); 104262306a36Sopenharmony_ci 104362306a36Sopenharmony_ciDEFINE_EVENT(local_sdata_evt, drv_get_tsf, 104462306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 104562306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata), 104662306a36Sopenharmony_ci TP_ARGS(local, sdata) 104762306a36Sopenharmony_ci); 104862306a36Sopenharmony_ci 104962306a36Sopenharmony_ciTRACE_EVENT(drv_set_tsf, 105062306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 105162306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 105262306a36Sopenharmony_ci u64 tsf), 105362306a36Sopenharmony_ci 105462306a36Sopenharmony_ci TP_ARGS(local, sdata, tsf), 105562306a36Sopenharmony_ci 105662306a36Sopenharmony_ci TP_STRUCT__entry( 105762306a36Sopenharmony_ci LOCAL_ENTRY 105862306a36Sopenharmony_ci VIF_ENTRY 105962306a36Sopenharmony_ci __field(u64, tsf) 106062306a36Sopenharmony_ci ), 106162306a36Sopenharmony_ci 106262306a36Sopenharmony_ci TP_fast_assign( 106362306a36Sopenharmony_ci LOCAL_ASSIGN; 106462306a36Sopenharmony_ci VIF_ASSIGN; 106562306a36Sopenharmony_ci __entry->tsf = tsf; 106662306a36Sopenharmony_ci ), 106762306a36Sopenharmony_ci 106862306a36Sopenharmony_ci TP_printk( 106962306a36Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT " tsf:%llu", 107062306a36Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, (unsigned long long)__entry->tsf 107162306a36Sopenharmony_ci ) 107262306a36Sopenharmony_ci); 107362306a36Sopenharmony_ci 107462306a36Sopenharmony_ciTRACE_EVENT(drv_offset_tsf, 107562306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 107662306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 107762306a36Sopenharmony_ci s64 offset), 107862306a36Sopenharmony_ci 107962306a36Sopenharmony_ci TP_ARGS(local, sdata, offset), 108062306a36Sopenharmony_ci 108162306a36Sopenharmony_ci TP_STRUCT__entry( 108262306a36Sopenharmony_ci LOCAL_ENTRY 108362306a36Sopenharmony_ci VIF_ENTRY 108462306a36Sopenharmony_ci __field(s64, tsf_offset) 108562306a36Sopenharmony_ci ), 108662306a36Sopenharmony_ci 108762306a36Sopenharmony_ci TP_fast_assign( 108862306a36Sopenharmony_ci LOCAL_ASSIGN; 108962306a36Sopenharmony_ci VIF_ASSIGN; 109062306a36Sopenharmony_ci __entry->tsf_offset = offset; 109162306a36Sopenharmony_ci ), 109262306a36Sopenharmony_ci 109362306a36Sopenharmony_ci TP_printk( 109462306a36Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT " tsf offset:%lld", 109562306a36Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, 109662306a36Sopenharmony_ci (unsigned long long)__entry->tsf_offset 109762306a36Sopenharmony_ci ) 109862306a36Sopenharmony_ci); 109962306a36Sopenharmony_ci 110062306a36Sopenharmony_ciDEFINE_EVENT(local_sdata_evt, drv_reset_tsf, 110162306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 110262306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata), 110362306a36Sopenharmony_ci TP_ARGS(local, sdata) 110462306a36Sopenharmony_ci); 110562306a36Sopenharmony_ci 110662306a36Sopenharmony_ciDEFINE_EVENT(local_only_evt, drv_tx_last_beacon, 110762306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local), 110862306a36Sopenharmony_ci TP_ARGS(local) 110962306a36Sopenharmony_ci); 111062306a36Sopenharmony_ci 111162306a36Sopenharmony_ciTRACE_EVENT(drv_ampdu_action, 111262306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 111362306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 111462306a36Sopenharmony_ci struct ieee80211_ampdu_params *params), 111562306a36Sopenharmony_ci 111662306a36Sopenharmony_ci TP_ARGS(local, sdata, params), 111762306a36Sopenharmony_ci 111862306a36Sopenharmony_ci TP_STRUCT__entry( 111962306a36Sopenharmony_ci LOCAL_ENTRY 112062306a36Sopenharmony_ci VIF_ENTRY 112162306a36Sopenharmony_ci AMPDU_ACTION_ENTRY 112262306a36Sopenharmony_ci ), 112362306a36Sopenharmony_ci 112462306a36Sopenharmony_ci TP_fast_assign( 112562306a36Sopenharmony_ci LOCAL_ASSIGN; 112662306a36Sopenharmony_ci VIF_ASSIGN; 112762306a36Sopenharmony_ci AMPDU_ACTION_ASSIGN; 112862306a36Sopenharmony_ci ), 112962306a36Sopenharmony_ci 113062306a36Sopenharmony_ci TP_printk( 113162306a36Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT AMPDU_ACTION_PR_FMT, 113262306a36Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, AMPDU_ACTION_PR_ARG 113362306a36Sopenharmony_ci ) 113462306a36Sopenharmony_ci); 113562306a36Sopenharmony_ci 113662306a36Sopenharmony_ciTRACE_EVENT(drv_get_survey, 113762306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, int _idx, 113862306a36Sopenharmony_ci struct survey_info *survey), 113962306a36Sopenharmony_ci 114062306a36Sopenharmony_ci TP_ARGS(local, _idx, survey), 114162306a36Sopenharmony_ci 114262306a36Sopenharmony_ci TP_STRUCT__entry( 114362306a36Sopenharmony_ci LOCAL_ENTRY 114462306a36Sopenharmony_ci __field(int, idx) 114562306a36Sopenharmony_ci ), 114662306a36Sopenharmony_ci 114762306a36Sopenharmony_ci TP_fast_assign( 114862306a36Sopenharmony_ci LOCAL_ASSIGN; 114962306a36Sopenharmony_ci __entry->idx = _idx; 115062306a36Sopenharmony_ci ), 115162306a36Sopenharmony_ci 115262306a36Sopenharmony_ci TP_printk( 115362306a36Sopenharmony_ci LOCAL_PR_FMT " idx:%d", 115462306a36Sopenharmony_ci LOCAL_PR_ARG, __entry->idx 115562306a36Sopenharmony_ci ) 115662306a36Sopenharmony_ci); 115762306a36Sopenharmony_ci 115862306a36Sopenharmony_ciTRACE_EVENT(drv_flush, 115962306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 116062306a36Sopenharmony_ci u32 queues, bool drop), 116162306a36Sopenharmony_ci 116262306a36Sopenharmony_ci TP_ARGS(local, queues, drop), 116362306a36Sopenharmony_ci 116462306a36Sopenharmony_ci TP_STRUCT__entry( 116562306a36Sopenharmony_ci LOCAL_ENTRY 116662306a36Sopenharmony_ci __field(bool, drop) 116762306a36Sopenharmony_ci __field(u32, queues) 116862306a36Sopenharmony_ci ), 116962306a36Sopenharmony_ci 117062306a36Sopenharmony_ci TP_fast_assign( 117162306a36Sopenharmony_ci LOCAL_ASSIGN; 117262306a36Sopenharmony_ci __entry->drop = drop; 117362306a36Sopenharmony_ci __entry->queues = queues; 117462306a36Sopenharmony_ci ), 117562306a36Sopenharmony_ci 117662306a36Sopenharmony_ci TP_printk( 117762306a36Sopenharmony_ci LOCAL_PR_FMT " queues:0x%x drop:%d", 117862306a36Sopenharmony_ci LOCAL_PR_ARG, __entry->queues, __entry->drop 117962306a36Sopenharmony_ci ) 118062306a36Sopenharmony_ci); 118162306a36Sopenharmony_ci 118262306a36Sopenharmony_ciDEFINE_EVENT(sta_event, drv_flush_sta, 118362306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 118462306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 118562306a36Sopenharmony_ci struct ieee80211_sta *sta), 118662306a36Sopenharmony_ci TP_ARGS(local, sdata, sta) 118762306a36Sopenharmony_ci); 118862306a36Sopenharmony_ci 118962306a36Sopenharmony_ciTRACE_EVENT(drv_channel_switch, 119062306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 119162306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 119262306a36Sopenharmony_ci struct ieee80211_channel_switch *ch_switch), 119362306a36Sopenharmony_ci 119462306a36Sopenharmony_ci TP_ARGS(local, sdata, ch_switch), 119562306a36Sopenharmony_ci 119662306a36Sopenharmony_ci TP_STRUCT__entry( 119762306a36Sopenharmony_ci LOCAL_ENTRY 119862306a36Sopenharmony_ci VIF_ENTRY 119962306a36Sopenharmony_ci CHANDEF_ENTRY 120062306a36Sopenharmony_ci __field(u64, timestamp) 120162306a36Sopenharmony_ci __field(u32, device_timestamp) 120262306a36Sopenharmony_ci __field(bool, block_tx) 120362306a36Sopenharmony_ci __field(u8, count) 120462306a36Sopenharmony_ci ), 120562306a36Sopenharmony_ci 120662306a36Sopenharmony_ci TP_fast_assign( 120762306a36Sopenharmony_ci LOCAL_ASSIGN; 120862306a36Sopenharmony_ci VIF_ASSIGN; 120962306a36Sopenharmony_ci CHANDEF_ASSIGN(&ch_switch->chandef) 121062306a36Sopenharmony_ci __entry->timestamp = ch_switch->timestamp; 121162306a36Sopenharmony_ci __entry->device_timestamp = ch_switch->device_timestamp; 121262306a36Sopenharmony_ci __entry->block_tx = ch_switch->block_tx; 121362306a36Sopenharmony_ci __entry->count = ch_switch->count; 121462306a36Sopenharmony_ci ), 121562306a36Sopenharmony_ci 121662306a36Sopenharmony_ci TP_printk( 121762306a36Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT " new " CHANDEF_PR_FMT " count:%d", 121862306a36Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, CHANDEF_PR_ARG, __entry->count 121962306a36Sopenharmony_ci ) 122062306a36Sopenharmony_ci); 122162306a36Sopenharmony_ci 122262306a36Sopenharmony_ciTRACE_EVENT(drv_set_antenna, 122362306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, u32 tx_ant, u32 rx_ant, int ret), 122462306a36Sopenharmony_ci 122562306a36Sopenharmony_ci TP_ARGS(local, tx_ant, rx_ant, ret), 122662306a36Sopenharmony_ci 122762306a36Sopenharmony_ci TP_STRUCT__entry( 122862306a36Sopenharmony_ci LOCAL_ENTRY 122962306a36Sopenharmony_ci __field(u32, tx_ant) 123062306a36Sopenharmony_ci __field(u32, rx_ant) 123162306a36Sopenharmony_ci __field(int, ret) 123262306a36Sopenharmony_ci ), 123362306a36Sopenharmony_ci 123462306a36Sopenharmony_ci TP_fast_assign( 123562306a36Sopenharmony_ci LOCAL_ASSIGN; 123662306a36Sopenharmony_ci __entry->tx_ant = tx_ant; 123762306a36Sopenharmony_ci __entry->rx_ant = rx_ant; 123862306a36Sopenharmony_ci __entry->ret = ret; 123962306a36Sopenharmony_ci ), 124062306a36Sopenharmony_ci 124162306a36Sopenharmony_ci TP_printk( 124262306a36Sopenharmony_ci LOCAL_PR_FMT " tx_ant:%d rx_ant:%d ret:%d", 124362306a36Sopenharmony_ci LOCAL_PR_ARG, __entry->tx_ant, __entry->rx_ant, __entry->ret 124462306a36Sopenharmony_ci ) 124562306a36Sopenharmony_ci); 124662306a36Sopenharmony_ci 124762306a36Sopenharmony_ciTRACE_EVENT(drv_get_antenna, 124862306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, u32 tx_ant, u32 rx_ant, int ret), 124962306a36Sopenharmony_ci 125062306a36Sopenharmony_ci TP_ARGS(local, tx_ant, rx_ant, ret), 125162306a36Sopenharmony_ci 125262306a36Sopenharmony_ci TP_STRUCT__entry( 125362306a36Sopenharmony_ci LOCAL_ENTRY 125462306a36Sopenharmony_ci __field(u32, tx_ant) 125562306a36Sopenharmony_ci __field(u32, rx_ant) 125662306a36Sopenharmony_ci __field(int, ret) 125762306a36Sopenharmony_ci ), 125862306a36Sopenharmony_ci 125962306a36Sopenharmony_ci TP_fast_assign( 126062306a36Sopenharmony_ci LOCAL_ASSIGN; 126162306a36Sopenharmony_ci __entry->tx_ant = tx_ant; 126262306a36Sopenharmony_ci __entry->rx_ant = rx_ant; 126362306a36Sopenharmony_ci __entry->ret = ret; 126462306a36Sopenharmony_ci ), 126562306a36Sopenharmony_ci 126662306a36Sopenharmony_ci TP_printk( 126762306a36Sopenharmony_ci LOCAL_PR_FMT " tx_ant:%d rx_ant:%d ret:%d", 126862306a36Sopenharmony_ci LOCAL_PR_ARG, __entry->tx_ant, __entry->rx_ant, __entry->ret 126962306a36Sopenharmony_ci ) 127062306a36Sopenharmony_ci); 127162306a36Sopenharmony_ci 127262306a36Sopenharmony_ciTRACE_EVENT(drv_remain_on_channel, 127362306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 127462306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 127562306a36Sopenharmony_ci struct ieee80211_channel *chan, 127662306a36Sopenharmony_ci unsigned int duration, 127762306a36Sopenharmony_ci enum ieee80211_roc_type type), 127862306a36Sopenharmony_ci 127962306a36Sopenharmony_ci TP_ARGS(local, sdata, chan, duration, type), 128062306a36Sopenharmony_ci 128162306a36Sopenharmony_ci TP_STRUCT__entry( 128262306a36Sopenharmony_ci LOCAL_ENTRY 128362306a36Sopenharmony_ci VIF_ENTRY 128462306a36Sopenharmony_ci __field(int, center_freq) 128562306a36Sopenharmony_ci __field(int, freq_offset) 128662306a36Sopenharmony_ci __field(unsigned int, duration) 128762306a36Sopenharmony_ci __field(u32, type) 128862306a36Sopenharmony_ci ), 128962306a36Sopenharmony_ci 129062306a36Sopenharmony_ci TP_fast_assign( 129162306a36Sopenharmony_ci LOCAL_ASSIGN; 129262306a36Sopenharmony_ci VIF_ASSIGN; 129362306a36Sopenharmony_ci __entry->center_freq = chan->center_freq; 129462306a36Sopenharmony_ci __entry->freq_offset = chan->freq_offset; 129562306a36Sopenharmony_ci __entry->duration = duration; 129662306a36Sopenharmony_ci __entry->type = type; 129762306a36Sopenharmony_ci ), 129862306a36Sopenharmony_ci 129962306a36Sopenharmony_ci TP_printk( 130062306a36Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT " freq:%d.%03dMHz duration:%dms type=%d", 130162306a36Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, 130262306a36Sopenharmony_ci __entry->center_freq, __entry->freq_offset, 130362306a36Sopenharmony_ci __entry->duration, __entry->type 130462306a36Sopenharmony_ci ) 130562306a36Sopenharmony_ci); 130662306a36Sopenharmony_ci 130762306a36Sopenharmony_ciDEFINE_EVENT(local_sdata_evt, drv_cancel_remain_on_channel, 130862306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 130962306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata), 131062306a36Sopenharmony_ci TP_ARGS(local, sdata) 131162306a36Sopenharmony_ci); 131262306a36Sopenharmony_ci 131362306a36Sopenharmony_ciTRACE_EVENT(drv_set_ringparam, 131462306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, u32 tx, u32 rx), 131562306a36Sopenharmony_ci 131662306a36Sopenharmony_ci TP_ARGS(local, tx, rx), 131762306a36Sopenharmony_ci 131862306a36Sopenharmony_ci TP_STRUCT__entry( 131962306a36Sopenharmony_ci LOCAL_ENTRY 132062306a36Sopenharmony_ci __field(u32, tx) 132162306a36Sopenharmony_ci __field(u32, rx) 132262306a36Sopenharmony_ci ), 132362306a36Sopenharmony_ci 132462306a36Sopenharmony_ci TP_fast_assign( 132562306a36Sopenharmony_ci LOCAL_ASSIGN; 132662306a36Sopenharmony_ci __entry->tx = tx; 132762306a36Sopenharmony_ci __entry->rx = rx; 132862306a36Sopenharmony_ci ), 132962306a36Sopenharmony_ci 133062306a36Sopenharmony_ci TP_printk( 133162306a36Sopenharmony_ci LOCAL_PR_FMT " tx:%d rx %d", 133262306a36Sopenharmony_ci LOCAL_PR_ARG, __entry->tx, __entry->rx 133362306a36Sopenharmony_ci ) 133462306a36Sopenharmony_ci); 133562306a36Sopenharmony_ci 133662306a36Sopenharmony_ciTRACE_EVENT(drv_get_ringparam, 133762306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, u32 *tx, u32 *tx_max, 133862306a36Sopenharmony_ci u32 *rx, u32 *rx_max), 133962306a36Sopenharmony_ci 134062306a36Sopenharmony_ci TP_ARGS(local, tx, tx_max, rx, rx_max), 134162306a36Sopenharmony_ci 134262306a36Sopenharmony_ci TP_STRUCT__entry( 134362306a36Sopenharmony_ci LOCAL_ENTRY 134462306a36Sopenharmony_ci __field(u32, tx) 134562306a36Sopenharmony_ci __field(u32, tx_max) 134662306a36Sopenharmony_ci __field(u32, rx) 134762306a36Sopenharmony_ci __field(u32, rx_max) 134862306a36Sopenharmony_ci ), 134962306a36Sopenharmony_ci 135062306a36Sopenharmony_ci TP_fast_assign( 135162306a36Sopenharmony_ci LOCAL_ASSIGN; 135262306a36Sopenharmony_ci __entry->tx = *tx; 135362306a36Sopenharmony_ci __entry->tx_max = *tx_max; 135462306a36Sopenharmony_ci __entry->rx = *rx; 135562306a36Sopenharmony_ci __entry->rx_max = *rx_max; 135662306a36Sopenharmony_ci ), 135762306a36Sopenharmony_ci 135862306a36Sopenharmony_ci TP_printk( 135962306a36Sopenharmony_ci LOCAL_PR_FMT " tx:%d tx_max %d rx %d rx_max %d", 136062306a36Sopenharmony_ci LOCAL_PR_ARG, 136162306a36Sopenharmony_ci __entry->tx, __entry->tx_max, __entry->rx, __entry->rx_max 136262306a36Sopenharmony_ci ) 136362306a36Sopenharmony_ci); 136462306a36Sopenharmony_ci 136562306a36Sopenharmony_ciDEFINE_EVENT(local_only_evt, drv_tx_frames_pending, 136662306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local), 136762306a36Sopenharmony_ci TP_ARGS(local) 136862306a36Sopenharmony_ci); 136962306a36Sopenharmony_ci 137062306a36Sopenharmony_ciDEFINE_EVENT(local_only_evt, drv_offchannel_tx_cancel_wait, 137162306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local), 137262306a36Sopenharmony_ci TP_ARGS(local) 137362306a36Sopenharmony_ci); 137462306a36Sopenharmony_ci 137562306a36Sopenharmony_ciTRACE_EVENT(drv_set_bitrate_mask, 137662306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 137762306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 137862306a36Sopenharmony_ci const struct cfg80211_bitrate_mask *mask), 137962306a36Sopenharmony_ci 138062306a36Sopenharmony_ci TP_ARGS(local, sdata, mask), 138162306a36Sopenharmony_ci 138262306a36Sopenharmony_ci TP_STRUCT__entry( 138362306a36Sopenharmony_ci LOCAL_ENTRY 138462306a36Sopenharmony_ci VIF_ENTRY 138562306a36Sopenharmony_ci __field(u32, legacy_2g) 138662306a36Sopenharmony_ci __field(u32, legacy_5g) 138762306a36Sopenharmony_ci ), 138862306a36Sopenharmony_ci 138962306a36Sopenharmony_ci TP_fast_assign( 139062306a36Sopenharmony_ci LOCAL_ASSIGN; 139162306a36Sopenharmony_ci VIF_ASSIGN; 139262306a36Sopenharmony_ci __entry->legacy_2g = mask->control[NL80211_BAND_2GHZ].legacy; 139362306a36Sopenharmony_ci __entry->legacy_5g = mask->control[NL80211_BAND_5GHZ].legacy; 139462306a36Sopenharmony_ci ), 139562306a36Sopenharmony_ci 139662306a36Sopenharmony_ci TP_printk( 139762306a36Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT " 2G Mask:0x%x 5G Mask:0x%x", 139862306a36Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, __entry->legacy_2g, __entry->legacy_5g 139962306a36Sopenharmony_ci ) 140062306a36Sopenharmony_ci); 140162306a36Sopenharmony_ci 140262306a36Sopenharmony_ciTRACE_EVENT(drv_set_rekey_data, 140362306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 140462306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 140562306a36Sopenharmony_ci struct cfg80211_gtk_rekey_data *data), 140662306a36Sopenharmony_ci 140762306a36Sopenharmony_ci TP_ARGS(local, sdata, data), 140862306a36Sopenharmony_ci 140962306a36Sopenharmony_ci TP_STRUCT__entry( 141062306a36Sopenharmony_ci LOCAL_ENTRY 141162306a36Sopenharmony_ci VIF_ENTRY 141262306a36Sopenharmony_ci __array(u8, kek, NL80211_KEK_LEN) 141362306a36Sopenharmony_ci __array(u8, kck, NL80211_KCK_LEN) 141462306a36Sopenharmony_ci __array(u8, replay_ctr, NL80211_REPLAY_CTR_LEN) 141562306a36Sopenharmony_ci ), 141662306a36Sopenharmony_ci 141762306a36Sopenharmony_ci TP_fast_assign( 141862306a36Sopenharmony_ci LOCAL_ASSIGN; 141962306a36Sopenharmony_ci VIF_ASSIGN; 142062306a36Sopenharmony_ci memcpy(__entry->kek, data->kek, NL80211_KEK_LEN); 142162306a36Sopenharmony_ci memcpy(__entry->kck, data->kck, NL80211_KCK_LEN); 142262306a36Sopenharmony_ci memcpy(__entry->replay_ctr, data->replay_ctr, 142362306a36Sopenharmony_ci NL80211_REPLAY_CTR_LEN); 142462306a36Sopenharmony_ci ), 142562306a36Sopenharmony_ci 142662306a36Sopenharmony_ci TP_printk(LOCAL_PR_FMT VIF_PR_FMT, 142762306a36Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG) 142862306a36Sopenharmony_ci); 142962306a36Sopenharmony_ci 143062306a36Sopenharmony_ciTRACE_EVENT(drv_event_callback, 143162306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 143262306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 143362306a36Sopenharmony_ci const struct ieee80211_event *_event), 143462306a36Sopenharmony_ci 143562306a36Sopenharmony_ci TP_ARGS(local, sdata, _event), 143662306a36Sopenharmony_ci 143762306a36Sopenharmony_ci TP_STRUCT__entry( 143862306a36Sopenharmony_ci LOCAL_ENTRY 143962306a36Sopenharmony_ci VIF_ENTRY 144062306a36Sopenharmony_ci __field(u32, type) 144162306a36Sopenharmony_ci ), 144262306a36Sopenharmony_ci 144362306a36Sopenharmony_ci TP_fast_assign( 144462306a36Sopenharmony_ci LOCAL_ASSIGN; 144562306a36Sopenharmony_ci VIF_ASSIGN; 144662306a36Sopenharmony_ci __entry->type = _event->type; 144762306a36Sopenharmony_ci ), 144862306a36Sopenharmony_ci 144962306a36Sopenharmony_ci TP_printk( 145062306a36Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT " event:%d", 145162306a36Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, __entry->type 145262306a36Sopenharmony_ci ) 145362306a36Sopenharmony_ci); 145462306a36Sopenharmony_ci 145562306a36Sopenharmony_ciDECLARE_EVENT_CLASS(release_evt, 145662306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 145762306a36Sopenharmony_ci struct ieee80211_sta *sta, 145862306a36Sopenharmony_ci u16 tids, int num_frames, 145962306a36Sopenharmony_ci enum ieee80211_frame_release_type reason, 146062306a36Sopenharmony_ci bool more_data), 146162306a36Sopenharmony_ci 146262306a36Sopenharmony_ci TP_ARGS(local, sta, tids, num_frames, reason, more_data), 146362306a36Sopenharmony_ci 146462306a36Sopenharmony_ci TP_STRUCT__entry( 146562306a36Sopenharmony_ci LOCAL_ENTRY 146662306a36Sopenharmony_ci STA_ENTRY 146762306a36Sopenharmony_ci __field(u16, tids) 146862306a36Sopenharmony_ci __field(int, num_frames) 146962306a36Sopenharmony_ci __field(int, reason) 147062306a36Sopenharmony_ci __field(bool, more_data) 147162306a36Sopenharmony_ci ), 147262306a36Sopenharmony_ci 147362306a36Sopenharmony_ci TP_fast_assign( 147462306a36Sopenharmony_ci LOCAL_ASSIGN; 147562306a36Sopenharmony_ci STA_ASSIGN; 147662306a36Sopenharmony_ci __entry->tids = tids; 147762306a36Sopenharmony_ci __entry->num_frames = num_frames; 147862306a36Sopenharmony_ci __entry->reason = reason; 147962306a36Sopenharmony_ci __entry->more_data = more_data; 148062306a36Sopenharmony_ci ), 148162306a36Sopenharmony_ci 148262306a36Sopenharmony_ci TP_printk( 148362306a36Sopenharmony_ci LOCAL_PR_FMT STA_PR_FMT 148462306a36Sopenharmony_ci " TIDs:0x%.4x frames:%d reason:%d more:%d", 148562306a36Sopenharmony_ci LOCAL_PR_ARG, STA_PR_ARG, __entry->tids, __entry->num_frames, 148662306a36Sopenharmony_ci __entry->reason, __entry->more_data 148762306a36Sopenharmony_ci ) 148862306a36Sopenharmony_ci); 148962306a36Sopenharmony_ci 149062306a36Sopenharmony_ciDEFINE_EVENT(release_evt, drv_release_buffered_frames, 149162306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 149262306a36Sopenharmony_ci struct ieee80211_sta *sta, 149362306a36Sopenharmony_ci u16 tids, int num_frames, 149462306a36Sopenharmony_ci enum ieee80211_frame_release_type reason, 149562306a36Sopenharmony_ci bool more_data), 149662306a36Sopenharmony_ci 149762306a36Sopenharmony_ci TP_ARGS(local, sta, tids, num_frames, reason, more_data) 149862306a36Sopenharmony_ci); 149962306a36Sopenharmony_ci 150062306a36Sopenharmony_ciDEFINE_EVENT(release_evt, drv_allow_buffered_frames, 150162306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 150262306a36Sopenharmony_ci struct ieee80211_sta *sta, 150362306a36Sopenharmony_ci u16 tids, int num_frames, 150462306a36Sopenharmony_ci enum ieee80211_frame_release_type reason, 150562306a36Sopenharmony_ci bool more_data), 150662306a36Sopenharmony_ci 150762306a36Sopenharmony_ci TP_ARGS(local, sta, tids, num_frames, reason, more_data) 150862306a36Sopenharmony_ci); 150962306a36Sopenharmony_ci 151062306a36Sopenharmony_ciDECLARE_EVENT_CLASS(mgd_prepare_complete_tx_evt, 151162306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 151262306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 151362306a36Sopenharmony_ci u16 duration, u16 subtype, bool success), 151462306a36Sopenharmony_ci 151562306a36Sopenharmony_ci TP_ARGS(local, sdata, duration, subtype, success), 151662306a36Sopenharmony_ci 151762306a36Sopenharmony_ci TP_STRUCT__entry( 151862306a36Sopenharmony_ci LOCAL_ENTRY 151962306a36Sopenharmony_ci VIF_ENTRY 152062306a36Sopenharmony_ci __field(u32, duration) 152162306a36Sopenharmony_ci __field(u16, subtype) 152262306a36Sopenharmony_ci __field(u8, success) 152362306a36Sopenharmony_ci ), 152462306a36Sopenharmony_ci 152562306a36Sopenharmony_ci TP_fast_assign( 152662306a36Sopenharmony_ci LOCAL_ASSIGN; 152762306a36Sopenharmony_ci VIF_ASSIGN; 152862306a36Sopenharmony_ci __entry->duration = duration; 152962306a36Sopenharmony_ci __entry->subtype = subtype; 153062306a36Sopenharmony_ci __entry->success = success; 153162306a36Sopenharmony_ci ), 153262306a36Sopenharmony_ci 153362306a36Sopenharmony_ci TP_printk( 153462306a36Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT " duration: %u, subtype:0x%x, success:%d", 153562306a36Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, __entry->duration, 153662306a36Sopenharmony_ci __entry->subtype, __entry->success 153762306a36Sopenharmony_ci ) 153862306a36Sopenharmony_ci); 153962306a36Sopenharmony_ci 154062306a36Sopenharmony_ciDEFINE_EVENT(mgd_prepare_complete_tx_evt, drv_mgd_prepare_tx, 154162306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 154262306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 154362306a36Sopenharmony_ci u16 duration, u16 subtype, bool success), 154462306a36Sopenharmony_ci 154562306a36Sopenharmony_ci TP_ARGS(local, sdata, duration, subtype, success) 154662306a36Sopenharmony_ci); 154762306a36Sopenharmony_ci 154862306a36Sopenharmony_ciDEFINE_EVENT(mgd_prepare_complete_tx_evt, drv_mgd_complete_tx, 154962306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 155062306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 155162306a36Sopenharmony_ci u16 duration, u16 subtype, bool success), 155262306a36Sopenharmony_ci 155362306a36Sopenharmony_ci TP_ARGS(local, sdata, duration, subtype, success) 155462306a36Sopenharmony_ci); 155562306a36Sopenharmony_ci 155662306a36Sopenharmony_ciDEFINE_EVENT(local_sdata_evt, drv_mgd_protect_tdls_discover, 155762306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 155862306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata), 155962306a36Sopenharmony_ci 156062306a36Sopenharmony_ci TP_ARGS(local, sdata) 156162306a36Sopenharmony_ci); 156262306a36Sopenharmony_ci 156362306a36Sopenharmony_ciDECLARE_EVENT_CLASS(local_chanctx, 156462306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 156562306a36Sopenharmony_ci struct ieee80211_chanctx *ctx), 156662306a36Sopenharmony_ci 156762306a36Sopenharmony_ci TP_ARGS(local, ctx), 156862306a36Sopenharmony_ci 156962306a36Sopenharmony_ci TP_STRUCT__entry( 157062306a36Sopenharmony_ci LOCAL_ENTRY 157162306a36Sopenharmony_ci CHANCTX_ENTRY 157262306a36Sopenharmony_ci ), 157362306a36Sopenharmony_ci 157462306a36Sopenharmony_ci TP_fast_assign( 157562306a36Sopenharmony_ci LOCAL_ASSIGN; 157662306a36Sopenharmony_ci CHANCTX_ASSIGN; 157762306a36Sopenharmony_ci ), 157862306a36Sopenharmony_ci 157962306a36Sopenharmony_ci TP_printk( 158062306a36Sopenharmony_ci LOCAL_PR_FMT CHANCTX_PR_FMT, 158162306a36Sopenharmony_ci LOCAL_PR_ARG, CHANCTX_PR_ARG 158262306a36Sopenharmony_ci ) 158362306a36Sopenharmony_ci); 158462306a36Sopenharmony_ci 158562306a36Sopenharmony_ciDEFINE_EVENT(local_chanctx, drv_add_chanctx, 158662306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 158762306a36Sopenharmony_ci struct ieee80211_chanctx *ctx), 158862306a36Sopenharmony_ci TP_ARGS(local, ctx) 158962306a36Sopenharmony_ci); 159062306a36Sopenharmony_ci 159162306a36Sopenharmony_ciDEFINE_EVENT(local_chanctx, drv_remove_chanctx, 159262306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 159362306a36Sopenharmony_ci struct ieee80211_chanctx *ctx), 159462306a36Sopenharmony_ci TP_ARGS(local, ctx) 159562306a36Sopenharmony_ci); 159662306a36Sopenharmony_ci 159762306a36Sopenharmony_ciTRACE_EVENT(drv_change_chanctx, 159862306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 159962306a36Sopenharmony_ci struct ieee80211_chanctx *ctx, 160062306a36Sopenharmony_ci u32 changed), 160162306a36Sopenharmony_ci 160262306a36Sopenharmony_ci TP_ARGS(local, ctx, changed), 160362306a36Sopenharmony_ci 160462306a36Sopenharmony_ci TP_STRUCT__entry( 160562306a36Sopenharmony_ci LOCAL_ENTRY 160662306a36Sopenharmony_ci CHANCTX_ENTRY 160762306a36Sopenharmony_ci __field(u32, changed) 160862306a36Sopenharmony_ci ), 160962306a36Sopenharmony_ci 161062306a36Sopenharmony_ci TP_fast_assign( 161162306a36Sopenharmony_ci LOCAL_ASSIGN; 161262306a36Sopenharmony_ci CHANCTX_ASSIGN; 161362306a36Sopenharmony_ci __entry->changed = changed; 161462306a36Sopenharmony_ci ), 161562306a36Sopenharmony_ci 161662306a36Sopenharmony_ci TP_printk( 161762306a36Sopenharmony_ci LOCAL_PR_FMT CHANCTX_PR_FMT " changed:%#x", 161862306a36Sopenharmony_ci LOCAL_PR_ARG, CHANCTX_PR_ARG, __entry->changed 161962306a36Sopenharmony_ci ) 162062306a36Sopenharmony_ci); 162162306a36Sopenharmony_ci 162262306a36Sopenharmony_ci#if !defined(__TRACE_VIF_ENTRY) 162362306a36Sopenharmony_ci#define __TRACE_VIF_ENTRY 162462306a36Sopenharmony_cistruct trace_vif_entry { 162562306a36Sopenharmony_ci enum nl80211_iftype vif_type; 162662306a36Sopenharmony_ci bool p2p; 162762306a36Sopenharmony_ci char vif_name[IFNAMSIZ]; 162862306a36Sopenharmony_ci} __packed; 162962306a36Sopenharmony_ci 163062306a36Sopenharmony_cistruct trace_chandef_entry { 163162306a36Sopenharmony_ci u32 control_freq; 163262306a36Sopenharmony_ci u32 freq_offset; 163362306a36Sopenharmony_ci u32 chan_width; 163462306a36Sopenharmony_ci u32 center_freq1; 163562306a36Sopenharmony_ci u32 freq1_offset; 163662306a36Sopenharmony_ci u32 center_freq2; 163762306a36Sopenharmony_ci} __packed; 163862306a36Sopenharmony_ci 163962306a36Sopenharmony_cistruct trace_switch_entry { 164062306a36Sopenharmony_ci struct trace_vif_entry vif; 164162306a36Sopenharmony_ci unsigned int link_id; 164262306a36Sopenharmony_ci struct trace_chandef_entry old_chandef; 164362306a36Sopenharmony_ci struct trace_chandef_entry new_chandef; 164462306a36Sopenharmony_ci} __packed; 164562306a36Sopenharmony_ci 164662306a36Sopenharmony_ci#define SWITCH_ENTRY_ASSIGN(to, from) local_vifs[i].to = vifs[i].from 164762306a36Sopenharmony_ci#endif 164862306a36Sopenharmony_ci 164962306a36Sopenharmony_ciTRACE_EVENT(drv_switch_vif_chanctx, 165062306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 165162306a36Sopenharmony_ci struct ieee80211_vif_chanctx_switch *vifs, 165262306a36Sopenharmony_ci int n_vifs, enum ieee80211_chanctx_switch_mode mode), 165362306a36Sopenharmony_ci TP_ARGS(local, vifs, n_vifs, mode), 165462306a36Sopenharmony_ci 165562306a36Sopenharmony_ci TP_STRUCT__entry( 165662306a36Sopenharmony_ci LOCAL_ENTRY 165762306a36Sopenharmony_ci __field(int, n_vifs) 165862306a36Sopenharmony_ci __field(u32, mode) 165962306a36Sopenharmony_ci __dynamic_array(u8, vifs, 166062306a36Sopenharmony_ci sizeof(struct trace_switch_entry) * n_vifs) 166162306a36Sopenharmony_ci ), 166262306a36Sopenharmony_ci 166362306a36Sopenharmony_ci TP_fast_assign( 166462306a36Sopenharmony_ci LOCAL_ASSIGN; 166562306a36Sopenharmony_ci __entry->n_vifs = n_vifs; 166662306a36Sopenharmony_ci __entry->mode = mode; 166762306a36Sopenharmony_ci { 166862306a36Sopenharmony_ci struct trace_switch_entry *local_vifs = 166962306a36Sopenharmony_ci __get_dynamic_array(vifs); 167062306a36Sopenharmony_ci int i; 167162306a36Sopenharmony_ci 167262306a36Sopenharmony_ci for (i = 0; i < n_vifs; i++) { 167362306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata; 167462306a36Sopenharmony_ci 167562306a36Sopenharmony_ci sdata = container_of(vifs[i].vif, 167662306a36Sopenharmony_ci struct ieee80211_sub_if_data, 167762306a36Sopenharmony_ci vif); 167862306a36Sopenharmony_ci 167962306a36Sopenharmony_ci SWITCH_ENTRY_ASSIGN(vif.vif_type, vif->type); 168062306a36Sopenharmony_ci SWITCH_ENTRY_ASSIGN(vif.p2p, vif->p2p); 168162306a36Sopenharmony_ci SWITCH_ENTRY_ASSIGN(link_id, link_conf->link_id); 168262306a36Sopenharmony_ci strncpy(local_vifs[i].vif.vif_name, 168362306a36Sopenharmony_ci sdata->name, 168462306a36Sopenharmony_ci sizeof(local_vifs[i].vif.vif_name)); 168562306a36Sopenharmony_ci SWITCH_ENTRY_ASSIGN(old_chandef.control_freq, 168662306a36Sopenharmony_ci old_ctx->def.chan->center_freq); 168762306a36Sopenharmony_ci SWITCH_ENTRY_ASSIGN(old_chandef.freq_offset, 168862306a36Sopenharmony_ci old_ctx->def.chan->freq_offset); 168962306a36Sopenharmony_ci SWITCH_ENTRY_ASSIGN(old_chandef.chan_width, 169062306a36Sopenharmony_ci old_ctx->def.width); 169162306a36Sopenharmony_ci SWITCH_ENTRY_ASSIGN(old_chandef.center_freq1, 169262306a36Sopenharmony_ci old_ctx->def.center_freq1); 169362306a36Sopenharmony_ci SWITCH_ENTRY_ASSIGN(old_chandef.freq1_offset, 169462306a36Sopenharmony_ci old_ctx->def.freq1_offset); 169562306a36Sopenharmony_ci SWITCH_ENTRY_ASSIGN(old_chandef.center_freq2, 169662306a36Sopenharmony_ci old_ctx->def.center_freq2); 169762306a36Sopenharmony_ci SWITCH_ENTRY_ASSIGN(new_chandef.control_freq, 169862306a36Sopenharmony_ci new_ctx->def.chan->center_freq); 169962306a36Sopenharmony_ci SWITCH_ENTRY_ASSIGN(new_chandef.freq_offset, 170062306a36Sopenharmony_ci new_ctx->def.chan->freq_offset); 170162306a36Sopenharmony_ci SWITCH_ENTRY_ASSIGN(new_chandef.chan_width, 170262306a36Sopenharmony_ci new_ctx->def.width); 170362306a36Sopenharmony_ci SWITCH_ENTRY_ASSIGN(new_chandef.center_freq1, 170462306a36Sopenharmony_ci new_ctx->def.center_freq1); 170562306a36Sopenharmony_ci SWITCH_ENTRY_ASSIGN(new_chandef.freq1_offset, 170662306a36Sopenharmony_ci new_ctx->def.freq1_offset); 170762306a36Sopenharmony_ci SWITCH_ENTRY_ASSIGN(new_chandef.center_freq2, 170862306a36Sopenharmony_ci new_ctx->def.center_freq2); 170962306a36Sopenharmony_ci } 171062306a36Sopenharmony_ci } 171162306a36Sopenharmony_ci ), 171262306a36Sopenharmony_ci 171362306a36Sopenharmony_ci TP_printk( 171462306a36Sopenharmony_ci LOCAL_PR_FMT " n_vifs:%d mode:%d", 171562306a36Sopenharmony_ci LOCAL_PR_ARG, __entry->n_vifs, __entry->mode 171662306a36Sopenharmony_ci ) 171762306a36Sopenharmony_ci); 171862306a36Sopenharmony_ci 171962306a36Sopenharmony_ciDECLARE_EVENT_CLASS(local_sdata_chanctx, 172062306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 172162306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 172262306a36Sopenharmony_ci struct ieee80211_bss_conf *link_conf, 172362306a36Sopenharmony_ci struct ieee80211_chanctx *ctx), 172462306a36Sopenharmony_ci 172562306a36Sopenharmony_ci TP_ARGS(local, sdata, link_conf, ctx), 172662306a36Sopenharmony_ci 172762306a36Sopenharmony_ci TP_STRUCT__entry( 172862306a36Sopenharmony_ci LOCAL_ENTRY 172962306a36Sopenharmony_ci VIF_ENTRY 173062306a36Sopenharmony_ci CHANCTX_ENTRY 173162306a36Sopenharmony_ci __field(unsigned int, link_id) 173262306a36Sopenharmony_ci ), 173362306a36Sopenharmony_ci 173462306a36Sopenharmony_ci TP_fast_assign( 173562306a36Sopenharmony_ci LOCAL_ASSIGN; 173662306a36Sopenharmony_ci VIF_ASSIGN; 173762306a36Sopenharmony_ci CHANCTX_ASSIGN; 173862306a36Sopenharmony_ci __entry->link_id = link_conf->link_id; 173962306a36Sopenharmony_ci ), 174062306a36Sopenharmony_ci 174162306a36Sopenharmony_ci TP_printk( 174262306a36Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT " link_id:%d" CHANCTX_PR_FMT, 174362306a36Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, __entry->link_id, CHANCTX_PR_ARG 174462306a36Sopenharmony_ci ) 174562306a36Sopenharmony_ci); 174662306a36Sopenharmony_ci 174762306a36Sopenharmony_ciDEFINE_EVENT(local_sdata_chanctx, drv_assign_vif_chanctx, 174862306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 174962306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 175062306a36Sopenharmony_ci struct ieee80211_bss_conf *link_conf, 175162306a36Sopenharmony_ci struct ieee80211_chanctx *ctx), 175262306a36Sopenharmony_ci TP_ARGS(local, sdata, link_conf, ctx) 175362306a36Sopenharmony_ci); 175462306a36Sopenharmony_ci 175562306a36Sopenharmony_ciDEFINE_EVENT(local_sdata_chanctx, drv_unassign_vif_chanctx, 175662306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 175762306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 175862306a36Sopenharmony_ci struct ieee80211_bss_conf *link_conf, 175962306a36Sopenharmony_ci struct ieee80211_chanctx *ctx), 176062306a36Sopenharmony_ci TP_ARGS(local, sdata, link_conf, ctx) 176162306a36Sopenharmony_ci); 176262306a36Sopenharmony_ci 176362306a36Sopenharmony_ciTRACE_EVENT(drv_start_ap, 176462306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 176562306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 176662306a36Sopenharmony_ci struct ieee80211_bss_conf *link_conf), 176762306a36Sopenharmony_ci 176862306a36Sopenharmony_ci TP_ARGS(local, sdata, link_conf), 176962306a36Sopenharmony_ci 177062306a36Sopenharmony_ci TP_STRUCT__entry( 177162306a36Sopenharmony_ci LOCAL_ENTRY 177262306a36Sopenharmony_ci VIF_ENTRY 177362306a36Sopenharmony_ci __field(u32, link_id) 177462306a36Sopenharmony_ci __field(u8, dtimper) 177562306a36Sopenharmony_ci __field(u16, bcnint) 177662306a36Sopenharmony_ci __dynamic_array(u8, ssid, sdata->vif.cfg.ssid_len) 177762306a36Sopenharmony_ci __field(bool, hidden_ssid) 177862306a36Sopenharmony_ci ), 177962306a36Sopenharmony_ci 178062306a36Sopenharmony_ci TP_fast_assign( 178162306a36Sopenharmony_ci LOCAL_ASSIGN; 178262306a36Sopenharmony_ci VIF_ASSIGN; 178362306a36Sopenharmony_ci __entry->link_id = link_conf->link_id; 178462306a36Sopenharmony_ci __entry->dtimper = link_conf->dtim_period; 178562306a36Sopenharmony_ci __entry->bcnint = link_conf->beacon_int; 178662306a36Sopenharmony_ci __entry->hidden_ssid = link_conf->hidden_ssid; 178762306a36Sopenharmony_ci memcpy(__get_dynamic_array(ssid), 178862306a36Sopenharmony_ci sdata->vif.cfg.ssid, 178962306a36Sopenharmony_ci sdata->vif.cfg.ssid_len); 179062306a36Sopenharmony_ci ), 179162306a36Sopenharmony_ci 179262306a36Sopenharmony_ci TP_printk( 179362306a36Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT " link id %u", 179462306a36Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, __entry->link_id 179562306a36Sopenharmony_ci ) 179662306a36Sopenharmony_ci); 179762306a36Sopenharmony_ci 179862306a36Sopenharmony_ciTRACE_EVENT(drv_stop_ap, 179962306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 180062306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 180162306a36Sopenharmony_ci struct ieee80211_bss_conf *link_conf), 180262306a36Sopenharmony_ci 180362306a36Sopenharmony_ci TP_ARGS(local, sdata, link_conf), 180462306a36Sopenharmony_ci 180562306a36Sopenharmony_ci TP_STRUCT__entry( 180662306a36Sopenharmony_ci LOCAL_ENTRY 180762306a36Sopenharmony_ci VIF_ENTRY 180862306a36Sopenharmony_ci __field(u32, link_id) 180962306a36Sopenharmony_ci ), 181062306a36Sopenharmony_ci 181162306a36Sopenharmony_ci TP_fast_assign( 181262306a36Sopenharmony_ci LOCAL_ASSIGN; 181362306a36Sopenharmony_ci VIF_ASSIGN; 181462306a36Sopenharmony_ci __entry->link_id = link_conf->link_id; 181562306a36Sopenharmony_ci ), 181662306a36Sopenharmony_ci 181762306a36Sopenharmony_ci TP_printk( 181862306a36Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT " link id %u", 181962306a36Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, __entry->link_id 182062306a36Sopenharmony_ci ) 182162306a36Sopenharmony_ci); 182262306a36Sopenharmony_ci 182362306a36Sopenharmony_ciTRACE_EVENT(drv_reconfig_complete, 182462306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 182562306a36Sopenharmony_ci enum ieee80211_reconfig_type reconfig_type), 182662306a36Sopenharmony_ci TP_ARGS(local, reconfig_type), 182762306a36Sopenharmony_ci 182862306a36Sopenharmony_ci TP_STRUCT__entry( 182962306a36Sopenharmony_ci LOCAL_ENTRY 183062306a36Sopenharmony_ci __field(u8, reconfig_type) 183162306a36Sopenharmony_ci ), 183262306a36Sopenharmony_ci 183362306a36Sopenharmony_ci TP_fast_assign( 183462306a36Sopenharmony_ci LOCAL_ASSIGN; 183562306a36Sopenharmony_ci __entry->reconfig_type = reconfig_type; 183662306a36Sopenharmony_ci ), 183762306a36Sopenharmony_ci 183862306a36Sopenharmony_ci TP_printk( 183962306a36Sopenharmony_ci LOCAL_PR_FMT " reconfig_type:%d", 184062306a36Sopenharmony_ci LOCAL_PR_ARG, __entry->reconfig_type 184162306a36Sopenharmony_ci ) 184262306a36Sopenharmony_ci 184362306a36Sopenharmony_ci); 184462306a36Sopenharmony_ci 184562306a36Sopenharmony_ci#if IS_ENABLED(CONFIG_IPV6) 184662306a36Sopenharmony_ciDEFINE_EVENT(local_sdata_evt, drv_ipv6_addr_change, 184762306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 184862306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata), 184962306a36Sopenharmony_ci TP_ARGS(local, sdata) 185062306a36Sopenharmony_ci); 185162306a36Sopenharmony_ci#endif 185262306a36Sopenharmony_ci 185362306a36Sopenharmony_ciTRACE_EVENT(drv_join_ibss, 185462306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 185562306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 185662306a36Sopenharmony_ci struct ieee80211_bss_conf *info), 185762306a36Sopenharmony_ci 185862306a36Sopenharmony_ci TP_ARGS(local, sdata, info), 185962306a36Sopenharmony_ci 186062306a36Sopenharmony_ci TP_STRUCT__entry( 186162306a36Sopenharmony_ci LOCAL_ENTRY 186262306a36Sopenharmony_ci VIF_ENTRY 186362306a36Sopenharmony_ci __field(u8, dtimper) 186462306a36Sopenharmony_ci __field(u16, bcnint) 186562306a36Sopenharmony_ci __dynamic_array(u8, ssid, sdata->vif.cfg.ssid_len) 186662306a36Sopenharmony_ci ), 186762306a36Sopenharmony_ci 186862306a36Sopenharmony_ci TP_fast_assign( 186962306a36Sopenharmony_ci LOCAL_ASSIGN; 187062306a36Sopenharmony_ci VIF_ASSIGN; 187162306a36Sopenharmony_ci __entry->dtimper = info->dtim_period; 187262306a36Sopenharmony_ci __entry->bcnint = info->beacon_int; 187362306a36Sopenharmony_ci memcpy(__get_dynamic_array(ssid), 187462306a36Sopenharmony_ci sdata->vif.cfg.ssid, 187562306a36Sopenharmony_ci sdata->vif.cfg.ssid_len); 187662306a36Sopenharmony_ci ), 187762306a36Sopenharmony_ci 187862306a36Sopenharmony_ci TP_printk( 187962306a36Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT, 188062306a36Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG 188162306a36Sopenharmony_ci ) 188262306a36Sopenharmony_ci); 188362306a36Sopenharmony_ci 188462306a36Sopenharmony_ciDEFINE_EVENT(local_sdata_evt, drv_leave_ibss, 188562306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 188662306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata), 188762306a36Sopenharmony_ci TP_ARGS(local, sdata) 188862306a36Sopenharmony_ci); 188962306a36Sopenharmony_ci 189062306a36Sopenharmony_ciTRACE_EVENT(drv_get_expected_throughput, 189162306a36Sopenharmony_ci TP_PROTO(struct ieee80211_sta *sta), 189262306a36Sopenharmony_ci 189362306a36Sopenharmony_ci TP_ARGS(sta), 189462306a36Sopenharmony_ci 189562306a36Sopenharmony_ci TP_STRUCT__entry( 189662306a36Sopenharmony_ci STA_ENTRY 189762306a36Sopenharmony_ci ), 189862306a36Sopenharmony_ci 189962306a36Sopenharmony_ci TP_fast_assign( 190062306a36Sopenharmony_ci STA_ASSIGN; 190162306a36Sopenharmony_ci ), 190262306a36Sopenharmony_ci 190362306a36Sopenharmony_ci TP_printk( 190462306a36Sopenharmony_ci STA_PR_FMT, STA_PR_ARG 190562306a36Sopenharmony_ci ) 190662306a36Sopenharmony_ci); 190762306a36Sopenharmony_ci 190862306a36Sopenharmony_ciTRACE_EVENT(drv_start_nan, 190962306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 191062306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 191162306a36Sopenharmony_ci struct cfg80211_nan_conf *conf), 191262306a36Sopenharmony_ci 191362306a36Sopenharmony_ci TP_ARGS(local, sdata, conf), 191462306a36Sopenharmony_ci TP_STRUCT__entry( 191562306a36Sopenharmony_ci LOCAL_ENTRY 191662306a36Sopenharmony_ci VIF_ENTRY 191762306a36Sopenharmony_ci __field(u8, master_pref) 191862306a36Sopenharmony_ci __field(u8, bands) 191962306a36Sopenharmony_ci ), 192062306a36Sopenharmony_ci 192162306a36Sopenharmony_ci TP_fast_assign( 192262306a36Sopenharmony_ci LOCAL_ASSIGN; 192362306a36Sopenharmony_ci VIF_ASSIGN; 192462306a36Sopenharmony_ci __entry->master_pref = conf->master_pref; 192562306a36Sopenharmony_ci __entry->bands = conf->bands; 192662306a36Sopenharmony_ci ), 192762306a36Sopenharmony_ci 192862306a36Sopenharmony_ci TP_printk( 192962306a36Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT 193062306a36Sopenharmony_ci ", master preference: %u, bands: 0x%0x", 193162306a36Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, __entry->master_pref, 193262306a36Sopenharmony_ci __entry->bands 193362306a36Sopenharmony_ci ) 193462306a36Sopenharmony_ci); 193562306a36Sopenharmony_ci 193662306a36Sopenharmony_ciTRACE_EVENT(drv_stop_nan, 193762306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 193862306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata), 193962306a36Sopenharmony_ci 194062306a36Sopenharmony_ci TP_ARGS(local, sdata), 194162306a36Sopenharmony_ci 194262306a36Sopenharmony_ci TP_STRUCT__entry( 194362306a36Sopenharmony_ci LOCAL_ENTRY 194462306a36Sopenharmony_ci VIF_ENTRY 194562306a36Sopenharmony_ci ), 194662306a36Sopenharmony_ci 194762306a36Sopenharmony_ci TP_fast_assign( 194862306a36Sopenharmony_ci LOCAL_ASSIGN; 194962306a36Sopenharmony_ci VIF_ASSIGN; 195062306a36Sopenharmony_ci ), 195162306a36Sopenharmony_ci 195262306a36Sopenharmony_ci TP_printk( 195362306a36Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT, 195462306a36Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG 195562306a36Sopenharmony_ci ) 195662306a36Sopenharmony_ci); 195762306a36Sopenharmony_ci 195862306a36Sopenharmony_ciTRACE_EVENT(drv_nan_change_conf, 195962306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 196062306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 196162306a36Sopenharmony_ci struct cfg80211_nan_conf *conf, 196262306a36Sopenharmony_ci u32 changes), 196362306a36Sopenharmony_ci 196462306a36Sopenharmony_ci TP_ARGS(local, sdata, conf, changes), 196562306a36Sopenharmony_ci TP_STRUCT__entry( 196662306a36Sopenharmony_ci LOCAL_ENTRY 196762306a36Sopenharmony_ci VIF_ENTRY 196862306a36Sopenharmony_ci __field(u8, master_pref) 196962306a36Sopenharmony_ci __field(u8, bands) 197062306a36Sopenharmony_ci __field(u32, changes) 197162306a36Sopenharmony_ci ), 197262306a36Sopenharmony_ci 197362306a36Sopenharmony_ci TP_fast_assign( 197462306a36Sopenharmony_ci LOCAL_ASSIGN; 197562306a36Sopenharmony_ci VIF_ASSIGN; 197662306a36Sopenharmony_ci __entry->master_pref = conf->master_pref; 197762306a36Sopenharmony_ci __entry->bands = conf->bands; 197862306a36Sopenharmony_ci __entry->changes = changes; 197962306a36Sopenharmony_ci ), 198062306a36Sopenharmony_ci 198162306a36Sopenharmony_ci TP_printk( 198262306a36Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT 198362306a36Sopenharmony_ci ", master preference: %u, bands: 0x%0x, changes: 0x%x", 198462306a36Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, __entry->master_pref, 198562306a36Sopenharmony_ci __entry->bands, __entry->changes 198662306a36Sopenharmony_ci ) 198762306a36Sopenharmony_ci); 198862306a36Sopenharmony_ci 198962306a36Sopenharmony_ciTRACE_EVENT(drv_add_nan_func, 199062306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 199162306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 199262306a36Sopenharmony_ci const struct cfg80211_nan_func *func), 199362306a36Sopenharmony_ci 199462306a36Sopenharmony_ci TP_ARGS(local, sdata, func), 199562306a36Sopenharmony_ci TP_STRUCT__entry( 199662306a36Sopenharmony_ci LOCAL_ENTRY 199762306a36Sopenharmony_ci VIF_ENTRY 199862306a36Sopenharmony_ci __field(u8, type) 199962306a36Sopenharmony_ci __field(u8, inst_id) 200062306a36Sopenharmony_ci ), 200162306a36Sopenharmony_ci 200262306a36Sopenharmony_ci TP_fast_assign( 200362306a36Sopenharmony_ci LOCAL_ASSIGN; 200462306a36Sopenharmony_ci VIF_ASSIGN; 200562306a36Sopenharmony_ci __entry->type = func->type; 200662306a36Sopenharmony_ci __entry->inst_id = func->instance_id; 200762306a36Sopenharmony_ci ), 200862306a36Sopenharmony_ci 200962306a36Sopenharmony_ci TP_printk( 201062306a36Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT 201162306a36Sopenharmony_ci ", type: %u, inst_id: %u", 201262306a36Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, __entry->type, __entry->inst_id 201362306a36Sopenharmony_ci ) 201462306a36Sopenharmony_ci); 201562306a36Sopenharmony_ci 201662306a36Sopenharmony_ciTRACE_EVENT(drv_del_nan_func, 201762306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 201862306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 201962306a36Sopenharmony_ci u8 instance_id), 202062306a36Sopenharmony_ci 202162306a36Sopenharmony_ci TP_ARGS(local, sdata, instance_id), 202262306a36Sopenharmony_ci TP_STRUCT__entry( 202362306a36Sopenharmony_ci LOCAL_ENTRY 202462306a36Sopenharmony_ci VIF_ENTRY 202562306a36Sopenharmony_ci __field(u8, instance_id) 202662306a36Sopenharmony_ci ), 202762306a36Sopenharmony_ci 202862306a36Sopenharmony_ci TP_fast_assign( 202962306a36Sopenharmony_ci LOCAL_ASSIGN; 203062306a36Sopenharmony_ci VIF_ASSIGN; 203162306a36Sopenharmony_ci __entry->instance_id = instance_id; 203262306a36Sopenharmony_ci ), 203362306a36Sopenharmony_ci 203462306a36Sopenharmony_ci TP_printk( 203562306a36Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT 203662306a36Sopenharmony_ci ", instance_id: %u", 203762306a36Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, __entry->instance_id 203862306a36Sopenharmony_ci ) 203962306a36Sopenharmony_ci); 204062306a36Sopenharmony_ci 204162306a36Sopenharmony_ciDEFINE_EVENT(local_sdata_evt, drv_start_pmsr, 204262306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 204362306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata), 204462306a36Sopenharmony_ci TP_ARGS(local, sdata) 204562306a36Sopenharmony_ci); 204662306a36Sopenharmony_ci 204762306a36Sopenharmony_ciDEFINE_EVENT(local_sdata_evt, drv_abort_pmsr, 204862306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 204962306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata), 205062306a36Sopenharmony_ci TP_ARGS(local, sdata) 205162306a36Sopenharmony_ci); 205262306a36Sopenharmony_ci 205362306a36Sopenharmony_ciTRACE_EVENT(drv_set_default_unicast_key, 205462306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 205562306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 205662306a36Sopenharmony_ci int key_idx), 205762306a36Sopenharmony_ci 205862306a36Sopenharmony_ci TP_ARGS(local, sdata, key_idx), 205962306a36Sopenharmony_ci 206062306a36Sopenharmony_ci TP_STRUCT__entry( 206162306a36Sopenharmony_ci LOCAL_ENTRY 206262306a36Sopenharmony_ci VIF_ENTRY 206362306a36Sopenharmony_ci __field(int, key_idx) 206462306a36Sopenharmony_ci ), 206562306a36Sopenharmony_ci 206662306a36Sopenharmony_ci TP_fast_assign( 206762306a36Sopenharmony_ci LOCAL_ASSIGN; 206862306a36Sopenharmony_ci VIF_ASSIGN; 206962306a36Sopenharmony_ci __entry->key_idx = key_idx; 207062306a36Sopenharmony_ci ), 207162306a36Sopenharmony_ci 207262306a36Sopenharmony_ci TP_printk(LOCAL_PR_FMT VIF_PR_FMT " key_idx:%d", 207362306a36Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, __entry->key_idx) 207462306a36Sopenharmony_ci); 207562306a36Sopenharmony_ci 207662306a36Sopenharmony_ciTRACE_EVENT(drv_channel_switch_beacon, 207762306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 207862306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 207962306a36Sopenharmony_ci struct cfg80211_chan_def *chandef), 208062306a36Sopenharmony_ci 208162306a36Sopenharmony_ci TP_ARGS(local, sdata, chandef), 208262306a36Sopenharmony_ci 208362306a36Sopenharmony_ci TP_STRUCT__entry( 208462306a36Sopenharmony_ci LOCAL_ENTRY 208562306a36Sopenharmony_ci VIF_ENTRY 208662306a36Sopenharmony_ci CHANDEF_ENTRY 208762306a36Sopenharmony_ci ), 208862306a36Sopenharmony_ci 208962306a36Sopenharmony_ci TP_fast_assign( 209062306a36Sopenharmony_ci LOCAL_ASSIGN; 209162306a36Sopenharmony_ci VIF_ASSIGN; 209262306a36Sopenharmony_ci CHANDEF_ASSIGN(chandef); 209362306a36Sopenharmony_ci ), 209462306a36Sopenharmony_ci 209562306a36Sopenharmony_ci TP_printk( 209662306a36Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT " channel switch to " CHANDEF_PR_FMT, 209762306a36Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, CHANDEF_PR_ARG 209862306a36Sopenharmony_ci ) 209962306a36Sopenharmony_ci); 210062306a36Sopenharmony_ci 210162306a36Sopenharmony_ciTRACE_EVENT(drv_pre_channel_switch, 210262306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 210362306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 210462306a36Sopenharmony_ci struct ieee80211_channel_switch *ch_switch), 210562306a36Sopenharmony_ci 210662306a36Sopenharmony_ci TP_ARGS(local, sdata, ch_switch), 210762306a36Sopenharmony_ci 210862306a36Sopenharmony_ci TP_STRUCT__entry( 210962306a36Sopenharmony_ci LOCAL_ENTRY 211062306a36Sopenharmony_ci VIF_ENTRY 211162306a36Sopenharmony_ci CHANDEF_ENTRY 211262306a36Sopenharmony_ci __field(u64, timestamp) 211362306a36Sopenharmony_ci __field(u32, device_timestamp) 211462306a36Sopenharmony_ci __field(bool, block_tx) 211562306a36Sopenharmony_ci __field(u8, count) 211662306a36Sopenharmony_ci ), 211762306a36Sopenharmony_ci 211862306a36Sopenharmony_ci TP_fast_assign( 211962306a36Sopenharmony_ci LOCAL_ASSIGN; 212062306a36Sopenharmony_ci VIF_ASSIGN; 212162306a36Sopenharmony_ci CHANDEF_ASSIGN(&ch_switch->chandef) 212262306a36Sopenharmony_ci __entry->timestamp = ch_switch->timestamp; 212362306a36Sopenharmony_ci __entry->device_timestamp = ch_switch->device_timestamp; 212462306a36Sopenharmony_ci __entry->block_tx = ch_switch->block_tx; 212562306a36Sopenharmony_ci __entry->count = ch_switch->count; 212662306a36Sopenharmony_ci ), 212762306a36Sopenharmony_ci 212862306a36Sopenharmony_ci TP_printk( 212962306a36Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT " prepare channel switch to " 213062306a36Sopenharmony_ci CHANDEF_PR_FMT " count:%d block_tx:%d timestamp:%llu", 213162306a36Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, CHANDEF_PR_ARG, __entry->count, 213262306a36Sopenharmony_ci __entry->block_tx, __entry->timestamp 213362306a36Sopenharmony_ci ) 213462306a36Sopenharmony_ci); 213562306a36Sopenharmony_ci 213662306a36Sopenharmony_ciDEFINE_EVENT(local_sdata_evt, drv_post_channel_switch, 213762306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 213862306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata), 213962306a36Sopenharmony_ci TP_ARGS(local, sdata) 214062306a36Sopenharmony_ci); 214162306a36Sopenharmony_ci 214262306a36Sopenharmony_ciDEFINE_EVENT(local_sdata_evt, drv_abort_channel_switch, 214362306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 214462306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata), 214562306a36Sopenharmony_ci TP_ARGS(local, sdata) 214662306a36Sopenharmony_ci); 214762306a36Sopenharmony_ci 214862306a36Sopenharmony_ciTRACE_EVENT(drv_channel_switch_rx_beacon, 214962306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 215062306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 215162306a36Sopenharmony_ci struct ieee80211_channel_switch *ch_switch), 215262306a36Sopenharmony_ci 215362306a36Sopenharmony_ci TP_ARGS(local, sdata, ch_switch), 215462306a36Sopenharmony_ci 215562306a36Sopenharmony_ci TP_STRUCT__entry( 215662306a36Sopenharmony_ci LOCAL_ENTRY 215762306a36Sopenharmony_ci VIF_ENTRY 215862306a36Sopenharmony_ci CHANDEF_ENTRY 215962306a36Sopenharmony_ci __field(u64, timestamp) 216062306a36Sopenharmony_ci __field(u32, device_timestamp) 216162306a36Sopenharmony_ci __field(bool, block_tx) 216262306a36Sopenharmony_ci __field(u8, count) 216362306a36Sopenharmony_ci ), 216462306a36Sopenharmony_ci 216562306a36Sopenharmony_ci TP_fast_assign( 216662306a36Sopenharmony_ci LOCAL_ASSIGN; 216762306a36Sopenharmony_ci VIF_ASSIGN; 216862306a36Sopenharmony_ci CHANDEF_ASSIGN(&ch_switch->chandef) 216962306a36Sopenharmony_ci __entry->timestamp = ch_switch->timestamp; 217062306a36Sopenharmony_ci __entry->device_timestamp = ch_switch->device_timestamp; 217162306a36Sopenharmony_ci __entry->block_tx = ch_switch->block_tx; 217262306a36Sopenharmony_ci __entry->count = ch_switch->count; 217362306a36Sopenharmony_ci ), 217462306a36Sopenharmony_ci 217562306a36Sopenharmony_ci TP_printk( 217662306a36Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT 217762306a36Sopenharmony_ci " received a channel switch beacon to " 217862306a36Sopenharmony_ci CHANDEF_PR_FMT " count:%d block_tx:%d timestamp:%llu", 217962306a36Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, CHANDEF_PR_ARG, __entry->count, 218062306a36Sopenharmony_ci __entry->block_tx, __entry->timestamp 218162306a36Sopenharmony_ci ) 218262306a36Sopenharmony_ci); 218362306a36Sopenharmony_ci 218462306a36Sopenharmony_ciTRACE_EVENT(drv_get_txpower, 218562306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 218662306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 218762306a36Sopenharmony_ci int dbm, int ret), 218862306a36Sopenharmony_ci 218962306a36Sopenharmony_ci TP_ARGS(local, sdata, dbm, ret), 219062306a36Sopenharmony_ci 219162306a36Sopenharmony_ci TP_STRUCT__entry( 219262306a36Sopenharmony_ci LOCAL_ENTRY 219362306a36Sopenharmony_ci VIF_ENTRY 219462306a36Sopenharmony_ci __field(int, dbm) 219562306a36Sopenharmony_ci __field(int, ret) 219662306a36Sopenharmony_ci ), 219762306a36Sopenharmony_ci 219862306a36Sopenharmony_ci TP_fast_assign( 219962306a36Sopenharmony_ci LOCAL_ASSIGN; 220062306a36Sopenharmony_ci VIF_ASSIGN; 220162306a36Sopenharmony_ci __entry->dbm = dbm; 220262306a36Sopenharmony_ci __entry->ret = ret; 220362306a36Sopenharmony_ci ), 220462306a36Sopenharmony_ci 220562306a36Sopenharmony_ci TP_printk( 220662306a36Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT " dbm:%d ret:%d", 220762306a36Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, __entry->dbm, __entry->ret 220862306a36Sopenharmony_ci ) 220962306a36Sopenharmony_ci); 221062306a36Sopenharmony_ci 221162306a36Sopenharmony_ciTRACE_EVENT(drv_tdls_channel_switch, 221262306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 221362306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 221462306a36Sopenharmony_ci struct ieee80211_sta *sta, u8 oper_class, 221562306a36Sopenharmony_ci struct cfg80211_chan_def *chandef), 221662306a36Sopenharmony_ci 221762306a36Sopenharmony_ci TP_ARGS(local, sdata, sta, oper_class, chandef), 221862306a36Sopenharmony_ci 221962306a36Sopenharmony_ci TP_STRUCT__entry( 222062306a36Sopenharmony_ci LOCAL_ENTRY 222162306a36Sopenharmony_ci VIF_ENTRY 222262306a36Sopenharmony_ci STA_ENTRY 222362306a36Sopenharmony_ci __field(u8, oper_class) 222462306a36Sopenharmony_ci CHANDEF_ENTRY 222562306a36Sopenharmony_ci ), 222662306a36Sopenharmony_ci 222762306a36Sopenharmony_ci TP_fast_assign( 222862306a36Sopenharmony_ci LOCAL_ASSIGN; 222962306a36Sopenharmony_ci VIF_ASSIGN; 223062306a36Sopenharmony_ci STA_ASSIGN; 223162306a36Sopenharmony_ci __entry->oper_class = oper_class; 223262306a36Sopenharmony_ci CHANDEF_ASSIGN(chandef) 223362306a36Sopenharmony_ci ), 223462306a36Sopenharmony_ci 223562306a36Sopenharmony_ci TP_printk( 223662306a36Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT " tdls channel switch to" 223762306a36Sopenharmony_ci CHANDEF_PR_FMT " oper_class:%d " STA_PR_FMT, 223862306a36Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, CHANDEF_PR_ARG, __entry->oper_class, 223962306a36Sopenharmony_ci STA_PR_ARG 224062306a36Sopenharmony_ci ) 224162306a36Sopenharmony_ci); 224262306a36Sopenharmony_ci 224362306a36Sopenharmony_ciTRACE_EVENT(drv_tdls_cancel_channel_switch, 224462306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 224562306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 224662306a36Sopenharmony_ci struct ieee80211_sta *sta), 224762306a36Sopenharmony_ci 224862306a36Sopenharmony_ci TP_ARGS(local, sdata, sta), 224962306a36Sopenharmony_ci 225062306a36Sopenharmony_ci TP_STRUCT__entry( 225162306a36Sopenharmony_ci LOCAL_ENTRY 225262306a36Sopenharmony_ci VIF_ENTRY 225362306a36Sopenharmony_ci STA_ENTRY 225462306a36Sopenharmony_ci ), 225562306a36Sopenharmony_ci 225662306a36Sopenharmony_ci TP_fast_assign( 225762306a36Sopenharmony_ci LOCAL_ASSIGN; 225862306a36Sopenharmony_ci VIF_ASSIGN; 225962306a36Sopenharmony_ci STA_ASSIGN; 226062306a36Sopenharmony_ci ), 226162306a36Sopenharmony_ci 226262306a36Sopenharmony_ci TP_printk( 226362306a36Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT 226462306a36Sopenharmony_ci " tdls cancel channel switch with " STA_PR_FMT, 226562306a36Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, STA_PR_ARG 226662306a36Sopenharmony_ci ) 226762306a36Sopenharmony_ci); 226862306a36Sopenharmony_ci 226962306a36Sopenharmony_ciTRACE_EVENT(drv_tdls_recv_channel_switch, 227062306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 227162306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 227262306a36Sopenharmony_ci struct ieee80211_tdls_ch_sw_params *params), 227362306a36Sopenharmony_ci 227462306a36Sopenharmony_ci TP_ARGS(local, sdata, params), 227562306a36Sopenharmony_ci 227662306a36Sopenharmony_ci TP_STRUCT__entry( 227762306a36Sopenharmony_ci LOCAL_ENTRY 227862306a36Sopenharmony_ci VIF_ENTRY 227962306a36Sopenharmony_ci __field(u8, action_code) 228062306a36Sopenharmony_ci STA_ENTRY 228162306a36Sopenharmony_ci CHANDEF_ENTRY 228262306a36Sopenharmony_ci __field(u32, status) 228362306a36Sopenharmony_ci __field(bool, peer_initiator) 228462306a36Sopenharmony_ci __field(u32, timestamp) 228562306a36Sopenharmony_ci __field(u16, switch_time) 228662306a36Sopenharmony_ci __field(u16, switch_timeout) 228762306a36Sopenharmony_ci ), 228862306a36Sopenharmony_ci 228962306a36Sopenharmony_ci TP_fast_assign( 229062306a36Sopenharmony_ci LOCAL_ASSIGN; 229162306a36Sopenharmony_ci VIF_ASSIGN; 229262306a36Sopenharmony_ci STA_NAMED_ASSIGN(params->sta); 229362306a36Sopenharmony_ci CHANDEF_ASSIGN(params->chandef) 229462306a36Sopenharmony_ci __entry->peer_initiator = params->sta->tdls_initiator; 229562306a36Sopenharmony_ci __entry->action_code = params->action_code; 229662306a36Sopenharmony_ci __entry->status = params->status; 229762306a36Sopenharmony_ci __entry->timestamp = params->timestamp; 229862306a36Sopenharmony_ci __entry->switch_time = params->switch_time; 229962306a36Sopenharmony_ci __entry->switch_timeout = params->switch_timeout; 230062306a36Sopenharmony_ci ), 230162306a36Sopenharmony_ci 230262306a36Sopenharmony_ci TP_printk( 230362306a36Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT " received tdls channel switch packet" 230462306a36Sopenharmony_ci " action:%d status:%d time:%d switch time:%d switch" 230562306a36Sopenharmony_ci " timeout:%d initiator: %d chan:" CHANDEF_PR_FMT STA_PR_FMT, 230662306a36Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, __entry->action_code, __entry->status, 230762306a36Sopenharmony_ci __entry->timestamp, __entry->switch_time, 230862306a36Sopenharmony_ci __entry->switch_timeout, __entry->peer_initiator, 230962306a36Sopenharmony_ci CHANDEF_PR_ARG, STA_PR_ARG 231062306a36Sopenharmony_ci ) 231162306a36Sopenharmony_ci); 231262306a36Sopenharmony_ci 231362306a36Sopenharmony_ciTRACE_EVENT(drv_wake_tx_queue, 231462306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 231562306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 231662306a36Sopenharmony_ci struct txq_info *txq), 231762306a36Sopenharmony_ci 231862306a36Sopenharmony_ci TP_ARGS(local, sdata, txq), 231962306a36Sopenharmony_ci 232062306a36Sopenharmony_ci TP_STRUCT__entry( 232162306a36Sopenharmony_ci LOCAL_ENTRY 232262306a36Sopenharmony_ci VIF_ENTRY 232362306a36Sopenharmony_ci STA_ENTRY 232462306a36Sopenharmony_ci __field(u8, ac) 232562306a36Sopenharmony_ci __field(u8, tid) 232662306a36Sopenharmony_ci ), 232762306a36Sopenharmony_ci 232862306a36Sopenharmony_ci TP_fast_assign( 232962306a36Sopenharmony_ci struct ieee80211_sta *sta = txq->txq.sta; 233062306a36Sopenharmony_ci 233162306a36Sopenharmony_ci LOCAL_ASSIGN; 233262306a36Sopenharmony_ci VIF_ASSIGN; 233362306a36Sopenharmony_ci STA_ASSIGN; 233462306a36Sopenharmony_ci __entry->ac = txq->txq.ac; 233562306a36Sopenharmony_ci __entry->tid = txq->txq.tid; 233662306a36Sopenharmony_ci ), 233762306a36Sopenharmony_ci 233862306a36Sopenharmony_ci TP_printk( 233962306a36Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT STA_PR_FMT " ac:%d tid:%d", 234062306a36Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, STA_PR_ARG, __entry->ac, __entry->tid 234162306a36Sopenharmony_ci ) 234262306a36Sopenharmony_ci); 234362306a36Sopenharmony_ci 234462306a36Sopenharmony_ciTRACE_EVENT(drv_get_ftm_responder_stats, 234562306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 234662306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 234762306a36Sopenharmony_ci struct cfg80211_ftm_responder_stats *ftm_stats), 234862306a36Sopenharmony_ci 234962306a36Sopenharmony_ci TP_ARGS(local, sdata, ftm_stats), 235062306a36Sopenharmony_ci 235162306a36Sopenharmony_ci TP_STRUCT__entry( 235262306a36Sopenharmony_ci LOCAL_ENTRY 235362306a36Sopenharmony_ci VIF_ENTRY 235462306a36Sopenharmony_ci ), 235562306a36Sopenharmony_ci 235662306a36Sopenharmony_ci TP_fast_assign( 235762306a36Sopenharmony_ci LOCAL_ASSIGN; 235862306a36Sopenharmony_ci VIF_ASSIGN; 235962306a36Sopenharmony_ci ), 236062306a36Sopenharmony_ci 236162306a36Sopenharmony_ci TP_printk( 236262306a36Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT, 236362306a36Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG 236462306a36Sopenharmony_ci ) 236562306a36Sopenharmony_ci); 236662306a36Sopenharmony_ci 236762306a36Sopenharmony_ciDEFINE_EVENT(local_sdata_addr_evt, drv_update_vif_offload, 236862306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 236962306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata), 237062306a36Sopenharmony_ci TP_ARGS(local, sdata) 237162306a36Sopenharmony_ci); 237262306a36Sopenharmony_ci 237362306a36Sopenharmony_ciDECLARE_EVENT_CLASS(sta_flag_evt, 237462306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 237562306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 237662306a36Sopenharmony_ci struct ieee80211_sta *sta, bool enabled), 237762306a36Sopenharmony_ci 237862306a36Sopenharmony_ci TP_ARGS(local, sdata, sta, enabled), 237962306a36Sopenharmony_ci 238062306a36Sopenharmony_ci TP_STRUCT__entry( 238162306a36Sopenharmony_ci LOCAL_ENTRY 238262306a36Sopenharmony_ci VIF_ENTRY 238362306a36Sopenharmony_ci STA_ENTRY 238462306a36Sopenharmony_ci __field(bool, enabled) 238562306a36Sopenharmony_ci ), 238662306a36Sopenharmony_ci 238762306a36Sopenharmony_ci TP_fast_assign( 238862306a36Sopenharmony_ci LOCAL_ASSIGN; 238962306a36Sopenharmony_ci VIF_ASSIGN; 239062306a36Sopenharmony_ci STA_ASSIGN; 239162306a36Sopenharmony_ci __entry->enabled = enabled; 239262306a36Sopenharmony_ci ), 239362306a36Sopenharmony_ci 239462306a36Sopenharmony_ci TP_printk( 239562306a36Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT STA_PR_FMT " enabled:%d", 239662306a36Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, STA_PR_ARG, __entry->enabled 239762306a36Sopenharmony_ci ) 239862306a36Sopenharmony_ci); 239962306a36Sopenharmony_ci 240062306a36Sopenharmony_ciDEFINE_EVENT(sta_flag_evt, drv_sta_set_4addr, 240162306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 240262306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 240362306a36Sopenharmony_ci struct ieee80211_sta *sta, bool enabled), 240462306a36Sopenharmony_ci 240562306a36Sopenharmony_ci TP_ARGS(local, sdata, sta, enabled) 240662306a36Sopenharmony_ci); 240762306a36Sopenharmony_ci 240862306a36Sopenharmony_ciDEFINE_EVENT(sta_flag_evt, drv_sta_set_decap_offload, 240962306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 241062306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 241162306a36Sopenharmony_ci struct ieee80211_sta *sta, bool enabled), 241262306a36Sopenharmony_ci 241362306a36Sopenharmony_ci TP_ARGS(local, sdata, sta, enabled) 241462306a36Sopenharmony_ci); 241562306a36Sopenharmony_ci 241662306a36Sopenharmony_ciTRACE_EVENT(drv_add_twt_setup, 241762306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 241862306a36Sopenharmony_ci struct ieee80211_sta *sta, 241962306a36Sopenharmony_ci struct ieee80211_twt_setup *twt, 242062306a36Sopenharmony_ci struct ieee80211_twt_params *twt_agrt), 242162306a36Sopenharmony_ci 242262306a36Sopenharmony_ci TP_ARGS(local, sta, twt, twt_agrt), 242362306a36Sopenharmony_ci 242462306a36Sopenharmony_ci TP_STRUCT__entry( 242562306a36Sopenharmony_ci LOCAL_ENTRY 242662306a36Sopenharmony_ci STA_ENTRY 242762306a36Sopenharmony_ci __field(u8, dialog_token) 242862306a36Sopenharmony_ci __field(u8, control) 242962306a36Sopenharmony_ci __field(__le16, req_type) 243062306a36Sopenharmony_ci __field(__le64, twt) 243162306a36Sopenharmony_ci __field(u8, duration) 243262306a36Sopenharmony_ci __field(__le16, mantissa) 243362306a36Sopenharmony_ci __field(u8, channel) 243462306a36Sopenharmony_ci ), 243562306a36Sopenharmony_ci 243662306a36Sopenharmony_ci TP_fast_assign( 243762306a36Sopenharmony_ci LOCAL_ASSIGN; 243862306a36Sopenharmony_ci STA_ASSIGN; 243962306a36Sopenharmony_ci __entry->dialog_token = twt->dialog_token; 244062306a36Sopenharmony_ci __entry->control = twt->control; 244162306a36Sopenharmony_ci __entry->req_type = twt_agrt->req_type; 244262306a36Sopenharmony_ci __entry->twt = twt_agrt->twt; 244362306a36Sopenharmony_ci __entry->duration = twt_agrt->min_twt_dur; 244462306a36Sopenharmony_ci __entry->mantissa = twt_agrt->mantissa; 244562306a36Sopenharmony_ci __entry->channel = twt_agrt->channel; 244662306a36Sopenharmony_ci ), 244762306a36Sopenharmony_ci 244862306a36Sopenharmony_ci TP_printk( 244962306a36Sopenharmony_ci LOCAL_PR_FMT STA_PR_FMT 245062306a36Sopenharmony_ci " token:%d control:0x%02x req_type:0x%04x" 245162306a36Sopenharmony_ci " twt:%llu duration:%d mantissa:%d channel:%d", 245262306a36Sopenharmony_ci LOCAL_PR_ARG, STA_PR_ARG, __entry->dialog_token, 245362306a36Sopenharmony_ci __entry->control, le16_to_cpu(__entry->req_type), 245462306a36Sopenharmony_ci le64_to_cpu(__entry->twt), __entry->duration, 245562306a36Sopenharmony_ci le16_to_cpu(__entry->mantissa), __entry->channel 245662306a36Sopenharmony_ci ) 245762306a36Sopenharmony_ci); 245862306a36Sopenharmony_ci 245962306a36Sopenharmony_ciTRACE_EVENT(drv_twt_teardown_request, 246062306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 246162306a36Sopenharmony_ci struct ieee80211_sta *sta, u8 flowid), 246262306a36Sopenharmony_ci 246362306a36Sopenharmony_ci TP_ARGS(local, sta, flowid), 246462306a36Sopenharmony_ci 246562306a36Sopenharmony_ci TP_STRUCT__entry( 246662306a36Sopenharmony_ci LOCAL_ENTRY 246762306a36Sopenharmony_ci STA_ENTRY 246862306a36Sopenharmony_ci __field(u8, flowid) 246962306a36Sopenharmony_ci ), 247062306a36Sopenharmony_ci 247162306a36Sopenharmony_ci TP_fast_assign( 247262306a36Sopenharmony_ci LOCAL_ASSIGN; 247362306a36Sopenharmony_ci STA_ASSIGN; 247462306a36Sopenharmony_ci __entry->flowid = flowid; 247562306a36Sopenharmony_ci ), 247662306a36Sopenharmony_ci 247762306a36Sopenharmony_ci TP_printk( 247862306a36Sopenharmony_ci LOCAL_PR_FMT STA_PR_FMT " flowid:%d", 247962306a36Sopenharmony_ci LOCAL_PR_ARG, STA_PR_ARG, __entry->flowid 248062306a36Sopenharmony_ci ) 248162306a36Sopenharmony_ci); 248262306a36Sopenharmony_ci 248362306a36Sopenharmony_ciDEFINE_EVENT(sta_event, drv_net_fill_forward_path, 248462306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 248562306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 248662306a36Sopenharmony_ci struct ieee80211_sta *sta), 248762306a36Sopenharmony_ci TP_ARGS(local, sdata, sta) 248862306a36Sopenharmony_ci); 248962306a36Sopenharmony_ci 249062306a36Sopenharmony_ciTRACE_EVENT(drv_net_setup_tc, 249162306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 249262306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 249362306a36Sopenharmony_ci u8 type), 249462306a36Sopenharmony_ci 249562306a36Sopenharmony_ci TP_ARGS(local, sdata, type), 249662306a36Sopenharmony_ci 249762306a36Sopenharmony_ci TP_STRUCT__entry( 249862306a36Sopenharmony_ci LOCAL_ENTRY 249962306a36Sopenharmony_ci VIF_ENTRY 250062306a36Sopenharmony_ci __field(u8, type) 250162306a36Sopenharmony_ci ), 250262306a36Sopenharmony_ci 250362306a36Sopenharmony_ci TP_fast_assign( 250462306a36Sopenharmony_ci LOCAL_ASSIGN; 250562306a36Sopenharmony_ci VIF_ASSIGN; 250662306a36Sopenharmony_ci __entry->type = type; 250762306a36Sopenharmony_ci ), 250862306a36Sopenharmony_ci 250962306a36Sopenharmony_ci TP_printk( 251062306a36Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT " type:%d\n", 251162306a36Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, __entry->type 251262306a36Sopenharmony_ci ) 251362306a36Sopenharmony_ci); 251462306a36Sopenharmony_ci 251562306a36Sopenharmony_ciTRACE_EVENT(drv_change_vif_links, 251662306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 251762306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 251862306a36Sopenharmony_ci u16 old_links, u16 new_links), 251962306a36Sopenharmony_ci 252062306a36Sopenharmony_ci TP_ARGS(local, sdata, old_links, new_links), 252162306a36Sopenharmony_ci 252262306a36Sopenharmony_ci TP_STRUCT__entry( 252362306a36Sopenharmony_ci LOCAL_ENTRY 252462306a36Sopenharmony_ci VIF_ENTRY 252562306a36Sopenharmony_ci __field(u16, old_links) 252662306a36Sopenharmony_ci __field(u16, new_links) 252762306a36Sopenharmony_ci ), 252862306a36Sopenharmony_ci 252962306a36Sopenharmony_ci TP_fast_assign( 253062306a36Sopenharmony_ci LOCAL_ASSIGN; 253162306a36Sopenharmony_ci VIF_ASSIGN; 253262306a36Sopenharmony_ci __entry->old_links = old_links; 253362306a36Sopenharmony_ci __entry->new_links = new_links; 253462306a36Sopenharmony_ci ), 253562306a36Sopenharmony_ci 253662306a36Sopenharmony_ci TP_printk( 253762306a36Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT " old_links:0x%04x, new_links:0x%04x\n", 253862306a36Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, __entry->old_links, __entry->new_links 253962306a36Sopenharmony_ci ) 254062306a36Sopenharmony_ci); 254162306a36Sopenharmony_ci 254262306a36Sopenharmony_ciTRACE_EVENT(drv_change_sta_links, 254362306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 254462306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata, 254562306a36Sopenharmony_ci struct ieee80211_sta *sta, 254662306a36Sopenharmony_ci u16 old_links, u16 new_links), 254762306a36Sopenharmony_ci 254862306a36Sopenharmony_ci TP_ARGS(local, sdata, sta, old_links, new_links), 254962306a36Sopenharmony_ci 255062306a36Sopenharmony_ci TP_STRUCT__entry( 255162306a36Sopenharmony_ci LOCAL_ENTRY 255262306a36Sopenharmony_ci VIF_ENTRY 255362306a36Sopenharmony_ci STA_ENTRY 255462306a36Sopenharmony_ci __field(u16, old_links) 255562306a36Sopenharmony_ci __field(u16, new_links) 255662306a36Sopenharmony_ci ), 255762306a36Sopenharmony_ci 255862306a36Sopenharmony_ci TP_fast_assign( 255962306a36Sopenharmony_ci LOCAL_ASSIGN; 256062306a36Sopenharmony_ci VIF_ASSIGN; 256162306a36Sopenharmony_ci STA_ASSIGN; 256262306a36Sopenharmony_ci __entry->old_links = old_links; 256362306a36Sopenharmony_ci __entry->new_links = new_links; 256462306a36Sopenharmony_ci ), 256562306a36Sopenharmony_ci 256662306a36Sopenharmony_ci TP_printk( 256762306a36Sopenharmony_ci LOCAL_PR_FMT VIF_PR_FMT STA_PR_FMT " old_links:0x%04x, new_links:0x%04x\n", 256862306a36Sopenharmony_ci LOCAL_PR_ARG, VIF_PR_ARG, STA_PR_ARG, 256962306a36Sopenharmony_ci __entry->old_links, __entry->new_links 257062306a36Sopenharmony_ci ) 257162306a36Sopenharmony_ci); 257262306a36Sopenharmony_ci 257362306a36Sopenharmony_ci/* 257462306a36Sopenharmony_ci * Tracing for API calls that drivers call. 257562306a36Sopenharmony_ci */ 257662306a36Sopenharmony_ci 257762306a36Sopenharmony_ciTRACE_EVENT(api_start_tx_ba_session, 257862306a36Sopenharmony_ci TP_PROTO(struct ieee80211_sta *sta, u16 tid), 257962306a36Sopenharmony_ci 258062306a36Sopenharmony_ci TP_ARGS(sta, tid), 258162306a36Sopenharmony_ci 258262306a36Sopenharmony_ci TP_STRUCT__entry( 258362306a36Sopenharmony_ci STA_ENTRY 258462306a36Sopenharmony_ci __field(u16, tid) 258562306a36Sopenharmony_ci ), 258662306a36Sopenharmony_ci 258762306a36Sopenharmony_ci TP_fast_assign( 258862306a36Sopenharmony_ci STA_ASSIGN; 258962306a36Sopenharmony_ci __entry->tid = tid; 259062306a36Sopenharmony_ci ), 259162306a36Sopenharmony_ci 259262306a36Sopenharmony_ci TP_printk( 259362306a36Sopenharmony_ci STA_PR_FMT " tid:%d", 259462306a36Sopenharmony_ci STA_PR_ARG, __entry->tid 259562306a36Sopenharmony_ci ) 259662306a36Sopenharmony_ci); 259762306a36Sopenharmony_ci 259862306a36Sopenharmony_ciTRACE_EVENT(api_start_tx_ba_cb, 259962306a36Sopenharmony_ci TP_PROTO(struct ieee80211_sub_if_data *sdata, const u8 *ra, u16 tid), 260062306a36Sopenharmony_ci 260162306a36Sopenharmony_ci TP_ARGS(sdata, ra, tid), 260262306a36Sopenharmony_ci 260362306a36Sopenharmony_ci TP_STRUCT__entry( 260462306a36Sopenharmony_ci VIF_ENTRY 260562306a36Sopenharmony_ci __array(u8, ra, ETH_ALEN) 260662306a36Sopenharmony_ci __field(u16, tid) 260762306a36Sopenharmony_ci ), 260862306a36Sopenharmony_ci 260962306a36Sopenharmony_ci TP_fast_assign( 261062306a36Sopenharmony_ci VIF_ASSIGN; 261162306a36Sopenharmony_ci memcpy(__entry->ra, ra, ETH_ALEN); 261262306a36Sopenharmony_ci __entry->tid = tid; 261362306a36Sopenharmony_ci ), 261462306a36Sopenharmony_ci 261562306a36Sopenharmony_ci TP_printk( 261662306a36Sopenharmony_ci VIF_PR_FMT " ra:%pM tid:%d", 261762306a36Sopenharmony_ci VIF_PR_ARG, __entry->ra, __entry->tid 261862306a36Sopenharmony_ci ) 261962306a36Sopenharmony_ci); 262062306a36Sopenharmony_ci 262162306a36Sopenharmony_ciTRACE_EVENT(api_stop_tx_ba_session, 262262306a36Sopenharmony_ci TP_PROTO(struct ieee80211_sta *sta, u16 tid), 262362306a36Sopenharmony_ci 262462306a36Sopenharmony_ci TP_ARGS(sta, tid), 262562306a36Sopenharmony_ci 262662306a36Sopenharmony_ci TP_STRUCT__entry( 262762306a36Sopenharmony_ci STA_ENTRY 262862306a36Sopenharmony_ci __field(u16, tid) 262962306a36Sopenharmony_ci ), 263062306a36Sopenharmony_ci 263162306a36Sopenharmony_ci TP_fast_assign( 263262306a36Sopenharmony_ci STA_ASSIGN; 263362306a36Sopenharmony_ci __entry->tid = tid; 263462306a36Sopenharmony_ci ), 263562306a36Sopenharmony_ci 263662306a36Sopenharmony_ci TP_printk( 263762306a36Sopenharmony_ci STA_PR_FMT " tid:%d", 263862306a36Sopenharmony_ci STA_PR_ARG, __entry->tid 263962306a36Sopenharmony_ci ) 264062306a36Sopenharmony_ci); 264162306a36Sopenharmony_ci 264262306a36Sopenharmony_ciTRACE_EVENT(api_stop_tx_ba_cb, 264362306a36Sopenharmony_ci TP_PROTO(struct ieee80211_sub_if_data *sdata, const u8 *ra, u16 tid), 264462306a36Sopenharmony_ci 264562306a36Sopenharmony_ci TP_ARGS(sdata, ra, tid), 264662306a36Sopenharmony_ci 264762306a36Sopenharmony_ci TP_STRUCT__entry( 264862306a36Sopenharmony_ci VIF_ENTRY 264962306a36Sopenharmony_ci __array(u8, ra, ETH_ALEN) 265062306a36Sopenharmony_ci __field(u16, tid) 265162306a36Sopenharmony_ci ), 265262306a36Sopenharmony_ci 265362306a36Sopenharmony_ci TP_fast_assign( 265462306a36Sopenharmony_ci VIF_ASSIGN; 265562306a36Sopenharmony_ci memcpy(__entry->ra, ra, ETH_ALEN); 265662306a36Sopenharmony_ci __entry->tid = tid; 265762306a36Sopenharmony_ci ), 265862306a36Sopenharmony_ci 265962306a36Sopenharmony_ci TP_printk( 266062306a36Sopenharmony_ci VIF_PR_FMT " ra:%pM tid:%d", 266162306a36Sopenharmony_ci VIF_PR_ARG, __entry->ra, __entry->tid 266262306a36Sopenharmony_ci ) 266362306a36Sopenharmony_ci); 266462306a36Sopenharmony_ci 266562306a36Sopenharmony_ciDEFINE_EVENT(local_only_evt, api_restart_hw, 266662306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local), 266762306a36Sopenharmony_ci TP_ARGS(local) 266862306a36Sopenharmony_ci); 266962306a36Sopenharmony_ci 267062306a36Sopenharmony_ciTRACE_EVENT(api_beacon_loss, 267162306a36Sopenharmony_ci TP_PROTO(struct ieee80211_sub_if_data *sdata), 267262306a36Sopenharmony_ci 267362306a36Sopenharmony_ci TP_ARGS(sdata), 267462306a36Sopenharmony_ci 267562306a36Sopenharmony_ci TP_STRUCT__entry( 267662306a36Sopenharmony_ci VIF_ENTRY 267762306a36Sopenharmony_ci ), 267862306a36Sopenharmony_ci 267962306a36Sopenharmony_ci TP_fast_assign( 268062306a36Sopenharmony_ci VIF_ASSIGN; 268162306a36Sopenharmony_ci ), 268262306a36Sopenharmony_ci 268362306a36Sopenharmony_ci TP_printk( 268462306a36Sopenharmony_ci VIF_PR_FMT, 268562306a36Sopenharmony_ci VIF_PR_ARG 268662306a36Sopenharmony_ci ) 268762306a36Sopenharmony_ci); 268862306a36Sopenharmony_ci 268962306a36Sopenharmony_ciTRACE_EVENT(api_connection_loss, 269062306a36Sopenharmony_ci TP_PROTO(struct ieee80211_sub_if_data *sdata), 269162306a36Sopenharmony_ci 269262306a36Sopenharmony_ci TP_ARGS(sdata), 269362306a36Sopenharmony_ci 269462306a36Sopenharmony_ci TP_STRUCT__entry( 269562306a36Sopenharmony_ci VIF_ENTRY 269662306a36Sopenharmony_ci ), 269762306a36Sopenharmony_ci 269862306a36Sopenharmony_ci TP_fast_assign( 269962306a36Sopenharmony_ci VIF_ASSIGN; 270062306a36Sopenharmony_ci ), 270162306a36Sopenharmony_ci 270262306a36Sopenharmony_ci TP_printk( 270362306a36Sopenharmony_ci VIF_PR_FMT, 270462306a36Sopenharmony_ci VIF_PR_ARG 270562306a36Sopenharmony_ci ) 270662306a36Sopenharmony_ci); 270762306a36Sopenharmony_ci 270862306a36Sopenharmony_ciTRACE_EVENT(api_disconnect, 270962306a36Sopenharmony_ci TP_PROTO(struct ieee80211_sub_if_data *sdata, bool reconnect), 271062306a36Sopenharmony_ci 271162306a36Sopenharmony_ci TP_ARGS(sdata, reconnect), 271262306a36Sopenharmony_ci 271362306a36Sopenharmony_ci TP_STRUCT__entry( 271462306a36Sopenharmony_ci VIF_ENTRY 271562306a36Sopenharmony_ci __field(int, reconnect) 271662306a36Sopenharmony_ci ), 271762306a36Sopenharmony_ci 271862306a36Sopenharmony_ci TP_fast_assign( 271962306a36Sopenharmony_ci VIF_ASSIGN; 272062306a36Sopenharmony_ci __entry->reconnect = reconnect; 272162306a36Sopenharmony_ci ), 272262306a36Sopenharmony_ci 272362306a36Sopenharmony_ci TP_printk( 272462306a36Sopenharmony_ci VIF_PR_FMT " reconnect:%d", 272562306a36Sopenharmony_ci VIF_PR_ARG, __entry->reconnect 272662306a36Sopenharmony_ci ) 272762306a36Sopenharmony_ci); 272862306a36Sopenharmony_ci 272962306a36Sopenharmony_ciTRACE_EVENT(api_cqm_rssi_notify, 273062306a36Sopenharmony_ci TP_PROTO(struct ieee80211_sub_if_data *sdata, 273162306a36Sopenharmony_ci enum nl80211_cqm_rssi_threshold_event rssi_event, 273262306a36Sopenharmony_ci s32 rssi_level), 273362306a36Sopenharmony_ci 273462306a36Sopenharmony_ci TP_ARGS(sdata, rssi_event, rssi_level), 273562306a36Sopenharmony_ci 273662306a36Sopenharmony_ci TP_STRUCT__entry( 273762306a36Sopenharmony_ci VIF_ENTRY 273862306a36Sopenharmony_ci __field(u32, rssi_event) 273962306a36Sopenharmony_ci __field(s32, rssi_level) 274062306a36Sopenharmony_ci ), 274162306a36Sopenharmony_ci 274262306a36Sopenharmony_ci TP_fast_assign( 274362306a36Sopenharmony_ci VIF_ASSIGN; 274462306a36Sopenharmony_ci __entry->rssi_event = rssi_event; 274562306a36Sopenharmony_ci __entry->rssi_level = rssi_level; 274662306a36Sopenharmony_ci ), 274762306a36Sopenharmony_ci 274862306a36Sopenharmony_ci TP_printk( 274962306a36Sopenharmony_ci VIF_PR_FMT " event:%d rssi:%d", 275062306a36Sopenharmony_ci VIF_PR_ARG, __entry->rssi_event, __entry->rssi_level 275162306a36Sopenharmony_ci ) 275262306a36Sopenharmony_ci); 275362306a36Sopenharmony_ci 275462306a36Sopenharmony_ciDEFINE_EVENT(local_sdata_evt, api_cqm_beacon_loss_notify, 275562306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 275662306a36Sopenharmony_ci struct ieee80211_sub_if_data *sdata), 275762306a36Sopenharmony_ci TP_ARGS(local, sdata) 275862306a36Sopenharmony_ci); 275962306a36Sopenharmony_ci 276062306a36Sopenharmony_ciTRACE_EVENT(api_scan_completed, 276162306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, bool aborted), 276262306a36Sopenharmony_ci 276362306a36Sopenharmony_ci TP_ARGS(local, aborted), 276462306a36Sopenharmony_ci 276562306a36Sopenharmony_ci TP_STRUCT__entry( 276662306a36Sopenharmony_ci LOCAL_ENTRY 276762306a36Sopenharmony_ci __field(bool, aborted) 276862306a36Sopenharmony_ci ), 276962306a36Sopenharmony_ci 277062306a36Sopenharmony_ci TP_fast_assign( 277162306a36Sopenharmony_ci LOCAL_ASSIGN; 277262306a36Sopenharmony_ci __entry->aborted = aborted; 277362306a36Sopenharmony_ci ), 277462306a36Sopenharmony_ci 277562306a36Sopenharmony_ci TP_printk( 277662306a36Sopenharmony_ci LOCAL_PR_FMT " aborted:%d", 277762306a36Sopenharmony_ci LOCAL_PR_ARG, __entry->aborted 277862306a36Sopenharmony_ci ) 277962306a36Sopenharmony_ci); 278062306a36Sopenharmony_ci 278162306a36Sopenharmony_ciTRACE_EVENT(api_sched_scan_results, 278262306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local), 278362306a36Sopenharmony_ci 278462306a36Sopenharmony_ci TP_ARGS(local), 278562306a36Sopenharmony_ci 278662306a36Sopenharmony_ci TP_STRUCT__entry( 278762306a36Sopenharmony_ci LOCAL_ENTRY 278862306a36Sopenharmony_ci ), 278962306a36Sopenharmony_ci 279062306a36Sopenharmony_ci TP_fast_assign( 279162306a36Sopenharmony_ci LOCAL_ASSIGN; 279262306a36Sopenharmony_ci ), 279362306a36Sopenharmony_ci 279462306a36Sopenharmony_ci TP_printk( 279562306a36Sopenharmony_ci LOCAL_PR_FMT, LOCAL_PR_ARG 279662306a36Sopenharmony_ci ) 279762306a36Sopenharmony_ci); 279862306a36Sopenharmony_ci 279962306a36Sopenharmony_ciTRACE_EVENT(api_sched_scan_stopped, 280062306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local), 280162306a36Sopenharmony_ci 280262306a36Sopenharmony_ci TP_ARGS(local), 280362306a36Sopenharmony_ci 280462306a36Sopenharmony_ci TP_STRUCT__entry( 280562306a36Sopenharmony_ci LOCAL_ENTRY 280662306a36Sopenharmony_ci ), 280762306a36Sopenharmony_ci 280862306a36Sopenharmony_ci TP_fast_assign( 280962306a36Sopenharmony_ci LOCAL_ASSIGN; 281062306a36Sopenharmony_ci ), 281162306a36Sopenharmony_ci 281262306a36Sopenharmony_ci TP_printk( 281362306a36Sopenharmony_ci LOCAL_PR_FMT, LOCAL_PR_ARG 281462306a36Sopenharmony_ci ) 281562306a36Sopenharmony_ci); 281662306a36Sopenharmony_ci 281762306a36Sopenharmony_ciTRACE_EVENT(api_sta_block_awake, 281862306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 281962306a36Sopenharmony_ci struct ieee80211_sta *sta, bool block), 282062306a36Sopenharmony_ci 282162306a36Sopenharmony_ci TP_ARGS(local, sta, block), 282262306a36Sopenharmony_ci 282362306a36Sopenharmony_ci TP_STRUCT__entry( 282462306a36Sopenharmony_ci LOCAL_ENTRY 282562306a36Sopenharmony_ci STA_ENTRY 282662306a36Sopenharmony_ci __field(bool, block) 282762306a36Sopenharmony_ci ), 282862306a36Sopenharmony_ci 282962306a36Sopenharmony_ci TP_fast_assign( 283062306a36Sopenharmony_ci LOCAL_ASSIGN; 283162306a36Sopenharmony_ci STA_ASSIGN; 283262306a36Sopenharmony_ci __entry->block = block; 283362306a36Sopenharmony_ci ), 283462306a36Sopenharmony_ci 283562306a36Sopenharmony_ci TP_printk( 283662306a36Sopenharmony_ci LOCAL_PR_FMT STA_PR_FMT " block:%d", 283762306a36Sopenharmony_ci LOCAL_PR_ARG, STA_PR_ARG, __entry->block 283862306a36Sopenharmony_ci ) 283962306a36Sopenharmony_ci); 284062306a36Sopenharmony_ci 284162306a36Sopenharmony_ciTRACE_EVENT(api_chswitch_done, 284262306a36Sopenharmony_ci TP_PROTO(struct ieee80211_sub_if_data *sdata, bool success), 284362306a36Sopenharmony_ci 284462306a36Sopenharmony_ci TP_ARGS(sdata, success), 284562306a36Sopenharmony_ci 284662306a36Sopenharmony_ci TP_STRUCT__entry( 284762306a36Sopenharmony_ci VIF_ENTRY 284862306a36Sopenharmony_ci __field(bool, success) 284962306a36Sopenharmony_ci ), 285062306a36Sopenharmony_ci 285162306a36Sopenharmony_ci TP_fast_assign( 285262306a36Sopenharmony_ci VIF_ASSIGN; 285362306a36Sopenharmony_ci __entry->success = success; 285462306a36Sopenharmony_ci ), 285562306a36Sopenharmony_ci 285662306a36Sopenharmony_ci TP_printk( 285762306a36Sopenharmony_ci VIF_PR_FMT " success=%d", 285862306a36Sopenharmony_ci VIF_PR_ARG, __entry->success 285962306a36Sopenharmony_ci ) 286062306a36Sopenharmony_ci); 286162306a36Sopenharmony_ci 286262306a36Sopenharmony_ciDEFINE_EVENT(local_only_evt, api_ready_on_channel, 286362306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local), 286462306a36Sopenharmony_ci TP_ARGS(local) 286562306a36Sopenharmony_ci); 286662306a36Sopenharmony_ci 286762306a36Sopenharmony_ciDEFINE_EVENT(local_only_evt, api_remain_on_channel_expired, 286862306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local), 286962306a36Sopenharmony_ci TP_ARGS(local) 287062306a36Sopenharmony_ci); 287162306a36Sopenharmony_ci 287262306a36Sopenharmony_ciTRACE_EVENT(api_gtk_rekey_notify, 287362306a36Sopenharmony_ci TP_PROTO(struct ieee80211_sub_if_data *sdata, 287462306a36Sopenharmony_ci const u8 *bssid, const u8 *replay_ctr), 287562306a36Sopenharmony_ci 287662306a36Sopenharmony_ci TP_ARGS(sdata, bssid, replay_ctr), 287762306a36Sopenharmony_ci 287862306a36Sopenharmony_ci TP_STRUCT__entry( 287962306a36Sopenharmony_ci VIF_ENTRY 288062306a36Sopenharmony_ci __array(u8, bssid, ETH_ALEN) 288162306a36Sopenharmony_ci __array(u8, replay_ctr, NL80211_REPLAY_CTR_LEN) 288262306a36Sopenharmony_ci ), 288362306a36Sopenharmony_ci 288462306a36Sopenharmony_ci TP_fast_assign( 288562306a36Sopenharmony_ci VIF_ASSIGN; 288662306a36Sopenharmony_ci memcpy(__entry->bssid, bssid, ETH_ALEN); 288762306a36Sopenharmony_ci memcpy(__entry->replay_ctr, replay_ctr, NL80211_REPLAY_CTR_LEN); 288862306a36Sopenharmony_ci ), 288962306a36Sopenharmony_ci 289062306a36Sopenharmony_ci TP_printk(VIF_PR_FMT, VIF_PR_ARG) 289162306a36Sopenharmony_ci); 289262306a36Sopenharmony_ci 289362306a36Sopenharmony_ciTRACE_EVENT(api_enable_rssi_reports, 289462306a36Sopenharmony_ci TP_PROTO(struct ieee80211_sub_if_data *sdata, 289562306a36Sopenharmony_ci int rssi_min_thold, int rssi_max_thold), 289662306a36Sopenharmony_ci 289762306a36Sopenharmony_ci TP_ARGS(sdata, rssi_min_thold, rssi_max_thold), 289862306a36Sopenharmony_ci 289962306a36Sopenharmony_ci TP_STRUCT__entry( 290062306a36Sopenharmony_ci VIF_ENTRY 290162306a36Sopenharmony_ci __field(int, rssi_min_thold) 290262306a36Sopenharmony_ci __field(int, rssi_max_thold) 290362306a36Sopenharmony_ci ), 290462306a36Sopenharmony_ci 290562306a36Sopenharmony_ci TP_fast_assign( 290662306a36Sopenharmony_ci VIF_ASSIGN; 290762306a36Sopenharmony_ci __entry->rssi_min_thold = rssi_min_thold; 290862306a36Sopenharmony_ci __entry->rssi_max_thold = rssi_max_thold; 290962306a36Sopenharmony_ci ), 291062306a36Sopenharmony_ci 291162306a36Sopenharmony_ci TP_printk( 291262306a36Sopenharmony_ci VIF_PR_FMT " rssi_min_thold =%d, rssi_max_thold = %d", 291362306a36Sopenharmony_ci VIF_PR_ARG, __entry->rssi_min_thold, __entry->rssi_max_thold 291462306a36Sopenharmony_ci ) 291562306a36Sopenharmony_ci); 291662306a36Sopenharmony_ci 291762306a36Sopenharmony_ciTRACE_EVENT(api_eosp, 291862306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 291962306a36Sopenharmony_ci struct ieee80211_sta *sta), 292062306a36Sopenharmony_ci 292162306a36Sopenharmony_ci TP_ARGS(local, sta), 292262306a36Sopenharmony_ci 292362306a36Sopenharmony_ci TP_STRUCT__entry( 292462306a36Sopenharmony_ci LOCAL_ENTRY 292562306a36Sopenharmony_ci STA_ENTRY 292662306a36Sopenharmony_ci ), 292762306a36Sopenharmony_ci 292862306a36Sopenharmony_ci TP_fast_assign( 292962306a36Sopenharmony_ci LOCAL_ASSIGN; 293062306a36Sopenharmony_ci STA_ASSIGN; 293162306a36Sopenharmony_ci ), 293262306a36Sopenharmony_ci 293362306a36Sopenharmony_ci TP_printk( 293462306a36Sopenharmony_ci LOCAL_PR_FMT STA_PR_FMT, 293562306a36Sopenharmony_ci LOCAL_PR_ARG, STA_PR_ARG 293662306a36Sopenharmony_ci ) 293762306a36Sopenharmony_ci); 293862306a36Sopenharmony_ci 293962306a36Sopenharmony_ciTRACE_EVENT(api_send_eosp_nullfunc, 294062306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 294162306a36Sopenharmony_ci struct ieee80211_sta *sta, 294262306a36Sopenharmony_ci u8 tid), 294362306a36Sopenharmony_ci 294462306a36Sopenharmony_ci TP_ARGS(local, sta, tid), 294562306a36Sopenharmony_ci 294662306a36Sopenharmony_ci TP_STRUCT__entry( 294762306a36Sopenharmony_ci LOCAL_ENTRY 294862306a36Sopenharmony_ci STA_ENTRY 294962306a36Sopenharmony_ci __field(u8, tid) 295062306a36Sopenharmony_ci ), 295162306a36Sopenharmony_ci 295262306a36Sopenharmony_ci TP_fast_assign( 295362306a36Sopenharmony_ci LOCAL_ASSIGN; 295462306a36Sopenharmony_ci STA_ASSIGN; 295562306a36Sopenharmony_ci __entry->tid = tid; 295662306a36Sopenharmony_ci ), 295762306a36Sopenharmony_ci 295862306a36Sopenharmony_ci TP_printk( 295962306a36Sopenharmony_ci LOCAL_PR_FMT STA_PR_FMT " tid:%d", 296062306a36Sopenharmony_ci LOCAL_PR_ARG, STA_PR_ARG, __entry->tid 296162306a36Sopenharmony_ci ) 296262306a36Sopenharmony_ci); 296362306a36Sopenharmony_ci 296462306a36Sopenharmony_ciTRACE_EVENT(api_sta_set_buffered, 296562306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, 296662306a36Sopenharmony_ci struct ieee80211_sta *sta, 296762306a36Sopenharmony_ci u8 tid, bool buffered), 296862306a36Sopenharmony_ci 296962306a36Sopenharmony_ci TP_ARGS(local, sta, tid, buffered), 297062306a36Sopenharmony_ci 297162306a36Sopenharmony_ci TP_STRUCT__entry( 297262306a36Sopenharmony_ci LOCAL_ENTRY 297362306a36Sopenharmony_ci STA_ENTRY 297462306a36Sopenharmony_ci __field(u8, tid) 297562306a36Sopenharmony_ci __field(bool, buffered) 297662306a36Sopenharmony_ci ), 297762306a36Sopenharmony_ci 297862306a36Sopenharmony_ci TP_fast_assign( 297962306a36Sopenharmony_ci LOCAL_ASSIGN; 298062306a36Sopenharmony_ci STA_ASSIGN; 298162306a36Sopenharmony_ci __entry->tid = tid; 298262306a36Sopenharmony_ci __entry->buffered = buffered; 298362306a36Sopenharmony_ci ), 298462306a36Sopenharmony_ci 298562306a36Sopenharmony_ci TP_printk( 298662306a36Sopenharmony_ci LOCAL_PR_FMT STA_PR_FMT " tid:%d buffered:%d", 298762306a36Sopenharmony_ci LOCAL_PR_ARG, STA_PR_ARG, __entry->tid, __entry->buffered 298862306a36Sopenharmony_ci ) 298962306a36Sopenharmony_ci); 299062306a36Sopenharmony_ci 299162306a36Sopenharmony_ciTRACE_EVENT(api_radar_detected, 299262306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local), 299362306a36Sopenharmony_ci 299462306a36Sopenharmony_ci TP_ARGS(local), 299562306a36Sopenharmony_ci 299662306a36Sopenharmony_ci TP_STRUCT__entry( 299762306a36Sopenharmony_ci LOCAL_ENTRY 299862306a36Sopenharmony_ci ), 299962306a36Sopenharmony_ci 300062306a36Sopenharmony_ci TP_fast_assign( 300162306a36Sopenharmony_ci LOCAL_ASSIGN; 300262306a36Sopenharmony_ci ), 300362306a36Sopenharmony_ci 300462306a36Sopenharmony_ci TP_printk( 300562306a36Sopenharmony_ci LOCAL_PR_FMT " radar detected", 300662306a36Sopenharmony_ci LOCAL_PR_ARG 300762306a36Sopenharmony_ci ) 300862306a36Sopenharmony_ci); 300962306a36Sopenharmony_ci 301062306a36Sopenharmony_ci/* 301162306a36Sopenharmony_ci * Tracing for internal functions 301262306a36Sopenharmony_ci * (which may also be called in response to driver calls) 301362306a36Sopenharmony_ci */ 301462306a36Sopenharmony_ci 301562306a36Sopenharmony_ciTRACE_EVENT(wake_queue, 301662306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, u16 queue, 301762306a36Sopenharmony_ci enum queue_stop_reason reason), 301862306a36Sopenharmony_ci 301962306a36Sopenharmony_ci TP_ARGS(local, queue, reason), 302062306a36Sopenharmony_ci 302162306a36Sopenharmony_ci TP_STRUCT__entry( 302262306a36Sopenharmony_ci LOCAL_ENTRY 302362306a36Sopenharmony_ci __field(u16, queue) 302462306a36Sopenharmony_ci __field(u32, reason) 302562306a36Sopenharmony_ci ), 302662306a36Sopenharmony_ci 302762306a36Sopenharmony_ci TP_fast_assign( 302862306a36Sopenharmony_ci LOCAL_ASSIGN; 302962306a36Sopenharmony_ci __entry->queue = queue; 303062306a36Sopenharmony_ci __entry->reason = reason; 303162306a36Sopenharmony_ci ), 303262306a36Sopenharmony_ci 303362306a36Sopenharmony_ci TP_printk( 303462306a36Sopenharmony_ci LOCAL_PR_FMT " queue:%d, reason:%d", 303562306a36Sopenharmony_ci LOCAL_PR_ARG, __entry->queue, __entry->reason 303662306a36Sopenharmony_ci ) 303762306a36Sopenharmony_ci); 303862306a36Sopenharmony_ci 303962306a36Sopenharmony_ciTRACE_EVENT(stop_queue, 304062306a36Sopenharmony_ci TP_PROTO(struct ieee80211_local *local, u16 queue, 304162306a36Sopenharmony_ci enum queue_stop_reason reason), 304262306a36Sopenharmony_ci 304362306a36Sopenharmony_ci TP_ARGS(local, queue, reason), 304462306a36Sopenharmony_ci 304562306a36Sopenharmony_ci TP_STRUCT__entry( 304662306a36Sopenharmony_ci LOCAL_ENTRY 304762306a36Sopenharmony_ci __field(u16, queue) 304862306a36Sopenharmony_ci __field(u32, reason) 304962306a36Sopenharmony_ci ), 305062306a36Sopenharmony_ci 305162306a36Sopenharmony_ci TP_fast_assign( 305262306a36Sopenharmony_ci LOCAL_ASSIGN; 305362306a36Sopenharmony_ci __entry->queue = queue; 305462306a36Sopenharmony_ci __entry->reason = reason; 305562306a36Sopenharmony_ci ), 305662306a36Sopenharmony_ci 305762306a36Sopenharmony_ci TP_printk( 305862306a36Sopenharmony_ci LOCAL_PR_FMT " queue:%d, reason:%d", 305962306a36Sopenharmony_ci LOCAL_PR_ARG, __entry->queue, __entry->reason 306062306a36Sopenharmony_ci ) 306162306a36Sopenharmony_ci); 306262306a36Sopenharmony_ci 306362306a36Sopenharmony_ci#endif /* !__MAC80211_DRIVER_TRACE || TRACE_HEADER_MULTI_READ */ 306462306a36Sopenharmony_ci 306562306a36Sopenharmony_ci#undef TRACE_INCLUDE_PATH 306662306a36Sopenharmony_ci#define TRACE_INCLUDE_PATH . 306762306a36Sopenharmony_ci#undef TRACE_INCLUDE_FILE 306862306a36Sopenharmony_ci#define TRACE_INCLUDE_FILE trace 306962306a36Sopenharmony_ci#include <trace/define_trace.h> 3070