blob: 991c653771e4b23be999bae313c141a2fa802fff [file] [log] [blame]
Nagaf3a70ce2019-01-18 13:14:49 +05301/*
2 * Copyright (c) 2019 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/**
20 * DOC: target_if_vdev_mgr_rx_ops.h
21 *
22 * This file provides declarations for APIs registered for wmi events
23 */
24
25#ifndef __TARGET_IF_VDEV_MGR_RX_OPS_H__
26#define __TARGET_IF_VDEV_MGR_RX_OPS_H__
27
28#include <wmi_unified_param.h>
29#include <wlan_objmgr_psoc_obj.h>
30#include <wlan_lmac_if_def.h>
31
32/**
Naga7dd88342019-02-05 22:34:24 +053033 * target_if_vdev_mgr_is_driver_unloading: API to driver unload status
34 *
35 * Return: TRUE or FALSE
36 */
37static inline bool target_if_vdev_mgr_is_driver_unloading(void)
38{
39 return false;
40}
41
42/**
Abhishek Ambure21ff0a52019-05-06 17:44:05 +053043 * target_if_vdev_mgr_delete_response_handler() - API to handle vdev delete
44 * response
45 * @scn: pointer to scan object
46 * @data: pointer to data
47 * @datalen: length of data
48 *
49 * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error
50 */
51int target_if_vdev_mgr_delete_response_handler(
52 ol_scn_t scn,
53 uint8_t *data,
54 uint32_t datalen);
55
56/**
57 * target_if_vdev_mgr_offload_bcn_tx_status_handler() - API to handle beacon
58 * tx status event
59 * @scn: pointer to scan object
60 * @data: pointer to data
61 * @datalen: length of data
62 *
63 * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error
64 */
65int target_if_vdev_mgr_offload_bcn_tx_status_handler(ol_scn_t scn,
66 uint8_t *data,
67 uint32_t datalen);
68
69/**
70 * target_if_vdev_mgr_tbttoffset_update_handler() - API to handle tbtt offset
71 * update event
72 * @scn: pointer to scan object
73 * @data: pointer to data
74 * @datalen: length of data
75 *
76 * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error
77 */
78int target_if_vdev_mgr_tbttoffset_update_handler(ol_scn_t scn,
79 uint8_t *data,
80 uint32_t datalen);
81
82/**
83 * target_if_vdev_mgr_ext_tbttoffset_update_handler() - API to handle ext tbtt
84 * offset update event
85 * @scn: pointer to scan object
86 * @data: pointer to data
87 * @datalen: length of data
88 *
89 * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error
90 */
91int target_if_vdev_mgr_ext_tbttoffset_update_handler(ol_scn_t scn,
92 uint8_t *data,
93 uint32_t datalen);
94
95/**
Naga7dd88342019-02-05 22:34:24 +053096 * target_if_vdev_mgr_is_panic_on_bug: API to get panic on bug
97 *
98 * Return: TRUE or FALSE
99 */
100static inline bool target_if_vdev_mgr_is_panic_on_bug(void)
101{
102#ifdef PANIC_ON_BUG
103 return true;
104#else
105 return false;
106#endif
107}
108
109/**
Nagaf3a70ce2019-01-18 13:14:49 +0530110 * target_if_vdev_mgr_get_rx_ops() - get rx ops
111 * @psoc: pointer to psoc object
112 *
113 * Return: pointer to rx ops
114 */
115static inline struct wlan_lmac_if_mlme_rx_ops *
116target_if_vdev_mgr_get_rx_ops(struct wlan_objmgr_psoc *psoc)
117{
118 return &psoc->soc_cb.rx_ops.mops;
119}
120
121/**
122 * target_if_vdev_mgr_rsp_timer_mgmt_cb() - function to handle response timer
123 * @arg: pointer to argument
124 *
125 * Callback timer triggered when response timer expires which pass
126 * vdev as argument
127 *
128 * Return: status of operation.
129 */
130void target_if_vdev_mgr_rsp_timer_mgmt_cb(void *arg);
131
132/**
133 * target_if_vdev_mgr_wmi_event_register() - function to handle register
134 * events from WMI
135 * @psoc: pointer to psoc object
136 *
137 * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error
138 */
139QDF_STATUS target_if_vdev_mgr_wmi_event_register(
140 struct wlan_objmgr_psoc *psoc);
141
142/**
143 * target_if_vdev_mgr_wmi_event_unregister() - function to handle unregister
144 * events from WMI
145 * @psoc: pointer to psoc object
146 *
147 * Return: QDF_STATUS_SUCCESS on success, QDF_STATUS_E_** on error
148 */
149QDF_STATUS target_if_vdev_mgr_wmi_event_unregister(
150 struct wlan_objmgr_psoc *psoc);
151
152#endif /* __TARGET_IF_VDEV_MGR_RX_OPS_H__ */