Drop support for kernels < 4.4 from random instrumentation
[lttng-modules.git] / include / instrumentation / events / random.h
CommitLineData
b7cdc182 1/* SPDX-License-Identifier: GPL-2.0-only */
b87700e3
AG
2#undef TRACE_SYSTEM
3#define TRACE_SYSTEM random
4
3bc29f0a
MD
5#if !defined(LTTNG_TRACE_RANDOM_H) || defined(TRACE_HEADER_MULTI_READ)
6#define LTTNG_TRACE_RANDOM_H
b87700e3 7
3b4aafcb 8#include <lttng/tracepoint-event.h>
b87700e3 9#include <linux/writeback.h>
b87700e3 10
7ff05f73
MJ
11LTTNG_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)
7ff05f73 24
464034ba
MJ
25#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,17,0))
26LTTNG_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
37LTTNG_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
46LTTNG_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
3bc29f0a 55LTTNG_TRACEPOINT_EVENT_CLASS(random__mix_pool_bytes,
b87700e3
AG
56 TP_PROTO(const char *pool_name, int bytes, unsigned long IP),
57
58 TP_ARGS(pool_name, bytes, IP),
59
f127e61e
MD
60 TP_FIELDS(
61 ctf_string(pool_name, pool_name)
62 ctf_integer(int, bytes, bytes)
2c054599 63 ctf_integer_hex(unsigned long, IP, IP)
f127e61e 64 )
b87700e3
AG
65)
66
3bc29f0a 67LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__mix_pool_bytes, mix_pool_bytes,
9cf29d3e
MD
68
69 random_mix_pool_bytes,
70
b87700e3
AG
71 TP_PROTO(const char *pool_name, int bytes, unsigned long IP),
72
73 TP_ARGS(pool_name, bytes, IP)
74)
75
3bc29f0a 76LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__mix_pool_bytes, mix_pool_bytes_nolock,
9cf29d3e
MD
77
78 random_mix_pool_bytes_nolock,
79
b87700e3
AG
80 TP_PROTO(const char *pool_name, int bytes, unsigned long IP),
81
82 TP_ARGS(pool_name, bytes, IP)
83)
464034ba 84#endif
b87700e3 85
464034ba
MJ
86#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,17,0))
87LTTNG_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))
a6a26911
MJ
102LTTNG_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)
2c054599 115 ctf_integer_hex(unsigned long, IP, IP)
a6a26911
MJ
116 )
117)
118#else
3bc29f0a 119LTTNG_TRACEPOINT_EVENT_MAP(credit_entropy_bits,
9cf29d3e
MD
120
121 random_credit_entropy_bits,
122
b87700e3
AG
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
f127e61e
MD
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)
2c054599 133 ctf_integer_hex(unsigned long, IP, IP)
f127e61e 134 )
b87700e3 135)
a6a26911 136#endif
b87700e3 137
7ff05f73
MJ
138LTTNG_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)
7ff05f73
MJ
152
153#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,17,0))
154LTTNG_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)
9e9b82f4 166#else
7ff05f73
MJ
167LTTNG_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
7ff05f73
MJ
182LTTNG_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
195LTTNG_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
209LTTNG_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)
7ff05f73 227
7ff05f73
MJ
228LTTNG_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
240LTTNG_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
249LTTNG_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)
b87700e3 257
464034ba
MJ
258#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,17,0))
259LTTNG_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
272LTTNG_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
281LTTNG_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
3bc29f0a 290LTTNG_TRACEPOINT_EVENT_CLASS(random__extract_entropy,
b87700e3
AG
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
f127e61e
MD
296 TP_FIELDS(
297 ctf_string(pool_name, pool_name)
298 ctf_integer(int, nbytes, nbytes)
299 ctf_integer(int, entropy_count, entropy_count)
2c054599 300 ctf_integer_hex(unsigned long, IP, IP)
f127e61e 301 )
b87700e3
AG
302)
303
304
3bc29f0a 305LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__extract_entropy, extract_entropy,
9cf29d3e
MD
306
307 random_extract_entropy,
308
b87700e3
AG
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
3bc29f0a 315LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__extract_entropy, extract_entropy_user,
9cf29d3e
MD
316
317 random_extract_entropy_user,
318
b87700e3
AG
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)
464034ba 324#endif
b87700e3 325
7ff05f73
MJ
326LTTNG_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
342LTTNG_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)
7ff05f73
MJ
356
357#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,9,0))
358LTTNG_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
b87700e3
AG
371
372
3bc29f0a 373#endif /* LTTNG_TRACE_RANDOM_H */
b87700e3
AG
374
375/* This part must be outside protection */
3b4aafcb 376#include <lttng/define_trace.h>
This page took 0.066604 seconds and 4 git commands to generate.