1 /* 2 * Copyright (c) 2018, 2021 The Linux Foundation. All rights reserved. 3 * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved. 4 * 5 * Permission to use, copy, modify, and/or distribute this software for 6 * any purpose with or without fee is hereby granted, provided that the 7 * above copyright notice and this permission notice appear in all 8 * copies. 9 * 10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL 11 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED 12 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE 13 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 14 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR 15 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 16 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 17 * PERFORMANCE OF THIS SOFTWARE. 18 */ 19 20 /** 21 * DOC: wlan_cp_stats_obj_mgr_handler.h 22 * 23 * This header file provide declarations for APIs to handle events from object 24 * manager for registered events from wlan_cp_stats_init() 25 */ 26 27 #ifndef __WLAN_CP_STATS_OBJ_MGR_HANDLER_H__ 28 #define __WLAN_CP_STATS_OBJ_MGR_HANDLER_H__ 29 30 #ifdef QCA_SUPPORT_CP_STATS 31 #include <wlan_objmgr_cmn.h> 32 #include <wlan_objmgr_global_obj.h> 33 #include <wlan_objmgr_psoc_obj.h> 34 #include <wlan_objmgr_pdev_obj.h> 35 #include <wlan_objmgr_vdev_obj.h> 36 #include <wlan_objmgr_peer_obj.h> 37 38 #include "wlan_cp_stats_defs.h" 39 40 /** 41 * wlan_cp_stats_psoc_obj_create_handler() - psoc create notification handler 42 * callback function 43 * @psoc: pointer to psoc object 44 * @data: pointer to arg data 45 * 46 * Return: QDF_STATUS - Success or Failure 47 */ 48 QDF_STATUS wlan_cp_stats_psoc_obj_create_handler( 49 struct wlan_objmgr_psoc *psoc, void *data); 50 51 /** 52 * wlan_cp_stats_psoc_obj_destroy_handler() - psoc destroy notification handler 53 * callback function 54 * @psoc: pointer to psoc object 55 * @data: pointer to arg data 56 * 57 * Return: QDF_STATUS - Success or Failure 58 */ 59 QDF_STATUS wlan_cp_stats_psoc_obj_destroy_handler( 60 struct wlan_objmgr_psoc *psoc, void *data); 61 62 /** 63 * wlan_cp_stats_pdev_obj_create_handler() - Pdev create notification handler 64 * callback function 65 * @pdev: pointer to pdev object 66 * @data: pointer to arg data 67 * 68 * Return: QDF_STATUS - Success or Failure 69 */ 70 QDF_STATUS wlan_cp_stats_pdev_obj_create_handler( 71 struct wlan_objmgr_pdev *pdev, void *data); 72 73 /** 74 * wlan_cp_stats_pdev_obj_destroy_handler() - Pdev destroy notification handler 75 * callback function 76 * @pdev: pointer to pdev object 77 * @data: pointer to arg data 78 * 79 * Return: QDF_STATUS - Success or Failure 80 */ 81 QDF_STATUS wlan_cp_stats_pdev_obj_destroy_handler( 82 struct wlan_objmgr_pdev *pdev, void *data); 83 84 /** 85 * wlan_cp_stats_vdev_obj_create_handler() - vdev create notification handler 86 * callback function 87 * @vdev: pointer to vdev object 88 * @data: pointer to arg data 89 * 90 * Return: QDF_STATUS - Success or Failure 91 */ 92 QDF_STATUS wlan_cp_stats_vdev_obj_create_handler( 93 struct wlan_objmgr_vdev *vdev, void *data); 94 95 /** 96 * wlan_cp_stats_vdev_obj_destroy_handler() - vdev destroy notification handler 97 * callback function 98 * @vdev: pointer to vdev object 99 * @data: pointer to arg data 100 * 101 * Return: QDF_STATUS - Success or Failure 102 */ 103 QDF_STATUS wlan_cp_stats_vdev_obj_destroy_handler( 104 struct wlan_objmgr_vdev *vdev, void *data); 105 106 /** 107 * wlan_cp_stats_peer_obj_create_handler() - peer create notification handler 108 * callback function 109 * @peer: pointer to peer object 110 * @data: pointer to arg data 111 * 112 * Return: QDF_STATUS - Success or Failure 113 */ 114 QDF_STATUS wlan_cp_stats_peer_obj_create_handler( 115 struct wlan_objmgr_peer *peer, void *data); 116 117 /** 118 * wlan_cp_stats_peer_obj_destroy_handler() - peer destroy notification handler 119 * callback function 120 * @peer: pointer to peer object 121 * @data: pointer to arg data 122 * 123 * Return: QDF_STATUS - Success or Failure 124 */ 125 QDF_STATUS wlan_cp_stats_peer_obj_destroy_handler( 126 struct wlan_objmgr_peer *peer, void *data); 127 128 #ifdef WLAN_SUPPORT_INFRA_CTRL_PATH_STATS 129 /** 130 * wlan_cp_stats_infra_cp_register_resp_cb() - Register the response callback 131 * and cookie in the psoc mc_stats object 132 * @psoc: pointer to psoc object 133 * @req: pointer to request parameter structure 134 * 135 * Return: QDF_STATUS_SUCCESS on Success, other QDF_STATUS error codes on 136 * failure 137 */ 138 QDF_STATUS 139 wlan_cp_stats_infra_cp_register_resp_cb(struct wlan_objmgr_psoc *psoc, 140 struct infra_cp_stats_cmd_info *req); 141 142 /** 143 * wlan_cp_stats_infra_cp_get_context() - get the context and callback 144 * for sending response 145 * @psoc: pointer to psoc object 146 * @resp_cb: pointer to store the response callback 147 * @context: pointer to store context 148 * 149 * Return: QDF_STATUS_SUCCESS on Success, other QDF_STATUS error codes on 150 * failure 151 */ 152 QDF_STATUS 153 wlan_cp_stats_infra_cp_get_context(struct wlan_objmgr_psoc *psoc, 154 get_infra_cp_stats_cb *resp_cb, 155 void **context); 156 /** 157 * wlan_cp_stats_send_infra_cp_req() - API to send infra cp stats request to 158 * lmac 159 * @psoc: pointer to psoc object 160 * @req: pointer to infra cp stats request 161 * 162 * Return: QDF_STATUS_SUCCESS on Success, other QDF_STATUS error codes on 163 * failure 164 */ 165 QDF_STATUS 166 wlan_cp_stats_send_infra_cp_req(struct wlan_objmgr_psoc *psoc, 167 struct infra_cp_stats_cmd_info *req); 168 #endif /* WLAN_SUPPORT_INFRA_CTRL_PATH_STATS */ 169 170 #ifdef WLAN_TELEMETRY_STATS_SUPPORT 171 /** 172 * wlan_cp_stats_send_telemetry_cp_req() - API to send telemetry cp stats 173 * request to lmac 174 * @pdev: pointer to pdev object 175 * @req: pointer to telemetry cp stats request 176 * 177 * Return: QDF_STATUS_SUCCESS on Success, other QDF_STATUS error codes on 178 * failure 179 */ 180 QDF_STATUS 181 wlan_cp_stats_send_telemetry_cp_req(struct wlan_objmgr_pdev *pdev, 182 struct infra_cp_stats_cmd_info *req); 183 #endif 184 185 #if defined(WLAN_SUPPORT_TWT) && defined (WLAN_TWT_CONV_SUPPORTED) 186 /** 187 * wlan_cp_stats_twt_get_peer_session_params() - Retrieve peer twt session 188 * parameters 189 * @psoc: psoc object 190 * @params: array of pointer to store peer twt session parameters 191 * 192 * Return: total number of valid TWT sessions 193 */ 194 int wlan_cp_stats_twt_get_peer_session_params( 195 struct wlan_objmgr_psoc *psoc, 196 struct twt_session_stats_info *params); 197 #endif 198 199 #endif /* QCA_SUPPORT_CP_STATS */ 200 #endif /* __WLAN_CP_STATS_OBJ_MGR_HANDLER_H__ */ 201