1 /* 2 * Copyright (c) 2020, The Linux Foundation. All rights reserved. 3 * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved. 4 * 5 * Permission to use, copy, modify, and/or distribute this software for any 6 * purpose with or without fee is hereby granted, provided that the above 7 * copyright notice and this permission notice appear in all copies. 8 * 9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 15 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16 */ 17 18 /** 19 * DOC: contains Interface MGR init/deinit public api 20 */ 21 22 #ifndef _WLAN_IF_MGR_MAIN_API_H_ 23 #define _WLAN_IF_MGR_MAIN_API_H_ 24 25 #ifdef WLAN_FEATURE_INTERFACE_MGR 26 27 #include <qdf_atomic.h> 28 #include <wlan_objmgr_psoc_obj.h> 29 #include <wlan_objmgr_pdev_obj.h> 30 #include <wlan_objmgr_vdev_obj.h> 31 #include <wlan_if_mgr_public_struct.h> 32 33 #define ifmgr_alert(params...) \ 34 QDF_TRACE_FATAL(QDF_MODULE_ID_IFMGR, params) 35 #define ifmgr_err(params...) \ 36 QDF_TRACE_ERROR(QDF_MODULE_ID_IFMGR, params) 37 #define ifmgr_warn(params...) \ 38 QDF_TRACE_WARN(QDF_MODULE_ID_IFMGR, params) 39 #define ifmgr_notice(params...) \ 40 QDF_TRACE_INFO(QDF_MODULE_ID_IFMGR, params) 41 #define ifmgr_info(params...) \ 42 QDF_TRACE_INFO(QDF_MODULE_ID_IFMGR, params) 43 #define ifmgr_debug(params...) \ 44 QDF_TRACE_DEBUG(QDF_MODULE_ID_IFMGR, params) 45 46 /* Rate Limited Logs */ 47 #define ifmgr_alert_rl(params...) \ 48 QDF_TRACE_FATAL_RL(QDF_MODULE_ID_IFMGR, params) 49 #define ifmgr_err_rl(params...) \ 50 QDF_TRACE_ERROR_RL(QDF_MODULE_ID_IFMGR, params) 51 #define ifmgr_warn_rl(params...) \ 52 QDF_TRACE_WARN_RL(QDF_MODULE_ID_IFMGR, params) 53 #define ifmgr_info_rl(params...) \ 54 QDF_TRACE_INFO_RL(QDF_MODULE_ID_IFMGR, params) 55 #define ifmgr_debug_rl(params...) \ 56 QDF_TRACE_DEBUG_RL(QDF_MODULE_ID_IFMGR, params) 57 58 #define ifmgr_nofl_alert(params...) \ 59 QDF_TRACE_FATAL_NO_FL(QDF_MODULE_ID_IFMGR, params) 60 #define ifmgr_nofl_err(params...) \ 61 QDF_TRACE_ERROR_NO_FL(QDF_MODULE_ID_IFMGR, params) 62 #define ifmgr_nofl_warn(params...) \ 63 QDF_TRACE_WARN_NO_FL(QDF_MODULE_ID_IFMGR, params) 64 #define ifmgr_nofl_info(params...) \ 65 QDF_TRACE_INFO_NO_FL(QDF_MODULE_ID_IFMGR, params) 66 #define ifmgr_nofl_debug(params...) \ 67 QDF_TRACE_DEBUG_NO_FL(QDF_MODULE_ID_IFMGR, params) 68 69 #define ifmgr_hex_dump(level, data, buf_len) \ 70 qdf_trace_hex_dump(QDF_MODULE_ID_IFMGR, level, data, buf_len) 71 72 /** 73 * wlan_if_mgr_init() - Interface manager module initialization API 74 * 75 * Return: QDF_STATUS 76 */ 77 QDF_STATUS wlan_if_mgr_init(void); 78 79 /** 80 * wlan_if_mgr_deinit() - interface manager module deinitialization API 81 * 82 * Return: QDF_STATUS 83 */ 84 QDF_STATUS wlan_if_mgr_deinit(void); 85 86 /** 87 * wlan_if_mgr_psoc_created_notification() - interface mgr psoc create handler 88 * @psoc: psoc object 89 * @arg_list: Argument list 90 * 91 * Return: QDF_STATUS 92 */ 93 QDF_STATUS wlan_if_mgr_psoc_created_notification(struct wlan_objmgr_psoc *psoc, 94 void *arg_list); 95 96 /** 97 * wlan_if_mgr_psoc_destroyed_notification() - scan psoc delete handler 98 * @psoc: psoc object 99 * @arg_list: Argument list 100 * 101 * Return: QDF_STATUS 102 */ 103 QDF_STATUS wlan_if_mgr_psoc_destroyed_notification(struct wlan_objmgr_psoc *psoc, 104 void *arg_list); 105 #else 106 inline QDF_STATUS wlan_if_mgr_init(void) 107 { 108 return QDF_STATUS_SUCCESS; 109 } 110 111 QDF_STATUS wlan_if_mgr_deinit(void) 112 { 113 return QDF_STATUS_SUCCESS; 114 } 115 #endif 116 #endif 117