blob: 3cb282ec34d263f0311184c8e35adff4a80d236c [file] [log] [blame]
Jeff Johnson295189b2012-06-20 16:38:30 -07001/*
Manjeet Singh87a6eb72016-06-28 19:23:55 +05302 * Copyright (c) 2012-2016 The Linux Foundation. All rights reserved.
Kiet Lam1ed83fc2014-02-19 01:15:45 -08003 *
4 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
5 *
6 *
7 * Permission to use, copy, modify, and/or distribute this software for
8 * any purpose with or without fee is hereby granted, provided that the
9 * above copyright notice and this permission notice appear in all
10 * copies.
11 *
12 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
13 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
14 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
15 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
16 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
17 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
18 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
19 * PERFORMANCE OF THIS SOFTWARE.
Gopichand Nakkala92f07d82013-01-08 21:16:34 -080020 */
Kiet Lam1ed83fc2014-02-19 01:15:45 -080021
22/*
23 * This file was originally distributed by Qualcomm Atheros, Inc.
24 * under proprietary terms before Copyright ownership was assigned
25 * to the Linux Foundation.
26 */
27
Jeff Johnson295189b2012-06-20 16:38:30 -070028#if !defined( __VOS_API_H )
29#define __VOS_API_H
30
31/**=========================================================================
32
33 \file vos_Api.h
34
35 \brief virtual Operating System Services (vOSS) API
36
37 Header file that inludes all the vOSS API definitions.
38
Jeff Johnson295189b2012-06-20 16:38:30 -070039
40 ========================================================================*/
41 /*===========================================================================
42
43 EDIT HISTORY FOR FILE
44
45
46 This section contains comments describing changes made to the module.
47 Notice that changes are listed in reverse chronological order.
48
49
50 $Header:$ $DateTime: $ $Author: $
51
52
53 when who what, where, why
54 -------- --- --------------------------------------------------------
55 06/23/08 hba Added vos_preOpen()
56 05/18/08 lac Created module.
57===========================================================================*/
58
59/*--------------------------------------------------------------------------
60 Include Files
61 ------------------------------------------------------------------------*/
62// one stop shopping. This brings in the entire vOSS API.
63#include <vos_types.h>
64#include <vos_status.h>
65#include <vos_memory.h>
66#include <vos_list.h>
67#include <vos_getBin.h>
68#include <vos_trace.h>
69#include <vos_event.h>
70#include <vos_lock.h>
Jeff Johnson295189b2012-06-20 16:38:30 -070071#include <vos_nvitem.h>
Amar Singhal0a402232013-10-11 20:57:16 -070072#include <vos_mq.h>
Jeff Johnson295189b2012-06-20 16:38:30 -070073#include <vos_packet.h>
74#include <vos_threads.h>
75#include <vos_timer.h>
76#include <vos_pack_align.h>
77
Sushant Kaushik8e644982015-09-23 12:18:54 +053078/**
79 * enum userspace_log_level - Log level at userspace
80 * @LOG_LEVEL_NO_COLLECTION: verbose_level 0 corresponds to no collection
81 * @LOG_LEVEL_NORMAL_COLLECT: verbose_level 1 correspond to normal log level,
82 * with minimal user impact. this is the default value
83 * @LOG_LEVEL_ISSUE_REPRO: verbose_level 2 are enabled when user is lazily
84 * trying to reproduce a problem, wifi performances and power can be impacted
85 * but device should not otherwise be significantly impacted
86 * @LOG_LEVEL_ACTIVE: verbose_level 3+ are used when trying to
87 * actively debug a problem
88 *
89 * Various log levels defined in the userspace for logging applications
90 */
91enum userspace_log_level {
92 LOG_LEVEL_NO_COLLECTION,
93 LOG_LEVEL_NORMAL_COLLECT,
94 LOG_LEVEL_ISSUE_REPRO,
95 LOG_LEVEL_ACTIVE,
96};
97
98/**
99 * enum wifi_driver_log_level - Log level defined in the driver for logging
100 * @WLAN_LOG_LEVEL_OFF: No logging
101 * @WLAN_LOG_LEVEL_NORMAL: Default logging
102 * @WLAN_LOG_LEVEL_REPRO: Normal debug level
103 * @WLAN_LOG_LEVEL_ACTIVE: Active debug level
104 *
105 * Log levels defined for logging by the wifi driver
106 */
107enum wifi_driver_log_level {
108 WLAN_LOG_LEVEL_OFF,
109 WLAN_LOG_LEVEL_NORMAL,
110 WLAN_LOG_LEVEL_REPRO,
111 WLAN_LOG_LEVEL_ACTIVE,
112};
113
114/**
115 * enum wifi_logging_ring_id - Ring id of logging entities
116 * @RING_ID_WAKELOCK: Power events ring id
117 * @RING_ID_CONNECTIVITY: Connectivity event ring id
118 * @RING_ID_PER_PACKET_STATS: Per packet statistic ring id
119 *
120 * This enum has the ring id values of logging rings
121 */
122enum wifi_logging_ring_id {
123 RING_ID_WAKELOCK,
124 RING_ID_CONNECTIVITY,
125 RING_ID_PER_PACKET_STATS,
126};
Sachin Ahuja715aafc2015-07-21 23:35:10 +0530127
Abhishek Singh837adf22015-10-01 17:37:37 +0530128/* 15 Min */
129#define WLAN_POWER_COLLAPSE_FAIL_THRESHOLD (1000 * 60 * 15)
Sachin Ahuja715aafc2015-07-21 23:35:10 +0530130/**
131 * enum log_event_type - Type of event initiating bug report
132 * @WLAN_LOG_TYPE_NON_FATAL: Non fatal event
133 * @WLAN_LOG_TYPE_FATAL: Fatal event
134 *
135 * Enum indicating the type of event that is initiating the bug report
136 */
137enum log_event_type {
138 WLAN_LOG_TYPE_NON_FATAL,
139 WLAN_LOG_TYPE_FATAL,
140};
141
142/**
143 * enum log_event_indicator - Module triggering bug report
144 * @WLAN_LOG_INDICATOR_UNUSED: Unused
145 * @WLAN_LOG_INDICATOR_FRAMEWORK: Framework triggers bug report
146 * @WLAN_LOG_INDICATOR_HOST_DRIVER: Host driver triggers bug report
147 * @WLAN_LOG_INDICATOR_FIRMWARE: FW initiates bug report
Abhishek Singh837adf22015-10-01 17:37:37 +0530148 * @WLAN_LOG_INDICATOR_IOCTL: Bug report is initiated by IOCTL
149 * @WLAN_LOG_INDICATOR_HOST_ONLY: Host initiated and only Host
150 * logs are needed
Sachin Ahuja715aafc2015-07-21 23:35:10 +0530151 *
152 * Enum indicating the module that triggered the bug report
153 */
154enum log_event_indicator {
155 WLAN_LOG_INDICATOR_UNUSED,
156 WLAN_LOG_INDICATOR_FRAMEWORK,
157 WLAN_LOG_INDICATOR_HOST_DRIVER,
158 WLAN_LOG_INDICATOR_FIRMWARE,
Abhishek Singh837adf22015-10-01 17:37:37 +0530159 WLAN_LOG_INDICATOR_IOCTL,
160 WLAN_LOG_INDICATOR_HOST_ONLY,
Sachin Ahuja715aafc2015-07-21 23:35:10 +0530161};
162
163/**
164 * enum log_event_host_reason_code - Reason code for bug report
165 * @WLAN_LOG_REASON_CODE_UNUSED: Unused
Sachin Ahuja715aafc2015-07-21 23:35:10 +0530166 * @WLAN_LOG_REASON_ROAM_FAIL: Driver initiated roam has failed
167 * @WLAN_LOG_REASON_THREAD_STUCK: Monitor Health of host threads and report
168 * fatal event if some thread is stuck
169 * @WLAN_LOG_REASON_DATA_STALL: Unable to send/receive data due to low resource
170 * scenario for a prolonged period
171 * @WLAN_LOG_REASON_SME_COMMAND_STUCK: SME command is stuck in SME active queue
Sachin Ahuja715aafc2015-07-21 23:35:10 +0530172 * @WLAN_LOG_REASON_QUEUE_FULL: Defer queue becomes full for a prolonged period
173 * @WLAN_LOG_REASON_POWER_COLLAPSE_FAIL: Unable to allow apps power collapse
174 * for a prolonged period
Sachin Ahuja715aafc2015-07-21 23:35:10 +0530175 * @WLAN_LOG_REASON_MALLOC_FAIL: Memory allocation Fails
176 * @WLAN_LOG_REASON_VOS_MSG_UNDER_RUN: VOS Core runs out of message wrapper
Abhishek Singh837adf22015-10-01 17:37:37 +0530177 * @WLAN_LOG_REASON_IOCTL: Initiated by IOCTL
178 * @WLAN_LOG_REASON_CODE_FRAMEWORK: Initiated by framework
179 * @WLAN_LOG_REASON_DEL_BSS_STA_FAIL: DEL BSS/STA rsp is failure
180 * @WLAN_LOG_REASON_ADD_BSS_STA_FAIL: ADD BSS/STA rsp is failure
181 * @WLAN_LOG_REASON_ENTER_IMPS_BMPS_FAIL: Enter IMPS/BMPS rsp failure
182 * @WLAN_LOG_REASON_EXIT_IMPS_BMPS_FAIL: Exit IMPS/BMPS rsp failure
183 * @WLAN_LOG_REASON_HDD_TIME_OUT: Wait for event Timeout in HDD layer
184 * @WLAN_LOG_REASON_MGMT_FRAME_TIMEOUT:Management frame timedout
185 @WLAN_LOG_REASON_SME_OUT_OF_CMD_BUFL sme out of cmd buffer
Sachin Ahuja715aafc2015-07-21 23:35:10 +0530186 * This enum contains the different reason codes for bug report
187 */
188enum log_event_host_reason_code {
189 WLAN_LOG_REASON_CODE_UNUSED,
Sachin Ahuja715aafc2015-07-21 23:35:10 +0530190 WLAN_LOG_REASON_ROAM_FAIL,
191 WLAN_LOG_REASON_THREAD_STUCK,
192 WLAN_LOG_REASON_DATA_STALL,
193 WLAN_LOG_REASON_SME_COMMAND_STUCK,
Sachin Ahuja715aafc2015-07-21 23:35:10 +0530194 WLAN_LOG_REASON_QUEUE_FULL,
195 WLAN_LOG_REASON_POWER_COLLAPSE_FAIL,
Sachin Ahuja715aafc2015-07-21 23:35:10 +0530196 WLAN_LOG_REASON_MALLOC_FAIL,
197 WLAN_LOG_REASON_VOS_MSG_UNDER_RUN,
Sachin Ahujac08f72a2015-09-22 15:25:47 +0530198 WLAN_LOG_REASON_IOCTL,
199 WLAN_LOG_REASON_CODE_FRAMEWORK,
Abhishek Singh837adf22015-10-01 17:37:37 +0530200 WLAN_LOG_REASON_DEL_BSS_STA_FAIL,
201 WLAN_LOG_REASON_ADD_BSS_STA_FAIL,
202 WLAN_LOG_REASON_ENTER_IMPS_BMPS_FAIL,
203 WLAN_LOG_REASON_EXIT_IMPS_BMPS_FAIL,
204 WLAN_LOG_REASON_HDD_TIME_OUT,
205 WLAN_LOG_REASON_MGMT_FRAME_TIMEOUT,
206 WLAN_LOG_REASON_SME_OUT_OF_CMD_BUF,
Sachin Ahuja715aafc2015-07-21 23:35:10 +0530207};
208
Jeff Johnson295189b2012-06-20 16:38:30 -0700209/*-------------------------------------------------------------------------
210 Function declarations and documenation
211 ------------------------------------------------------------------------*/
212
213/**--------------------------------------------------------------------------
214
215 \brief vos_preOpen() - PreOpen the vOSS Module
216
217 The \a vos_preOpen() function allocates the Vos Context, but do not
218 initialize all the members. This overal initialization will happen
219 at vos_Open().
220 The reason why we need vos_preOpen() is to get a minimum context
221 where to store BAL and SAL relative data, which happens before
222 vos_Open() is called.
223
224 \param pVosContext: A pointer to where to store the VOS Context
225
226
227 \return VOS_STATUS_SUCCESS - Scheduler was successfully initialized and
228 is ready to be used.
229
230 VOS_STATUS_E_FAILURE - Failure to initialize the scheduler/
231
232 \sa vos_open()
233
234---------------------------------------------------------------------------*/
235VOS_STATUS vos_preOpen ( v_CONTEXT_t *pVosContext );
236
237VOS_STATUS vos_preClose( v_CONTEXT_t *pVosContext );
238
Jeff Johnson295189b2012-06-20 16:38:30 -0700239
240VOS_STATUS vos_preStart( v_CONTEXT_t vosContext );
241
Jeff Johnson295189b2012-06-20 16:38:30 -0700242
Arun Kumar Khandavalliebb19482014-03-25 13:56:53 +0530243VOS_STATUS vos_open( v_CONTEXT_t *pVosContext, void *devHandle );
Jeff Johnson295189b2012-06-20 16:38:30 -0700244
Katya Nigame7b69a82015-04-28 15:24:06 +0530245VOS_STATUS vos_mon_start( v_CONTEXT_t vosContext );
Jeff Johnson295189b2012-06-20 16:38:30 -0700246
Katya Nigame7b69a82015-04-28 15:24:06 +0530247VOS_STATUS vos_mon_stop( v_CONTEXT_t vosContext );
Jeff Johnson295189b2012-06-20 16:38:30 -0700248
249VOS_STATUS vos_start( v_CONTEXT_t vosContext );
250
251VOS_STATUS vos_stop( v_CONTEXT_t vosContext );
252
253VOS_STATUS vos_close( v_CONTEXT_t vosContext );
254
255/* vos shutdown will not close control transport and will not handshake with Riva */
256VOS_STATUS vos_shutdown( v_CONTEXT_t vosContext );
257
258/* the wda interface to shutdown */
259VOS_STATUS vos_wda_shutdown( v_CONTEXT_t vosContext );
260
261/**---------------------------------------------------------------------------
262
263 \brief vos_get_context() - get context data area
264
265 Each module in the system has a context / data area that is allocated
266 and maanged by voss. This API allows any user to get a pointer to its
267 allocated context data area from the VOSS global context.
268
269 \param vosContext - the VOSS Global Context.
270
271 \param moduleId - the module ID, who's context data are is being retrived.
272
273 \return - pointer to the context data area.
274
275 - NULL if the context data is not allocated for the module ID
276 specified
277
278 --------------------------------------------------------------------------*/
279v_VOID_t *vos_get_context( VOS_MODULE_ID moduleId,
280 v_CONTEXT_t vosContext );
281
282
283/**---------------------------------------------------------------------------
284
285 \brief vos_get_global_context() - get VOSS global Context
286
287 This API allows any user to get the VOS Global Context pointer from a
288 module context data area.
289
290 \param moduleContext - the input module context pointer
291
292 \param moduleId - the module ID who's context pointer is input in
293 moduleContext.
294
295 \return - pointer to the VOSS global context
296
297 - NULL if the function is unable to retreive the VOSS context.
298
299 --------------------------------------------------------------------------*/
300v_CONTEXT_t vos_get_global_context( VOS_MODULE_ID moduleId,
301 v_VOID_t *moduleContext );
302
303v_U8_t vos_is_logp_in_progress(VOS_MODULE_ID moduleId, v_VOID_t *moduleContext);
304void vos_set_logp_in_progress(VOS_MODULE_ID moduleId, v_U8_t value);
Sameer Thalappil9ab2fe52013-10-22 12:50:24 -0700305
Jeff Johnson295189b2012-06-20 16:38:30 -0700306v_U8_t vos_is_load_unload_in_progress(VOS_MODULE_ID moduleId, v_VOID_t *moduleContext);
307void vos_set_load_unload_in_progress(VOS_MODULE_ID moduleId, v_U8_t value);
308
Sameer Thalappil9ab2fe52013-10-22 12:50:24 -0700309v_U8_t vos_is_reinit_in_progress(VOS_MODULE_ID moduleId, v_VOID_t *moduleContext);
310void vos_set_reinit_in_progress(VOS_MODULE_ID moduleId, v_U8_t value);
Mihir Sheteccafc0c2015-04-17 16:13:15 +0530311VOS_STATUS vos_logger_pkt_serialize(vos_pkt_t *pPacket, uint32 pkt_type);
Sachin Ahuja715aafc2015-07-21 23:35:10 +0530312bool vos_is_log_report_in_progress(void);
313void vos_reset_log_report_in_progress(void);
314int vos_set_log_completion(uint32 is_fatal, uint32 indicator, uint32 reason_code);
Abhishek Singh837adf22015-10-01 17:37:37 +0530315void vos_get_log_and_reset_completion(uint32 *is_fatal,
316 uint32 *indicator, uint32 *reason_code, bool reset);
317v_BOOL_t vos_isFatalEventEnabled(void);
Sachin Ahuja715aafc2015-07-21 23:35:10 +0530318VOS_STATUS vos_fatal_event_logs_req( uint32_t is_fatal, uint32_t indicator,
Abhishek Singh837adf22015-10-01 17:37:37 +0530319 uint32_t reason_code, bool wait_required,
320 bool dump_vos_trace);
Sachin Ahuja715aafc2015-07-21 23:35:10 +0530321VOS_STATUS vos_process_done_indication(v_U8_t type, v_U32_t reason_code);
Abhishek Singh837adf22015-10-01 17:37:37 +0530322void vos_flush_host_logs_for_fatal(void);
323
Sachin Ahuja715aafc2015-07-21 23:35:10 +0530324void vos_send_fatal_event_done(void);
325
Sameer Thalappil9ab2fe52013-10-22 12:50:24 -0700326
Jeff Johnson295189b2012-06-20 16:38:30 -0700327/**---------------------------------------------------------------------------
328
329 \brief vos_alloc_context() - allocate a context within the VOSS global Context
330
331 This API allows any user to allocate a user context area within the
332 VOS Global Context.
333
334 \param pVosContext - pointer to the global Vos context
335
336 \param moduleId - the module ID who's context area is being allocated.
337
338 \param ppModuleContext - pointer to location where the pointer to the
339 allocated context is returned. Note this
340 output pointer is valid only if the API
341 returns VOS_STATUS_SUCCESS
342
343 \param size - the size of the context area to be allocated.
344
345 \return - VOS_STATUS_SUCCESS - the context for the module ID has been
346 allocated successfully. The pointer to the context area
347 can be found in *ppModuleContext.
348 \note This function returns VOS_STATUS_SUCCESS if the
349 module context was already allocated and the size
350 allocated matches the size on this call.
351
352 VOS_STATUS_E_INVAL - the moduleId is not a valid or does
353 not identify a module that can have a context allocated.
354
355 VOS_STATUS_E_EXISTS - vos could allocate the requested context
356 because a context for this module ID already exists and it is
357 a *different* size that specified on this call.
358
359 VOS_STATUS_E_NOMEM - vos could not allocate memory for the
360 requested context area.
361
362 \sa vos_get_context(), vos_free_context()
363
364 --------------------------------------------------------------------------*/
365VOS_STATUS vos_alloc_context( v_VOID_t *pVosContext, VOS_MODULE_ID moduleID,
366 v_VOID_t **ppModuleContext, v_SIZE_t size );
367
368
369/**---------------------------------------------------------------------------
370
371 \brief vos_free_context() - free an allocated a context within the
372 VOSS global Context
373
374 This API allows a user to free the user context area within the
375 VOS Global Context.
376
377 \param pVosContext - pointer to the global Vos context
378
379 \param moduleId - the module ID who's context area is being free
380
381 \param pModuleContext - pointer to module context area to be free'd.
382
383 \return - VOS_STATUS_SUCCESS - the context for the module ID has been
384 free'd. The pointer to the context area is not longer
385 available.
386
387 VOS_STATUS_E_FAULT - pVosContext or pModuleContext are not
388 valid pointers.
389
390 VOS_STATUS_E_INVAL - the moduleId is not a valid or does
391 not identify a module that can have a context free'd.
392
393 VOS_STATUS_E_EXISTS - vos could not free the requested
394 context area because a context for this module ID does not
395 exist in the global vos context.
396
397 \sa vos_get_context()
398
399 --------------------------------------------------------------------------*/
400VOS_STATUS vos_free_context( v_VOID_t *pVosContext, VOS_MODULE_ID moduleID,
401 v_VOID_t *pModuleContext );
Jeff Johnson295189b2012-06-20 16:38:30 -0700402v_BOOL_t vos_is_apps_power_collapse_allowed(void* pHddCtx);
Jeff Johnson295189b2012-06-20 16:38:30 -0700403
404/**
405 @brief vos_wlanShutdown() - This API will shutdown WLAN driver
406
407 This function is called when Riva subsystem crashes. There are two
408 methods (or operations) in WLAN driver to handle Riva crash,
409 1. shutdown: Called when Riva goes down, this will shutdown WLAN
410 driver without handshaking with Riva.
411 2. re-init: Next API
412
413 @param
414 NONE
415 @return
416 VOS_STATUS_SUCCESS - Operation completed successfully.
417 VOS_STATUS_E_FAILURE - Operation failed.
418
419*/
420VOS_STATUS vos_wlanShutdown(void);
421
422/**
423 @brief vos_wlanReInit() - This API will re-init WLAN driver
424
425 This function is called when Riva subsystem reboots. There are two
426 methods (or operations) in WLAN driver to handle Riva crash,
427 1. shutdown: Previous API
428 2. re-init: Called when Riva comes back after the crash. This will
429 re-initialize WLAN driver. In some cases re-open may be
430 referred instead of re-init.
431 @param
432 NONE
433 @return
434 VOS_STATUS_SUCCESS - Operation completed successfully.
435 VOS_STATUS_E_FAILURE - Operation failed.
436
437*/
438VOS_STATUS vos_wlanReInit(void);
439
Jeff Johnsone7245742012-09-05 17:12:55 -0700440/**
441 @brief vos_wlanRestart() - This API will reload WLAN driver.
442
443 This function is called if driver detects any fatal state which
444 can be recovered by a WLAN module reload ( Android framwork initiated ).
445 Note that this API will not initiate any RIVA subsystem restart.
446
447 @param
448 NONE
449 @return
450 VOS_STATUS_SUCCESS - Operation completed successfully.
451 VOS_STATUS_E_FAILURE - Operation failed.
452
453*/
454VOS_STATUS vos_wlanRestart(void);
455
Madan Mohan Koyyalamudi62080282013-08-05 12:51:17 +0530456/**
457 @brief vos_fwDumpReq()
458
459 This function is called to issue dump commands to Firmware
460
461 @param
Siddharth Bhal68115602015-01-18 20:44:55 +0530462 cmd - Command No. to execute
463 arg1 - argument 1 to cmd
464 arg2 - argument 2 to cmd
465 arg3 - argument 3 to cmd
466 arg4 - argument 4 to cmd
467 async - asynchronous event. Don't wait for completion.
Madan Mohan Koyyalamudi62080282013-08-05 12:51:17 +0530468 @return
469 NONE
470*/
471v_VOID_t vos_fwDumpReq(tANI_U32 cmd, tANI_U32 arg1, tANI_U32 arg2,
Siddharth Bhal68115602015-01-18 20:44:55 +0530472 tANI_U32 arg3, tANI_U32 arg4, tANI_U8 async);
Dino Mycle3f783bc2014-08-08 17:40:22 +0530473
Anand N Sunkad860e5ea2015-03-30 14:41:51 +0530474v_VOID_t vos_flush_work(struct work_struct *work);
475v_VOID_t vos_flush_delayed_work(struct delayed_work *dwork);
476
Anand N Sunkaddc63c792015-06-03 14:33:24 +0530477v_VOID_t vos_init_work(struct work_struct *work , void *callbackptr);
478v_VOID_t vos_init_delayed_work(struct delayed_work *dwork , void *callbackptr);
479
Dino Mycle3f783bc2014-08-08 17:40:22 +0530480v_U64_t vos_get_monotonic_boottime(void);
481
Siddharth Bhala3a5cb42014-09-29 21:13:13 +0530482VOS_STATUS vos_randomize_n_bytes(void *mac_addr, tANI_U32 n);
483
c_hpothu8adb97b2014-12-08 19:38:20 +0530484v_BOOL_t vos_is_wlan_in_badState(VOS_MODULE_ID moduleId,
485 v_VOID_t *moduleContext);
Girish Gowlia33f0372015-01-19 15:39:04 +0530486v_VOID_t vos_set_roam_delay_stats_enabled(v_U8_t value);
487v_U8_t vos_get_roam_delay_stats_enabled(v_VOID_t);
Katya Nigama6fbf662015-03-17 18:35:47 +0530488v_U32_t vos_get_dxeReplenishRXTimerVal(void);
489v_BOOL_t vos_get_dxeSSREnable(void);
Mihir Shetee2ae82a2015-03-16 14:08:49 +0530490
491v_U8_t vos_is_fw_logging_enabled(void);
Mihir Shetebe94ebb2015-05-26 12:07:14 +0530492v_U8_t vos_is_fw_ev_logging_enabled(void);
Mihir Shetee2ae82a2015-03-16 14:08:49 +0530493
Mihir Sheted6274602015-04-28 16:13:21 +0530494v_U8_t vos_is_fw_logging_supported(void);
Sushant Kaushik215778f2015-05-21 14:05:36 +0530495void vos_set_multicast_logging(uint8_t value);
496v_U8_t vos_is_multicast_logging(void);
Sushant Kaushik8e644982015-09-23 12:18:54 +0530497void vos_set_ring_log_level(v_U32_t ring_id, v_U32_t log_level);
498v_U8_t vos_get_ring_log_level(v_U32_t ring_id);
Sushant Kaushik33200572015-08-05 16:46:20 +0530499void get_rate_and_MCS(per_packet_stats *stats, uint32 rateindex);
500
Hanumantha Reddy Pothula05b0b552015-06-18 14:26:10 +0530501v_BOOL_t vos_isUnloadInProgress(void);
Abhishek Singh30fd58c2015-07-15 14:19:21 +0530502v_BOOL_t vos_isLoadUnloadInProgress(void);
503
Sravan Kumar Kairam1871d402016-08-04 13:18:25 +0530504bool vos_get_rx_wow_dump(void);
505void vos_set_rx_wow_dump(bool value);
506
Abhishek Singh880d7122015-08-26 16:23:04 +0530507void vos_probe_threads(void);
Sushant Kaushik33200572015-08-05 16:46:20 +0530508void vos_per_pkt_stats_to_user(void *perPktStat);
509void vos_updatePktStatsInfo(void * pktStat);
Manjeet Singh87a6eb72016-06-28 19:23:55 +0530510bool vos_is_wlan_logging_enabled(void);
Rajeev Kumar Sirasanagandla63f85cf2016-06-29 16:52:15 +0530511
512v_BOOL_t vos_is_probe_rsp_offload_enabled(void);
513
Jeff Johnson295189b2012-06-20 16:38:30 -0700514#endif // if !defined __VOS_NVITEM_H