xref: /wlan-dirver/qca-wifi-host-cmn/umac/scan/dispatcher/inc/wlan_scan_tgt_api.h (revision 928e3ecad0fabf5320100a0d8fbde785757aa071)
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