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