xref: /wlan-driver/qcacld-3.0/os_if/pre_cac/inc/osif_pre_cac.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1*5113495bSYour Name /*
2*5113495bSYour Name  * Copyright (c) 2022, Qualcomm Innovation Center, Inc. All rights reserved.
3*5113495bSYour Name  *
4*5113495bSYour Name  * Permission to use, copy, modify, and/or distribute this software for any
5*5113495bSYour Name  * purpose with or without fee is hereby granted, provided that the above
6*5113495bSYour Name  * copyright notice and this permission notice appear in all copies.
7*5113495bSYour Name  *
8*5113495bSYour Name  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9*5113495bSYour Name  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10*5113495bSYour Name  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11*5113495bSYour Name  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12*5113495bSYour Name  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13*5113495bSYour Name  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14*5113495bSYour Name  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15*5113495bSYour Name  */
16*5113495bSYour Name 
17*5113495bSYour Name #ifndef _OSIF_PRE_CAC_H_
18*5113495bSYour Name #define _OSIF_PRE_CAC_H_
19*5113495bSYour Name 
20*5113495bSYour Name #include "wlan_objmgr_vdev_obj.h"
21*5113495bSYour Name 
22*5113495bSYour Name #ifdef PRE_CAC_SUPPORT
23*5113495bSYour Name 
24*5113495bSYour Name /**
25*5113495bSYour Name  * typedef osif_conditional_csa_ind_legacy_cb - CSA indication callback
26*5113495bSYour Name  * @vdev: vdev upon which channel switch is occurring
27*5113495bSYour Name  * @completed: true if channel switch has completed, false if channel
28*5113495bSYour Name  *             switch is being initiated
29*5113495bSYour Name  *
30*5113495bSYour Name  * This callback is to send conditional channel switch status
31*5113495bSYour Name  *
32*5113495bSYour Name  * Context: Any context.
33*5113495bSYour Name  * Return: QDF_STATUS
34*5113495bSYour Name  */
35*5113495bSYour Name typedef void
36*5113495bSYour Name 	(*osif_conditional_csa_ind_legacy_cb)(struct wlan_objmgr_vdev *vdev,
37*5113495bSYour Name 					      bool completed);
38*5113495bSYour Name 
39*5113495bSYour Name /**
40*5113495bSYour Name  * typedef osif_pre_cac_complete_status_legacy_cb - pre cac complete callback
41*5113495bSYour Name  * @psoc: SOC where pre-cac is required
42*5113495bSYour Name  * @vdev_id: ID of the vdev where pre-cac is required
43*5113495bSYour Name  * @status: QDF_STATUS_SUCCESS if pre-cac was successful, otherwise an
44*5113495bSYour Name  *          appropriate QDF error status code
45*5113495bSYour Name  *
46*5113495bSYour Name  * This callback is used to indicate the pre cac complete status
47*5113495bSYour Name  *
48*5113495bSYour Name  * Context: Any context.
49*5113495bSYour Name  * Return: None
50*5113495bSYour Name  */
51*5113495bSYour Name typedef void
52*5113495bSYour Name 	(*osif_pre_cac_complete_status_legacy_cb)(struct wlan_objmgr_psoc *psoc,
53*5113495bSYour Name 						  uint8_t vdev_id,
54*5113495bSYour Name 						  QDF_STATUS status);
55*5113495bSYour Name 
56*5113495bSYour Name /**
57*5113495bSYour Name  * struct osif_pre_cac_legacy_ops - pre cac legacy callbacks
58*5113495bSYour Name  * @conditional_csa_ind_legacy_cb: Callback for CSA indication
59*5113495bSYour Name  * @pre_cac_complete_legacy_cb: Callback for pre cac complete status
60*5113495bSYour Name  */
61*5113495bSYour Name struct osif_pre_cac_legacy_ops {
62*5113495bSYour Name 	osif_conditional_csa_ind_legacy_cb conditional_csa_ind_legacy_cb;
63*5113495bSYour Name 	osif_pre_cac_complete_status_legacy_cb pre_cac_complete_legacy_cb;
64*5113495bSYour Name };
65*5113495bSYour Name 
66*5113495bSYour Name /**
67*5113495bSYour Name  * osif_pre_cac_set_legacy_cb() - Sets legacy callbacks to osif
68*5113495bSYour Name  * @osif_legacy_ops:  Function pointer to legacy ops structure
69*5113495bSYour Name  *
70*5113495bSYour Name  * API to set legacy callbacks to osif
71*5113495bSYour Name  * Context: Any context.
72*5113495bSYour Name  *
73*5113495bSYour Name  * Return: void
74*5113495bSYour Name  */
75*5113495bSYour Name void
76*5113495bSYour Name osif_pre_cac_set_legacy_cb(struct osif_pre_cac_legacy_ops *osif_legacy_ops);
77*5113495bSYour Name 
78*5113495bSYour Name /**
79*5113495bSYour Name  * osif_pre_cac_reset_legacy_cb() - Resets legacy callbacks to osif
80*5113495bSYour Name  *
81*5113495bSYour Name  * API to reset legacy callbacks to osif
82*5113495bSYour Name  * Context: Any context.
83*5113495bSYour Name  *
84*5113495bSYour Name  * Return: void
85*5113495bSYour Name  */
86*5113495bSYour Name void osif_pre_cac_reset_legacy_cb(void);
87*5113495bSYour Name 
88*5113495bSYour Name /**
89*5113495bSYour Name  * osif_pre_cac_register_cb() - API to register pre cac callbacks.
90*5113495bSYour Name  *
91*5113495bSYour Name  * Return: QDF_STATUS
92*5113495bSYour Name  */
93*5113495bSYour Name QDF_STATUS osif_pre_cac_register_cb(void);
94*5113495bSYour Name #endif /* PRE_CAC_SUPPORT */
95*5113495bSYour Name #endif /* _OSIF_PRE_CAC_H_ */
96