xref: /wlan-dirver/qca-wifi-host-cmn/wmi/src/wmi_unified_nan_api.c (revision dd4dc88b837a295134aa9869114a2efee0f4894b)
1 /*
2  * Copyright (c) 2013-2019 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  * DOC: Implement API's specific to NAN component.
20  */
21 
22 #include <wmi_unified_priv.h>
23 #include <wmi_unified_nan_api.h>
24 
25 QDF_STATUS wmi_unified_nan_req_cmd(wmi_unified_t wmi_handle,
26 				   struct nan_msg_params *nan_msg)
27 {
28 	if (wmi_handle->ops->send_nan_req_cmd)
29 		return wmi_handle->ops->send_nan_req_cmd(wmi_handle,
30 							 nan_msg);
31 
32 	return QDF_STATUS_E_FAILURE;
33 }
34 
35 QDF_STATUS wmi_unified_nan_disable_req_cmd(wmi_unified_t wmi_handle,
36 					   struct nan_disable_req *nan_msg)
37 {
38 	if (wmi_handle->ops->send_nan_disable_req_cmd)
39 		return wmi_handle->ops->send_nan_disable_req_cmd(wmi_handle,
40 								 nan_msg);
41 
42 	return QDF_STATUS_E_FAILURE;
43 }
44 
45 QDF_STATUS wmi_extract_nan_event_rsp(wmi_unified_t wmi_handle, void *evt_buf,
46 				     struct nan_event_params *nan_evt_params,
47 				     uint8_t **nan_msg_buf)
48 {
49 	if (wmi_handle->ops->extract_nan_event_rsp)
50 		return wmi_handle->ops->extract_nan_event_rsp(wmi_handle,
51 							      evt_buf,
52 							      nan_evt_params,
53 							      nan_msg_buf);
54 
55 	return QDF_STATUS_E_FAILURE;
56 }
57 
58 QDF_STATUS wmi_unified_ndp_initiator_req_cmd_send(void *wmi_hdl,
59 					struct nan_datapath_initiator_req *req)
60 {
61 	wmi_unified_t wmi_handle = wmi_hdl;
62 
63 	if (wmi_handle->ops->send_ndp_initiator_req_cmd)
64 		return wmi_handle->ops->send_ndp_initiator_req_cmd(wmi_handle,
65 								   req);
66 
67 	return QDF_STATUS_E_FAILURE;
68 }
69 
70 QDF_STATUS wmi_unified_ndp_responder_req_cmd_send(void *wmi_hdl,
71 				struct nan_datapath_responder_req *req)
72 {
73 	wmi_unified_t wmi_handle = wmi_hdl;
74 
75 	if (wmi_handle->ops->send_ndp_responder_req_cmd)
76 		return wmi_handle->ops->send_ndp_responder_req_cmd(wmi_handle,
77 								   req);
78 
79 	return QDF_STATUS_E_FAILURE;
80 }
81 
82 QDF_STATUS wmi_unified_terminate_all_ndps_req_cmd(wmi_unified_t wmi_handle,
83 						  uint32_t vdev_id)
84 {
85 	if (wmi_handle->ops->send_terminate_all_ndps_req_cmd)
86 		return wmi_handle->ops->send_terminate_all_ndps_req_cmd(
87 								     wmi_handle,
88 								     vdev_id);
89 
90 	return QDF_STATUS_E_FAILURE;
91 }
92 
93 QDF_STATUS wmi_unified_ndp_end_req_cmd_send(void *wmi_hdl,
94 					    struct nan_datapath_end_req *req)
95 {
96 	wmi_unified_t wmi_handle = wmi_hdl;
97 
98 	if (wmi_handle->ops->send_ndp_end_req_cmd)
99 		return wmi_handle->ops->send_ndp_end_req_cmd(wmi_handle,
100 							     req);
101 
102 	return QDF_STATUS_E_FAILURE;
103 }
104 
105 QDF_STATUS wmi_extract_ndp_initiator_rsp(wmi_unified_t wmi_handle,
106 			uint8_t *data, struct nan_datapath_initiator_rsp *rsp)
107 {
108 	if (wmi_handle->ops->extract_ndp_initiator_rsp)
109 		return wmi_handle->ops->extract_ndp_initiator_rsp(wmi_handle,
110 								  data, rsp);
111 
112 	return QDF_STATUS_E_FAILURE;
113 }
114 
115 QDF_STATUS wmi_extract_ndp_ind(wmi_unified_t wmi_handle, uint8_t *data,
116 			       struct nan_datapath_indication_event *ind)
117 {
118 	if (wmi_handle->ops->extract_ndp_ind)
119 		return wmi_handle->ops->extract_ndp_ind(wmi_handle,
120 							data, ind);
121 
122 	return QDF_STATUS_E_FAILURE;
123 }
124 
125 QDF_STATUS wmi_extract_ndp_confirm(wmi_unified_t wmi_handle, uint8_t *data,
126 				   struct nan_datapath_confirm_event *ev)
127 {
128 	if (wmi_handle->ops->extract_ndp_confirm)
129 		return wmi_handle->ops->extract_ndp_confirm(wmi_handle,
130 							    data, ev);
131 
132 	return QDF_STATUS_E_FAILURE;
133 }
134 
135 QDF_STATUS wmi_extract_ndp_responder_rsp(wmi_unified_t wmi_handle,
136 					 uint8_t *data,
137 					 struct nan_datapath_responder_rsp *rsp)
138 {
139 	if (wmi_handle->ops->extract_ndp_responder_rsp)
140 		return wmi_handle->ops->extract_ndp_responder_rsp(wmi_handle,
141 								  data, rsp);
142 
143 	return QDF_STATUS_E_FAILURE;
144 }
145 
146 QDF_STATUS wmi_extract_ndp_end_rsp(wmi_unified_t wmi_handle, uint8_t *data,
147 				   struct nan_datapath_end_rsp_event *rsp)
148 {
149 	if (wmi_handle->ops->extract_ndp_end_rsp)
150 		return wmi_handle->ops->extract_ndp_end_rsp(wmi_handle,
151 							    data, rsp);
152 
153 	return QDF_STATUS_E_FAILURE;
154 }
155 
156 QDF_STATUS wmi_extract_ndp_end_ind(wmi_unified_t wmi_handle, uint8_t *data,
157 				struct nan_datapath_end_indication_event **ind)
158 {
159 	if (wmi_handle->ops->extract_ndp_end_ind)
160 		return wmi_handle->ops->extract_ndp_end_ind(wmi_handle,
161 							    data, ind);
162 
163 	return QDF_STATUS_E_FAILURE;
164 }
165 
166 QDF_STATUS wmi_extract_ndp_sch_update(wmi_unified_t wmi_handle, uint8_t *data,
167 				    struct nan_datapath_sch_update_event *ind)
168 {
169 	if (wmi_handle->ops->extract_ndp_sch_update)
170 		return wmi_handle->ops->extract_ndp_sch_update(wmi_handle,
171 							       data, ind);
172 
173 	return QDF_STATUS_E_FAILURE;
174 }
175 
176 QDF_STATUS wmi_extract_ndp_host_event(wmi_unified_t wmi_handle, uint8_t *data,
177 				      struct nan_datapath_host_event *evt)
178 {
179 	if (wmi_handle->ops->extract_ndp_host_event)
180 		return wmi_handle->ops->extract_ndp_host_event(wmi_handle,
181 							       data, evt);
182 
183 	return QDF_STATUS_E_FAILURE;
184 }
185