xref: /wlan-dirver/qca-wifi-host-cmn/wmi/inc/wmi_unified_dbr_api.h (revision 1397a33f48ea6455be40871470b286e535820eb8)
1 /*
2  * Copyright (c) 2013-2018 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  * DOC: Implement API's specific to DBR component.
20  */
21 
22 #ifndef _WMI_UNIFIED_DBR_API_H_
23 #define _WMI_UNIFIED_DBR_API_H_
24 
25 #include "wmi_unified_dbr_param.h"
26 
27 /* Opaque handle of WMI structure */
28 struct wmi_unified;
29 typedef struct wmi_unified *wmi_unified_t;
30 
31 /**
32  * wmi_unified_dbr_ring_cfg: Configure direct buffer rx rings
33  * @wmi_hdl: WMI handle
34  * @cfg: pointer to direct buffer rx config request
35  *
36  * Return: QDF status of operation
37  */
38 QDF_STATUS wmi_unified_dbr_ring_cfg(void *wmi_hdl,
39 				struct direct_buf_rx_cfg_req *cfg);
40 
41 /**
42  * wmi_extract_dbr_buf_release_fixed : Extract direct buffer rx fixed param
43  *				     from buffer release event
44  * @wmi_hdl: WMI handle
45  * @evt_buf: Event buffer
46  * @param: Pointer to direct buffer rx response struct
47  *
48  * Return: QDF status of operation
49  */
50 QDF_STATUS wmi_extract_dbr_buf_release_fixed(
51 			void *wmi_hdl,
52 			uint8_t *evt_buf,
53 			struct direct_buf_rx_rsp *param);
54 
55 /**
56  * wmi_extract_dbr_buf_release_entry: Extract direct buffer rx buffer tlv
57  *
58  * @wmi_hdl: WMI handle
59  * @evt_buf: Event buffer
60  * @idx: Index of the module for which capability is received
61  * @param: Pointer to direct buffer rx entry
62  *
63  * Return: QDF status of operation
64  */
65 QDF_STATUS wmi_extract_dbr_buf_release_entry(
66 			void *wmi_hdl,
67 			uint8_t *evt_buf, uint8_t idx,
68 			struct direct_buf_rx_entry *param);
69 
70 /**
71  * wmi_extract_dbr_buf_metadata: Extract direct buffer metadata
72  *
73  * @wmi_hdl: WMI handle
74  * @evt_buf: Event buffer
75  * @idx: Index of the module for which capability is received
76  * @param: Pointer to direct buffer metadata
77  *
78  * Return: QDF status of operation
79  */
80 QDF_STATUS wmi_extract_dbr_buf_metadata(
81 			void *wmi_hdl,
82 			uint8_t *evt_buf, uint8_t idx,
83 			struct direct_buf_rx_metadata *param);
84 
85 #endif /* _WMI_UNIFIED_DBR_API_H_ */
86