1 /* 2 * Copyright (c) 2018, 2021 The Linux Foundation. All rights reserved. 3 * 4 * 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 19 /** 20 * DOC: wlan_cp_stats_obj_mgr_handler.h 21 * 22 * This header file provide declarations for APIs to handle events from object 23 * manager for registered events from wlan_cp_stats_init() 24 */ 25 26 #ifndef __WLAN_CP_STATS_OBJ_MGR_HANDLER_H__ 27 #define __WLAN_CP_STATS_OBJ_MGR_HANDLER_H__ 28 29 #ifdef QCA_SUPPORT_CP_STATS 30 #include <wlan_objmgr_cmn.h> 31 #include <wlan_objmgr_global_obj.h> 32 #include <wlan_objmgr_psoc_obj.h> 33 #include <wlan_objmgr_pdev_obj.h> 34 #include <wlan_objmgr_vdev_obj.h> 35 #include <wlan_objmgr_peer_obj.h> 36 37 #include "wlan_cp_stats_defs.h" 38 39 /** 40 * wlan_cp_stats_psoc_obj_create_handler() - psoc create notification handler 41 * callback function 42 * @psoc: pointer to psoc object 43 * @data: pointer to arg data 44 * 45 * Return: QDF_STATUS - Success or Failure 46 */ 47 QDF_STATUS wlan_cp_stats_psoc_obj_create_handler( 48 struct wlan_objmgr_psoc *psoc, void *data); 49 50 /** 51 * wlan_cp_stats_psoc_obj_destroy_handler() - psoc destroy notification handler 52 * callback function 53 * @psoc: pointer to psoc object 54 * @data: pointer to arg data 55 * 56 * Return: QDF_STATUS - Success or Failure 57 */ 58 QDF_STATUS wlan_cp_stats_psoc_obj_destroy_handler( 59 struct wlan_objmgr_psoc *psoc, void *data); 60 61 /** 62 * wlan_cp_stats_pdev_obj_create_handler() - Pdev create notification handler 63 * callback function 64 * @pdev: pointer to pdev object 65 * @data: pointer to arg data 66 * 67 * Return: QDF_STATUS - Success or Failure 68 */ 69 QDF_STATUS wlan_cp_stats_pdev_obj_create_handler( 70 struct wlan_objmgr_pdev *pdev, void *data); 71 72 /** 73 * wlan_cp_stats_pdev_obj_destroy_handler() - Pdev destroy notification handler 74 * callback function 75 * @pdev: pointer to pdev object 76 * @data: pointer to arg data 77 * 78 * Return: QDF_STATUS - Success or Failure 79 */ 80 QDF_STATUS wlan_cp_stats_pdev_obj_destroy_handler( 81 struct wlan_objmgr_pdev *pdev, void *data); 82 83 /** 84 * wlan_cp_stats_vdev_obj_create_handler() - vdev create notification handler 85 * callback function 86 * @vdev: pointer to vdev object 87 * @data: pointer to arg data 88 * 89 * Return: QDF_STATUS - Success or Failure 90 */ 91 QDF_STATUS wlan_cp_stats_vdev_obj_create_handler( 92 struct wlan_objmgr_vdev *vdev, void *data); 93 94 /** 95 * wlan_cp_stats_vdev_obj_destroy_handler() - vdev destroy notification handler 96 * callback function 97 * @vdev: pointer to vdev object 98 * @data: pointer to arg data 99 * 100 * Return: QDF_STATUS - Success or Failure 101 */ 102 QDF_STATUS wlan_cp_stats_vdev_obj_destroy_handler( 103 struct wlan_objmgr_vdev *vdev, void *data); 104 105 /** 106 * wlan_cp_stats_peer_obj_create_handler() - peer create notification handler 107 * callback function 108 * @peer: pointer to peer object 109 * @data: pointer to arg data 110 * 111 * Return: QDF_STATUS - Success or Failure 112 */ 113 QDF_STATUS wlan_cp_stats_peer_obj_create_handler( 114 struct wlan_objmgr_peer *peer, void *data); 115 116 /** 117 * wlan_cp_stats_peer_obj_destroy_handler() - peer destroy notification handler 118 * callback function 119 * @peer: pointer to peer object 120 * @data: pointer to arg data 121 * 122 * Return: QDF_STATUS - Success or Failure 123 */ 124 QDF_STATUS wlan_cp_stats_peer_obj_destroy_handler( 125 struct wlan_objmgr_peer *peer, void *data); 126 127 #ifdef WLAN_SUPPORT_INFRA_CTRL_PATH_STATS 128 /** 129 * wlan_cp_stats_infra_cp_register_resp_cb() - Register the response callback 130 * and cookie in the psoc mc_stats object 131 * @psoc: pointer to psoc object 132 * @req: pointer to request parameter structure 133 * 134 * Return: QDF_STATUS_SUCCESS on Success, other QDF_STATUS error codes on 135 * failure 136 */ 137 QDF_STATUS 138 wlan_cp_stats_infra_cp_register_resp_cb(struct wlan_objmgr_psoc *psoc, 139 struct infra_cp_stats_cmd_info *req); 140 141 /** 142 * wlan_cp_stats_infra_cp_get_context() - get the context and callback 143 * for sending response 144 * @psoc: pointer to psoc object 145 * @resp_cb: pointer to store the response callback 146 * @context: pointer to store context 147 * 148 * Return: QDF_STATUS_SUCCESS on Success, other QDF_STATUS error codes on 149 * failure 150 */ 151 QDF_STATUS 152 wlan_cp_stats_infra_cp_get_context(struct wlan_objmgr_psoc *psoc, 153 get_infra_cp_stats_cb *resp_cb, 154 void **context); 155 /** 156 * wlan_cp_stats_send_infra_cp_req() - API to send infra cp stats request to 157 * lmac 158 * @psoc: pointer to psoc object 159 * @req: pointer to infra cp stats request 160 * 161 * Return: QDF_STATUS_SUCCESS on Success, other QDF_STATUS error codes on 162 * failure 163 */ 164 QDF_STATUS 165 wlan_cp_stats_send_infra_cp_req(struct wlan_objmgr_psoc *psoc, 166 struct infra_cp_stats_cmd_info *req); 167 168 #endif /* WLAN_SUPPORT_INFRA_CTRL_PATH_STATS */ 169 #endif /* QCA_SUPPORT_CP_STATS */ 170 #endif /* __WLAN_CP_STATS_OBJ_MGR_HANDLER_H__ */ 171