1 /*
2 * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved.
3 * Copyright (c) 2021-2023 Qualcomm Innovation Center, Inc. All rights reserved.
4 *
5 * Permission to use, copy, modify, and/or distribute this software for
6 * any purpose with or without fee is hereby granted, provided that the
7 * above copyright notice and this permission notice appear in all
8 * copies.
9 *
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
11 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
12 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
13 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
14 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
15 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
16 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17 * PERFORMANCE OF THIS SOFTWARE.
18 */
19 /**
20 * DOC: Implement API's specific to TWT component.
21 */
22
23 #ifndef _WMI_UNIFIED_TWT_API_H_
24 #define _WMI_UNIFIED_TWT_API_H_
25
26 #include "wmi_unified_twt_param.h"
27 #if defined(WLAN_SUPPORT_TWT) && defined(WLAN_TWT_CONV_SUPPORTED)
28 #include <wlan_twt_public_structs.h>
29 /**
30 * wmi_unified_twt_enable_cmd() - Send WMI command to Enable TWT
31 * @wmi_handle: wmi handle
32 * @params: Parameters to be configured
33 *
34 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
35 */
36 QDF_STATUS
37 wmi_unified_twt_enable_cmd(wmi_unified_t wmi_handle,
38 struct twt_enable_param *params);
39
40 /**
41 * wmi_unified_twt_disable_cmd() - Send WMI command to disable TWT
42 * @wmi_handle: wmi handle
43 * @params: Parameters to be configured
44 *
45 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
46 */
47 QDF_STATUS
48 wmi_unified_twt_disable_cmd(wmi_unified_t wmi_handle,
49 struct twt_disable_param *params);
50
51 /**
52 * wmi_unified_twt_add_dialog_cmd() - Send WMI command to add TWT dialog
53 * @wmi_handle: wmi handle
54 * @params: Parameters to be configured
55 *
56 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
57 */
58 QDF_STATUS
59 wmi_unified_twt_add_dialog_cmd(wmi_unified_t wmi_handle,
60 struct twt_add_dialog_param *params);
61
62 /**
63 * wmi_unified_twt_del_dialog_cmd() - Send WMI command to delete TWT dialog
64 * @wmi_handle: wmi handle
65 * @params: Parameters to be configured
66 *
67 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
68 */
69 QDF_STATUS
70 wmi_unified_twt_del_dialog_cmd(wmi_unified_t wmi_handle,
71 struct twt_del_dialog_param *params);
72
73 /**
74 * wmi_unified_twt_pause_dialog_cmd() - Send WMI command to pause TWT dialog
75 * @wmi_handle: wmi handle
76 * @params: Parameters to be configured
77 *
78 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
79 */
80 QDF_STATUS
81 wmi_unified_twt_pause_dialog_cmd(wmi_unified_t wmi_handle,
82 struct twt_pause_dialog_cmd_param *params);
83
84 /**
85 * wmi_unified_twt_nudge_dialog_cmd() - Send WMI command to nudge TWT dialog
86 * @wmi_handle: wmi handle
87 * @params: Parameters to be configured
88 *
89 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
90 */
91 QDF_STATUS
92 wmi_unified_twt_nudge_dialog_cmd(wmi_unified_t wmi_handle,
93 struct twt_nudge_dialog_cmd_param *params);
94
95 /**
96 * wmi_unified_twt_resume_dialog_cmd() - Send WMI command to resume TWT dialog
97 * @wmi_handle: wmi handle
98 * @params: Parameters to be configured
99 *
100 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
101 */
102 QDF_STATUS wmi_unified_twt_resume_dialog_cmd(
103 wmi_unified_t wmi_handle,
104 struct twt_resume_dialog_cmd_param *params);
105
106 #ifdef WLAN_SUPPORT_BCAST_TWT
107 /**
108 * wmi_unified_twt_btwt_invite_sta_cmd() - Send WMI command for bTWT sta
109 * invitation
110 * @wmi_handle: wmi handle
111 * @params: Parameters to be configured
112 *
113 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
114 */
115 QDF_STATUS wmi_unified_twt_btwt_invite_sta_cmd(
116 wmi_unified_t wmi_handle,
117 struct twt_btwt_invite_sta_cmd_param *params);
118
119 /**
120 * wmi_unified_twt_btwt_remove_sta_cmd() - Send WMI command for bTWT sta kickoff
121 * @wmi_handle: wmi handle
122 * @params: Parameters to be configured
123 *
124 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
125 */
126 QDF_STATUS wmi_unified_twt_btwt_remove_sta_cmd(
127 wmi_unified_t wmi_handle,
128 struct twt_btwt_remove_sta_cmd_param *params);
129 #endif
130
131 /**
132 * wmi_extract_twt_enable_comp_event() - Extract WMI event params for TWT enable
133 * completion event
134 * @wmi_handle: wmi handle
135 * @evt_buf: Pointer event buffer
136 * @params: Parameters to extract
137 *
138 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
139 */
140 QDF_STATUS wmi_extract_twt_enable_comp_event(
141 wmi_unified_t wmi_handle,
142 uint8_t *evt_buf,
143 struct twt_enable_complete_event_param *params);
144
145 /**
146 * wmi_extract_twt_disable_comp_event() - Extract WMI event params for TWT
147 * disable completion event
148 * @wmi_handle: wmi handle
149 * @evt_buf: Pointer event buffer
150 * @params: Parameters to extract
151 *
152 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
153 */
154 QDF_STATUS wmi_extract_twt_disable_comp_event(
155 wmi_unified_t wmi_handle,
156 uint8_t *evt_buf,
157 struct twt_disable_complete_event_param *params);
158
159 /**
160 * wmi_extract_twt_add_dialog_comp_event() - Extract WMI event params for TWT
161 * add dialog completion event
162 * @wmi_handle: wmi handle
163 * @evt_buf: Pointer event buffer
164 * @params: Parameters to extract
165 *
166 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
167 */
168 QDF_STATUS wmi_extract_twt_add_dialog_comp_event(
169 wmi_unified_t wmi_handle,
170 uint8_t *evt_buf,
171 struct twt_add_dialog_complete_event_param *params);
172
173 /**
174 * wmi_extract_twt_add_dialog_comp_additional_params() - Extracts additional
175 * twt parameters, as part of add dialog completion event
176 * @wmi_handle: wmi handle
177 * @evt_buf: Pointer event buffer
178 * @evt_buf_len: length of the add dialog event buffer
179 * @idx: index of num_twt_params to extract
180 * @additional_params: additional parameters to extract
181 *
182 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
183 */
184 QDF_STATUS wmi_extract_twt_add_dialog_comp_additional_params(
185 wmi_unified_t wmi_handle, uint8_t *evt_buf,
186 uint32_t evt_buf_len, uint32_t idx,
187 struct twt_add_dialog_additional_params *additional_params);
188
189 /**
190 * wmi_extract_twt_del_dialog_comp_event() - Extract WMI event params for TWT
191 * delete dialog completion event
192 * @wmi_handle: wmi handle
193 * @evt_buf: Pointer event buffer
194 * @params: Parameters to extract
195 *
196 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
197 */
198 QDF_STATUS wmi_extract_twt_del_dialog_comp_event(
199 wmi_unified_t wmi_handle,
200 uint8_t *evt_buf,
201 struct twt_del_dialog_complete_event_param *params);
202
203 /**
204 * wmi_extract_twt_pause_dialog_comp_event() - Extract WMI event params for TWT
205 * pause dialog completion event
206 * @wmi_handle: wmi handle
207 * @evt_buf: Pointer event buffer
208 * @params: Parameters to extract
209 *
210 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
211 */
212 QDF_STATUS wmi_extract_twt_pause_dialog_comp_event(
213 wmi_unified_t wmi_handle,
214 uint8_t *evt_buf,
215 struct twt_pause_dialog_complete_event_param *params);
216
217 /**
218 * wmi_extract_twt_nudge_dialog_comp_event() - Extract WMI event params for TWT
219 * nudge dialog completion event
220 * @wmi_handle: wmi handle
221 * @evt_buf: Pointer event buffer
222 * @params: Parameters to extract
223 *
224 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
225 */
226 QDF_STATUS wmi_extract_twt_nudge_dialog_comp_event(
227 wmi_unified_t wmi_handle,
228 uint8_t *evt_buf,
229 struct twt_nudge_dialog_complete_event_param *params);
230
231 /**
232 * wmi_extract_twt_resume_dialog_comp_event() - Extract WMI event params for TWT
233 * resume dialog completion event
234 * @wmi_handle: wmi handle
235 * @evt_buf: Pointer event buffer
236 * @params: Parameters to extract
237 *
238 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
239 */
240 QDF_STATUS wmi_extract_twt_resume_dialog_comp_event(
241 wmi_unified_t wmi_handle,
242 uint8_t *evt_buf,
243 struct twt_resume_dialog_complete_event_param *params);
244
245 /**
246 * wmi_extract_twt_notify_event() - Extract WMI event params for TWT
247 * notify event
248 * @wmi_handle: wmi handle
249 * @evt_buf: Pointer event buffer
250 * @params: Parameters to extract
251 *
252 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
253 */
254 QDF_STATUS wmi_extract_twt_notify_event(
255 wmi_unified_t wmi_handle,
256 uint8_t *evt_buf,
257 struct twt_notify_event_param *params);
258
259 #ifdef WLAN_SUPPORT_BCAST_TWT
260 /**
261 * wmi_extract_twt_btwt_invite_sta_comp_event() - Extract WMI event params for
262 * BTWT sta invitation completion event
263 * @wmi_handle: wmi handle
264 * @evt_buf: Pointer event buffer
265 * @params: Parameters to extract
266 *
267 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
268 */
269 QDF_STATUS wmi_extract_twt_btwt_invite_sta_comp_event(
270 wmi_unified_t wmi_handle,
271 uint8_t *evt_buf,
272 struct twt_btwt_invite_sta_complete_event_param *params);
273
274 /**
275 * wmi_extract_twt_btwt_remove_sta_comp_event() - Extract WMI event params for
276 * BTWT sta kickoff completion event
277 * @wmi_handle: wmi handle
278 * @evt_buf: Pointer event buffer
279 * @params: Parameters to extract
280 *
281 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
282 */
283 QDF_STATUS wmi_extract_twt_btwt_remove_sta_comp_event(
284 wmi_unified_t wmi_handle,
285 uint8_t *evt_buf,
286 struct twt_btwt_remove_sta_complete_event_param *params);
287 #endif
288
289 /**
290 * wmi_extract_twt_session_stats_event() - Extract WMI event params for TWT
291 * session stats event
292 * @wmi_handle: wmi handle
293 * @evt_buf: Pointer event buffer
294 * @params: Parameters to extract
295 *
296 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
297 */
298 QDF_STATUS wmi_extract_twt_session_stats_event(
299 wmi_unified_t wmi_handle,
300 uint8_t *evt_buf,
301 struct twt_session_stats_event_param *params);
302
303 /**
304 * wmi_extract_twt_session_stats_data() - Extract one TWT session from TWT
305 * session stats event
306 * @wmi_handle: wmi handle
307 * @evt_buf: Pointer event buffer
308 * @params: Parameters to extract
309 * @session: Session struct to save one TWT session
310 * @idx: TWT session index
311 *
312 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
313 */
314 QDF_STATUS wmi_extract_twt_session_stats_data(
315 wmi_unified_t wmi_handle,
316 uint8_t *evt_buf,
317 struct twt_session_stats_event_param *params,
318 struct twt_session_stats_info *session,
319 uint32_t idx);
320
321 void wmi_twt_attach_tlv(struct wmi_unified *wmi_handle);
322
323 /**
324 * wmi_extract_twt_cap_service_ready_ext2: Extract TWT bitmap value
325 * received through extended
326 * service ready2 event
327 * @wmi_handle: WMI handle
328 * @evt_buf: Event buffer
329 * @params: Pointer to TWT bitmap param
330 *
331 * Return: QDF_STATUS_SUCCESS for success or error code
332 */
333 QDF_STATUS wmi_extract_twt_cap_service_ready_ext2(
334 wmi_unified_t wmi_handle,
335 uint8_t *evt_buf,
336 struct wmi_twt_cap_bitmap_params *params);
337
338 /**
339 * wmi_extract_twt_ack_comp_event() - Extract WMI event params for TWT ack event
340 *
341 * @wmi_handle: wmi handle
342 * @evt_buf: Pointer event buffer
343 * @param: Parameters to extract
344 *
345 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
346 */
347 QDF_STATUS wmi_extract_twt_ack_comp_event(
348 wmi_unified_t wmi_handle,
349 uint8_t *evt_buf,
350 struct twt_ack_complete_event_param *param);
351 #elif defined(WLAN_SUPPORT_TWT)
352 /**
353 * wmi_unified_twt_enable_cmd() - Send WMI command to Enable TWT
354 * @wmi_handle: wmi handle
355 * @params: Parameters to be configured
356 *
357 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
358 */
359 QDF_STATUS
360 wmi_unified_twt_enable_cmd(wmi_unified_t wmi_handle,
361 struct wmi_twt_enable_param *params);
362
363 /**
364 * wmi_unified_twt_disable_cmd() - Send WMI command to disable TWT
365 * @wmi_handle: wmi handle
366 * @params: Parameters to be configured
367 *
368 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
369 */
370 QDF_STATUS
371 wmi_unified_twt_disable_cmd(wmi_unified_t wmi_handle,
372 struct wmi_twt_disable_param *params);
373
374 /**
375 * wmi_unified_twt_add_dialog_cmd() - Send WMI command to add TWT dialog
376 * @wmi_handle: wmi handle
377 * @params: Parameters to be configured
378 *
379 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
380 */
381 QDF_STATUS
382 wmi_unified_twt_add_dialog_cmd(wmi_unified_t wmi_handle,
383 struct wmi_twt_add_dialog_param *params);
384
385 /**
386 * wmi_unified_twt_del_dialog_cmd() - Send WMI command to delete TWT dialog
387 * @wmi_handle: wmi handle
388 * @params: Parameters to be configured
389 *
390 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
391 */
392 QDF_STATUS
393 wmi_unified_twt_del_dialog_cmd(wmi_unified_t wmi_handle,
394 struct wmi_twt_del_dialog_param *params);
395
396 /**
397 * wmi_unified_twt_pause_dialog_cmd() - Send WMI command to pause TWT dialog
398 * @wmi_handle: wmi handle
399 * @params: Parameters to be configured
400 *
401 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
402 */
403 QDF_STATUS
404 wmi_unified_twt_pause_dialog_cmd(wmi_unified_t wmi_handle,
405 struct wmi_twt_pause_dialog_cmd_param *params);
406
407 /**
408 * wmi_unified_twt_nudge_dialog_cmd() - Send WMI command to nudge TWT dialog
409 * @wmi_handle: wmi handle
410 * @params: Parameters to be configured
411 *
412 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
413 */
414 QDF_STATUS
415 wmi_unified_twt_nudge_dialog_cmd(wmi_unified_t wmi_handle,
416 struct wmi_twt_nudge_dialog_cmd_param *params);
417
418 /**
419 * wmi_unified_twt_resume_dialog_cmd() - Send WMI command to resume TWT dialog
420 * @wmi_handle: wmi handle
421 * @params: Parameters to be configured
422 *
423 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
424 */
425 QDF_STATUS wmi_unified_twt_resume_dialog_cmd(
426 wmi_unified_t wmi_handle,
427 struct wmi_twt_resume_dialog_cmd_param *params);
428
429 #ifdef WLAN_SUPPORT_BCAST_TWT
430 /**
431 * wmi_unified_twt_btwt_invite_sta_cmd() - Send WMI command for bTWT sta
432 * invitation
433 * @wmi_handle: wmi handle
434 * @params: Parameters to be configured
435 *
436 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
437 */
438 QDF_STATUS wmi_unified_twt_btwt_invite_sta_cmd(
439 wmi_unified_t wmi_handle,
440 struct wmi_twt_btwt_invite_sta_cmd_param *params);
441
442 /**
443 * wmi_unified_twt_btwt_remove_sta_cmd() - Send WMI command for bTWT sta kickoff
444 * @wmi_handle: wmi handle
445 * @params: Parameters to be configured
446 *
447 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
448 */
449 QDF_STATUS wmi_unified_twt_btwt_remove_sta_cmd(
450 wmi_unified_t wmi_handle,
451 struct wmi_twt_btwt_remove_sta_cmd_param *params);
452 #endif
453
454 /**
455 * wmi_extract_twt_enable_comp_event() - Extract WMI event params for TWT enable
456 * completion event
457 * @wmi_handle: wmi handle
458 * @evt_buf: Pointer event buffer
459 * @params: Parameters to extract
460 *
461 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
462 */
463 QDF_STATUS wmi_extract_twt_enable_comp_event(
464 wmi_unified_t wmi_handle,
465 uint8_t *evt_buf,
466 struct wmi_twt_enable_complete_event_param *params);
467
468 /**
469 * wmi_extract_twt_disable_comp_event() - Extract WMI event params for TWT
470 * disable completion event
471 * @wmi_handle: wmi handle
472 * @evt_buf: Pointer event buffer
473 * @params: Parameters to extract
474 *
475 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
476 */
477 QDF_STATUS wmi_extract_twt_disable_comp_event(
478 wmi_unified_t wmi_handle,
479 uint8_t *evt_buf,
480 struct wmi_twt_disable_complete_event *params);
481
482 /**
483 * wmi_extract_twt_add_dialog_comp_event() - Extract WMI event params for TWT
484 * add dialog completion event
485 * @wmi_handle: wmi handle
486 * @evt_buf: Pointer event buffer
487 * @params: Parameters to extract
488 *
489 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
490 */
491 QDF_STATUS wmi_extract_twt_add_dialog_comp_event(
492 wmi_unified_t wmi_handle,
493 uint8_t *evt_buf,
494 struct wmi_twt_add_dialog_complete_event_param *params);
495
496 /**
497 * wmi_extract_twt_add_dialog_comp_additional_params() - Extracts additional
498 * twt parameters, as part of add dialog completion event
499 * @wmi_handle: wmi handle
500 * @evt_buf: Pointer event buffer
501 * @evt_buf_len: length of the add dialog event buffer
502 * @idx: index of num_twt_params to extract
503 * @additional_params: additional parameters to extract
504 *
505 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
506 */
507 QDF_STATUS wmi_extract_twt_add_dialog_comp_additional_params(
508 wmi_unified_t wmi_handle, uint8_t *evt_buf,
509 uint32_t evt_buf_len, uint32_t idx,
510 struct wmi_twt_add_dialog_additional_params *additional_params);
511
512 /**
513 * wmi_extract_twt_del_dialog_comp_event() - Extract WMI event params for TWT
514 * delete dialog completion event
515 * @wmi_handle: wmi handle
516 * @evt_buf: Pointer event buffer
517 * @params: Parameters to extract
518 *
519 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
520 */
521 QDF_STATUS wmi_extract_twt_del_dialog_comp_event(
522 wmi_unified_t wmi_handle,
523 uint8_t *evt_buf,
524 struct wmi_twt_del_dialog_complete_event_param *params);
525
526 /**
527 * wmi_extract_twt_pause_dialog_comp_event() - Extract WMI event params for TWT
528 * pause dialog completion event
529 * @wmi_handle: wmi handle
530 * @evt_buf: Pointer event buffer
531 * @params: Parameters to extract
532 *
533 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
534 */
535 QDF_STATUS wmi_extract_twt_pause_dialog_comp_event(
536 wmi_unified_t wmi_handle,
537 uint8_t *evt_buf,
538 struct wmi_twt_pause_dialog_complete_event_param *params);
539
540 /**
541 * wmi_extract_twt_nudge_dialog_comp_event() - Extract WMI event params for TWT
542 * nudge dialog completion event
543 * @wmi_handle: wmi handle
544 * @evt_buf: Pointer event buffer
545 * @params: Parameters to extract
546 *
547 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
548 */
549 QDF_STATUS wmi_extract_twt_nudge_dialog_comp_event(
550 wmi_unified_t wmi_handle,
551 uint8_t *evt_buf,
552 struct wmi_twt_nudge_dialog_complete_event_param *params);
553
554 /**
555 * wmi_extract_twt_resume_dialog_comp_event() - Extract WMI event params for TWT
556 * resume dialog completion event
557 * @wmi_handle: wmi handle
558 * @evt_buf: Pointer event buffer
559 * @params: Parameters to extract
560 *
561 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
562 */
563 QDF_STATUS wmi_extract_twt_resume_dialog_comp_event(
564 wmi_unified_t wmi_handle,
565 uint8_t *evt_buf,
566 struct wmi_twt_resume_dialog_complete_event_param *params);
567
568 /**
569 * wmi_extract_twt_notify_event() - Extract WMI event params for TWT
570 * notify event
571 * @wmi_handle: wmi handle
572 * @evt_buf: Pointer event buffer
573 * @params: Parameters to extract
574 *
575 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
576 */
577 QDF_STATUS wmi_extract_twt_notify_event(
578 wmi_unified_t wmi_handle,
579 uint8_t *evt_buf,
580 struct wmi_twt_notify_event_param *params);
581
582 #ifdef WLAN_SUPPORT_BCAST_TWT
583 /**
584 * wmi_extract_twt_btwt_invite_sta_comp_event() - Extract WMI event params for
585 * BTWT sta invitation completion event
586 * @wmi_handle: wmi handle
587 * @evt_buf: Pointer event buffer
588 * @params: Parameters to extract
589 *
590 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
591 */
592 QDF_STATUS wmi_extract_twt_btwt_invite_sta_comp_event(
593 wmi_unified_t wmi_handle,
594 uint8_t *evt_buf,
595 struct wmi_twt_btwt_invite_sta_complete_event_param *params);
596
597 /**
598 * wmi_extract_twt_btwt_remove_sta_comp_event() - Extract WMI event params for
599 * BTWT sta kickoff completion event
600 * @wmi_handle: wmi handle
601 * @evt_buf: Pointer event buffer
602 * @params: Parameters to extract
603 *
604 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
605 */
606 QDF_STATUS wmi_extract_twt_btwt_remove_sta_comp_event(
607 wmi_unified_t wmi_handle,
608 uint8_t *evt_buf,
609 struct wmi_twt_btwt_remove_sta_complete_event_param *params);
610 #endif
611
612 /**
613 * wmi_extract_twt_session_stats_event() - Extract WMI event params for TWT
614 * session stats event
615 * @wmi_handle: wmi handle
616 * @evt_buf: Pointer event buffer
617 * @params: Parameters to extract
618 *
619 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
620 */
621 QDF_STATUS wmi_extract_twt_session_stats_event(
622 wmi_unified_t wmi_handle,
623 uint8_t *evt_buf,
624 struct wmi_twt_session_stats_event_param *params);
625
626 /**
627 * wmi_extract_twt_session_stats_data() - Extract one TWT session from TWT
628 * session stats event
629 * @wmi_handle: wmi handle
630 * @evt_buf: Pointer event buffer
631 * @params: Parameters to extract
632 * @session: Session struct to save one TWT session
633 * @idx: TWT session index
634 *
635 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
636 */
637 QDF_STATUS wmi_extract_twt_session_stats_data(
638 wmi_unified_t wmi_handle,
639 uint8_t *evt_buf,
640 struct wmi_twt_session_stats_event_param *params,
641 struct wmi_host_twt_session_stats_info *session,
642 uint32_t idx);
643
644 void wmi_twt_attach_tlv(struct wmi_unified *wmi_handle);
645
646 /**
647 * wmi_extract_twt_cap_service_ready_ext2: Extract TWT bitmap value
648 * received through extended
649 * service ready2 event
650 * @wmi_handle: WMI handle
651 * @evt_buf: Event buffer
652 * @params: Pointer to TWT bitmap param
653 *
654 * Return: QDF_STATUS_SUCCESS for success or error code
655 */
656 QDF_STATUS wmi_extract_twt_cap_service_ready_ext2(
657 wmi_unified_t wmi_handle,
658 uint8_t *evt_buf,
659 struct wmi_twt_cap_bitmap_params *params);
660
661 /**
662 * wmi_extract_twt_ack_comp_event() - Extract WMI event params for TWT ack event
663 *
664 * @wmi_handle: wmi handle
665 * @evt_buf: Pointer event buffer
666 * @param: Parameters to extract
667 *
668 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
669 */
670 QDF_STATUS wmi_extract_twt_ack_comp_event(
671 wmi_unified_t wmi_handle,
672 uint8_t *evt_buf,
673 struct wmi_twt_ack_complete_event_param *param);
674 #else
wmi_twt_attach_tlv(struct wmi_unified * wmi_handle)675 static inline void wmi_twt_attach_tlv(struct wmi_unified *wmi_handle)
676 {
677 }
678 #endif
679 #endif /* _WMI_UNIFIED_TWT_API_H_ */
680