Files
android_kernel_samsung_sm86…/qdf/inc/qdf_ssr_driver_dump.h
Mohammed Ahmed e1de611cdd qcacmn: add SSR host log collection API
Current code does not have functionality to collect host driver logs
upon SSR.
Fix this by adding host log collection API for SSR case.

Change-Id: I2bb848e59ad87da52446fcb8d18367c1b0768cf9
CRs-Fixed: 3339916
2023-01-19 18:41:07 -08:00

119 строки
3.7 KiB
C

/*
* Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#ifndef _QDF_SSR_DRIVER_DUMP_H_
#define _QDF_SSR_DRIVER_DUMP_H_
#include <qdf_types.h>
#ifdef WLAN_FEATURE_SSR_DRIVER_DUMP
#include "i_qdf_ssr_driver_dump.h"
typedef __qdf_ssr_driver_dump_entry qdf_ssr_driver_dump_entry;
/**
* qdf_ssr_driver_dump_init() - Initialize the dump collection API.
*
* Return:
* QDF_STATUS_SUCCESS - Initialization was successful
* else - Error initializing mutex
*/
QDF_STATUS qdf_ssr_driver_dump_init(void);
/*
* qdf_ssr_driver_dump_deinit() - Deinitialize the dump collection API.
*
* Return:
* QDF_STATUS_SUCCESS - Deinitialization was successful
* else - Error destroying mutex
*/
QDF_STATUS qdf_ssr_driver_dump_deinit(void);
/*
* qdf_ssr_driver_dump_register_region() - Add a region to the entry list
* @region_name: name of region to be registered
* @region_buffer: pointer to region
* @region_size: size of region in bytes
*
* Return:
* QDF_STATUS_SUCCESS - Region registration successful
* QDF_STATUS_E_NULL_VALUE - Null pointers provided.
* QDF_STATUS_E_RESOURCES - Error acquiring/releasing mutex
* QDF_STATUS_E_INVAL - Duplicate region registration
* QDF_STATUS_E_NOMEM - Not enough space for another region
*/
QDF_STATUS
qdf_ssr_driver_dump_register_region(char *region_name, void *region_buffer,
size_t region_size);
/*
* qdf_ssr_driver_dump_unregister_region() - Add a client to the entry list
* @region_name: name of region to be unregistered
*
* Return:
* QDF_STATUS_SUCCESS - Region unregistration successful
* QDF_STATUS_E_NULL_VALUE - Null pointer provided.
* QDF_STATUS_E_RESOURCES - Error acquiring/releasing mutex
* QDF_STATUS_E_INVAL - Region not found
*/
QDF_STATUS qdf_ssr_driver_dump_unregister_region(char *region_name);
/*
* qdf_ssr_driver_dump_retrieve_regions() - Retrieve list of clients
* @input_array: pointer to an array of cnss_ssr_driver_dump_entry, which
* will be filled with registered clients by this function.
* @num_entries_retrieved: pointer to a variable which will be filled with
* number of regions added.
*
* Return:
* QDF_STATUS_SUCCESS - Region retrieval successful
* QDF_STATUS_E_NULL_VALUE - Null pointers provided
* QDF_STATUS_E_INVAL - Error retrieving regions
* QDF_STATUS_E_RESOURCES - Error acquiring/releasing mutex
*/
QDF_STATUS
qdf_ssr_driver_dump_retrieve_regions(qdf_ssr_driver_dump_entry *input_array,
size_t *num_entries_retrieved);
#else
static inline QDF_STATUS
qdf_ssr_driver_dump_init(void)
{
return QDF_STATUS_SUCCESS;
}
static inline QDF_STATUS
qdf_ssr_driver_dump_deinit(void)
{
return QDF_STATUS_SUCCESS;
}
static inline QDF_STATUS
qdf_ssr_driver_dump_register_region(char *region_name, void *region_buffer,
size_t region_size)
{
return QDF_STATUS_SUCCESS;
}
static inline QDF_STATUS
qdf_ssr_driver_dump_unregister_region(char *region_name)
{
return QDF_STATUS_SUCCESS;
}
#endif /* #ifdef WLAN_FEATURE_SSR_DRIVER_DUMP */
#endif