Drop support for kernels < 4.4 from random instrumentation
[lttng-modules.git] / include / instrumentation / events / random.h
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 #undef TRACE_SYSTEM
3 #define TRACE_SYSTEM random
4
5 #if !defined(LTTNG_TRACE_RANDOM_H) || defined(TRACE_HEADER_MULTI_READ)
6 #define LTTNG_TRACE_RANDOM_H
7
8 #include <lttng/tracepoint-event.h>
9 #include <linux/writeback.h>
10
11 LTTNG_TRACEPOINT_EVENT_MAP(add_device_randomness,
12
13 random_add_device_randomness,
14
15 TP_PROTO(int bytes, unsigned long IP),
16
17 TP_ARGS(bytes, IP),
18
19 TP_FIELDS(
20 ctf_integer(int, bytes, bytes)
21 ctf_integer_hex(unsigned long, IP, IP)
22 )
23 )
24
25 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,17,0))
26 LTTNG_TRACEPOINT_EVENT_CLASS(random__mix_pool_bytes,
27 TP_PROTO(int bytes, unsigned long IP),
28
29 TP_ARGS(bytes, IP),
30
31 TP_FIELDS(
32 ctf_integer(int, bytes, bytes)
33 ctf_integer_hex(unsigned long, IP, IP)
34 )
35 )
36
37 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__mix_pool_bytes, mix_pool_bytes,
38
39 random_mix_pool_bytes,
40
41 TP_PROTO(int bytes, unsigned long IP),
42
43 TP_ARGS(bytes, IP)
44 )
45
46 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__mix_pool_bytes, mix_pool_bytes_nolock,
47
48 random_mix_pool_bytes_nolock,
49
50 TP_PROTO(int bytes, unsigned long IP),
51
52 TP_ARGS(bytes, IP)
53 )
54 #else
55 LTTNG_TRACEPOINT_EVENT_CLASS(random__mix_pool_bytes,
56 TP_PROTO(const char *pool_name, int bytes, unsigned long IP),
57
58 TP_ARGS(pool_name, bytes, IP),
59
60 TP_FIELDS(
61 ctf_string(pool_name, pool_name)
62 ctf_integer(int, bytes, bytes)
63 ctf_integer_hex(unsigned long, IP, IP)
64 )
65 )
66
67 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__mix_pool_bytes, mix_pool_bytes,
68
69 random_mix_pool_bytes,
70
71 TP_PROTO(const char *pool_name, int bytes, unsigned long IP),
72
73 TP_ARGS(pool_name, bytes, IP)
74 )
75
76 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__mix_pool_bytes, mix_pool_bytes_nolock,
77
78 random_mix_pool_bytes_nolock,
79
80 TP_PROTO(const char *pool_name, int bytes, unsigned long IP),
81
82 TP_ARGS(pool_name, bytes, IP)
83 )
84 #endif
85
86 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,17,0))
87 LTTNG_TRACEPOINT_EVENT_MAP(credit_entropy_bits,
88
89 random_credit_entropy_bits,
90
91 TP_PROTO(int bits, int entropy_count, unsigned long IP),
92
93 TP_ARGS(bits, entropy_count, IP),
94
95 TP_FIELDS(
96 ctf_integer(int, bits, bits)
97 ctf_integer(int, entropy_count, entropy_count)
98 ctf_integer_hex(unsigned long, IP, IP)
99 )
100 )
101 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,2,0))
102 LTTNG_TRACEPOINT_EVENT_MAP(credit_entropy_bits,
103
104 random_credit_entropy_bits,
105
106 TP_PROTO(const char *pool_name, int bits, int entropy_count,
107 unsigned long IP),
108
109 TP_ARGS(pool_name, bits, entropy_count, IP),
110
111 TP_FIELDS(
112 ctf_string(pool_name, pool_name)
113 ctf_integer(int, bits, bits)
114 ctf_integer(int, entropy_count, entropy_count)
115 ctf_integer_hex(unsigned long, IP, IP)
116 )
117 )
118 #else
119 LTTNG_TRACEPOINT_EVENT_MAP(credit_entropy_bits,
120
121 random_credit_entropy_bits,
122
123 TP_PROTO(const char *pool_name, int bits, int entropy_count,
124 int entropy_total, unsigned long IP),
125
126 TP_ARGS(pool_name, bits, entropy_count, entropy_total, IP),
127
128 TP_FIELDS(
129 ctf_string(pool_name, pool_name)
130 ctf_integer(int, bits, bits)
131 ctf_integer(int, entropy_count, entropy_count)
132 ctf_integer(int, entropy_total, entropy_total)
133 ctf_integer_hex(unsigned long, IP, IP)
134 )
135 )
136 #endif
137
138 LTTNG_TRACEPOINT_EVENT_MAP(push_to_pool,
139
140 random_push_to_pool,
141
142 TP_PROTO(const char *pool_name, int pool_bits, int input_bits),
143
144 TP_ARGS(pool_name, pool_bits, input_bits),
145
146 TP_FIELDS(
147 ctf_string(pool_name, pool_name)
148 ctf_integer(int, pool_bits, pool_bits)
149 ctf_integer(int, input_bits, input_bits)
150 )
151 )
152
153 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,17,0))
154 LTTNG_TRACEPOINT_EVENT_MAP(debit_entropy,
155
156 random_debit_entropy,
157
158 TP_PROTO(int debit_bits),
159
160 TP_ARGS(debit_bits),
161
162 TP_FIELDS(
163 ctf_integer(int, debit_bits, debit_bits)
164 )
165 )
166 #else
167 LTTNG_TRACEPOINT_EVENT_MAP(debit_entropy,
168
169 random_debit_entropy,
170
171 TP_PROTO(const char *pool_name, int debit_bits),
172
173 TP_ARGS(pool_name, debit_bits),
174
175 TP_FIELDS(
176 ctf_string(pool_name, pool_name)
177 ctf_integer(int, debit_bits, debit_bits)
178 )
179 )
180 #endif
181
182 LTTNG_TRACEPOINT_EVENT_MAP(add_input_randomness,
183
184 random_add_input_randomness,
185
186 TP_PROTO(int input_bits),
187
188 TP_ARGS(input_bits),
189
190 TP_FIELDS(
191 ctf_integer(int, input_bits, input_bits)
192 )
193 )
194
195 LTTNG_TRACEPOINT_EVENT_MAP(add_disk_randomness,
196
197 random_add_disk_randomness,
198
199 TP_PROTO(dev_t dev, int input_bits),
200
201 TP_ARGS(dev, input_bits),
202
203 TP_FIELDS(
204 ctf_integer(dev_t, dev, dev)
205 ctf_integer(int, input_bits, input_bits)
206 )
207 )
208
209 LTTNG_TRACEPOINT_EVENT_MAP(xfer_secondary_pool,
210
211 random_xfer_secondary_pool,
212
213 TP_PROTO(const char *pool_name, int xfer_bits, int request_bits,
214 int pool_entropy, int input_entropy),
215
216 TP_ARGS(pool_name, xfer_bits, request_bits, pool_entropy,
217 input_entropy),
218
219 TP_FIELDS(
220 ctf_string(pool_name, pool_name)
221 ctf_integer(int, xfer_bits, xfer_bits)
222 ctf_integer(int, request_bits, request_bits)
223 ctf_integer(int, pool_entropy, pool_entropy)
224 ctf_integer(int, input_entropy, input_entropy)
225 )
226 )
227
228 LTTNG_TRACEPOINT_EVENT_CLASS(random__get_random_bytes,
229
230 TP_PROTO(int nbytes, unsigned long IP),
231
232 TP_ARGS(nbytes, IP),
233
234 TP_FIELDS(
235 ctf_integer(int, nbytes, nbytes)
236 ctf_integer_hex(unsigned long, IP, IP)
237 )
238 )
239
240 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__get_random_bytes, get_random_bytes,
241
242 random_get_random_bytes,
243
244 TP_PROTO(int nbytes, unsigned long IP),
245
246 TP_ARGS(nbytes, IP)
247 )
248
249 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__get_random_bytes, get_random_bytes_arch,
250
251 random_get_random_bytes_arch,
252
253 TP_PROTO(int nbytes, unsigned long IP),
254
255 TP_ARGS(nbytes, IP)
256 )
257
258 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,17,0))
259 LTTNG_TRACEPOINT_EVENT_CLASS(random__extract_entropy,
260 TP_PROTO(int nbytes, int entropy_count, unsigned long IP),
261
262 TP_ARGS(nbytes, entropy_count, IP),
263
264 TP_FIELDS(
265 ctf_integer(int, nbytes, nbytes)
266 ctf_integer(int, entropy_count, entropy_count)
267 ctf_integer_hex(unsigned long, IP, IP)
268 )
269 )
270
271
272 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__extract_entropy, extract_entropy,
273
274 random_extract_entropy,
275
276 TP_PROTO(int nbytes, int entropy_count, unsigned long IP),
277
278 TP_ARGS(nbytes, entropy_count, IP)
279 )
280
281 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__extract_entropy, extract_entropy_user,
282
283 random_extract_entropy_user,
284
285 TP_PROTO(int nbytes, int entropy_count, unsigned long IP),
286
287 TP_ARGS(nbytes, entropy_count, IP)
288 )
289 #else
290 LTTNG_TRACEPOINT_EVENT_CLASS(random__extract_entropy,
291 TP_PROTO(const char *pool_name, int nbytes, int entropy_count,
292 unsigned long IP),
293
294 TP_ARGS(pool_name, nbytes, entropy_count, IP),
295
296 TP_FIELDS(
297 ctf_string(pool_name, pool_name)
298 ctf_integer(int, nbytes, nbytes)
299 ctf_integer(int, entropy_count, entropy_count)
300 ctf_integer_hex(unsigned long, IP, IP)
301 )
302 )
303
304
305 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__extract_entropy, extract_entropy,
306
307 random_extract_entropy,
308
309 TP_PROTO(const char *pool_name, int nbytes, int entropy_count,
310 unsigned long IP),
311
312 TP_ARGS(pool_name, nbytes, entropy_count, IP)
313 )
314
315 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__extract_entropy, extract_entropy_user,
316
317 random_extract_entropy_user,
318
319 TP_PROTO(const char *pool_name, int nbytes, int entropy_count,
320 unsigned long IP),
321
322 TP_ARGS(pool_name, nbytes, entropy_count, IP)
323 )
324 #endif
325
326 LTTNG_TRACEPOINT_EVENT_MAP(random_read,
327
328 random_random_read,
329
330 TP_PROTO(int got_bits, int need_bits, int pool_left, int input_left),
331
332 TP_ARGS(got_bits, need_bits, pool_left, input_left),
333
334 TP_FIELDS(
335 ctf_integer(int, got_bits, got_bits)
336 ctf_integer(int, need_bits, need_bits)
337 ctf_integer(int, pool_left, pool_left)
338 ctf_integer(int, input_left, input_left)
339 )
340 )
341
342 LTTNG_TRACEPOINT_EVENT_MAP(urandom_read,
343
344 random_urandom_read,
345
346 TP_PROTO(int got_bits, int pool_left, int input_left),
347
348 TP_ARGS(got_bits, pool_left, input_left),
349
350 TP_FIELDS(
351 ctf_integer(int, got_bits, got_bits)
352 ctf_integer(int, pool_left, pool_left)
353 ctf_integer(int, input_left, input_left)
354 )
355 )
356
357 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,9,0))
358 LTTNG_TRACEPOINT_EVENT_MAP(prandom_u32,
359
360 random_prandom_u32,
361
362 TP_PROTO(unsigned int ret),
363
364 TP_ARGS(ret),
365
366 TP_FIELDS(
367 ctf_integer(unsigned int, ret, ret)
368 )
369 )
370 #endif
371
372
373 #endif /* LTTNG_TRACE_RANDOM_H */
374
375 /* This part must be outside protection */
376 #include <lttng/define_trace.h>
This page took 0.039654 seconds and 4 git commands to generate.