xref: /wlan-dirver/qca-wifi-host-cmn/umac/cmn_services/interface_mgr/inc/wlan_if_mgr_ap.h (revision 5ee6661e575b5422cbb88a7703b46f397b551bd9)
1 /*
2  * Copyright (c) 2020-2021, The Linux Foundation. All rights reserved.
3  * Copyright (c) 2021 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 manager public file containing AP event handlers
20  */
21 
22 #ifndef _WLAN_IF_MGR_AP_H_
23 #define _WLAN_IF_MGR_AP_H_
24 
25 /**
26  * if_mgr_ap_start_bss() - Start BSS event handler
27  * @vdev: vdev object
28  * @event_data: Interface mgr event data
29  *
30  * Interface manager start bss event handler
31  *
32  * Context: It should run in thread context
33  *
34  * Return: QDF_STATUS
35  */
36 QDF_STATUS
37 if_mgr_ap_start_bss(struct wlan_objmgr_vdev *vdev,
38 		    struct if_mgr_event_data *event_data);
39 
40 /**
41  * if_mgr_ap_start_bss_complete() - Start BSS complete event handler
42  * @vdev: vdev object
43  * @event_data: Interface mgr event data
44  *
45  * Interface manager start bss complete event handler
46  *
47  * Context: It should run in thread context
48  *
49  * Return: QDF_STATUS
50  */
51 QDF_STATUS
52 if_mgr_ap_start_bss_complete(struct wlan_objmgr_vdev *vdev,
53 			     struct if_mgr_event_data *event_data);
54 
55 /**
56  * if_mgr_ap_stop_bss() - Stop BSS event handler
57  * @vdev: vdev object
58  * @event_data: Interface mgr event data
59  *
60  * Interface manager stop bss event handler
61  *
62  * Context: It should run in thread context
63  *
64  * Return: QDF_STATUS
65  */
66 QDF_STATUS
67 if_mgr_ap_stop_bss(struct wlan_objmgr_vdev *vdev,
68 		   struct if_mgr_event_data *event_data);
69 
70 /**
71  * if_mgr_ap_stop_bss_complete() - Stop BSS event complete handler
72  * @vdev: vdev object
73  * @event_data: Interface mgr event data
74  *
75  * Interface manager stop bss complete event handler
76  *
77  * Context: It should run in thread context
78  *
79  * Return: QDF_STATUS
80  */
81 QDF_STATUS
82 if_mgr_ap_stop_bss_complete(struct wlan_objmgr_vdev *vdev,
83 			    struct if_mgr_event_data *event_data);
84 #ifdef WLAN_FEATURE_P2P_P2P_STA
85 /**
86  * if_mgr_csa_complete() - CSA event complete handler
87  * @vdev: vdev object
88  * @event_data: Interface mgr event data
89  *
90  * Interface manager csa complete event handler
91  *
92  * Context: It should run in thread context
93  *
94  * Return: QDF_STATUS
95  */
96 QDF_STATUS
97 if_mgr_csa_complete(struct wlan_objmgr_vdev *vdev,
98 		    struct if_mgr_event_data *event_data);
99 #else
100 static inline QDF_STATUS
101 if_mgr_csa_complete(struct wlan_objmgr_vdev *vdev,
102 		    struct if_mgr_event_data *event_data)
103 {
104 	return QDF_STATUS_SUCCESS;
105 }
106 #endif
107 
108 #if defined WLAN_MBSS
109 /**
110  * if_mgr_ap_start_acs() - ACS start event handler
111  * @vdev: vdev object
112  * @event_data: Interface mgr event data
113  *
114  * This function handles the ACS start event for interface
115  * manager
116  *
117  * Context: It can run in process/tasklet context
118  *
119  * Return: QDF_STATUS
120  */
121 QDF_STATUS if_mgr_ap_start_acs(struct wlan_objmgr_vdev *vdev,
122 			    struct if_mgr_event_data *event_data);
123 
124 /**
125  * if_mgr_ap_stop_acs() - ACS stop event handler
126  * @vdev: vdev object
127  * @event_data: Interface mgr event data
128  *
129  * This function handles the ACS stop event for interface
130  * manager
131  *
132  * Context: It can run in process/tasklet context
133  *
134  * Return: QDF_STATUS
135  */
136 QDF_STATUS if_mgr_ap_stop_acs(struct wlan_objmgr_vdev *vdev,
137 			      struct if_mgr_event_data *event_data);
138 
139 /**
140  * if_mgr_ap_done_acs() - ACS done event handler
141  * @vdev: vdev object
142  * @event_data: Interface mgr event data
143  *
144  * This function handles the ACS stop event for interface
145  * manager
146  *
147  * Context: It can run in process/tasklet context
148  *
149  * Return: QDF_STATUS
150  */
151 QDF_STATUS if_mgr_ap_done_acs(struct wlan_objmgr_vdev *vdev,
152 			      struct if_mgr_event_data *event_data);
153 
154 /**
155  * if_mgr_ap_cancel_acs() - ACS cancel event handler
156  * @vdev: vdev object
157  * @event_data: Interface mgr event data
158  *
159  * This function handles the ACS cancel event for interface
160  * manager
161  *
162  * Context: It can run in process/tasklet context
163  *
164  * Return: QDF_STATUS
165  */
166 QDF_STATUS if_mgr_ap_cancel_acs(struct wlan_objmgr_vdev *vdev,
167 				struct if_mgr_event_data *event_data);
168 
169 /**
170  * if_mgr_ap_start_ht40() - HT40 scan start event handler
171  * @vdev: vdev object
172  * @event_data: Interface mgr event data
173  *
174  * This function handles the HT40 scan start event for interface
175  * manager
176  *
177  * Context: It can run in process/tasklet context
178  *
179  * Return: QDF_STATUS
180  */
181 QDF_STATUS if_mgr_ap_start_ht40(struct wlan_objmgr_vdev *vdev,
182 				struct if_mgr_event_data *event_data);
183 
184 /**
185  * if_mgr_ap_stop_ht40() - HT40 scan stop event handler
186  * @vdev: vdev object
187  * @event_data: Interface mgr event data
188  *
189  * This function handles the HT40 scan stop event for interface
190  * manager
191  *
192  * Context: It can run in process/tasklet context
193  *
194  * Return: QDF_STATUS
195  */
196 QDF_STATUS if_mgr_ap_stop_ht40(struct wlan_objmgr_vdev *vdev,
197 			       struct if_mgr_event_data *event_data);
198 
199 /**
200  * if_mgr_ap_done_ht40() - HT40 scan done event handler
201  * @vdev: vdev object
202  * @event_data: Interface mgr event data
203  *
204  * This function handles the HT40 scan done event for interface
205  * manager
206  *
207  * Context: It can run in process/tasklet context
208  *
209  * Return: QDF_STATUS
210  */
211 QDF_STATUS if_mgr_ap_done_ht40(struct wlan_objmgr_vdev *vdev,
212 			       struct if_mgr_event_data *event_data);
213 
214 /**
215  * if_mgr_ap_cancel_ht40() - HT40 scan cancel event handler
216  * @vdev: vdev object
217  * @event_data: Interface mgr event data
218  *
219  * This function handles the HT40 scan cancel event for interface
220  * manager
221  *
222  * Context: It can run in process/tasklet context
223  *
224  * Return: QDF_STATUS
225  */
226 QDF_STATUS if_mgr_ap_cancel_ht40(struct wlan_objmgr_vdev *vdev,
227 				 struct if_mgr_event_data *event_data);
228 #else
229 static inline QDF_STATUS
230 if_mgr_ap_start_acs(struct wlan_objmgr_vdev *vdev,
231 		    struct if_mgr_event_data *event_data)
232 {
233 	return QDF_STATUS_SUCCESS;
234 }
235 
236 static inline QDF_STATUS
237 if_mgr_ap_stop_acs(struct wlan_objmgr_vdev *vdev,
238 		   struct if_mgr_event_data *event_data)
239 {
240 	return QDF_STATUS_SUCCESS;
241 }
242 
243 static inline QDF_STATUS
244 if_mgr_ap_cancel_acs(struct wlan_objmgr_vdev *vdev,
245 		     struct if_mgr_event_data *event_data)
246 {
247 	return QDF_STATUS_SUCCESS;
248 }
249 
250 static inline QDF_STATUS
251 if_mgr_ap_start_ht40(struct wlan_objmgr_vdev *vdev,
252 		     struct if_mgr_event_data *event_data)
253 {
254 	return QDF_STATUS_SUCCESS;
255 }
256 
257 static inline QDF_STATUS
258 if_mgr_ap_stop_ht40(struct wlan_objmgr_vdev *vdev,
259 		    struct if_mgr_event_data *event_data)
260 {
261 	return QDF_STATUS_SUCCESS;
262 }
263 
264 static inline QDF_STATUS
265 if_mgr_ap_done_ht40(struct wlan_objmgr_vdev *vdev,
266 		    struct if_mgr_event_data *event_data)
267 {
268 	return QDF_STATUS_SUCCESS;
269 }
270 
271 static inline QDF_STATUS
272 if_mgr_ap_cancel_ht40(struct wlan_objmgr_vdev *vdev,
273 		      struct if_mgr_event_data *event_data)
274 {
275 	return QDF_STATUS_SUCCESS;
276 }
277 #endif /* WLAN_MBSS */
278 #endif /* _WLAN_IF_MGR_AP_H_ */
279 
280