1 /* 2 * Copyright (c) 2020-2021, The Linux Foundation. All rights reserved. 3 * 4 * Permission to use, copy, modify, and/or distribute this software for any 5 * purpose with or without fee is hereby granted, provided that the above 6 * copyright notice and this permission notice appear in all copies. 7 * 8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 */ 16 17 /* 18 * DOC: contains interface manager public file containing AP event handlers 19 */ 20 21 #ifndef _WLAN_IF_MGR_AP_H_ 22 #define _WLAN_IF_MGR_AP_H_ 23 24 /** 25 * if_mgr_ap_start_bss() - Start BSS event handler 26 * @vdev: vdev object 27 * @event_data: Interface mgr event data 28 * 29 * Interface manager start bss event handler 30 * 31 * Context: It should run in thread context 32 * 33 * Return: QDF_STATUS 34 */ 35 QDF_STATUS 36 if_mgr_ap_start_bss(struct wlan_objmgr_vdev *vdev, 37 struct if_mgr_event_data *event_data); 38 39 /** 40 * if_mgr_ap_start_bss_complete() - Start BSS complete event handler 41 * @vdev: vdev object 42 * @event_data: Interface mgr event data 43 * 44 * Interface manager start bss complete event handler 45 * 46 * Context: It should run in thread context 47 * 48 * Return: QDF_STATUS 49 */ 50 QDF_STATUS 51 if_mgr_ap_start_bss_complete(struct wlan_objmgr_vdev *vdev, 52 struct if_mgr_event_data *event_data); 53 54 /** 55 * if_mgr_ap_stop_bss() - Stop BSS event handler 56 * @vdev: vdev object 57 * @event_data: Interface mgr event data 58 * 59 * Interface manager stop bss event handler 60 * 61 * Context: It should run in thread context 62 * 63 * Return: QDF_STATUS 64 */ 65 QDF_STATUS 66 if_mgr_ap_stop_bss(struct wlan_objmgr_vdev *vdev, 67 struct if_mgr_event_data *event_data); 68 69 /** 70 * if_mgr_ap_stop_bss_complete() - Stop BSS event complete handler 71 * @vdev: vdev object 72 * @event_data: Interface mgr event data 73 * 74 * Interface manager stop bss complete event handler 75 * 76 * Context: It should run in thread context 77 * 78 * Return: QDF_STATUS 79 */ 80 QDF_STATUS 81 if_mgr_ap_stop_bss_complete(struct wlan_objmgr_vdev *vdev, 82 struct if_mgr_event_data *event_data); 83 84 #if defined WLAN_MBSS 85 /** 86 * if_mgr_ap_start_acs() - ACS start event handler 87 * @vdev: vdev object 88 * @event_data: Interface mgr event data 89 * 90 * This function handles the ACS start event for interface 91 * manager 92 * 93 * Context: It can run in process/tasklet context 94 * 95 * Return: QDF_STATUS 96 */ 97 QDF_STATUS if_mgr_ap_start_acs(struct wlan_objmgr_vdev *vdev, 98 struct if_mgr_event_data *event_data); 99 100 /** 101 * if_mgr_ap_stop_acs() - ACS stop event handler 102 * @vdev: vdev object 103 * @event_data: Interface mgr event data 104 * 105 * This function handles the ACS stop event for interface 106 * manager 107 * 108 * Context: It can run in process/tasklet context 109 * 110 * Return: QDF_STATUS 111 */ 112 QDF_STATUS if_mgr_ap_stop_acs(struct wlan_objmgr_vdev *vdev, 113 struct if_mgr_event_data *event_data); 114 115 /** 116 * if_mgr_ap_done_acs() - ACS done event handler 117 * @vdev: vdev object 118 * @event_data: Interface mgr event data 119 * 120 * This function handles the ACS stop event for interface 121 * manager 122 * 123 * Context: It can run in process/tasklet context 124 * 125 * Return: QDF_STATUS 126 */ 127 QDF_STATUS if_mgr_ap_done_acs(struct wlan_objmgr_vdev *vdev, 128 struct if_mgr_event_data *event_data); 129 130 /** 131 * if_mgr_ap_cancel_acs() - ACS cancel event handler 132 * @vdev: vdev object 133 * @event_data: Interface mgr event data 134 * 135 * This function handles the ACS cancel event for interface 136 * manager 137 * 138 * Context: It can run in process/tasklet context 139 * 140 * Return: QDF_STATUS 141 */ 142 QDF_STATUS if_mgr_ap_cancel_acs(struct wlan_objmgr_vdev *vdev, 143 struct if_mgr_event_data *event_data); 144 145 /** 146 * if_mgr_ap_start_ht40() - HT40 scan start event handler 147 * @vdev: vdev object 148 * @event_data: Interface mgr event data 149 * 150 * This function handles the HT40 scan start event for interface 151 * manager 152 * 153 * Context: It can run in process/tasklet context 154 * 155 * Return: QDF_STATUS 156 */ 157 QDF_STATUS if_mgr_ap_start_ht40(struct wlan_objmgr_vdev *vdev, 158 struct if_mgr_event_data *event_data); 159 160 /** 161 * if_mgr_ap_stop_ht40() - HT40 scan stop event handler 162 * @vdev: vdev object 163 * @event_data: Interface mgr event data 164 * 165 * This function handles the HT40 scan stop event for interface 166 * manager 167 * 168 * Context: It can run in process/tasklet context 169 * 170 * Return: QDF_STATUS 171 */ 172 QDF_STATUS if_mgr_ap_stop_ht40(struct wlan_objmgr_vdev *vdev, 173 struct if_mgr_event_data *event_data); 174 175 /** 176 * if_mgr_ap_done_ht40() - HT40 scan done event handler 177 * @vdev: vdev object 178 * @event_data: Interface mgr event data 179 * 180 * This function handles the HT40 scan done event for interface 181 * manager 182 * 183 * Context: It can run in process/tasklet context 184 * 185 * Return: QDF_STATUS 186 */ 187 QDF_STATUS if_mgr_ap_done_ht40(struct wlan_objmgr_vdev *vdev, 188 struct if_mgr_event_data *event_data); 189 190 /** 191 * if_mgr_ap_cancel_ht40() - HT40 scan cancel event handler 192 * @vdev: vdev object 193 * @event_data: Interface mgr event data 194 * 195 * This function handles the HT40 scan cancel event for interface 196 * manager 197 * 198 * Context: It can run in process/tasklet context 199 * 200 * Return: QDF_STATUS 201 */ 202 QDF_STATUS if_mgr_ap_cancel_ht40(struct wlan_objmgr_vdev *vdev, 203 struct if_mgr_event_data *event_data); 204 #else 205 static inline QDF_STATUS 206 if_mgr_ap_start_acs(struct wlan_objmgr_vdev *vdev, 207 struct if_mgr_event_data *event_data) 208 { 209 return QDF_STATUS_SUCCESS; 210 } 211 212 static inline QDF_STATUS 213 if_mgr_ap_stop_acs(struct wlan_objmgr_vdev *vdev, 214 struct if_mgr_event_data *event_data) 215 { 216 return QDF_STATUS_SUCCESS; 217 } 218 219 static inline QDF_STATUS 220 if_mgr_ap_cancel_acs(struct wlan_objmgr_vdev *vdev, 221 struct if_mgr_event_data *event_data) 222 { 223 return QDF_STATUS_SUCCESS; 224 } 225 226 static inline QDF_STATUS 227 if_mgr_ap_start_ht40(struct wlan_objmgr_vdev *vdev, 228 struct if_mgr_event_data *event_data) 229 { 230 return QDF_STATUS_SUCCESS; 231 } 232 233 static inline QDF_STATUS 234 if_mgr_ap_stop_ht40(struct wlan_objmgr_vdev *vdev, 235 struct if_mgr_event_data *event_data) 236 { 237 return QDF_STATUS_SUCCESS; 238 } 239 240 static inline QDF_STATUS 241 if_mgr_ap_done_ht40(struct wlan_objmgr_vdev *vdev, 242 struct if_mgr_event_data *event_data) 243 { 244 return QDF_STATUS_SUCCESS; 245 } 246 247 static inline QDF_STATUS 248 if_mgr_ap_cancel_ht40(struct wlan_objmgr_vdev *vdev, 249 struct if_mgr_event_data *event_data) 250 { 251 return QDF_STATUS_SUCCESS; 252 } 253 #endif /* WLAN_MBSS */ 254 #endif /* _WLAN_IF_MGR_AP_H_ */ 255 256