xref: /wlan-dirver/qca-wifi-host-cmn/wmi/src/wmi_unified_nan_api.c (revision 1397a33f48ea6455be40871470b286e535820eb8)
1 /*
2  * Copyright (c) 2013-2018 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_ndp_end_req_cmd_send(void *wmi_hdl,
83 					    struct nan_datapath_end_req *req)
84 {
85 	wmi_unified_t wmi_handle = wmi_hdl;
86 
87 	if (wmi_handle->ops->send_ndp_end_req_cmd)
88 		return wmi_handle->ops->send_ndp_end_req_cmd(wmi_handle,
89 							     req);
90 
91 	return QDF_STATUS_E_FAILURE;
92 }
93 
94 QDF_STATUS wmi_extract_ndp_initiator_rsp(wmi_unified_t wmi_handle,
95 			uint8_t *data, struct nan_datapath_initiator_rsp *rsp)
96 {
97 	if (wmi_handle->ops->extract_ndp_initiator_rsp)
98 		return wmi_handle->ops->extract_ndp_initiator_rsp(wmi_handle,
99 								  data, rsp);
100 
101 	return QDF_STATUS_E_FAILURE;
102 }
103 
104 QDF_STATUS wmi_extract_ndp_ind(wmi_unified_t wmi_handle, uint8_t *data,
105 			       struct nan_datapath_indication_event *ind)
106 {
107 	if (wmi_handle->ops->extract_ndp_ind)
108 		return wmi_handle->ops->extract_ndp_ind(wmi_handle,
109 							data, ind);
110 
111 	return QDF_STATUS_E_FAILURE;
112 }
113 
114 QDF_STATUS wmi_extract_ndp_confirm(wmi_unified_t wmi_handle, uint8_t *data,
115 				   struct nan_datapath_confirm_event *ev)
116 {
117 	if (wmi_handle->ops->extract_ndp_confirm)
118 		return wmi_handle->ops->extract_ndp_confirm(wmi_handle,
119 							    data, ev);
120 
121 	return QDF_STATUS_E_FAILURE;
122 }
123 
124 QDF_STATUS wmi_extract_ndp_responder_rsp(wmi_unified_t wmi_handle,
125 					 uint8_t *data,
126 					 struct nan_datapath_responder_rsp *rsp)
127 {
128 	if (wmi_handle->ops->extract_ndp_responder_rsp)
129 		return wmi_handle->ops->extract_ndp_responder_rsp(wmi_handle,
130 								  data, rsp);
131 
132 	return QDF_STATUS_E_FAILURE;
133 }
134 
135 QDF_STATUS wmi_extract_ndp_end_rsp(wmi_unified_t wmi_handle, uint8_t *data,
136 				   struct nan_datapath_end_rsp_event *rsp)
137 {
138 	if (wmi_handle->ops->extract_ndp_end_rsp)
139 		return wmi_handle->ops->extract_ndp_end_rsp(wmi_handle,
140 							    data, rsp);
141 
142 	return QDF_STATUS_E_FAILURE;
143 }
144 
145 QDF_STATUS wmi_extract_ndp_end_ind(wmi_unified_t wmi_handle, uint8_t *data,
146 				struct nan_datapath_end_indication_event **ind)
147 {
148 	if (wmi_handle->ops->extract_ndp_end_ind)
149 		return wmi_handle->ops->extract_ndp_end_ind(wmi_handle,
150 							    data, ind);
151 
152 	return QDF_STATUS_E_FAILURE;
153 }
154 
155 QDF_STATUS wmi_extract_ndp_sch_update(wmi_unified_t wmi_handle, uint8_t *data,
156 				    struct nan_datapath_sch_update_event *ind)
157 {
158 	if (wmi_handle->ops->extract_ndp_sch_update)
159 		return wmi_handle->ops->extract_ndp_sch_update(wmi_handle,
160 							       data, ind);
161 
162 	return QDF_STATUS_E_FAILURE;
163 }
164 
165