xref: /wlan-dirver/qca-wifi-host-cmn/wmi/src/wmi_unified_nan_api.c (revision 503663c6daafffe652fa360bde17243568cd6d2a)
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
59 wmi_unified_ndp_initiator_req_cmd_send(wmi_unified_t wmi_handle,
60 				       struct nan_datapath_initiator_req *req)
61 {
62 	if (wmi_handle->ops->send_ndp_initiator_req_cmd)
63 		return wmi_handle->ops->send_ndp_initiator_req_cmd(wmi_handle,
64 								   req);
65 
66 	return QDF_STATUS_E_FAILURE;
67 }
68 
69 QDF_STATUS
70 wmi_unified_ndp_responder_req_cmd_send(wmi_unified_t wmi_handle,
71 				       struct nan_datapath_responder_req *req)
72 {
73 	if (wmi_handle->ops->send_ndp_responder_req_cmd)
74 		return wmi_handle->ops->send_ndp_responder_req_cmd(wmi_handle,
75 								   req);
76 
77 	return QDF_STATUS_E_FAILURE;
78 }
79 
80 QDF_STATUS wmi_unified_terminate_all_ndps_req_cmd(wmi_unified_t wmi_handle,
81 						  uint32_t vdev_id)
82 {
83 	if (wmi_handle->ops->send_terminate_all_ndps_req_cmd)
84 		return wmi_handle->ops->send_terminate_all_ndps_req_cmd(
85 								     wmi_handle,
86 								     vdev_id);
87 
88 	return QDF_STATUS_E_FAILURE;
89 }
90 
91 QDF_STATUS wmi_unified_ndp_end_req_cmd_send(wmi_unified_t wmi_handle,
92 					    struct nan_datapath_end_req *req)
93 {
94 	if (wmi_handle->ops->send_ndp_end_req_cmd)
95 		return wmi_handle->ops->send_ndp_end_req_cmd(wmi_handle,
96 							     req);
97 
98 	return QDF_STATUS_E_FAILURE;
99 }
100 
101 QDF_STATUS wmi_extract_ndp_initiator_rsp(wmi_unified_t wmi_handle,
102 			uint8_t *data, struct nan_datapath_initiator_rsp *rsp)
103 {
104 	if (wmi_handle->ops->extract_ndp_initiator_rsp)
105 		return wmi_handle->ops->extract_ndp_initiator_rsp(wmi_handle,
106 								  data, rsp);
107 
108 	return QDF_STATUS_E_FAILURE;
109 }
110 
111 QDF_STATUS wmi_extract_ndp_ind(wmi_unified_t wmi_handle, uint8_t *data,
112 			       struct nan_datapath_indication_event *ind)
113 {
114 	if (wmi_handle->ops->extract_ndp_ind)
115 		return wmi_handle->ops->extract_ndp_ind(wmi_handle,
116 							data, ind);
117 
118 	return QDF_STATUS_E_FAILURE;
119 }
120 
121 QDF_STATUS wmi_extract_ndp_confirm(wmi_unified_t wmi_handle, uint8_t *data,
122 				   struct nan_datapath_confirm_event *ev)
123 {
124 	if (wmi_handle->ops->extract_ndp_confirm)
125 		return wmi_handle->ops->extract_ndp_confirm(wmi_handle,
126 							    data, ev);
127 
128 	return QDF_STATUS_E_FAILURE;
129 }
130 
131 QDF_STATUS wmi_extract_ndp_responder_rsp(wmi_unified_t wmi_handle,
132 					 uint8_t *data,
133 					 struct nan_datapath_responder_rsp *rsp)
134 {
135 	if (wmi_handle->ops->extract_ndp_responder_rsp)
136 		return wmi_handle->ops->extract_ndp_responder_rsp(wmi_handle,
137 								  data, rsp);
138 
139 	return QDF_STATUS_E_FAILURE;
140 }
141 
142 QDF_STATUS wmi_extract_ndp_end_rsp(wmi_unified_t wmi_handle, uint8_t *data,
143 				   struct nan_datapath_end_rsp_event *rsp)
144 {
145 	if (wmi_handle->ops->extract_ndp_end_rsp)
146 		return wmi_handle->ops->extract_ndp_end_rsp(wmi_handle,
147 							    data, rsp);
148 
149 	return QDF_STATUS_E_FAILURE;
150 }
151 
152 QDF_STATUS wmi_extract_ndp_end_ind(wmi_unified_t wmi_handle, uint8_t *data,
153 				struct nan_datapath_end_indication_event **ind)
154 {
155 	if (wmi_handle->ops->extract_ndp_end_ind)
156 		return wmi_handle->ops->extract_ndp_end_ind(wmi_handle,
157 							    data, ind);
158 
159 	return QDF_STATUS_E_FAILURE;
160 }
161 
162 QDF_STATUS wmi_extract_ndp_sch_update(wmi_unified_t wmi_handle, uint8_t *data,
163 				    struct nan_datapath_sch_update_event *ind)
164 {
165 	if (wmi_handle->ops->extract_ndp_sch_update)
166 		return wmi_handle->ops->extract_ndp_sch_update(wmi_handle,
167 							       data, ind);
168 
169 	return QDF_STATUS_E_FAILURE;
170 }
171 
172 QDF_STATUS wmi_extract_ndp_host_event(wmi_unified_t wmi_handle, uint8_t *data,
173 				      struct nan_datapath_host_event *evt)
174 {
175 	if (wmi_handle->ops->extract_ndp_host_event)
176 		return wmi_handle->ops->extract_ndp_host_event(wmi_handle,
177 							       data, evt);
178 
179 	return QDF_STATUS_E_FAILURE;
180 }
181