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