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_ndp_initiator_req_cmd_send(void *wmi_hdl, 26 struct nan_datapath_initiator_req *req) 27 { 28 wmi_unified_t wmi_handle = wmi_hdl; 29 30 if (wmi_handle->ops->send_ndp_initiator_req_cmd) 31 return wmi_handle->ops->send_ndp_initiator_req_cmd(wmi_handle, 32 req); 33 34 return QDF_STATUS_E_FAILURE; 35 } 36 37 QDF_STATUS wmi_unified_ndp_responder_req_cmd_send(void *wmi_hdl, 38 struct nan_datapath_responder_req *req) 39 { 40 wmi_unified_t wmi_handle = wmi_hdl; 41 42 if (wmi_handle->ops->send_ndp_responder_req_cmd) 43 return wmi_handle->ops->send_ndp_responder_req_cmd(wmi_handle, 44 req); 45 46 return QDF_STATUS_E_FAILURE; 47 } 48 49 QDF_STATUS wmi_unified_ndp_end_req_cmd_send(void *wmi_hdl, 50 struct nan_datapath_end_req *req) 51 { 52 wmi_unified_t wmi_handle = wmi_hdl; 53 54 if (wmi_handle->ops->send_ndp_end_req_cmd) 55 return wmi_handle->ops->send_ndp_end_req_cmd(wmi_handle, 56 req); 57 58 return QDF_STATUS_E_FAILURE; 59 } 60 61 QDF_STATUS wmi_extract_ndp_initiator_rsp(wmi_unified_t wmi_handle, 62 uint8_t *data, struct nan_datapath_initiator_rsp *rsp) 63 { 64 if (wmi_handle->ops->extract_ndp_initiator_rsp) 65 return wmi_handle->ops->extract_ndp_initiator_rsp(wmi_handle, 66 data, rsp); 67 68 return QDF_STATUS_E_FAILURE; 69 } 70 71 QDF_STATUS wmi_extract_ndp_ind(wmi_unified_t wmi_handle, uint8_t *data, 72 struct nan_datapath_indication_event *ind) 73 { 74 if (wmi_handle->ops->extract_ndp_ind) 75 return wmi_handle->ops->extract_ndp_ind(wmi_handle, 76 data, ind); 77 78 return QDF_STATUS_E_FAILURE; 79 } 80 81 QDF_STATUS wmi_extract_ndp_confirm(wmi_unified_t wmi_handle, uint8_t *data, 82 struct nan_datapath_confirm_event *ev) 83 { 84 if (wmi_handle->ops->extract_ndp_confirm) 85 return wmi_handle->ops->extract_ndp_confirm(wmi_handle, 86 data, ev); 87 88 return QDF_STATUS_E_FAILURE; 89 } 90 91 QDF_STATUS wmi_extract_ndp_responder_rsp(wmi_unified_t wmi_handle, 92 uint8_t *data, 93 struct nan_datapath_responder_rsp *rsp) 94 { 95 if (wmi_handle->ops->extract_ndp_responder_rsp) 96 return wmi_handle->ops->extract_ndp_responder_rsp(wmi_handle, 97 data, rsp); 98 99 return QDF_STATUS_E_FAILURE; 100 } 101 102 QDF_STATUS wmi_extract_ndp_end_rsp(wmi_unified_t wmi_handle, uint8_t *data, 103 struct nan_datapath_end_rsp_event *rsp) 104 { 105 if (wmi_handle->ops->extract_ndp_end_rsp) 106 return wmi_handle->ops->extract_ndp_end_rsp(wmi_handle, 107 data, rsp); 108 109 return QDF_STATUS_E_FAILURE; 110 } 111 112 QDF_STATUS wmi_extract_ndp_end_ind(wmi_unified_t wmi_handle, uint8_t *data, 113 struct nan_datapath_end_indication_event **ind) 114 { 115 if (wmi_handle->ops->extract_ndp_end_ind) 116 return wmi_handle->ops->extract_ndp_end_ind(wmi_handle, 117 data, ind); 118 119 return QDF_STATUS_E_FAILURE; 120 } 121 122 QDF_STATUS wmi_extract_ndp_sch_update(wmi_unified_t wmi_handle, uint8_t *data, 123 struct nan_datapath_sch_update_event *ind) 124 { 125 if (wmi_handle->ops->extract_ndp_sch_update) 126 return wmi_handle->ops->extract_ndp_sch_update(wmi_handle, 127 data, ind); 128 129 return QDF_STATUS_E_FAILURE; 130 } 131 132