7#ifndef __HMAC_BTCOEX_H__
8#define __HMAC_BTCOEX_H__
37#define WLAN_TIDNO_COEX_QOSNULL WLAN_TIDNO_ANT_TRAINING_HIGH_PRIO
39#define BTCOEX_RSSI_THRESHOLD (WLAN_FAR_DISTANCE_RSSI)
41#define BTCOEX_RX_LOW_RATE_TIME (5000)
42#define BTCOEX_SCO_CALCULATE_TIME (500)
44#define BTCOEX_PRIO_TIMEOUT_150MS (150)
45#define BTCOEX_PRIO_TIMEOUT_100MS (100)
46#define BTCOEX_PRIO_TIMEOUT_60MS (60)
47#define BTCOEX_PRIO_TIMEOUT_50MS (50)
49#define BTCOEX_PRIO_TIMEOUT_ALWAYS_ON (0xffff)
50#define BTCOEX_PRIO_TIMEOUT_20MS (20000)
51#define BTCOEX_PRIO_TIMEOUT_10MS (10000)
52#define BTCOEX_PRIO_TIMEOUT_5MS (5000)
53#define BTCOEX_PRIO_TIMEOUT_ALWAYS_OFF (0x0)
55#define ALL_MID_PRIO_TIME (10)
56#define ALL_HIGH_PRIO_TIME (4)
58#define BTCOEX_LINKLOSS_OCCUPIED_NUMBER (8)
59#define BTCOEX_POW_SAVE_CNT (5)
61#define BTCOEX_20M_40PLUS_CHAN_OFFSET (2)
62#define BTCOEX_40MINUS_CHAN_OFFSET (6)
63#define BTCOEX_20M_CHAN_BITMASK (0x1F)
64#define BTCOEX_40M_CHAN_BITMASK (0x1FF)
65#define BTCOEX_2G_ALL_CHAN_BITMASK (0x3FFF)
66#define BTCOEX_WORK_MODE_BIT_STA (1)
67#define BTCOEX_WORK_MODE_BIT_AP (2)
68#define BTCOEX_WORK_MODE_BIT_GC (4)
69#define BTCOEX_WORK_MODE_BIT_GO (8)
71#define BTCOEX_ARP_FAIL_DELBA_NUM 2
72#define BTCOEX_ARP_FAIL_REASSOC_NUM 4
73#define BTCOEX_ARP_PROBE_TIMEOUT (300)
75#define BTCOEX_BLE_CONN_NUM_THOLD 4
328 return hmac_btcoex_get_vap_info(hmac_vap)->
bitmap_6slot;
osal_u8 hal_coex_hw_preempt_mode_enum_uint8
Definition hal_common_ops_device_rom.h:178
osal_u32(* hmac_btcoex_check_sw_preempt_type_cb)(const hmac_vap_stru *hmac_vap, const hal_to_dmac_device_stru *hal_device)
Definition hmac_btcoex.h:363
osal_u8 hmac_get_g_rx_ba_win_size(osal_u32 index1, osal_u32 index2)
Definition hmac_btcoex.c:134
osal_void(* hmac_btcoex_report_linkloss_info_cb)(const hmac_vap_stru *hmac_sta)
Definition hmac_btcoex.h:370
osal_void(* hmac_btcoex_sw_preempt_type_check_cb)(hal_to_dmac_device_stru *hal_device)
Definition hmac_btcoex.h:371
osal_u32 hmac_btcoex_wlan_priority_timeout_callback(osal_void *arg)
Definition hmac_btcoex.c:456
osal_u8 hmac_get_g_rx_win_size_mimo(osal_u32 index1, osal_u32 index2)
osal_u32(* hmac_btcoex_hal_end_scan_check_ps_cb)(hal_to_dmac_device_stru *hal_device, hmac_vap_stru *hmac_vap)
Definition hmac_btcoex.h:376
osal_u32(* hmac_btcoex_check_ap_type_blacklist_cb)(hmac_vap_stru *hmac_vap, osal_u8 *mac_addr, wlan_nss_enum_uint8 *support_max_nss)
Definition hmac_btcoex.h:358
osal_u32 hmac_btcoex_rx_rate_statistics_flag_callback(osal_void *arg)
Definition hmac_btcoex.c:260
osal_void(* hmac_btcoex_hal_set_btcoex_wifi_status_cb)(const hmac_vap_stru *hmac_vap, osal_u32 status)
Definition hmac_btcoex.h:375
osal_void(* hmac_btcoex_roam_succ_handler_cb)(hmac_vap_stru *hmac_vap)
Definition hmac_btcoex.h:342
osal_void(* hmac_btcoex_compatibility_set_ap_type_cb)(hmac_vap_stru *hmac_vap, mac_ap_type_enum_uint8 ap_type)
Definition hmac_btcoex.h:366
osal_u32(* hmac_btcoex_hal_set_aging_time_cb)(hmac_vap_stru *hmac_vap, osal_u32 *aging_time)
Definition hmac_btcoex.h:374
osal_u32(* hmac_btcoex_check_user_req_declined_cb)(hmac_vap_stru *hmac_vap, hmac_user_stru *hmac_user)
Definition hmac_btcoex.h:362
osal_u8 wlan_extcoex_mode_uint8
Definition hmac_btcoex.h:109
osal_void(* hmac_btcoex_check_exception_in_list_cb)(hmac_vap_stru *hmac_vap, hmac_user_stru *hmac_user, osal_u8 *addr_sa)
Definition hmac_btcoex.h:343
osal_void(* hmac_btcoex_user_spatial_stream_change_notify_cb)(const hmac_vap_stru *hmac_vap, hmac_user_stru *hmac_user)
Definition hmac_btcoex.h:353
osal_void(* hmac_btcoex_hal_blinkloss_clean_cb)(hmac_vap_stru *hmac_vap)
Definition hmac_btcoex.h:373
osal_void(* hmac_btcoex_update_bss_list_protocol_cb)(mac_bss_dscr_stru *bss_dscr, osal_u8 *frame_body, osal_u16 frame_len)
Definition hmac_btcoex.h:356
osal_u8 wlan_extcoex_enable_uint8
Definition hmac_btcoex.h:103
osal_u8 hmac_btcoex_find_all_valid_sta_per_device(const hal_to_dmac_device_stru *hal_device, osal_u8 *vap_id, osal_u16 vap_id_len)
Definition hmac_btcoex.c:164
osal_void(* hmac_btcoex_clear_arp_timer_cb)(hmac_user_stru *hmac_user)
Definition hmac_btcoex.h:360
wlan_extcoex_enable_enum
Definition hmac_btcoex.h:99
@ HMAC_EXTCOEX_OFF
Definition hmac_btcoex.h:100
@ HMAC_EXTCOEX_ON
Definition hmac_btcoex.h:101
osal_u32(* hmac_config_btcoex_assoc_state_syn_cb)(hmac_vap_stru *hmac_vap, hmac_user_stru *hmac_user)
Definition hmac_btcoex.h:341
osal_void hmac_btcoex_set_mgmt_priority(const hmac_vap_stru *hmac_vap, osal_u16 timeout_ms)
Definition hmac_btcoex.c:1267
osal_void(* hmac_btcoex_linkloss_update_threshold_cb)(hmac_vap_stru *hmac_vap)
Definition hmac_btcoex.h:338
osal_u8 hmac_get_g_rx_win_size_siso(osal_u32 index1, osal_u32 index2)
Definition hmac_btcoex.c:138
osal_u8 hmac_btcoex_find_all_valid_ap_per_device(const hal_to_dmac_device_stru *hal_device, osal_u8 *vap_id, osal_u16 vap_id_size)
Definition hmac_btcoex.c:204
osal_void(* hmac_btcoex_recover_coex_priority_clear_cb)(hmac_vap_stru *hmac_vap, const hmac_device_stru *hmac_device)
Definition hmac_btcoex.h:332
osal_void hmac_btcoex_restart_ps_timer(hal_to_dmac_device_stru *hal_device)
Definition hmac_btcoex.c:1280
osal_void(* hmac_btcoex_linkloss_occupied_process_cb)(const hal_to_dmac_chip_stru *hal_chip, const hal_to_dmac_device_stru *hal_device, hmac_vap_stru *hmac_vap)
Definition hmac_btcoex.h:339
osal_void(* hmac_btcoex_hal_wifi_busy_notify_cb)(osal_u32 tx_throughput_mbps, osal_u32 rx_throughput_mbps)
Definition hmac_btcoex.h:378
osal_void(* hmac_btcoex_recover_coex_priority_cb)(hmac_vap_stru *hmac_vap)
Definition hmac_btcoex.h:331
osal_u8 hmac_get_g_rx_win_size_grage_mimo(osal_u32 index1, osal_u32 index2, osal_u32 index3)
osal_void(* hmac_btcoex_set_wlan_priority_cb)(hmac_vap_stru *hmac_vap, oal_bool_enum_uint8 value, osal_u8 timeout_ms)
Definition hmac_btcoex.h:334
osal_u8 hmac_get_g_rx_win_size_grage_siso(osal_u32 index1, osal_u32 index2, osal_u32 index3)
Definition hmac_btcoex.c:142
osal_u8 wlan_extcoex_wire_mode_enum_uint8
Definition hmac_btcoex.h:97
wlan_extcoex_wire_mode_enum
Definition hmac_btcoex.h:91
@ HMAC_EXTCOEX_4
Definition hmac_btcoex.h:95
@ HMAC_EXTCOEX_2A
Definition hmac_btcoex.h:92
@ HMAC_EXTCOEX_2B
Definition hmac_btcoex.h:93
@ HMAC_EXTCOEX_3
Definition hmac_btcoex.h:94
osal_void(* hmac_btcoex_set_txop_alg_cb)(hal_tx_txop_alg_stru *txop_alg)
Definition hmac_btcoex.h:355
hmac_btcoex_ps_switch_enum
Definition hmac_btcoex.h:81
@ HMAC_BTCOEX_PS_SWITCH_ON
Definition hmac_btcoex.h:83
@ HMAC_BTCOEX_PS_TIMOUT
Definition hmac_btcoex.h:84
@ HMAC_BTCOEX_PS_SWITCH_BUTT
Definition hmac_btcoex.h:86
@ HMAC_BTCOEX_PS_ABORT
Definition hmac_btcoex.h:85
@ HMAC_BTCOEX_PS_SWITCH_OFF
Definition hmac_btcoex.h:82
osal_void(* hmac_btcoex_compatibility_set_ps_type_cb)(hmac_vap_stru *hmac_vap)
Definition hmac_btcoex.h:365
osal_u32(* hmac_btcoex_proc_user_add_cb)(hmac_user_stru *hmac_user)
Definition hmac_btcoex.h:345
osal_void(* hmac_btcoex_vap_config_sw_preempt_subtype_cb)(hal_to_dmac_device_stru *hal_device)
Definition hmac_btcoex.h:368
wlan_extcoex_mode
Definition hmac_btcoex.h:105
@ HMAC_EXTCOEX_WIFI_BT
Definition hmac_btcoex.h:106
@ HMAC_EXTCOEX_WIFI_BSLE_BT
Definition hmac_btcoex.h:107
osal_void(* hmac_btcoex_vap_resume_tx_by_chl_cb)(hmac_vap_stru *hmac_vap, hal_to_dmac_device_stru *hal_device)
Definition hmac_btcoex.h:367
osal_u32 hmac_btcoex_config_tx_aggr_num(osal_u8 aggt_num)
Definition hmac_btcoex_ba.c:211
osal_void(* hmac_btcoex_check_rx_same_baw_start_from_addba_req_etc_cb)(hmac_vap_stru *hmac_vap, hmac_user_stru *hmac_user, mac_ieee80211_frame_stru *frame_hdr, const osal_u8 *action)
Definition hmac_btcoex.h:351
osal_void(* hmac_btcoex_tx_mgmt_frame_cb)(const hmac_vap_stru *hmac_vap, const mac_ieee80211_frame_stru *mac_header)
Definition hmac_btcoex.h:347
osal_void(* hmac_btcoex_hal_user_add_handle_cb)(hmac_vap_stru *hmac_vap, mac_user_type_enum_uint8 user_type)
Definition hmac_btcoex.h:377
osal_void hmac_btcoex_ps_status_handler(osal_void)
Definition hmac_btcoex.c:1315
osal_void hmac_btcoex_status_info_dump(const hal_to_dmac_device_stru *hal_device, hal_chip_stru *hal_chip)
static osal_u32 used
Definition hmac_btcoex.h:380
osal_void(* hmac_btcoex_tx_vip_frame_cb)(hmac_vap_stru *hmac_vap, const oal_netbuf_head_stru *buff_headr, osal_u8 mpdu_num)
Definition hmac_btcoex.h:349
osal_u16(* hmac_btcoex_hal_get_btstatus_bton_cb)(osal_void)
Definition hmac_btcoex.h:372
osal_u32(* hmac_btcoex_proc_vap_add_cb)(hmac_vap_stru *hmac_vap)
Definition hmac_btcoex.h:346
osal_void hmac_btcoex_blacklist_handle_init(hmac_user_stru *hmac_user)
Definition hmac_btcoex.c:1387
osal_void hmac_btcoex_update_rx_rate_threshold(const hmac_vap_stru *hmac_vap, hmac_user_btcoex_delba_stru *btcoex_delba)
Definition hmac_btcoex.c:522
osal_u8 hmac_btcoex_ps_switch_enum_uint8
Definition hmac_btcoex.h:88
osal_void hmac_btcoex_set_rx_win_size(const mac_btcoex_mgr_stru *btcoex_mgr)
osal_void(* hmac_btcoex_keepalive_timer_ect_cb)(osal_u32 *aging_time)
Definition hmac_btcoex.h:361
osal_void(* hmac_btcoex_device_exit_destroy_timer_cb)(hal_to_dmac_device_stru *hal_device)
Definition hmac_btcoex.h:369
osal_void(* hmac_btcoex_rx_process_ect_cb)(hmac_vap_stru *hmac_vap, osal_u8 frame_subtype, oal_netbuf_stru *netbuf, oal_bool_enum_uint8 ampdu)
Definition hmac_btcoex.h:336
@ WLAN_FEATURE_INDEX_BTCOEX
Definition hmac_feature_main.h:24
#define WLAN_MAC_ADDR_LEN
Definition mac_addr.c:28
#define BTCOEX_BSS_NUM_IN_BLACKLIST
Definition mac_device_ext.h:91
osal_u8 address1[WLAN_MAC_ADDR_LEN]
Definition mac_frame_rom.h:3
osal_u8 address3[WLAN_MAC_ADDR_LEN]
Definition mac_frame_rom.h:5
osal_u8 address2[WLAN_MAC_ADDR_LEN]
Definition mac_frame_rom.h:4
osal_u8 mac_user_type_enum_uint8
Definition mac_user_common_rom.h:38
osal_u8 btcoex_blacklist_type_enum_uint8
Definition mac_user_ext.h:77
osal_u8 mac_ap_type_enum_uint8
Definition msg_user_manage_rom.h:42
osal_u8 oal_bool_enum_uint8
Definition oal_types_device_rom.h:45
#define INLINE__
Definition osal_list.h:25
unsigned char osal_u8
Definition osal_types.h:11
unsigned long long osal_u64
Definition osal_types.h:14
void osal_void
Definition osal_types.h:29
unsigned int osal_u32
Definition osal_types.h:13
unsigned short osal_u16
Definition osal_types.h:12
Log message information header.
Definition log_oam_logger.h:564
Definition frw_ext_common_rom.h:20
Definition hal_ops_common_rom.h:240
Definition hmac_btcoex.h:171
btcoex_blacklist_type_enum_uint8 blacklist_tpye
Definition hmac_btcoex.h:174
osal_u16 last_seq_num
Definition hmac_btcoex.h:173
osal_u16 last_baw_start
Definition hmac_btcoex.h:172
oal_bool_enum_uint8 ba_handle_allow
Definition hmac_btcoex.h:175
Definition hmac_btcoex.h:178
osal_atomic rx_unicast_pkt_to_lan
Definition hmac_btcoex.h:180
frw_timeout_stru delba_opt_timer
Definition hmac_btcoex.h:179
Definition hmac_btcoex.h:263
osal_u8 type
Definition hmac_btcoex.h:265
osal_u8 used
Definition hmac_btcoex.h:266
Definition hmac_btcoex.h:138
osal_u8 ps_stop
Definition hmac_btcoex.h:139
osal_u8 work_mode
Definition hmac_btcoex.h:146
osal_u8 channel_num
Definition hmac_btcoex.h:143
osal_u8 bandwidth
Definition hmac_btcoex.h:144
osal_u16 chan_bitmap
Definition hmac_btcoex.h:145
osal_u8 legacy_connect_state
Definition hmac_btcoex.h:141
osal_u8 band
Definition hmac_btcoex.h:140
osal_u8 protocol_11bgn
Definition hmac_btcoex.h:148
osal_u8 protocol_11ax
Definition hmac_btcoex.h:149
osal_u8 p2p_connect_state
Definition hmac_btcoex.h:142
osal_u8 diff_chan
Definition hmac_btcoex.h:147
Definition hmac_btcoex.h:123
osal_u16 duration_flag
Definition hmac_btcoex.h:126
osal_u16 sc_frag_num
Definition hmac_btcoex.h:130
osal_u8 qc_amsdu
Definition hmac_btcoex.h:135
osal_u8 qc_eosp
Definition hmac_btcoex.h:133
osal_u16 duration_value
Definition hmac_btcoex.h:125
osal_u8 qc_tid
Definition hmac_btcoex.h:132
mac_header_frame_control_stru frame_control
Definition hmac_btcoex.h:124
osal_u16 sc_seq_num
Definition hmac_btcoex.h:131
osal_u8 qc_ack_polocy
Definition hmac_btcoex.h:134
Definition hmac_btcoex.h:275
osal_u16 tx_throughput
Definition hmac_btcoex.h:276
osal_u16 rx_throughput
Definition hmac_btcoex.h:277
Definition hmac_btcoex.h:269
osal_u8 exception_bss_index
Definition hmac_btcoex.h:271
Definition mac_device_ext.h:856
Definition hmac_btcoex.h:114
osal_u8 extcoex_mode
Definition hmac_btcoex.h:117
osal_u8 preempt_enable
Definition hmac_btcoex.h:119
osal_u8 eanble
Definition hmac_btcoex.h:115
osal_u8 share_ant
Definition hmac_btcoex.h:118
osal_u8 extcoex_wire_mode
Definition hmac_btcoex.h:116
Definition hmac_btcoex.h:152
osal_u32 rx_rate_threshold_min
Definition hmac_btcoex.h:153
osal_u8 ba_size_real_index
Definition hmac_btcoex.h:157
osal_u32 rx_rate_threshold_max
Definition hmac_btcoex.h:154
osal_u8 ba_size_expect_index
Definition hmac_btcoex.h:156
osal_u8 ba_size_tendence
Definition hmac_btcoex.h:158
osal_u8 resv
Definition hmac_btcoex.h:162
osal_u8 ba_size
Definition hmac_btcoex.h:160
wlan_nss_enum_uint8 user_nss_num
Definition hmac_btcoex.h:161
osal_u8 delba_trigger
Definition hmac_btcoex.h:159
osal_u8 get_addba_req_flag
Definition hmac_btcoex.h:155
Definition hmac_btcoex.h:165
osal_u16 rx_rate_stat_count
Definition hmac_btcoex.h:167
osal_u64 rx_rate_mbps
Definition hmac_btcoex.h:166
Definition hmac_btcoex.h:183
hmac_btcoex_addba_req_stru hmac_btcoex_addba_req
Definition hmac_btcoex.h:187
osal_u16 ba_size
Definition hmac_btcoex.h:188
oal_bool_enum_uint8 arp_probe_on
Definition hmac_btcoex.h:191
oal_bool_enum_uint8 delba_btcoex_trigger
Definition hmac_btcoex.h:190
osal_u8 rx_no_pkt_count
Definition hmac_btcoex.h:189
hmac_btcoex_arp_req_process_stru hmac_btcoex_arp_req_process
Definition hmac_btcoex.h:186
hmac_user_btcoex_rx_info_stru hmac_user_btcoex_rx_info
Definition hmac_btcoex.h:185
hmac_user_btcoex_delba_stru hmac_user_btcoex_delba
Definition hmac_btcoex.h:184
Definition mac_user_ext.h:519
Definition hmac_btcoex.h:194
Definition hmac_btcoex.h:218
osal_u16 cfg_coex_tx_vap_index
Definition hmac_btcoex.h:220
osal_u16 cfg_coex_tx_peer_index
Definition hmac_btcoex.h:223
osal_u16 cfg_coex_tx_qos_null_tid
Definition hmac_btcoex.h:221
osal_u16 bit_rsv
Definition hmac_btcoex.h:222
Definition hmac_btcoex.h:205
osal_u8 linkloss_occupied_times
Definition hmac_btcoex.h:213
osal_u32 ap_beacon_count
Definition hmac_btcoex.h:208
osal_u8 prio_occupied_state
Definition hmac_btcoex.h:212
osal_u8 linkloss_index
Definition hmac_btcoex.h:214
frw_timeout_stru bt_coex_priority_timer
Definition hmac_btcoex.h:206
frw_timeout_stru bt_coex_occupied_timer
Definition hmac_btcoex.h:207
osal_u32 timestamp
Definition hmac_btcoex.h:209
osal_u8 occupied_times
Definition hmac_btcoex.h:211
osal_u8 beacon_miss_cnt
Definition hmac_btcoex.h:210
Definition hmac_btcoex.h:197
frw_timeout_stru bt_coex_low_rate_timer
Definition hmac_btcoex.h:198
oal_bool_enum_uint8 rx_rate_statistics_flag
Definition hmac_btcoex.h:200
oal_bool_enum_uint8 rx_rate_statistics_timeout
Definition hmac_btcoex.h:201
frw_timeout_stru bt_coex_statistics_timer
Definition hmac_btcoex.h:199
Definition hmac_btcoex.h:226
frw_timeout_stru bt_coex_double_chain_timer
Definition hmac_btcoex.h:227
uintptr_t * _rom
Definition hmac_btcoex.h:237
oal_bool_enum_uint8 delba_on_6slot
Definition hmac_btcoex.h:229
hmac_vap_btcoex_occupied_stru hmac_vap_btcoex_occupied
Definition hmac_btcoex.h:234
osal_u8 bitmap_6slot
Definition hmac_btcoex.h:230
hal_coex_hw_preempt_mode_enum_uint8 ps_type
Definition hmac_btcoex.h:231
oal_bool_enum_uint8 bitmap_update_flag
Definition hmac_btcoex.h:228
hmac_vap_btcoex_rx_statistics_stru hmac_vap_btcoex_rx_statistics
Definition hmac_btcoex.h:233
hmac_vap_btcoex_null_preempt_stru null_preempt_param
Definition hmac_btcoex.h:235
hal_coex_hw_preempt_mode_enum_uint8 all_abort_preempt_type
Definition hmac_btcoex.h:236
Definition mac_vap_ext.h:2019
Definition mac_device_ext.h:596
Definition hmac_btcoex.h:240
osal_u8 grade
Definition hmac_btcoex.h:254
osal_u8 low_20m
Definition hmac_btcoex.h:247
osal_u8 cfg_btcoex_mode
Definition hmac_btcoex.h:241
osal_u16 high_40m
Definition hmac_btcoex.h:250
osal_u8 rx_size0
Definition hmac_btcoex.h:255
osal_u8 rx_size2
Definition hmac_btcoex.h:257
osal_u8 low_40m
Definition hmac_btcoex.h:249
osal_u8 rx_size1
Definition hmac_btcoex.h:256
osal_u8 rx_size3
Definition hmac_btcoex.h:258
wlan_nss_enum_uint8 btcoex_nss
Definition hmac_btcoex.h:243
osal_u8 cfg_btcoex_type
Definition hmac_btcoex.h:242
osal_u8 high_20m
Definition hmac_btcoex.h:248
Definition mac_frame_common_rom.h:575
Definition osal_atomic.h:18
Definition oal_skbuff.h:73
Definition oal_skbuff.h:82
Definition hal_chip_rom.h:28
Definition hal_common_ops_device_rom.h:1122
Definition hal_ops_common_rom.h:529
unsigned int uintptr_t
Definition td_type.h:65
osal_u8 wlan_nss_enum_uint8
Definition wlan_types_base_rom.h:240