xref: /wlan-dirver/qca-wifi-host-cmn/iot_sim/dispatcher/inc/wlan_iot_sim_utils_api.h (revision 70a19e16789e308182f63b15c75decec7bf0b342)
1 /*
2  * Copyright (c) 2020, The Linux Foundation. All rights reserved.
3  * Copyright (c) 2023 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 #ifndef _WLAN_IOT_SIM_UTILS_API_H_
19 #define _WLAN_IOT_SIM_UTILS_API_H_
20 
21 #include <wlan_objmgr_cmn.h>
22 #include <wlan_lmac_if_def.h>
23 #include <wmi_unified_param.h>
24 #include "include/wlan_pdev_mlme.h"
25 #include "wlan_pdev_mlme_api.h"
26 
27 /* Forward Declarations */
28 struct wmi_iot_sim_cmd_ops;
29 
30 /**
31  * struct iot_sim_cbacks - IOT Sim callbacks
32  * @update_beacon_trigger: reg_beacon_trigger_handler
33  */
34 struct iot_sim_cbacks {
35 	void (*update_beacon_trigger)(mlme_pdev_ext_t *);
36 };
37 
38 /**
39  * iot_sim_cmd_handler() - IOT SIM frame handler function
40  * @vdev: vdev object.
41  * @buf: skb
42  * @bcn_param:
43  * @tx: TRUE in case of Tx
44  * @param: mgmt_rx_event_params
45  *
46  * Return : QDF_STATUS_E_SUCCESS/QDF_STATUS_E_FAILURE.
47  */
48 QDF_STATUS iot_sim_cmd_handler(struct wlan_objmgr_vdev *vdev, qdf_nbuf_t buf,
49 			       struct beacon_tmpl_params *bcn_param, bool tx,
50 			       struct mgmt_rx_event_params *param);
51 
52 /**
53  * wlan_iot_sim_init() - API to init iot_sim component
54  *
55  * This API is invoked from dispatcher init during all component init.
56  * This API will register all required handlers for pdev and peer object
57  * create/delete notification.
58  *
59  * Return: SUCCESS,
60  *         Failure
61  */
62 QDF_STATUS wlan_iot_sim_init(void);
63 
64 /**
65  * wlan_iot_sim_deinit() - API to deinit iot_sim component
66  *
67  * This API is invoked from dispatcher deinit during all component deinit.
68  * This API will unregister all registered handlers for pdev and peer object
69  * create/delete notification.
70  *
71  * Return: SUCCESS,
72  *         Failure
73  */
74 QDF_STATUS wlan_iot_sim_deinit(void);
75 
76 /**
77  * wlan_lmac_if_iot_sim_register_rx_ops() - Register lmac interface Rx
78  * operations
79  * @rx_ops: Pointer to lmac interface Rx operations structure
80  *
81  * API to register iot_sim related lmac interface Rx operations
82  *
83  * Return: None
84  */
85 void wlan_lmac_if_iot_sim_register_rx_ops(struct wlan_lmac_if_rx_ops *rx_ops);
86 
87 /**
88  * wlan_register_wmi_iot_sim_cmd_ops() - Register operations related to wmi
89  * commands on iot_sim parameters
90  * @pdev: the physical device object
91  * @cmd_ops: pointer to the structure holding the operations
92  *	     related to wmi commands on iot_sim parameters
93  *
94  * API to register operations related to wmi commands on iot_sim parameters
95  *
96  * Return: None
97  */
98 void
99 wlan_register_wmi_iot_sim_cmd_ops(struct wlan_objmgr_pdev *pdev,
100 				  struct wmi_iot_sim_cmd_ops *cmd_ops);
101 
102 #endif /* _WLAN_IOT_SIM_UTILS_API_H_*/
103