#ifndef DEBUG_HTT_STATS_H
#define DEBUG_HTT_STATS_H
#define ATH12K_HTT_STATS_BUF_SIZE …
#define ATH12K_HTT_STATS_COOKIE_LSB …
#define ATH12K_HTT_STATS_COOKIE_MSB …
#define ATH12K_HTT_STATS_MAGIC_VALUE …
#define ATH12K_HTT_STATS_SUBTYPE_MAX …
#define ATH12K_HTT_MAX_STRING_LEN …
#define ATH12K_HTT_STATS_RESET_BITMAP32_OFFSET(_idx) …
#define ATH12K_HTT_STATS_RESET_BITMAP64_OFFSET(_idx) …
#define ATH12K_HTT_STATS_RESET_BITMAP32_BIT(_idx) …
#define ATH12K_HTT_STATS_RESET_BITMAP64_BIT(_idx) …
void ath12k_debugfs_htt_stats_register(struct ath12k *ar);
#ifdef CONFIG_ATH12K_DEBUGFS
void ath12k_debugfs_htt_ext_stats_handler(struct ath12k_base *ab,
struct sk_buff *skb);
#else
static inline void ath12k_debugfs_htt_ext_stats_handler(struct ath12k_base *ab,
struct sk_buff *skb)
{
}
#endif
#define ATH12K_HTT_T2H_EXT_STATS_INFO1_DONE …
#define ATH12K_HTT_T2H_EXT_STATS_INFO1_LENGTH …
struct ath12k_htt_extd_stats_msg { … } __packed;
enum ath12k_dbg_htt_ext_stats_type { … };
enum ath12k_dbg_htt_tlv_tag { … };
#define ATH12K_HTT_STATS_MAC_ID …
#define ATH12K_HTT_TX_PDEV_MAX_SIFS_BURST_STATS …
#define ATH12K_HTT_TX_PDEV_MAX_FLUSH_REASON_STATS …
#define ATH12K_HTT_STATS_NUM_NR_BINS …
#define ATH12K_HTT_STATS_MAX_NUM_MU_PPDU_PER_BURST …
#define ATH12K_HTT_TX_PDEV_MAX_SIFS_BURST_HIST_STATS …
#define ATH12K_HTT_STATS_MAX_NUM_SCHED_STATUS …
#define ATH12K_HTT_STATS_NUM_SCHED_STATUS_WORDS …
#define ATH12K_HTT_STATS_MU_PPDU_PER_BURST_WORDS …
enum ath12k_htt_tx_pdev_underrun_enum { … };
enum ath12k_htt_stats_reset_cfg_param_alloc_pos { … };
struct debug_htt_stats_req { … };
struct ath12k_htt_tx_pdev_stats_cmn_tlv { … } __packed;
struct ath12k_htt_tx_pdev_stats_urrn_tlv { … } __packed;
struct ath12k_htt_tx_pdev_stats_flush_tlv { … } __packed;
struct ath12k_htt_tx_pdev_stats_phy_err_tlv { … } __packed;
struct ath12k_htt_tx_pdev_stats_sifs_tlv { … } __packed;
struct ath12k_htt_pdev_ctrl_path_tx_stats_tlv { … } __packed;
struct ath12k_htt_tx_pdev_stats_sifs_hist_tlv { … } __packed;
enum ath12k_htt_stats_hw_mode { … };
struct ath12k_htt_tx_pdev_mu_ppdu_dist_stats_tlv { … } __packed;
#define ATH12K_HTT_TX_PDEV_STATS_SCHED_PER_TXQ_MAC_ID …
#define ATH12K_HTT_TX_PDEV_STATS_SCHED_PER_TXQ_ID …
#define ATH12K_HTT_TX_PDEV_NUM_SCHED_ORDER_LOG …
struct ath12k_htt_stats_tx_sched_cmn_tlv { … } __packed;
struct ath12k_htt_tx_pdev_stats_sched_per_txq_tlv { … } __packed;
struct ath12k_htt_sched_txq_cmd_posted_tlv { … } __packed;
struct ath12k_htt_sched_txq_cmd_reaped_tlv { … } __packed;
struct ath12k_htt_sched_txq_sched_order_su_tlv { … } __packed;
struct ath12k_htt_sched_txq_sched_ineligibility_tlv { … } __packed;
enum ath12k_htt_sched_txq_supercycle_triggers_tlv_enum { … };
struct ath12k_htt_sched_txq_supercycle_triggers_tlv { … } __packed;
struct ath12k_htt_hw_stats_pdev_errs_tlv { … } __packed;
#define ATH12K_HTT_STATS_MAX_HW_INTR_NAME_LEN …
struct ath12k_htt_hw_stats_intr_misc_tlv { … } __packed;
struct ath12k_htt_hw_stats_whal_tx_tlv { … } __packed;
struct ath12k_htt_hw_war_stats_tlv { … } __packed;
struct ath12k_htt_tx_tqm_cmn_stats_tlv { … } __packed;
struct ath12k_htt_tx_tqm_error_stats_tlv { … } __packed;
struct ath12k_htt_tx_tqm_gen_mpdu_stats_tlv { … } __packed;
#define ATH12K_HTT_TX_TQM_MAX_LIST_MPDU_END_REASON …
#define ATH12K_HTT_TX_TQM_MAX_LIST_MPDU_CNT_HISTOGRAM_BINS …
struct ath12k_htt_tx_tqm_list_mpdu_stats_tlv { … } __packed;
struct ath12k_htt_tx_tqm_list_mpdu_cnt_tlv { … } __packed;
struct ath12k_htt_tx_tqm_pdev_stats_tlv { … } __packed;
struct ath12k_htt_tx_de_cmn_stats_tlv { … } __packed;
struct ath12k_htt_tx_de_eapol_packets_stats_tlv { … } __packed;
struct ath12k_htt_tx_de_classify_stats_tlv { … } __packed;
struct ath12k_htt_tx_de_classify_failed_stats_tlv { … } __packed;
struct ath12k_htt_tx_de_classify_status_stats_tlv { … } __packed;
struct ath12k_htt_tx_de_enqueue_packets_stats_tlv { … } __packed;
struct ath12k_htt_tx_de_enqueue_discard_stats_tlv { … } __packed;
struct ath12k_htt_tx_de_compl_stats_tlv { … } __packed;
#endif