xref: /wlan-dirver/qca-wifi-host-cmn/umac/cp_stats/core/src/wlan_cp_stats_obj_mgr_handler.h (revision 4865edfd190c086bbe2c69aae12a8226f877b91e)
1 /*
2  * Copyright (c) 2018 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 #ifdef QCA_SUPPORT_CP_STATS_DA
38 #include "wlan_cp_stats_da_api.h"
39 #else
40 #include "wlan_cp_stats_defs.h"
41 #endif
42 
43 /**
44  * wlan_cp_stats_psoc_obj_create_handler() - psoc create notification handler
45  * callback function
46  * @psoc:		pointer to psoc object
47  * @data:		pointer to arg data
48  *
49  * Return: QDF_STATUS - Success or Failure
50  */
51 QDF_STATUS wlan_cp_stats_psoc_obj_create_handler(
52 		struct wlan_objmgr_psoc *psoc, void *data);
53 
54 /**
55  * wlan_cp_stats_psoc_obj_destroy_handler() - psoc destroy notification handler
56  * callback function
57  * @psoc:		pointer to psoc object
58  * @data:		pointer to arg data
59  *
60  * Return: QDF_STATUS - Success or Failure
61  */
62 QDF_STATUS wlan_cp_stats_psoc_obj_destroy_handler(
63 		struct wlan_objmgr_psoc *psoc, void *data);
64 
65 /**
66  * wlan_cp_stats_pdev_obj_create_handler() - Pdev create notification handler
67  * callback function
68  * @pdev:		pointer to pdev object
69  * @data:		pointer to arg data
70  *
71  * Return: QDF_STATUS - Success or Failure
72  */
73 QDF_STATUS wlan_cp_stats_pdev_obj_create_handler(
74 		struct wlan_objmgr_pdev *pdev, void *data);
75 
76 /**
77  * wlan_cp_stats_pdev_obj_destroy_handler() - Pdev destroy notification handler
78  * callback function
79  * @pdev:		pointer to pdev object
80  * @data:		pointer to arg data
81  *
82  * Return: QDF_STATUS - Success or Failure
83  */
84 QDF_STATUS wlan_cp_stats_pdev_obj_destroy_handler(
85 		struct wlan_objmgr_pdev *pdev, void *data);
86 
87 /**
88  * wlan_cp_stats_vdev_obj_create_handler() - vdev create notification handler
89  * callback function
90  * @vdev:		pointer to vdev object
91  * @data:		pointer to arg data
92  *
93  * Return: QDF_STATUS - Success or Failure
94  */
95 QDF_STATUS wlan_cp_stats_vdev_obj_create_handler(
96 		struct wlan_objmgr_vdev *vdev, void *data);
97 
98 /**
99  * wlan_cp_stats_vdev_obj_destroy_handler() - vdev destroy notification handler
100  * callback function
101  * @vdev:		pointer to vdev object
102  * @data:		pointer to arg data
103  *
104  * Return: QDF_STATUS - Success or Failure
105  */
106 QDF_STATUS wlan_cp_stats_vdev_obj_destroy_handler(
107 		struct wlan_objmgr_vdev *vdev, void *data);
108 
109 /**
110  * wlan_cp_stats_peer_obj_create_handler() - peer create notification handler
111  * callback function
112  * @peer:		pointer to peer object
113  * @data:		pointer to arg data
114  *
115  * Return: QDF_STATUS - Success or Failure
116  */
117 QDF_STATUS wlan_cp_stats_peer_obj_create_handler(
118 		struct wlan_objmgr_peer *peer, void *data);
119 
120 /**
121  * wlan_cp_stats_peer_obj_destroy_handler() - peer destroy notification handler
122  * callback function
123  * @peer:		pointer to peer object
124  * @data:		pointer to arg data
125  *
126  * Return: QDF_STATUS - Success or Failure
127  */
128 QDF_STATUS wlan_cp_stats_peer_obj_destroy_handler(
129 		struct wlan_objmgr_peer *peer, void *data);
130 
131 #ifndef QCA_SUPPORT_CP_STATS_DA
132 static inline
133 QDF_STATUS wlan_cp_stats_ctx_init_da(struct cp_stats_context *csc)
134 {
135 	return QDF_STATUS_SUCCESS;
136 }
137 
138 static inline
139 QDF_STATUS wlan_cp_stats_ctx_deinit_da(struct cp_stats_context *csc)
140 {
141 	return QDF_STATUS_SUCCESS;
142 }
143 #endif
144 
145 #endif /* QCA_SUPPORT_CP_STATS */
146 #endif /* __WLAN_CP_STATS_OBJ_MGR_HANDLER_H__ */
147