1 /*
2 * Copyright (c) 2021-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
19 /**
20 * DOC: i_qdf_tracepoint.h
21 * This file provides internal interface for triggering tracepoints
22 */
23 #if !defined(_I_QDF_TRACEPOINT_H)
24 #define _I_QDF_TRACEPOINT_H
25
26 #include <qdf_tracepoint_defs.h>
27
28 /**
29 * __qdf_trace_dp_rx_tcp_pkt_enabled() - Get the dp_rx_tcp_pkt tracepoint
30 * enabled or disabled state
31 *
32 * Return: True if the tracepoint is enabled else false
33 */
34 static inline
__qdf_trace_dp_rx_tcp_pkt_enabled(void)35 bool __qdf_trace_dp_rx_tcp_pkt_enabled(void)
36 {
37 return trace_dp_rx_tcp_pkt_enabled();
38 }
39
40 /**
41 * __qdf_trace_dp_rx_tcp_pkt() - Trace tcp packet in rx direction
42 * @skb: pointer to network buffer
43 * @tcp_seq_num: TCP sequence number
44 * @tcp_ack_num: TCP acknowlegment number
45 * @srcport: TCP source port
46 * @dstport: TCP destination port
47 * @latency: latency
48 *
49 * Return: None
50 */
51 static inline
__qdf_trace_dp_rx_tcp_pkt(struct sk_buff * skb,uint32_t tcp_seq_num,uint32_t tcp_ack_num,uint16_t srcport,uint16_t dstport,uint64_t latency)52 void __qdf_trace_dp_rx_tcp_pkt(struct sk_buff *skb, uint32_t tcp_seq_num,
53 uint32_t tcp_ack_num, uint16_t srcport,
54 uint16_t dstport, uint64_t latency)
55 {
56 trace_dp_rx_tcp_pkt(skb, tcp_seq_num, tcp_ack_num, srcport, dstport,
57 latency);
58 }
59
60 /**
61 * __qdf_trace_dp_tx_comp_tcp_pkt_enabled() - Get the dp_tx_comp_tcp_pkt
62 * tracepoint enabled or disabled state
63 *
64 * Return: True if the tracepoint is enabled else false
65 */
66 static inline
__qdf_trace_dp_tx_comp_tcp_pkt_enabled(void)67 bool __qdf_trace_dp_tx_comp_tcp_pkt_enabled(void)
68 {
69 return trace_dp_tx_comp_tcp_pkt_enabled();
70 }
71
72 /**
73 * __qdf_trace_dp_tx_comp_tcp_pkt() - Trace tcp packet in tx completion
74 * @skb: pointer to network buffer
75 * @tcp_seq_num: TCP sequence number
76 * @tcp_ack_num: TCP acknowlegment number
77 * @srcport: TCP source port
78 * @dstport: TCP destination port
79 * @latency: latency
80 *
81 * Return: None
82 */
83 static inline
__qdf_trace_dp_tx_comp_tcp_pkt(struct sk_buff * skb,uint32_t tcp_seq_num,uint32_t tcp_ack_num,uint16_t srcport,uint16_t dstport,uint64_t latency)84 void __qdf_trace_dp_tx_comp_tcp_pkt(struct sk_buff *skb, uint32_t tcp_seq_num,
85 uint32_t tcp_ack_num, uint16_t srcport,
86 uint16_t dstport, uint64_t latency)
87 {
88 trace_dp_tx_comp_tcp_pkt(skb, tcp_seq_num, tcp_ack_num, srcport,
89 dstport, latency);
90 }
91
92 /**
93 * __qdf_trace_dp_rx_udp_pkt_enabled() - Get the dp_rx_udp_pkt tracepoint
94 * enabled or disabled state
95 *
96 * Return: True if the tracepoint is enabled else false
97 */
98 static inline
__qdf_trace_dp_rx_udp_pkt_enabled(void)99 bool __qdf_trace_dp_rx_udp_pkt_enabled(void)
100 {
101 return trace_dp_rx_udp_pkt_enabled();
102 }
103
104 /**
105 * __qdf_trace_dp_rx_udp_pkt() - Trace udp packet in rx direction
106 * @skb: pointer to network buffer
107 * @ip_id: ip identification field
108 * @srcport: UDP source port
109 * @dstport: UDP destination port
110 * @latency: latency
111 *
112 * Return: None
113 */
114 static inline
__qdf_trace_dp_rx_udp_pkt(struct sk_buff * skb,uint16_t ip_id,uint16_t srcport,uint16_t dstport,uint64_t latency)115 void __qdf_trace_dp_rx_udp_pkt(struct sk_buff *skb, uint16_t ip_id,
116 uint16_t srcport, uint16_t dstport,
117 uint64_t latency)
118 {
119 trace_dp_rx_udp_pkt(skb, ip_id, srcport, dstport, latency);
120 }
121
122 /**
123 * __qdf_trace_dp_tx_comp_udp_pkt_enabled() - Get the dp_tx_comp_udp_pkt
124 * tracepoint enabled or disabled state
125 *
126 * Return: True if the tracepoint is enabled else false
127 */
128 static inline
__qdf_trace_dp_tx_comp_udp_pkt_enabled(void)129 bool __qdf_trace_dp_tx_comp_udp_pkt_enabled(void)
130 {
131 return trace_dp_tx_comp_udp_pkt_enabled();
132 }
133
134 /**
135 * __qdf_trace_dp_tx_comp_udp_pkt() - Trace udp packet in tx completion
136 * @skb: pointer to network buffer
137 * @ip_id: ip identification field
138 * @srcport: UDP source port
139 * @dstport: UDP destination port
140 * @latency: latency
141 *
142 * Return: None
143 */
144 static inline
__qdf_trace_dp_tx_comp_udp_pkt(struct sk_buff * skb,uint16_t ip_id,uint16_t srcport,uint16_t dstport,uint64_t latency)145 void __qdf_trace_dp_tx_comp_udp_pkt(struct sk_buff *skb, uint16_t ip_id,
146 uint16_t srcport, uint16_t dstport,
147 uint64_t latency)
148 {
149 trace_dp_tx_comp_udp_pkt(skb, ip_id, srcport, dstport, latency);
150 }
151
152 /**
153 * __qdf_trace_dp_rx_generic_ip_pkt_enabled() - Get the dp_rx_generic_ip_pkt
154 * tracepoint enabled or disabled state
155 *
156 * Return: True if the tracepoint is enabled else false
157 */
158 static inline
__qdf_trace_dp_rx_generic_ip_pkt_enabled(void)159 bool __qdf_trace_dp_rx_generic_ip_pkt_enabled(void)
160 {
161 return trace_dp_rx_generic_ip_pkt_enabled();
162 }
163
164 /**
165 * __qdf_trace_dp_rx_generic_ip_pkt() - Trace generic ip packet in rx direction
166 * @skb: pointer to network buffer
167 * @ip_proto: ip protocol type
168 * @ip_id: ip identification field
169 * @trans_hdr_4_bytes: transport header first 4 bytes
170 * @latency: latency
171 *
172 * Return: None
173 */
174 static inline
__qdf_trace_dp_rx_generic_ip_pkt(struct sk_buff * skb,uint8_t ip_proto,uint16_t ip_id,uint32_t trans_hdr_4_bytes,uint64_t latency)175 void __qdf_trace_dp_rx_generic_ip_pkt(struct sk_buff *skb, uint8_t ip_proto,
176 uint16_t ip_id, uint32_t trans_hdr_4_bytes,
177 uint64_t latency)
178 {
179 trace_dp_rx_generic_ip_pkt(skb, ip_proto, ip_id,
180 trans_hdr_4_bytes,
181 latency);
182 }
183
184 /**
185 * __qdf_trace_dp_tx_comp_generic_ip_pkt_enabled() - Get the dp_tx_comp_generic_ip_pkt
186 * tracepoint enabled or disabled state
187 *
188 * Return: True if the tracepoint is enabled else false
189 */
190 static inline
__qdf_trace_dp_tx_comp_generic_ip_pkt_enabled(void)191 bool __qdf_trace_dp_tx_comp_generic_ip_pkt_enabled(void)
192 {
193 return trace_dp_tx_comp_generic_ip_pkt_enabled();
194 }
195
196 /**
197 * __qdf_trace_dp_tx_comp_generic_ip_pkt() - Trace generic ip packet in
198 * tx direction
199 * @skb: pointer to network buffer
200 * @ip_proto: IP protocol field
201 * @ip_id: ip identification field
202 * @trans_hdr_4_bytes: transport header first 4 bytes
203 * @latency: latency
204 *
205 * Return: None
206 */
207 static inline
__qdf_trace_dp_tx_comp_generic_ip_pkt(struct sk_buff * skb,uint8_t ip_proto,uint16_t ip_id,uint32_t trans_hdr_4_bytes,uint64_t latency)208 void __qdf_trace_dp_tx_comp_generic_ip_pkt(struct sk_buff *skb,
209 uint8_t ip_proto,
210 uint16_t ip_id,
211 uint32_t trans_hdr_4_bytes,
212 uint64_t latency)
213 {
214 trace_dp_tx_comp_generic_ip_pkt(skb, ip_proto, ip_id,
215 trans_hdr_4_bytes,
216 latency);
217 }
218
219 /**
220 * __qdf_trace_dp_rx_pkt_enabled() - Get the dp_rx_pkt tracepoint
221 * enabled or disabled state
222 *
223 * Return: True if the tracepoint is enabled else false
224 */
225 static inline
__qdf_trace_dp_rx_pkt_enabled(void)226 bool __qdf_trace_dp_rx_pkt_enabled(void)
227 {
228 return trace_dp_rx_pkt_enabled();
229 }
230
231 /**
232 * __qdf_trace_dp_rx_pkt() - Trace non-tcp/udp packet in rx direction
233 * @skb: pointer to network buffer
234 * @ether_type: type in ethernet header
235 * @latency: latency
236 *
237 * Return: None
238 */
239 static inline
__qdf_trace_dp_rx_pkt(struct sk_buff * skb,uint16_t ether_type,uint64_t latency)240 void __qdf_trace_dp_rx_pkt(struct sk_buff *skb, uint16_t ether_type,
241 uint64_t latency)
242 {
243 trace_dp_rx_pkt(skb, ether_type, latency);
244 }
245
246 /**
247 * __qdf_trace_dp_tx_comp_pkt_enabled() - Get the dp_tx_comp_pkt tracepoint
248 * enabled or disabled state
249 *
250 * Return: True if the tracepoint is enabled else false
251 */
252 static inline
__qdf_trace_dp_tx_comp_pkt_enabled(void)253 bool __qdf_trace_dp_tx_comp_pkt_enabled(void)
254 {
255 return trace_dp_tx_comp_pkt_enabled();
256 }
257
258 /**
259 * __qdf_trace_dp_tx_comp_pkt() - Trace non-tcp/udp packet in rx direction
260 * @skb: pointer to network buffer
261 * @ether_type: type in ethernet header
262 * @latency: latency
263 *
264 * Return: None
265 */
266 static inline
__qdf_trace_dp_tx_comp_pkt(struct sk_buff * skb,uint16_t ether_type,uint64_t latency)267 void __qdf_trace_dp_tx_comp_pkt(struct sk_buff *skb, uint16_t ether_type,
268 uint64_t latency)
269 {
270 trace_dp_tx_comp_pkt(skb, ether_type, latency);
271 }
272
273 /**
274 * __qdf_trace_dp_del_reg_write_enabled() - Get the dp_del_reg_write tracepoint
275 * enabled or disabled state
276 *
277 * Return: True if the tracepoint is enabled else false
278 */
279 static inline
__qdf_trace_dp_del_reg_write_enabled(void)280 bool __qdf_trace_dp_del_reg_write_enabled(void)
281 {
282 return trace_dp_del_reg_write_enabled();
283 }
284
285 /**
286 * __qdf_trace_dp_del_reg_write() - Trace delayed register writes
287 * @srng_id: srng id
288 * @enq_val: enqueue value
289 * @deq_val: dequeue value
290 * @enq_time: enqueue time
291 * @deq_time: dequeue time
292 *
293 * Return: None
294 */
295 static inline
__qdf_trace_dp_del_reg_write(uint8_t srng_id,uint32_t enq_val,uint32_t deq_val,uint64_t enq_time,uint64_t deq_time)296 void __qdf_trace_dp_del_reg_write(uint8_t srng_id, uint32_t enq_val,
297 uint32_t deq_val, uint64_t enq_time,
298 uint64_t deq_time)
299 {
300 trace_dp_del_reg_write(srng_id, enq_val, deq_val, enq_time,
301 deq_time);
302 }
303
304 /**
305 * __qdf_trace_dp_ce_tasklet_sched_latency_enabled() - Get the
306 * dp_ce_tasklet_sched_lat tracepoint enabled or disabled state
307 *
308 * Return: True if the tracepoint is enabled else false
309 */
310 static inline
__qdf_trace_dp_ce_tasklet_sched_latency_enabled(void)311 bool __qdf_trace_dp_ce_tasklet_sched_latency_enabled(void)
312 {
313 return trace_dp_ce_tasklet_sched_latency_enabled();
314 }
315
316 /**
317 * __qdf_trace_dp_ce_tasklet_sched_latency() - Trace ce tasklet scheduling
318 * latency
319 * @ce_id: ce id
320 * @sched_latency: ce tasklet sched latency
321 *
322 * Return: None
323 */
324 static inline void
__qdf_trace_dp_ce_tasklet_sched_latency(uint8_t ce_id,uint64_t sched_latency)325 __qdf_trace_dp_ce_tasklet_sched_latency(uint8_t ce_id, uint64_t sched_latency)
326 {
327 trace_dp_ce_tasklet_sched_latency(ce_id, sched_latency);
328 }
329 #endif /* _I_QDF_TRACEPOINT_H */
330