xref: /wlan-dirver/qca-wifi-host-cmn/dp/wifi3.0/rh/dp_rh.h (revision 839714c413056bc9b82af766295b4ffabe28bbbf)
1 /*
2  * Copyright (c) 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 #ifndef __DP_RH_H
19 #define __DP_RH_H
20 
21 #include <dp_types.h>
22 #include <dp_mon.h>
23 #include <hal_rh_tx.h>
24 #include <hal_rh_rx.h>
25 #include <qdf_pkt_add_timestamp.h>
26 
27 /**
28  * struct dp_soc_rh - Extended DP soc for RH targets
29  * @soc: dp soc structure
30  */
31 struct dp_soc_rh {
32 	struct dp_soc soc;
33 };
34 
35 /**
36  * struct dp_pdev_rh - Extended DP pdev for RH targets
37  * @pdev: dp_pdev structure
38  */
39 struct dp_pdev_rh {
40 	struct dp_pdev pdev;
41 };
42 
43 /**
44  * struct dp_vdev_rh - Extended DP vdev for RH targets
45  * @vdev: dp_vdev structure
46  */
47 struct dp_vdev_rh {
48 	struct dp_vdev vdev;
49 };
50 
51 /**
52  * struct dp_peer_rh - Extended DP peer for RH targets
53  * @peer: dp_peer structure
54  */
55 struct dp_peer_rh {
56 	struct dp_peer peer;
57 };
58 
59 /**
60  * struct dp_mon_soc_rh - Extended DP mon soc for RH targets
61  * @mon_soc: dp_mon_soc structure
62  */
63 struct dp_mon_soc_rh {
64 	struct dp_mon_soc mon_soc;
65 };
66 
67 /**
68  * struct dp_mon_pdev_rh - Extended DP mon pdev for RH targets
69  * @mon_pdev: dp_mon_pdev structure
70  */
71 struct dp_mon_pdev_rh {
72 	struct dp_mon_pdev mon_pdev;
73 };
74 
75 /**
76  * dp_get_soc_context_size_rh() - get context size for dp_soc_rh
77  *
78  * Return: value in bytes for RH specific soc structure
79  */
80 qdf_size_t dp_get_soc_context_size_rh(void);
81 
82 /**
83  * dp_initialize_arch_ops_rh() - initialize RH specific arch ops
84  * @arch_ops: arch ops pointer
85  *
86  * Return: none
87  */
88 void dp_initialize_arch_ops_rh(struct dp_arch_ops *arch_ops);
89 
90 /**
91  * dp_get_context_size_rh() - get RH specific size for peer/vdev/pdev/soc
92  * @context_type: Context type to get size
93  *
94  * Return: size in bytes for the context_type
95  */
96 
97 qdf_size_t dp_get_context_size_rh(enum dp_context_type context_type);
98 
99 /**
100  * dp_mon_get_context_size_rh() - get RH specific size for mon pdev/soc
101  * @context_type: Mon context type to get size
102  *
103  * Return: size in bytes for the context_type
104  */
105 
106 qdf_size_t dp_mon_get_context_size_rh(enum dp_context_type context_type);
107 
108 #endif
109