blob: f5606f3d7b9109aafd55599ae8697f0dfa40bd8d [file] [log] [blame]
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08001/*
Abhishek Ambure5e9b6a42020-02-12 21:32:35 +05302 * Copyright (c) 2011-2020 The Linux Foundation. All rights reserved.
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08003 *
Prakash Dhavali7090c5f2015-11-02 17:55:19 -08004 * Permission to use, copy, modify, and/or distribute this software for
5 * any purpose with or without fee is hereby granted, provided that the
6 * above copyright notice and this permission notice appear in all
7 * copies.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
10 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
11 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
12 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
13 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
14 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
15 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
16 * PERFORMANCE OF THIS SOFTWARE.
17 */
18
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080019#if !defined(__SMEINTERNAL_H)
20#define __SMEINTERNAL_H
21
22/**
23 * \file sme_internal.h
24 *
25 * \brief prototype for SME internal structures and APIs used for SME and MAC
26 */
27
28/*--------------------------------------------------------------------------
29 Include Files
30 ------------------------------------------------------------------------*/
Anurag Chouhance0dc992016-02-16 18:18:03 +053031#include "qdf_status.h"
Anurag Chouhana37b5b72016-02-21 14:53:42 +053032#include "qdf_lock.h"
Anurag Chouhanb2dc16f2016-02-25 11:47:37 +053033#include "qdf_trace.h"
Anurag Chouhan600c3a02016-03-01 10:33:54 +053034#include "qdf_mem.h"
Anurag Chouhan6d760662016-02-20 16:05:43 +053035#include "qdf_types.h"
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080036#include "host_diag_core_event.h"
37#include "csr_link_list.h"
38#include "sme_power_save.h"
Arun Kumar Khandavallideda5a82019-03-11 15:32:19 +053039#include "wmi_unified.h"
Ashish Kumar Dhanotiyad8d7dea2019-10-24 14:34:56 +053040#include "wmi_unified_param.h"
Jeff Johnsonc45168b2018-07-04 14:23:08 -070041
Varun Reddy Yeturu3c9f89c2018-04-18 19:10:34 -070042struct wmi_twt_enable_complete_event_param;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080043/*--------------------------------------------------------------------------
44 Type declarations
45 ------------------------------------------------------------------------*/
46
47/* Mask can be only have one bit set */
48typedef enum eSmeCommandType {
49 eSmeNoCommand = 0,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080050 /* this is not a command, it is to identify this is a CSR command */
51 eSmeCsrCommandMask = 0x10000,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080052 eSmeCommandRoam,
53 eSmeCommandWmStatusChange,
Ashish Kumar Dhanotiyab9dc8a22020-04-13 18:28:20 +053054 eSmeCommandGetdisconnectStats,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080055 /* QOS */
56 eSmeQosCommandMask = 0x40000, /* To identify Qos commands */
57 eSmeCommandAddTs,
58 eSmeCommandDelTs,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080059 e_sme_command_set_hw_mode,
60 e_sme_command_nss_update,
61 e_sme_command_set_dual_mac_config,
Archana Ramachandrand41c3ed2016-02-10 15:48:06 -080062 e_sme_command_set_antenna_mode,
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080063} eSmeCommandType;
64
65typedef enum eSmeState {
66 SME_STATE_STOP,
67 SME_STATE_START,
68 SME_STATE_READY,
69} eSmeState;
70
Jeff Johnson72021f72018-11-22 14:23:47 -080071#define SME_IS_START(mac) (SME_STATE_STOP != (mac)->sme.state)
72#define SME_IS_READY(mac) (SME_STATE_READY == (mac)->sme.state)
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080073
Rajeev Kumar8e3e2832015-11-06 16:02:54 -080074/* HDD Callback function */
Jeff Johnson56ba88a2019-02-17 17:18:43 -080075typedef void (*ibss_peer_info_cb)(void *cb_context,
76 tSirPeerInfoRspParams *infoParam);
Rajeev Kumar8e3e2832015-11-06 16:02:54 -080077
78/* Peer info */
Jeff Johnson56ba88a2019-02-17 17:18:43 -080079struct ibss_peer_info_cb_info {
80 void *peer_info_cb_context;
Jeff Johnsond6a23162019-02-17 16:46:37 -080081 ibss_peer_info_cb peer_info_cb;
Jeff Johnson56ba88a2019-02-17 17:18:43 -080082};
Rajeev Kumar8e3e2832015-11-06 16:02:54 -080083
Jeff Johnson45843652018-07-04 12:47:34 -070084/**
85 * struct stats_ext_event - stats_ext_event payload
86 * @vdev_id: ID of the vdev for the stats
87 * @event_data_len: length of the @event_data
88 * @event_data: actual ext stats
89 */
90struct stats_ext_event {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -080091 uint32_t vdev_id;
92 uint32_t event_data_len;
93 uint8_t event_data[];
Jeff Johnson45843652018-07-04 12:47:34 -070094};
95
96/**
97 * typedef stats_ext_cb - stats ext callback
98 * @hdd_handle: Opaque handle to the HDD context
99 * @data: stats ext payload from firmware
100 */
101typedef void (*stats_ext_cb)(hdd_handle_t hdd_handle,
102 struct stats_ext_event *data);
103
104/**
105 * typedef stats_ext2_cb - stats ext2 callback
106 * @hdd_handle: Opaque handle to the HDD context
107 * @data: stats ext2 payload from firmware
108 */
109typedef void (*stats_ext2_cb)(hdd_handle_t hdd_handle,
110 struct sir_sme_rx_aggr_hole_ind *data);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800111
112#define MAX_ACTIVE_CMD_STATS 16
113
114typedef struct sActiveCmdStats {
115 eSmeCommandType command;
116 uint32_t reason;
117 uint32_t sessionId;
118 uint64_t timestamp;
119} tActiveCmdStats;
120
121typedef struct sSelfRecoveryStats {
122 tActiveCmdStats activeCmdStats[MAX_ACTIVE_CMD_STATS];
123 uint8_t cmdStatsIndx;
124} tSelfRecoveryStats;
125
Jeff Johnson959f3692018-07-03 17:30:40 -0700126typedef void (*link_layer_stats_cb)(hdd_handle_t hdd_handle,
127 int indication_type,
Dundi Ravitejae232cf12018-05-16 18:34:34 +0530128 tSirLLStatsResults *results,
129 void *cookie);
Jeff Johnson959f3692018-07-03 17:30:40 -0700130
Jeff Johnson17b12392018-07-03 22:21:15 -0700131typedef void (*ext_scan_ind_cb)(hdd_handle_t hdd_handle,
132 const uint16_t, void *);
133
Jeff Johnsone943bca2019-02-08 22:45:17 -0800134/**
135 * typedef sme_link_speed_cb - sme_get_link_speed() callback function
136 * @info: link speed information
137 * @context: user context supplied to sme_get_link_speed()
138 *
139 * This is the signature of a callback function whose addresses is
140 * passed as the asynchronous callback function to sme_get_link_speed().
141 */
142
143typedef void (*sme_link_speed_cb)(struct link_speed_info *info,
144 void *context);
145
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800146typedef void (*ocb_callback)(void *context, void *response);
Jeff Johnson0e963082018-07-04 19:39:20 -0700147typedef void (*sme_set_thermal_level_callback)(hdd_handle_t hdd_handle,
148 u_int8_t level);
Jeff Johnsonf7e36d62018-07-04 21:14:02 -0700149typedef void (*p2p_lo_callback)(void *context,
150 struct sir_p2p_lo_event *event);
Naveen Rawat910726a2017-03-06 11:42:51 -0800151#ifdef FEATURE_OEM_DATA_SUPPORT
Krishna Kumaar Natarajanc1fa17d2016-08-03 14:19:20 -0700152typedef void (*sme_send_oem_data_rsp_msg)(struct oem_data_rsp *);
Naveen Rawat910726a2017-03-06 11:42:51 -0800153#endif
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800154
Jeff Johnson3a08ff92018-07-03 19:40:44 -0700155typedef void (*twt_enable_cb)(hdd_handle_t hdd_handle,
156 struct wmi_twt_enable_complete_event_param *params);
157typedef void (*twt_disable_cb)(hdd_handle_t hdd_handle);
158
Nachiket Kukade177b5b02018-05-22 20:52:17 +0530159#ifdef FEATURE_WLAN_APF
Jeff Johnsona867e0c2017-01-26 13:43:51 -0800160/**
Nachiket Kukadee547a482018-05-22 16:43:30 +0530161 * typedef apf_get_offload_cb - APF offload callback signature
Jeff Johnsona867e0c2017-01-26 13:43:51 -0800162 * @context: Opaque context that the client can use to associate the
163 * callback with the request
Nachiket Kukadee547a482018-05-22 16:43:30 +0530164 * @caps: APF offload capabilities as reported by firmware
Jeff Johnsona867e0c2017-01-26 13:43:51 -0800165 */
Nachiket Kukadee547a482018-05-22 16:43:30 +0530166struct sir_apf_get_offload;
167typedef void (*apf_get_offload_cb)(void *context,
168 struct sir_apf_get_offload *caps);
Jeff Johnsona867e0c2017-01-26 13:43:51 -0800169
Jeff Johnsone8216e82017-01-26 15:54:51 -0800170/**
Nachiket Kukade177b5b02018-05-22 20:52:17 +0530171 * typedef apf_read_mem_cb - APF read memory response callback
172 * @context: Opaque context that the client can use to associate the
173 * callback with the request
174 * @evt: APF read memory response event parameters
175 */
176typedef void (*apf_read_mem_cb)(void *context,
177 struct wmi_apf_read_memory_resp_event_params
178 *evt);
179#endif /* FEATURE_WLAN_APF */
180
181/**
Jeff Johnson3201e622018-07-04 10:05:18 -0700182 * typedef rssi_threshold_breached_cb - RSSI threshold breach callback
183 * @hdd_handle: Opaque handle to the HDD context
184 * @event: The RSSI breach event
185 */
186typedef void (*rssi_threshold_breached_cb)(hdd_handle_t hdd_handle,
187 struct rssi_breach_event *event);
188
189/**
lifengd217d192017-05-09 19:44:16 +0800190 * typedef get_chain_rssi_callback - get chain rssi callback
191 * @context: Opaque context that the client can use to associate the
192 * callback with the request
193 * @data: chain rssi result reported by firmware
194 */
195struct chain_rssi_result;
196typedef void (*get_chain_rssi_callback)(void *context,
197 struct chain_rssi_result *data);
198
Qun Zhangef655622019-02-25 10:48:10 +0800199#ifdef FEATURE_FW_STATE
200/**
201 * typedef fw_state_callback - get firmware state callback
202 * @context: Opaque context that the client can use to associate the
203 * callback with the request
204 */
205typedef void (*fw_state_callback)(void *context);
206#endif /* FEATURE_FW_STATE */
207
Jeff Johnsonda2afa42018-07-04 10:25:42 -0700208typedef void (*tx_queue_cb)(hdd_handle_t hdd_handle, uint32_t vdev_id,
209 enum netif_action_type action,
210 enum netif_reason_type reason);
211
Jeff Johnsonb7fa2562018-07-02 08:36:17 -0700212/**
213 * typedef pwr_save_fail_cb - power save fail callback function
214 * @hdd_handle: HDD handle registered with SME
215 * @params: failure parameters
216 */
217struct chip_pwr_save_fail_detected_params;
218typedef void (*pwr_save_fail_cb)(hdd_handle_t hdd_handle,
219 struct chip_pwr_save_fail_detected_params *params);
220
Jeff Johnsonf6182e42018-07-03 14:46:17 -0700221/**
Jeff Johnsond0b6c7e2018-07-04 14:53:06 -0700222 * typedef bt_activity_info_cb - bluetooth activity callback function
223 * @hdd_handle: HDD handle registered with SME
224 * @bt_activity: bluetooth activity information
225 */
226typedef void (*bt_activity_info_cb)(hdd_handle_t hdd_handle,
227 uint32_t bt_activity);
228
229/**
Jeff Johnson43975142018-07-04 15:33:47 -0700230 * typedef rso_cmd_status_cb - RSO command status callback function
231 * @hdd_handle: HDD handle registered with SME
232 * @rso_status: Status of the operation
233 */
234typedef void (*rso_cmd_status_cb)(hdd_handle_t hdd_handle,
235 struct rso_cmd_status *rso_status);
236
Jeff Johnsondc198ec2018-07-04 17:39:53 -0700237/**
238 * typedef lost_link_info_cb - lost link indication callback function
239 * @hdd_handle: HDD handle registered with SME
240 * @lost_link_info: Information about the lost link
241 */
242typedef void (*lost_link_info_cb)(hdd_handle_t hdd_handle,
243 struct sir_lost_link_info *lost_link_info);
Abhinav Kumar338e57d2019-02-04 17:30:10 +0530244/**
245 * typedef hidden_ssid_cb - hidden ssid rsp callback fun
246 * @hdd_handle: HDD handle registered with SME
247 * @vdev_id: Vdev Id
248 */
249typedef void (*hidden_ssid_cb)(hdd_handle_t hdd_handle,
250 uint8_t vdev_id);
Jeff Johnsondc198ec2018-07-04 17:39:53 -0700251
Abhinav Kumar4d1f9f42019-05-07 13:14:49 +0530252/**
253 * typedef bcn_report_cb - recv bcn callback fun
254 * @hdd_handle: HDD handle registered with SME
255 * @beacon_report: Beacon report structure
256 */
Bapiraju Alla1c4c0b22020-03-25 10:23:42 +0530257typedef QDF_STATUS (*beacon_report_cb)
258 (hdd_handle_t hdd_handle, struct wlan_beacon_report *beacon_report);
Abhinav Kumar4d1f9f42019-05-07 13:14:49 +0530259
Abhinav Kumar0ed614c2019-04-11 22:11:47 +0530260/**
261 * beacon_pause_cb : scan start callback fun
262 * @hdd_handler: HDD handler
263 * @vdev_id: vdev id
264 * @type: scan event type
Abhinav Kumar39222152019-05-13 23:53:40 +0530265 * @is_disconnected: Driver is in dis connected state or not
Abhinav Kumar0ed614c2019-04-11 22:11:47 +0530266 */
267typedef void (*beacon_pause_cb)(hdd_handle_t hdd_handle,
268 uint8_t vdev_id,
Abhinav Kumar39222152019-05-13 23:53:40 +0530269 enum scan_event_type type,
270 bool is_disconnected);
Abhinav Kumar0ed614c2019-04-11 22:11:47 +0530271
guangde4853c402019-05-06 15:54:04 +0800272/**
273 * typedef sme_get_isolation_cb - get isolation callback fun
274 * @param: isolation result reported by firmware
275 * @pcontext: Opaque context that the client can use to associate the
276 * callback with the request
277 */
278typedef void (*sme_get_isolation_cb)(struct sir_isolation_resp *param,
279 void *pcontext);
280
Visweswara Tanuku633976b2019-01-07 16:13:12 +0530281#ifdef WLAN_FEATURE_MOTION_DETECTION
Visweswara Tanuku6488a1c2019-02-13 14:15:26 +0530282typedef QDF_STATUS (*md_host_evt_cb)(void *hdd_ctx, struct sir_md_evt *event);
Visweswara Tanuku41d21c02019-10-25 14:51:59 +0530283typedef QDF_STATUS (*md_bl_evt_cb)(void *hdd_ctx, struct sir_md_bl_evt *event);
Visweswara Tanuku633976b2019-01-07 16:13:12 +0530284#endif /* WLAN_FEATURE_MOTION_DETECTION */
285
Jeff Johnson50980e12019-02-17 11:38:30 -0800286struct sme_context {
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800287 eSmeState state;
Jeff Johnson3e7a4932019-02-17 12:11:36 -0800288 qdf_mutex_t sme_global_lock;
Jeff Johnson2a84c532019-02-17 12:22:04 -0800289 uint32_t sme_cmd_count;
Naveen Rawate7d86052015-11-13 12:01:43 -0800290 /* following pointer contains array of pointers for tSmeCmd* */
Jeff Johnson19353172019-02-17 12:53:46 -0800291 void **sme_cmd_buf_addr;
Jeff Johnsonea9f3d72019-02-17 13:27:55 -0800292 tDblLinkList sme_cmd_freelist; /* preallocated roam cmd list */
Jeff Johnson5a6a0c92019-02-17 16:12:02 -0800293 enum QDF_OPMODE curr_device_mode;
Jeff Johnsone7aa5cd2019-02-17 19:36:01 -0800294 struct ibss_peer_info_cb_info peer_info_cb_info;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800295#ifdef FEATURE_WLAN_DIAG_SUPPORT_CSR
296 host_event_wlan_status_payload_type eventPayload;
297#endif
Dundi Ravitejae232cf12018-05-16 18:34:34 +0530298 void *ll_stats_context;
Jeff Johnson959f3692018-07-03 17:30:40 -0700299 link_layer_stats_cb link_layer_stats_cb;
Jeff Johnson2d292122018-06-02 21:02:02 -0700300 void (*link_layer_stats_ext_cb)(hdd_handle_t callback_ctx,
Zhang Qiana6e9c102016-12-22 16:47:24 +0800301 tSirLLStatsResults *rsp);
Aditya Kodukula0a590372020-04-15 13:30:14 -0700302#ifdef WLAN_POWER_DEBUG
Sridhar Selvarajdc400d22016-10-18 17:18:03 +0530303 void *power_debug_stats_context;
304 void (*power_stats_resp_callback)(struct power_stats_response *rsp,
305 void *callback_context);
Aditya Kodukula0a590372020-04-15 13:30:14 -0700306#endif
Arunk Khandavallica56d4b2018-11-29 15:46:00 +0530307#ifdef WLAN_FEATURE_BEACON_RECEPTION_STATS
308 void *beacon_stats_context;
309 void (*beacon_stats_resp_callback)(struct bcn_reception_stats_rsp *rsp,
310 void *callback_context);
311#endif
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800312#ifdef FEATURE_WLAN_AUTO_SHUTDOWN
Jeff Johnsoneb7bbed2019-02-17 10:34:24 -0800313 void (*auto_shutdown_cb)(void);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800314#endif
315 /* Maximum interfaces allowed by the host */
316 uint8_t max_intf_count;
Jeff Johnson45843652018-07-04 12:47:34 -0700317 stats_ext_cb stats_ext_cb;
318 stats_ext2_cb stats_ext2_cb;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800319 /* linkspeed callback */
Jeff Johnsone943bca2019-02-08 22:45:17 -0800320 sme_link_speed_cb link_speed_cb;
321 void *link_speed_context;
Ashish Kumar Dhanotiya1ac41882019-06-27 20:35:31 +0530322
Will Huang558f8082017-05-31 16:22:24 +0800323 /* get extended peer info callback */
324 void (*pget_peer_info_ext_ind_cb)(struct sir_peer_info_ext_resp *param,
325 void *pcontext);
326 void *pget_peer_info_ext_cb_context;
guangde4853c402019-05-06 15:54:04 +0800327 sme_get_isolation_cb get_isolation_cb;
328 void *get_isolation_cb_context;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800329#ifdef FEATURE_WLAN_EXTSCAN
Jeff Johnson17b12392018-07-03 22:21:15 -0700330 ext_scan_ind_cb ext_scan_ind_cb;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800331#endif /* FEATURE_WLAN_EXTSCAN */
Jeff Johnsonca7a7162018-07-07 12:56:54 -0700332 csr_link_status_callback link_status_callback;
333 void *link_status_context;
Manikandan Mohandcc21ba2016-03-15 14:31:56 -0700334 int (*get_tsf_cb)(void *pcb_cxt, struct stsf *ptsf);
335 void *get_tsf_cxt;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800336 /* get temperature event context and callback */
Jeff Johnson3f3ad252019-02-17 20:44:11 -0800337 void *temperature_cb_context;
338 void (*temperature_cb)(int temperature, void *context);
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800339 uint8_t miracast_value;
340 struct ps_global_info ps_global_info;
Jeff Johnson3201e622018-07-04 10:05:18 -0700341 rssi_threshold_breached_cb rssi_threshold_breached_cb;
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800342 sme_set_thermal_level_callback set_thermal_level_cb;
Nachiket Kukadee547a482018-05-22 16:43:30 +0530343 void *apf_get_offload_context;
Rachit Kankane026e77a2018-07-31 16:21:09 +0530344#ifdef FEATURE_P2P_LISTEN_OFFLOAD
Peng Xu8fdaa492016-06-22 10:20:47 -0700345 p2p_lo_callback p2p_lo_event_callback;
346 void *p2p_lo_event_context;
Rachit Kankane026e77a2018-07-31 16:21:09 +0530347#endif
Naveen Rawat910726a2017-03-06 11:42:51 -0800348#ifdef FEATURE_OEM_DATA_SUPPORT
Krishna Kumaar Natarajanbbbf2ef2016-08-03 14:06:26 -0700349 sme_send_oem_data_rsp_msg oem_data_rsp_callback;
Naveen Rawat910726a2017-03-06 11:42:51 -0800350#endif
Jeff Johnsondc198ec2018-07-04 17:39:53 -0700351 lost_link_info_cb lost_link_info_cb;
Ravi Kumar Bokka05c14e52017-03-27 14:48:23 +0530352
Tushnim Bhattacharyya9e81b4c2017-02-15 17:11:14 -0800353 bool (*set_connection_info_cb)(bool);
Tushnim Bhattacharyya0c4ad2d2017-03-09 15:59:03 -0800354 bool (*get_connection_info_cb)(uint8_t *session_id,
355 enum scan_reject_states *reason);
Jeff Johnson43975142018-07-04 15:33:47 -0700356 rso_cmd_status_cb rso_cmd_status_cb;
Jeff Johnsonb7fa2562018-07-02 08:36:17 -0700357 pwr_save_fail_cb chip_power_save_fail_cb;
Jeff Johnsond0b6c7e2018-07-04 14:53:06 -0700358 bt_activity_info_cb bt_activity_info_cb;
Dundi Raviteja3bcf3a82018-05-22 13:24:18 +0530359 void *get_arp_stats_context;
360 void (*get_arp_stats_cb)(void *, struct rsp_stats *, void *);
lifengd217d192017-05-09 19:44:16 +0800361 get_chain_rssi_callback get_chain_rssi_cb;
362 void *get_chain_rssi_context;
Qun Zhangef655622019-02-25 10:48:10 +0800363#ifdef FEATURE_FW_STATE
364 fw_state_callback fw_state_cb;
365 void *fw_state_context;
366#endif /* FEATURE_FW_STATE */
Jeff Johnsonda2afa42018-07-04 10:25:42 -0700367 tx_queue_cb tx_queue_cb;
Jeff Johnson3a08ff92018-07-03 19:40:44 -0700368 twt_enable_cb twt_enable_cb;
369 twt_disable_cb twt_disable_cb;
Nachiket Kukade177b5b02018-05-22 20:52:17 +0530370#ifdef FEATURE_WLAN_APF
371 apf_get_offload_cb apf_get_offload_cb;
372 apf_read_mem_cb apf_read_mem_cb;
373#endif
Visweswara Tanuku633976b2019-01-07 16:13:12 +0530374#ifdef WLAN_FEATURE_MOTION_DETECTION
375 md_host_evt_cb md_host_evt_cb;
Visweswara Tanuku41d21c02019-10-25 14:51:59 +0530376 md_bl_evt_cb md_bl_evt_cb;
Visweswara Tanuku633976b2019-01-07 16:13:12 +0530377 void *md_ctx;
378#endif /* WLAN_FEATURE_MOTION_DETECTION */
Abhinav Kumar338e57d2019-02-04 17:30:10 +0530379 /* hidden ssid rsp callback */
380 hidden_ssid_cb hidden_ssid_cb;
Arun Kumar Khandavallideda5a82019-03-11 15:32:19 +0530381#ifdef WLAN_MWS_INFO_DEBUGFS
382 void *mws_coex_info_ctx;
383 void (*mws_coex_info_state_resp_callback)(void *coex_info_data,
384 void *context,
385 wmi_mws_coex_cmd_id cmd_id);
386#endif /* WLAN_MWS_INFO_DEBUGFS */
Abhinav Kumar338e57d2019-02-04 17:30:10 +0530387
Abhinav Kumar4d1f9f42019-05-07 13:14:49 +0530388#ifdef WLAN_BCN_RECV_FEATURE
389 beacon_report_cb beacon_report_cb;
Abhinav Kumar0ed614c2019-04-11 22:11:47 +0530390 beacon_pause_cb beacon_pause_cb;
Abhinav Kumar4d1f9f42019-05-07 13:14:49 +0530391#endif
Ashish Kumar Dhanotiyad8d7dea2019-10-24 14:34:56 +0530392#ifdef FEATURE_OEM_DATA
393 void (*oem_data_event_handler_cb)
sheenam monga2ab7b472020-05-29 21:54:39 +0530394 (const struct oem_data *oem_event_data,
395 uint8_t vdev_id);
396 uint8_t oem_data_vdev_id;
Ashish Kumar Dhanotiyad8d7dea2019-10-24 14:34:56 +0530397#endif
Abhishek Ambure5e9b6a42020-02-12 21:32:35 +0530398 sme_get_raom_scan_ch_callback roam_scan_ch_callback;
399 void *roam_scan_ch_get_context;
Pankaj Singhcb4da122020-03-27 00:44:47 +0530400#ifdef FEATURE_MONITOR_MODE_SUPPORT
401 void (*monitor_mode_cb)(uint8_t vdev_id);
402#endif
Jeff Johnson50980e12019-02-17 11:38:30 -0800403};
Prakash Dhavali7090c5f2015-11-02 17:55:19 -0800404
405#endif /* #if !defined( __SMEINTERNAL_H ) */