1 /*
2  * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. 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 #ifndef _WLAN_TWT_CFG_EXT_API_H
20 #define _WLAN_TWT_CFG_EXT_API_H
21 
22 #if defined(WLAN_SUPPORT_TWT) && defined(WLAN_TWT_CONV_SUPPORTED)
23 #include <wlan_objmgr_psoc_obj.h>
24 #include <wlan_twt_public_structs.h>
25 #include <wlan_mlme_twt_public_struct.h>
26 
27 /**
28  * wlan_twt_cfg_get_req_flag() - Get TWT requestor flag
29  * @psoc: Pointer to global psoc object
30  * @val: pointer to output variable
31  *
32  * Return: QDF_STATUS_SUCCESS
33  */
34 QDF_STATUS
35 wlan_twt_cfg_get_req_flag(struct wlan_objmgr_psoc *psoc, bool *val);
36 
37 /**
38  * wlan_twt_cfg_get_res_flag() - Get TWT responder flag
39  * @psoc: Pointer to global psoc object
40  * @val: pointer to output variable
41  *
42  * Return: QDF_STATUS_SUCCESS
43  */
44 QDF_STATUS
45 wlan_twt_cfg_get_res_flag(struct wlan_objmgr_psoc *psoc, bool *val);
46 
47 /**
48  * wlan_twt_cfg_get_support_in_11n() - Get TWT support on HT cap
49  * @psoc: Pointer to global psoc object
50  * @val: pointer to output variable
51  *
52  * Return: QDF_STATUS_SUCCESS
53  */
54 QDF_STATUS
55 wlan_twt_cfg_get_support_in_11n(struct wlan_objmgr_psoc *psoc,
56 				bool *val);
57 
58 /**
59  * wlan_twt_cfg_get_support_requestor() - Get TWT support of requestor
60  * @psoc: Pointer to global psoc object
61  * @val: pointer to output variable
62  *
63  * Return: QDF_STATUS_SUCCESS
64  */
65 QDF_STATUS
66 wlan_twt_cfg_get_support_requestor(struct wlan_objmgr_psoc *psoc,
67 				   bool *val);
68 
69 /**
70  * wlan_twt_get_requestor_cfg() - Get requestor TWT configuration
71  * @psoc: Pointer to psoc object
72  * @val: Pointer to value
73  *
74  * Return: QDF_STATUS
75  */
76 QDF_STATUS
77 wlan_twt_get_requestor_cfg(struct wlan_objmgr_psoc *psoc, bool *val);
78 
79 /**
80  * wlan_twt_get_responder_cfg() - Get TWT responder configuration
81  * @psoc: Pointer to PSOC object
82  * @val: Pointer to value
83  *
84  * Return: QDF_STATUS
85  */
86 QDF_STATUS
87 wlan_twt_get_responder_cfg(struct wlan_objmgr_psoc *psoc, bool *val);
88 
89 /**
90  * wlan_twt_get_rtwt_support() - Get rTWT support
91  * @psoc: Pointer to global psoc
92  * @val: pointer to output variable
93  *
94  * Return: QDF_STATUS
95  */
96 QDF_STATUS
97 wlan_twt_get_rtwt_support(struct wlan_objmgr_psoc *psoc, bool *val);
98 
99 /**
100  * wlan_twt_get_bcast_requestor_cfg() - Get requestor broadcast TWT
101  * configuration
102  * @psoc: Pointer to psoc object
103  * @val: Pointer to value
104  *
105  * Return: QDF_STATUS
106  */
107 QDF_STATUS
108 wlan_twt_get_bcast_requestor_cfg(struct wlan_objmgr_psoc *psoc, bool *val);
109 
110 /**
111  * wlan_twt_get_bcast_responder_cfg() - Get responder broadcast TWT
112  * configuration
113  * @psoc: Pointer to psoc object
114  * @val: Pointer to value
115  *
116  * Return: QDF_STATUS
117  */
118 
119 QDF_STATUS
120 wlan_twt_get_bcast_responder_cfg(struct wlan_objmgr_psoc *psoc, bool *val);
121 
122 #ifdef FEATURE_SET
123 /**
124  * wlan_twt_get_feature_info() - Get TWT feature set information
125  * @psoc: Pointer to global psoc object
126  * @twt_feature_set: pointer to output twt feature set structure
127  *
128  * Return: None
129  */
130 void wlan_twt_get_feature_info(struct wlan_objmgr_psoc *psoc,
131 			       struct wlan_twt_features *twt_feature_set);
132 #endif
133 
134 #else
135 static inline QDF_STATUS
wlan_twt_cfg_get_res_flag(struct wlan_objmgr_psoc * psoc,bool * val)136 wlan_twt_cfg_get_res_flag(struct wlan_objmgr_psoc *psoc, bool *val)
137 {
138 	return QDF_STATUS_SUCCESS;
139 }
140 
141 static inline QDF_STATUS
wlan_twt_cfg_get_req_flag(struct wlan_objmgr_psoc * psoc,bool * val)142 wlan_twt_cfg_get_req_flag(struct wlan_objmgr_psoc *psoc, bool *val)
143 {
144 	return QDF_STATUS_SUCCESS;
145 }
146 
147 static inline QDF_STATUS
wlan_twt_cfg_get_support_in_11n(struct wlan_objmgr_psoc * psoc,bool * val)148 wlan_twt_cfg_get_support_in_11n(struct wlan_objmgr_psoc *psoc,
149 				bool *val)
150 {
151 	return QDF_STATUS_SUCCESS;
152 }
153 
154 static inline QDF_STATUS
wlan_twt_cfg_get_support_requestor(struct wlan_objmgr_psoc * psoc,bool * val)155 wlan_twt_cfg_get_support_requestor(struct wlan_objmgr_psoc *psoc,
156 				   bool *val)
157 {
158 	return QDF_STATUS_SUCCESS;
159 }
160 
161 static inline QDF_STATUS
wlan_twt_get_requestor_cfg(struct wlan_objmgr_psoc * psoc,bool * val)162 wlan_twt_get_requestor_cfg(struct wlan_objmgr_psoc *psoc, bool *val)
163 {
164 	return QDF_STATUS_SUCCESS;
165 }
166 
167 static inline QDF_STATUS
wlan_twt_get_responder_cfg(struct wlan_objmgr_psoc * psoc,bool * val)168 wlan_twt_get_responder_cfg(struct wlan_objmgr_psoc *psoc, bool *val)
169 {
170 	return QDF_STATUS_SUCCESS;
171 }
172 
173 static inline QDF_STATUS
wlan_twt_get_bcast_requestor_cfg(struct wlan_objmgr_psoc * psoc,bool * val)174 wlan_twt_get_bcast_requestor_cfg(struct wlan_objmgr_psoc *psoc, bool *val)
175 {
176 	return QDF_STATUS_SUCCESS;
177 }
178 
179 static inline QDF_STATUS
wlan_twt_get_bcast_responder_cfg(struct wlan_objmgr_psoc * psoc,bool * val)180 wlan_twt_get_bcast_responder_cfg(struct wlan_objmgr_psoc *psoc, bool *val)
181 {
182 	return QDF_STATUS_SUCCESS;
183 }
184 
185 #ifdef FEATURE_SET
186 static inline void
wlan_twt_get_feature_info(struct wlan_objmgr_psoc * psoc,struct wlan_twt_features * twt_feature_set)187 wlan_twt_get_feature_info(struct wlan_objmgr_psoc *psoc,
188 			  struct wlan_twt_features *twt_feature_set)
189 {
190 }
191 #endif
192 #endif
193 #endif
194