xref: /wlan-dirver/qca-wifi-host-cmn/umac/cp_stats/core/src/wlan_cp_stats_obj_mgr_handler.h (revision 2f4b444fb7e689b83a4ab0e7b3b38f0bf4def8e0)
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