1 /* 2 * Copyright (c) 2020, 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 api 19 */ 20 #include "wlan_if_mgr_public_struct.h" 21 #include "wlan_if_mgr_api.h" 22 #include "wlan_if_mgr_sta.h" 23 #include "wlan_if_mgr_ap.h" 24 #include "wlan_if_mgr_main.h" 25 #include "wlan_if_mgr_roam.h" 26 27 QDF_STATUS if_mgr_deliver_event(struct wlan_objmgr_vdev *vdev, 28 enum wlan_if_mgr_evt event, 29 struct if_mgr_event_data *event_data) 30 { 31 struct wlan_objmgr_psoc *psoc; 32 QDF_STATUS status; 33 34 psoc = wlan_vdev_get_psoc(vdev); 35 if (!psoc) 36 return QDF_STATUS_E_FAILURE; 37 38 ifmgr_debug("IF MGR event received: %d", event); 39 40 switch (event) { 41 case WLAN_IF_MGR_EV_CONNECT_START: 42 status = if_mgr_connect_start(vdev, event_data); 43 break; 44 case WLAN_IF_MGR_EV_CONNECT_COMPLETE: 45 status = if_mgr_connect_complete(vdev, event_data); 46 break; 47 case WLAN_IF_MGR_EV_AP_START_BSS: 48 status = if_mgr_ap_start_bss(vdev, event_data); 49 break; 50 case WLAN_IF_MGR_EV_AP_START_BSS_COMPLETE: 51 status = if_mgr_ap_start_bss_complete(vdev, event_data); 52 break; 53 case WLAN_IF_MGR_EV_AP_STOP_BSS: 54 status = if_mgr_ap_stop_bss(vdev, event_data); 55 break; 56 case WLAN_IF_MGR_EV_AP_STOP_BSS_COMPLETE: 57 status = if_mgr_ap_stop_bss_complete(vdev, event_data); 58 break; 59 case WLAN_IF_MGR_EV_DISCONNECT_START: 60 status = if_mgr_disconnect_start(vdev, event_data); 61 break; 62 case WLAN_IF_MGR_EV_DISCONNECT_COMPLETE: 63 status = if_mgr_disconnect_complete(vdev, event_data); 64 break; 65 case WLAN_IF_MGR_EV_VALIDATE_CANDIDATE: 66 status = if_mgr_validate_candidate(vdev, event_data); 67 break; 68 default: 69 status = QDF_STATUS_E_INVAL; 70 ifmgr_err("Invalid event"); 71 break; 72 } 73 74 return status; 75 } 76