1 /* 2 * Copyright (c) 2017 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: contains scan south bound interface definitions 21 */ 22 23 #ifndef _WLAN_SCAN_TGT_API_H_ 24 #define _WLAN_SCAN_TGT_API_H_ 25 26 #include <wlan_objmgr_psoc_obj.h> 27 #include <wlan_objmgr_pdev_obj.h> 28 #include <wlan_objmgr_vdev_obj.h> 29 #include <wlan_objmgr_peer_obj.h> 30 #include <wlan_scan_public_structs.h> 31 #include <wlan_mgmt_txrx_utils_api.h> 32 33 /** 34 * tgt_scan_bcn_probe_rx_callback() - The callbeack registered to tx/rx module 35 * @psoc: psoc context 36 * @peer: peer 37 * @buf: frame buf 38 * @params: rx event params 39 * @frm_type: frame type 40 * 41 * The callbeack registered to tx/rx module and is called when beacon 42 * or probe resp is recived. This will post a msg to target_if queue. 43 * 44 * Return: success or error code. 45 */ 46 QDF_STATUS tgt_scan_bcn_probe_rx_callback(struct wlan_objmgr_psoc *psoc, 47 struct wlan_objmgr_peer *peer, qdf_nbuf_t buf, 48 struct mgmt_rx_event_params *rx_param, 49 enum mgmt_frame_type frm_type); 50 51 /** 52 * tgt_scan_event_handler() - The callbeack registered to WMI for scan events 53 * @psoc: psoc handle 54 * @event_info: event info 55 * 56 * The callbeack registered to WMI for scan events and is called 57 * event for scan is received. This will post a msg to target_if queue. 58 * 59 * Return: 0 for success or error code. 60 */ 61 QDF_STATUS 62 tgt_scan_event_handler(struct wlan_objmgr_psoc *psoc, 63 struct scan_event_info *event_info); 64 65 #ifdef FEATURE_WLAN_SCAN_PNO 66 67 /** 68 * tgt_scan_pno_start() - invoke lmac send PNO start req 69 * @vdev: vdev pointer 70 * @req: pno req params 71 * 72 * Return: 0 for success or error code. 73 */ 74 QDF_STATUS tgt_scan_pno_start(struct wlan_objmgr_vdev *vdev, 75 struct pno_scan_req_params *req); 76 77 /** 78 * tgt_scan_pno_stop() - invoke lmac send PNO stop req 79 * @vdev: vdev pointer 80 * @vdev_id: pno req params 81 * 82 * Return: 0 for success or error code. 83 */ 84 QDF_STATUS tgt_scan_pno_stop(struct wlan_objmgr_vdev *vdev, 85 uint8_t vdev_id); 86 87 #endif 88 89 /** 90 * tgt_scan_start() - invoke lmac scan start 91 * @req: scan request object 92 * 93 * This API invokes lmac API function to start scan 94 * 95 * Return: QDF_STATUS_SUCCESS for success or error code. 96 */ 97 QDF_STATUS 98 tgt_scan_start(struct scan_start_request *req); 99 100 101 /** 102 * tgt_scan_cancel() - invoke lmac scan cancel 103 * @req: scan request object 104 * 105 * This API invokes lmac API function to cancel scan 106 * 107 * Return: QDF_STATUS_SUCCESS for success or error code. 108 */ 109 QDF_STATUS 110 tgt_scan_cancel(struct scan_cancel_request *req); 111 112 /** 113 * tgt_scan_register_ev_handler() - invoke lmac register scan event handler 114 * @psoc: psoc object 115 * 116 * This API invokes lmac API function to register for scan events 117 * 118 * Return: QDF_STATUS_SUCCESS for success or error code. 119 */ 120 QDF_STATUS 121 tgt_scan_register_ev_handler(struct wlan_objmgr_psoc *psoc); 122 123 /** 124 * tgt_scan_unregister_ev_handler() - invoke lmac unregister scan event handler 125 * @psoc: psoc object 126 * 127 * This API invokes lmac API function to unregister for scan events 128 * 129 * Return: QDF_STATUS_SUCCESS for success or error code. 130 */ 131 QDF_STATUS 132 tgt_scan_unregister_ev_handler(struct wlan_objmgr_psoc *psoc); 133 #endif 134