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