blob: 65ac9c2331ed150beeb9d1a3d406132f4bb34400 [file] [log] [blame]
Naveen Rawataeeb03b2016-12-15 12:44:14 -08001/*
Nachiket Kukade2fb1fdb2019-01-08 15:35:27 +05302 * Copyright (c) 2012-2019 The Linux Foundation. All rights reserved.
Naveen Rawataeeb03b2016-12-15 12:44:14 -08003 *
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/**
20 * DOC: declares nan component os interface APIs
21 */
22
23#ifndef _OS_IF_NAN_H_
24#define _OS_IF_NAN_H_
25
Naveen Rawat574d9b42017-04-02 18:25:54 -070026#include "qdf_types.h"
Nachiket Kukade2fb1fdb2019-01-08 15:35:27 +053027#ifdef WLAN_FEATURE_NAN
Naveen Rawat85f642e2017-04-02 19:39:25 -070028#include "nan_public_structs.h"
29#include "nan_ucfg_api.h"
Naveen Rawat574d9b42017-04-02 18:25:54 -070030
Naveen Rawat74b2eb32017-03-21 15:12:22 -070031/**
Naveen Rawat574d9b42017-04-02 18:25:54 -070032 * os_if_nan_process_ndp_cmd: os_if api to handle nan request message
33 * @psoc: pointer to psoc object
34 * @data: request data. contains vendor cmd tlvs
35 * @data_len: length of data
36 *
37 * Return: status of operation
38 */
39int os_if_nan_process_ndp_cmd(struct wlan_objmgr_psoc *psoc,
40 const void *data, int data_len);
41
42/**
Naveen Rawat85f642e2017-04-02 19:39:25 -070043 * os_if_nan_register_hdd_callbacks: os_if api to register hdd callbacks
44 * @psoc: pointer to psoc object
45 * @cb_obj: struct pointer containing callbacks
46 *
47 * Return: status of operation
48 */
49int os_if_nan_register_hdd_callbacks(struct wlan_objmgr_psoc *psoc,
50 struct nan_callbacks *cb_obj);
51
52/**
Naveen Rawat32006402017-04-05 17:26:18 -070053 * os_if_nan_register_lim_callbacks: os_if api to register lim callbacks
54 * @psoc: pointer to psoc object
55 * @cb_obj: struct pointer containing callbacks
56 *
57 * Return: status of operation
58 */
59int os_if_nan_register_lim_callbacks(struct wlan_objmgr_psoc *psoc,
60 struct nan_callbacks *cb_obj);
61
62/**
Naveen Rawat85f642e2017-04-02 19:39:25 -070063 * os_if_nan_post_ndi_create_rsp: os_if api to pos ndi create rsp to umac nan
64 * component
65 * @psoc: pointer to psoc object
66 * @vdev_id: vdev id of ndi
67 * @success: if create was success or failure
68 *
69 * Return: None
70 */
71void os_if_nan_post_ndi_create_rsp(struct wlan_objmgr_psoc *psoc,
72 uint8_t vdev_id, bool success);
73
74/**
75 * os_if_nan_post_ndi_delete_rsp: os_if api to pos ndi delete rsp to umac nan
76 * component
77 * @psoc: pointer to psoc object
78 * @vdev_id: vdev id of ndi
79 * @success: if delete was success or failure
80 *
81 * Return: None
82 */
83void os_if_nan_post_ndi_delete_rsp(struct wlan_objmgr_psoc *psoc,
84 uint8_t vdev_id, bool success);
85
86/**
87 * os_if_nan_ndi_session_end: os_if api to process ndi session end
88 * component
89 * @vdev: pointer to vdev deleted
90 *
91 * Return: None
92 */
93void os_if_nan_ndi_session_end(struct wlan_objmgr_vdev *vdev);
94
95/**
96 * os_if_nan_set_ndi_state: os_if api set NDI state
97 * @vdev: pointer to vdev deleted
98 * @state: value to set
99 *
100 * Return: status of operation
101 */
102static inline QDF_STATUS os_if_nan_set_ndi_state(struct wlan_objmgr_vdev *vdev,
103 uint32_t state)
104{
105 return ucfg_nan_set_ndi_state(vdev, state);
106}
107
108/**
109 * os_if_nan_set_ndp_create_transaction_id: set ndp create transaction id
110 * @vdev: pointer to vdev object
111 * @val: value to set
112 *
113 * Return: status of operation
114 */
115static inline QDF_STATUS os_if_nan_set_ndp_create_transaction_id(
116 struct wlan_objmgr_vdev *vdev,
117 uint16_t val)
118{
119 return ucfg_nan_set_ndp_create_transaction_id(vdev, val);
120}
121
122/**
123 * os_if_nan_set_ndp_delete_transaction_id: set ndp delete transaction id
124 * @vdev: pointer to vdev object
125 * @val: value to set
126 *
127 * Return: status of operation
128 */
129static inline QDF_STATUS os_if_nan_set_ndp_delete_transaction_id(
130 struct wlan_objmgr_vdev *vdev,
131 uint16_t val)
132{
133 return ucfg_nan_set_ndp_delete_transaction_id(vdev, val);
134}
135
Nachiket Kukadea6a70a92018-10-09 20:07:21 +0530136/**
Nachiket Kukade6003bd22018-11-08 18:30:08 +0530137 * os_if_nan_legacy_req: os_if api to handle NAN requests attached to the vendor
138 * command QCA_NL80211_VENDOR_SUBCMD_NAN
139 * @psoc: pointer to psoc object
140 * @data: request data. contains vendor cmd tlvs
141 * @data_len: length of data
142 *
143 * Return: status of operation
144 */
145int os_if_nan_legacy_req(struct wlan_objmgr_psoc *psoc, const void *data,
146 int data_len);
147
148/**
Nachiket Kukade4f89e9e2018-11-08 18:10:11 +0530149 * os_if_process_nan_req: os_if api to handle NAN requests attached to the
150 * vendor command QCA_NL80211_VENDOR_SUBCMD_NAN_EXT
Nachiket Kukadea6a70a92018-10-09 20:07:21 +0530151 * @psoc: pointer to psoc object
152 * @data: request data. contains vendor cmd tlvs
153 * @data_len: length of data
154 *
155 * Return: status of operation
156 */
157int os_if_process_nan_req(struct wlan_objmgr_psoc *psoc,
158 const void *data, int data_len);
Naveen Rawat85f642e2017-04-02 19:39:25 -0700159#else
160
161static inline void os_if_nan_post_ndi_create_rsp(struct wlan_objmgr_psoc *psoc,
162 uint8_t vdev_id, bool success)
163{
164}
165
166static inline void os_if_nan_post_ndi_delete_rsp(struct wlan_objmgr_psoc *psoc,
167 uint8_t vdev_id, bool success)
168{
169}
170
Nachiket Kukade2fb1fdb2019-01-08 15:35:27 +0530171#endif /* WLAN_FEATURE_NAN */
Naveen Rawat85f642e2017-04-02 19:39:25 -0700172
Naveen Rawataeeb03b2016-12-15 12:44:14 -0800173#endif