Files
kunlun/plc/halmac/inc/mac_status.h
2024-09-28 14:24:04 +08:00

906 lines
27 KiB
C

/****************************************************************************
Copyright(c) 2019 by Aerospace C.Power (Chongqing) Microelectronics. ALL RIGHTS RESERVED.
This Information is proprietary to Aerospace C.Power (Chongqing) Microelectronics and MAY NOT
be copied by any method or incorporated into another program without
the express written consent of Aerospace C.Power. This Information or any portion
thereof remains the property of Aerospace C.Power. The Information contained herein
is believed to be accurate and Aerospace C.Power assumes no responsibility or
liability for its use in any way and conveys no license or title under
any patent or copyright and makes no representation or warranty that this
Information is free from patent or copyright infringement.
****************************************************************************/
#ifndef MAC_STATUS_H
#define MAC_STATUS_H
#include "os_types.h"
#include "hw_tonemap.h"
#include "os_timer_api.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef enum {
MAC_DUMP_TYPE_1 = 1,
MAC_DUMP_TYPE_2,
MAC_DUMP_TYPE_3,
MAC_DUMP_TYPE_4,
MAC_DUMP_TYPE_5,
MAC_DUMP_TYPE_6,
MAC_DUMP_TYPE_7,
MAC_DUMP_TYPE_8,
MAC_DUMP_TYPE_9,
MAC_DUMP_TYPE_10,
} MAC_DUMP_TYPE;
typedef struct _mac_rx_status{
uint32_t mac_rx_msdu_cnt; //msdu
uint32_t mac_rx_mpdu_cnt; //mpdu
uint32_t mac_rx_bcn_ok_cnt;
uint32_t mac_rx_bcn_upload_cnt;
uint32_t mac_rx_pb_cnt;
uint32_t mac_rx_fc_err_cnt;
uint32_t mac_rx_fc_err_no_match_cnt; //hw/sw check fc crc no match
uint32_t mac_rx_bcn_pb_err_cnt;
uint32_t mac_rx_sof_pb_err_cnt;
uint32_t mac_rx_pld_err_cnt;
uint32_t mac_rx_abort_cnt;
uint32_t mac_rx_overflow_cnt;
uint32_t mac_rx_unicast_cnt; //unicast
uint32_t mac_rx_broadcast_cnt; //broadcast
uint32_t mac_rx_mpdu_tpye_err_cnt; //broadcast
uint32_t mac_rx_msdu_crc_err_cnt;
uint32_t mac_rx_msdu_null_first_pb_cnt;
uint32_t mac_rx_half_pkt_cnt;
uint32_t mac_rx_att_not_done_cnt;
uint32_t mac_rx_msdu_len_is_0_cnt;
uint32_t mac_rx_proto_nomatch_cnt;
uint32_t mac_rx_bcn_err_cnt;
uint32_t mac_rx_fc_invalid_cnt;
}mac_rx_status_t;
typedef struct _mac_tx_status{
uint32_t mac_mpdu_tx_cnt;
uint32_t mac_tx_no_ack_cnt;
uint32_t mac_mpdu_tx_unicast_cnt; //unicast
uint32_t mac_mpdu_tx_broadcast_cnt; //broadcast
uint32_t mac_tx_no_msdu_cnt; //no msdu to send
uint32_t mac_tx_underflow_cnt; //force phy underflow cnt
uint32_t mac_tx_no_ack_cnt_pco;
uint32_t mac_mpdu_tx_unicast_cnt_pco; //unicast
uint32_t mac_tx_unicast_pb_all_err_cnt;
uint32_t mac_tx_unicast_pb_all_err_cnt_pco;
uint32_t mac_tx_bcsma_flush_q_cnt;
/* just calc sof tx completed by phy count and exclude retry count */
uint32_t mac_msdu_tx_cnt;
uint32_t tx_msdu_comp_trigger_cnt;
uint32_t send_msdu_trigger_cnt;
uint32_t swq_to_hwq_cnt;
uint32_t csma_ignore_cca_cnt;
}mac_tx_status_t;
enum TMI_ID_TYPE {
P_TMI_0 , // 0
P_TMI_1 , // 1
P_TMI_2 , // 2
P_TMI_3 , // 3
P_TMI_4 , // 4
P_TMI_6 , // 5
P_TMI_7 , // 6
P_TMI_9 , // 7
P_TMI_11 , // 8
P_TMI_12 , // 9
P_TMI_13 , // 10
P_TMI_14 , // 11
P_EXTMI_6 , // 12
P_EXTMI_11 , // 13
P_EXTMI_12 , // 14
P_EXTMI_13 , // 15
P_TMI_MAX // 16
};
#define MAX_SOF_ERR_CNT_DEPTH 3
typedef struct _mac_sof_err_status{
/*rid pbnum*/
uint32_t sof_err_cnt[P_TMI_MAX][MAX_PB_NUM_4];
uint32_t record_depth;
uint32_t illega_pkt_cnt;
}mac_sof_err_status;
typedef struct _mac_status_zc_cnt {
/* phase event counter */
uint32_t phase_a_change_cnt;
uint32_t phase_b_change_cnt;
uint32_t phase_c_change_cnt;
uint32_t event_cnt;
uint32_t reset_hw_cnt;
uint32_t zc_req_cnt;
} mac_status_zc_cnt_t;
/* save mac zc core parameter */
typedef union _mac_status_zc_para {
struct {
/* phase A status */
uint32_t phase_a_status : 1,
/* phase B status */
phase_b_status : 1,
/* phase C status */
phase_c_status : 1,
/* zc hw is half collect */
hw_is_half_clct : 1,
/* zc hw cap edge */
hw_cap_edge : 1,
/* for kl1/2: is switch gpio collect
* for kl3: is double edge collect
*/
is_switch_gpio_clct : 1,
/* reserved for future */
rsvd0 : 10,
/* support phase/collect bitmap */
support_btm : 6,
/* reserved for future */
rsvd1 : 10;
};
uint32_t data;
} mac_status_zc_para_t;
typedef struct _mac_isr_status {
uint32_t isr_cnt;
uint32_t dsr_isr_sync_cnt;
} mac_isr_status_t;
typedef struct _mac_status_zc_record {
mac_status_zc_cnt_t cnt;
mac_status_zc_para_t para;
} mac_status_zc_record_t;
typedef struct _mac_stream_status {
/* timeout stream delete counter */
uint32_t timeout_cnt;
} mac_stream_status_t;
typedef enum _mac_peer_type {
PEER_SELF = 0, /* peer type of self */
PEER_BCAST, /* peer type of broadcast */
PEER_PROXY, /* peer type of proxy */
PEER_SUB, /* peer type of sub node */
PEER_TMP, /* peer type of temporary */
PEER_FAIL /* peer type of fail delete */
} mac_peer_type_t;
typedef struct _mac_peer_del_cnt {
/* overflow sub peer delete counter */
uint32_t sub_peer_del_cnt : 12,
/* overflow temporary peer delete counter */
temp_peer_del_cnt : 12,
/* overflow peer delete fail counter */
peer_del_fail_cnt : 8;
} mac_peer_del_cnt_t;
typedef union _mac_peer_status {
/* count of all type peer */
uint32_t cnt;
/* detailed peer delete count */
mac_peer_del_cnt_t del_cnt;
} mac_peer_status_t;
typedef struct _mac_sync_ntb_record {
/* sync ntb overflow war1 */
uint32_t sync_ntb_ovf_way1_cnt : 16,
/* sync ntb overflow war1 success */
way1_success_cnt : 16;
/* sync ntb overflow war2 */
uint32_t sync_ntb_ovf_way2_cnt : 16,
/* sync ntb overflow war2 success */
way2_success_cnt : 16;
/* sync ntb overflow war3 */
uint32_t sync_ntb_ovf_way3_cnt : 16,
/* sync ntb overflow war3 success */
way3_success_cnt : 16;
/* sync ntb overflow war4 */
uint32_t sync_ntb_ovf_way4_cnt : 16,
/* sync ntb overflow war4 success */
way4_success_cnt : 16;
/* sync ntb overflow war5 */
uint32_t sync_ntb_ovf_way5_cnt;
/* sync ntb overflow war6 */
uint32_t sync_ntb_ovf_way6_cnt;
} mac_sync_ntb_record_t;
/* 32 BYTE */
typedef struct _mac_status {
mac_rx_status_t rx_status;
mac_tx_status_t tx_status;
mac_sof_err_status sof_err_st;
mac_status_zc_record_t zc_record;
mac_isr_status_t isr_status;
mac_stream_status_t stream_status;
mac_peer_status_t peer_status;
mac_sync_ntb_record_t sync_ntb_record;
} mac_status_t;
#define MAX_WAIT_DUMP_CNT 10000000
/**
*@brief mac_add_rx_msdu_cnt mac rx msdu operation.
*@return 0: ok
*/
uint32_t mac_add_rx_msdu_cnt();
/**
*@brief mac_get_rx_msdu_cnt mac rx msdu operation.
*@return rx msdu count
*/
uint32_t mac_get_rx_msdu_cnt();
/**
*@brief mac_add_rx_msdu_cnt mac rx mpdu operation.
*@return 0: ok
*/
uint32_t mac_add_rx_mpdu_cnt();
/**
*@brief mac_get_rx_mpdu_cnt mac rx mpdu operation.
*@return rx mpdu count
*/
uint32_t mac_get_rx_mpdu_cnt();
/**
*@brief mac_add_rx_bcn_ok_cnt mac rx beacon ok operation.
*@return rx mpdu count
*/
uint32_t mac_add_rx_bcn_ok_cnt(void);
/**
*@brief mac_get_rx_bcn_ok_cnt mac rx beacon ok operation.
*@return rx mpdu count
*/
uint32_t mac_get_rx_bcn_ok_cnt(void);
/**
*@brief mac_add_rx_bcn_upload_cnt mac rx beacon upload operation.
*@return rx mpdu count
*/
uint32_t mac_add_rx_bcn_upload_cnt(void);
/**
*@brief mac_get_rx_bcn_upload_cnt mac rx beacon upload operation.
*@return rx mpdu count
*/
uint32_t mac_get_rx_bcn_upload_cnt(void);
/**
*@brief mac_add_rx_pb_cnt mac rx pb operation.
*@return 0: ok
*/
uint32_t mac_add_rx_pb_cnt();
/**
*@brief mac_get_rx_pb_cnt mac rx pb operation.
*@return rx pkt count
*/
uint32_t mac_get_rx_pb_cnt();
/**
*@brief mac_add_rx_fc_err_cnt mac rx fc err operation.
*@return 0: ok
*/
uint32_t mac_add_rx_fc_err_cnt();
/**
*@brief mac_get_rx_fc_err_cnt mac rx fc err operation.
*@return rx fc err count
*/
uint32_t mac_get_rx_fc_err_cnt();
/**
*@brief mac_add_rx_fc_err_no_match_cnt mac rx fc err no match operation.
*@return 0: ok
*/
uint32_t mac_add_rx_fc_err_no_match_cnt();
/**
*@brief mac_get_rx_fc_err_no_match_cnt mac rx fc err no match operation.
*@return rx fc err count
*/
uint32_t mac_get_rx_fc_err_no_match_cnt();
/**
*@brief mac_add_rx_bcn_pb_err_cnt mac rx pb err operation.
*@return 0: ok
*/
uint32_t mac_add_rx_bcn_pb_err_cnt();
/**
*@brief mac_get_rx_bcn_pb_err_cnt mac rx bcn pb err operation.
*@return rx bcn pb err count
*/
uint32_t mac_get_rx_bcn_pb_err_cnt();
/**
*@brief mac_add_rx_sof_pb_err_cnt mac rx sof pb err operation.
*@return 0: ok
*/
uint32_t mac_add_rx_sof_pb_err_cnt();
/**
*@brief mac_get_rx_sof_pb_err_cnt mac rx sof bcn pb err operation.
*@return rx sof pb err count
*/
uint32_t mac_get_rx_sof_pb_err_cnt();
/**
*@brief mac_add_rx_pld_err_cnt mac rx pld err operation.
*@return 0: ok
*/
uint32_t mac_add_rx_pld_err_cnt();
/**
*@brief mac_get_rx_pld_err_cnt mac rx pkt operation.
*@return rx pld err count
*/
uint32_t mac_get_rx_pld_err_cnt();
/**
*@brief mac_add_rx_abort_cnt mac rx abort operation.
*@return 0: ok
*/
uint32_t mac_add_rx_abort_cnt();
/**
*@brief mac_get_rx_abort_cnt mac rx abort operation.
*@return rx abort count
*/
uint32_t mac_get_rx_abort_cnt();
/**
*@brief mac_add_rx_overflow_cnt mac rx overflow operation.
*@return 0: ok
*/
uint32_t mac_add_rx_overflow_cnt();
/**
*@brief mac_get_rx_overflow_cnt mac rx overflow operation.
*@return rx overflow count
*/
uint32_t mac_get_rx_overflow_cnt();
/**
*@brief mac_add_rx_unicast_cnt mac rx unicast operation.
*@return 0: ok
*/
uint32_t mac_add_rx_unicast_cnt();
/**
*@brief mac_get_rx_unicast_cnt mac rx unicast operation.
*@return rx unicast count
*/
uint32_t mac_get_rx_unicast_cnt();
/**
*@brief mac_add_rx_broadcast_cnt mac rx broadcast operation.
*@return 0: ok
*/
uint32_t mac_add_rx_broadcast_cnt();
/**
*@brief mac_get_rx_broadcast_cnt mac rx broadcast operation.
*@return rx broadcast count
*/
uint32_t mac_get_rx_broadcast_cnt();
/**
*@brief mac_add_rx_mpdu_type_err_cnt mac rx mpdu type operation.
*@return 0:ok
*/
uint32_t mac_add_rx_mpdu_type_err_cnt();
/**
*@brief mac_get_rx_mpdu_type_err_cnt mac rx mpdu type operation.
*@return mac_rx_mpdu_tpye_err_cnt
*/
uint32_t mac_get_rx_mpdu_type_err_cnt();
/**
*@brief mac_add_rx_msdu_crc_err_cnt mac rx msdu type operation.
*@return 0:ok
*/
uint32_t mac_add_rx_msdu_crc_err_cnt();
/**
*@brief mac_get_rx_msdu_crc_err_cnt mac rx msdu type operation.
*@return mac_rx_msdu_crc_err_cnt
*/
uint32_t mac_get_rx_msdu_crc_err_cnt();
/**
*@brief mac_add_rx_msdu_null_first_pb_cnt mac rx msdu type operation.
*@return 0:ok
*/
uint32_t mac_add_rx_msdu_null_first_pb_cnt(void);
/**
*@brief mac_get_rx_msdu_null_first_pb_cnt mac rx msdu type operation.
*@return mac_rx_msdu_flush_err_cnt
*/
uint32_t mac_get_rx_msdu_null_first_pb_cnt(void);
/**
*@brief mac_add_rx_half_pkt_cnt mac rx half pkt operation.
*@return 0:ok
*/
uint32_t mac_add_rx_half_pkt_cnt();
/**
*@brief mac_get_rx_half_pkt_cnt mac rx half pkt operation.
*@return mac_rx_half_pkt_cnt
*/
uint32_t mac_get_rx_half_pkt_cnt();
/**
*@brief mac_add_rx_att_not_done_cnt mac rx mpdu not done operation.
*@return 0:ok
*/
uint32_t mac_add_rx_att_not_done_cnt();
/**
*@brief mac_get_rx_att_not_done_cnt mac rx mpdu not done operation.
*@return mac_rx_att_not_done_cnt
*/
uint32_t mac_get_rx_att_not_done_cnt();
/**
*@brief mac_add_rx_msdu_len_is_0_cnt mac rx mpdu len is 0 operation.
*@return 0:ok
*/
uint32_t mac_add_rx_msdu_len_is_0_cnt();
/**
*@brief mac_get_rx_msdu_len_is_0_cnt mac rx mpdu len is 0 operation.
*@return mac_rx_msdu_len_is_0_cnt
*/
uint32_t mac_get_rx_msdu_len_is_0_cnt();
/**
*@brief mac_add_rx_proto_nomatch_cnt add mac rx proto nomatch cnt.
*@return mac_rx_msdu_len_is_0_cnt
*/
uint32_t mac_add_rx_proto_nomatch_cnt();
/**
*@brief mac_get_rx_proto_nomatch_cnt get mac rx proto nomatch cnt.
*@return mac rx proto nomatch cnt
*/
uint32_t mac_get_rx_proto_nomatch_cnt();
/**
*@brief mac_add_rx_bcn_err_cnt add mac rx error beacon cnt.
*@return 0
*/
uint32_t mac_add_rx_bcn_err_cnt();
/**
*@brief mac_get_rx_proto_nomatch_cnt get mac rx error beacon cnt.
*@return mac rx error beacon cnt
*/
uint32_t mac_get_rx_bcn_err_cnt();
/**
*@brief mac_add_rx_fc_invalid_cnt add mac rx fc invalid cnt.
*@return 0
*/
uint32_t mac_add_rx_fc_invalid_cnt();
/**
*@brief mac_get_rx_fc_invalid_cnt get mac rx fc invalid cnt.
*@return mac rx fc invalid cnt
*/
uint32_t mac_get_rx_fc_invalid_cnt();
/**
*@brief mac_add_mpdu_tx_cnt mac tx mpdu pkt operation.
*@return 0: ok
*/
uint32_t mac_add_mpdu_tx_cnt();
/**
*@brief mac_get_mpdu_tx_cnt mac tx pkt operation.
*@return tx pkt count
*/
uint32_t mac_get_mpdu_tx_cnt();
/**
*@brief mac_add_tx_no_ack_cnt mac tx not receive ack .
*@param is_pco 1: for pco's statistic;
*@param 0: for total's statistic
*@return 0: ok
*/
uint32_t mac_add_tx_no_ack_cnt(uint32_t is_pco);
/**
*@brief mac_get_tx_no_ack_cnt mac tx not receive ack.
*@param is_pco 1: for pco's statistic;
*@param 0: for total's statistic
*@return tx ok count
*/
uint32_t mac_get_tx_no_ack_cnt(uint32_t is_pco);
/**
*@brief mac_add_tx_unicast_all_pb_err_cnt
* mac tx receive ack, but result = 1 .
*@param is_pco 1: for pco's statistic;
*@param 0: for total's statistic
*@return 0: ok
*/
uint32_t mac_add_tx_unicast_all_pb_err_cnt(uint32_t is_pco);
/**
*@brief mac_get_tx_unicast_all_pb_err_cnt mac tx receive ack, but result = 1.
*@param is_pco 1: for pco's statistic;
*@param 0: for total's statistic
*@return tx ok count
*/
uint32_t mac_get_tx_unicast_all_pb_err_cnt(uint32_t is_pco);
/**
*@brief mac_add_mpdu_tx_unicast_cnt mac tx unicast operation.
*@param is_pco 1: for pco's statistic;
*@param 0: for total's statistic
*@return 0: ok
*/
uint32_t mac_add_mpdu_tx_unicast_cnt(uint32_t is_pco);
/**
*@brief mac_get_mpdu_tx_unicast_cnt mac tx unicast operation.
*@param is_pco 1: for pco's statistic;
*@param 0: for total's statistic
*@return tx unicast count
*/
uint32_t mac_get_mpdu_tx_unicast_cnt(uint32_t is_pco);
/**
*@brief mac_add_mpdu_tx_broadcast_cnt mac tx broadcast operation.
*@return 0: ok
*/
uint32_t mac_add_mpdu_tx_broadcast_cnt();
/**
*@brief mac_get_mpdu_tx_broadcast_cnt mac tx broadcast operation.
*@return tx broadcast count
*/
uint32_t mac_get_mpdu_tx_broadcast_cnt();
/**
*@brief mac_add_no_msdu_to_send_cnt mac no msdu to send operation.
*@return 0: ok
*/
uint32_t mac_add_no_msdu_to_send_cnt();
/**
*@brief mac_get_no_msdu_to_send_cnt get no msdu to send cnt.
*@return no msdu to send cnt
*/
uint32_t mac_get_no_msdu_to_send_cnt();
/**
*@brief mac_set_tx_underflow_cnt set tx underflow cnt.
*@return 0: ok
*/
uint32_t mac_set_tx_underflow_cnt(uint32_t cnt);
/**
*@brief mac_get_tx_underflow_cnt get tx underflow cnt.
*@return tx underflow force cnt
*/
uint32_t mac_get_tx_underflow_cnt(void);
/**
*@brief mac_add_sof_err_cnt mac add sof err cnt.
*@param uint32_t proto [p_tmi]
*@param uint32_t rid [rid id]
*@param uint8_t pb_num [pb num 1 - 4]
*@return 0: ok
*/
uint32_t mac_add_sof_err_cnt(uint32_t proto, uint32_t rid, uint8_t pb_num);
/**
*@brief mac_add_sof_err_cnt mac add sof err cnt.
*@param uint32_t proto [p_tmi]
*@param uint32_t rid [rid id]
*@param uint8_t pb_num [pb num 1 - 4]
*@return 0: ok
*/
uint32_t mac_get_sof_err_cnt(uint32_t proto, uint32_t rid, uint8_t pb_num);
/**
*@brief mac_status_add_zc_reset_cnt add zc reset hw counter.
*
*@return none
*/
void mac_status_add_zc_reset_hw_cnt(void);
/**
*@brief mac_status_add_zc_reset_cnt get zc reset hw counter.
*
*@return counter value.
*/
uint32_t mac_status_get_zc_reset_hw_cnt(void);
/**
*@brief mac_status_add_zc_event_cnt add zc event count
*@return none
*/
void mac_status_add_zc_event_cnt(void);
/**
*@brief mac_status_get_zc_event_cnt get zc event counter.
*
*@return counter value.
*/
uint32_t mac_status_get_zc_event_cnt(void);
/**
*@brief mac_status_add_zc_req_cnt get zc request counter.
*
*@return counter value.
*/
void mac_status_add_zc_req_cnt(void);
/**
*@brief mac_status_get_zc_req_cnt get zc request counter.
*
*@return counter value.
*/
uint32_t mac_status_get_zc_req_cnt(void);
/**
*@brief mac_status_add_zc_phase_chg_cnt updata phase change count
*@param phase_id changed phase id
*@return none
*/
void mac_status_add_zc_phase_chg_cnt(uint8_t phase_id);
/**
*@brief mac_status_get_zc_phase_chg_cnt get phase change count
*@param phase_id which phase to get
*@return phase change count
*/
uint32_t mac_status_get_zc_phase_chg_cnt(uint8_t phase_id);
/**
*@brief mac_status_zc_status_para_update updata zc phase status to flash
*@param phase_status phase status.
*@param phase_id which phase status to be update
*@return none
*/
void mac_status_zc_status_para_update(uint8_t phase_status,
uint8_t phase_id);
/**
* @brief mac_status_zc_nv_para_update update nv info to flash
* @param is_half_clct zc hw is half collect
* @param cap_edge zc hw cap edge
* @param support_btm support phase bitmap
* @param is_switch_gpio_clct is switch gpio collect
* @return none
*/
void mac_status_zc_nv_para_update(uint8_t is_half_clct,
uint8_t cap_edge, uint8_t support_btm, uint8_t is_switch_gpio_clct);
/**
*@brief mac_status_get_zc_phase_para get zc parameter (include phase
* status and nv info)
*@return none
*/
uint32_t mac_status_get_zc_phase_para(void);
/**
*@brief mac_status_get_zc_phase_valid get mac zc phase valid bitmap
*
*@return 0: phase invalid, 1: phase valid
* bit0 = phase a,
* bit1 = phase b,
* bit2 = phase c.
*/
uint32_t mac_status_get_zc_phase_valid(void);
/**
*@brief mac_get_status_printf mac status write to flash.
*@return null
*/
void mac_get_status_printf();
/**
*@brief mac_dump_buf mac dump data.
*@param MAC_DUMP_TYPE type: dump type.
*@param uint32_t *desc: mpdu descriptione.
*@param uint32_t desc_len desc len.
*@param uint32_t *buf_addr0 dump data addr0.
*@param uint32_t value_len0 buf len0
*@param uint32_t *buf_addr1 dump data addr1.
*@param uint32_t value_len1 buf len1
*@param uint8_t is_assert 1: assert 0: non assert
*@return null
*/
void mac_dump_buf(MAC_DUMP_TYPE type, uint32_t *desc, uint32_t desc_len,
uint32_t *buf_addr0, uint32_t value_len0, uint32_t *buf_addr1,
uint32_t value_len1, uint8_t is_assert);
/**
*@brief mac_phy_print_debug_info print mac and phy register.
*@return null
*/
void mac_phy_print_debug_info();
/**
*@brief mac_rid_get_p_tmi mac rid get p_tmi.
*@param uint32_t proto proto.
*@param uint32_t rid rid index.
*@param uint32_t *p_tmi p_tmi.
*@return 0
*/
uint32_t mac_rid_get_p_tmi(uint32_t proto, uint32_t rid, uint32_t *p_tmi);
/**
*@brief mac_sof_err_cnt_clr clear mac status cnt.
*@return 0
*/
uint32_t mac_status_cnt_clr();
/**
*@brief mac_add_isr_cnt add isr cnt
*
*@return none
*/
uint32_t mac_add_isr_cnt();
/**
*@brief mac_status_get_zc_req_cnt get isr counter.
*
*@return counter value.
*/
uint32_t mac_get_isr_cnt();
/**
*@brief mac_add_dsr_isr_sync_cnt add counter of mac dsr isr calls.
*
*@return counter value.
*/
uint32_t mac_add_dsr_isr_sync_cnt(void);
/**
*@brief mac_get_dsr_isr_sync_cnt get counter of mac dsr isr calls.
*
*@return counter value.
*/
uint32_t mac_get_dsr_isr_sync_cnt(void);
/**
*@brief mac_add_flush_tx_bcsma_cnt get counter of flush tx bcsma cnt.
*
*@return counter value.
*/
uint32_t mac_add_flush_tx_bcsma_cnt();
/**
*@brief mac_add_timeout_stream_del_cnt add counter of timeout stream delete
*
*@return none.
*/
uint32_t mac_add_timeout_stream_del_cnt();
/**
*@brief mac_get_timeout_stream_del_cnt get counter of timeout stream delete
*
*@return counter value.
*/
uint32_t mac_get_timeout_stream_del_cnt();
/**
*@brief mac_add_overflow_peer_del_cnt add count of peer delete
*@biref peer_type which type of peer to add count
*@return none.
*/
uint32_t mac_add_overflow_peer_del_cnt(mac_peer_type_t peer_type);
/**
*@brief mac_get_overflow_peer_del_cnt get count of peer overflow delete
*@
*@return counter value.
*/
uint32_t mac_get_overflow_peer_del_cnt();
/**
*@brief mac_peer_stream_overflow_cnt_dbglog print debug log of stream overflow
* times and peer delete count to flash
*@param none
*@return none
*/
void mac_peer_stream_overflow_cnt_dbglog();
/**
*@brief mac_add_msdu_tx_cnt add packets of msdu tx count
*@param none
*@return none
*/
void mac_add_msdu_tx_cnt();
/**
*@brief mac_get_msdu_tx_cnt get packets of msdu tx count
*@param none
*@return msdu tx count
*/
uint32_t mac_get_msdu_tx_cnt();
/**
*@brief mac_add_send_msdu_cnt add send msdu count
*@param none
*@return none
*/
void mac_add_send_msdu_cnt();
/**
*@brief mac_get_send_msdu_cnt get send msdu count
*@param none
*@return send msdu count
*/
uint32_t mac_get_send_msdu_cnt();
/**
*@brief mac_add_swq_to_hwq_cnt add swq to hwq msdu count
*@param none
*@return none
*/
void mac_add_swq_to_hwq_cnt();
/**
*@brief mac_get_swq_to_hwq_cnt get swq to hwq msdu count
*@param none
*@return swq to hwq msdu count
*/
uint32_t mac_get_swq_to_hwq_cnt();
/**
*@brief mac_add_tx_msdu_comp_trigger_cnt add tx msdu complete trigger swq
* count
*@param none
*@return none
*/
void mac_add_tx_msdu_comp_trigger_cnt();
/**
*@brief mac_get_tx_msdu_comp_trigger_cnt get tx msdu complete trigger swq
* count
*@param none
*@return tx msdu complete trigger count
*/
uint32_t mac_get_tx_msdu_comp_trigger_cnt();
/**
*@brief mac_add_csma_ignore_cca_cnt add tx csma ignore cca count
*
*@param none
*@return none
*/
void mac_add_csma_ignore_cca_cnt();
/**
*@brief mac_get_csma_ignore_cca_cnt get tx csma ignore cca count
*
*@param none
*@return tx csma ignore cca count
*/
uint32_t mac_get_csma_ignore_cca_cnt();
#ifdef __cplusplus
}
#endif
#endif