1 /* SPDX-License-Identifier: GPL-2.0-only */
3 #define TRACE_SYSTEM random
5 #if !defined(LTTNG_TRACE_RANDOM_H) || defined(TRACE_HEADER_MULTI_READ)
6 #define LTTNG_TRACE_RANDOM_H
8 #include <lttng/tracepoint-event.h>
9 #include <linux/writeback.h>
11 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,13,0))
12 LTTNG_TRACEPOINT_EVENT_MAP(add_device_randomness
,
14 random_add_device_randomness
,
16 TP_PROTO(int bytes
, unsigned long IP
),
21 ctf_integer(int, bytes
, bytes
)
22 ctf_integer_hex(unsigned long, IP
, IP
)
27 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,17,0))
28 LTTNG_TRACEPOINT_EVENT_CLASS(random__mix_pool_bytes
,
29 TP_PROTO(int bytes
, unsigned long IP
),
34 ctf_integer(int, bytes
, bytes
)
35 ctf_integer_hex(unsigned long, IP
, IP
)
39 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__mix_pool_bytes
, mix_pool_bytes
,
41 random_mix_pool_bytes
,
43 TP_PROTO(int bytes
, unsigned long IP
),
48 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__mix_pool_bytes
, mix_pool_bytes_nolock
,
50 random_mix_pool_bytes_nolock
,
52 TP_PROTO(int bytes
, unsigned long IP
),
57 LTTNG_TRACEPOINT_EVENT_CLASS(random__mix_pool_bytes
,
58 TP_PROTO(const char *pool_name
, int bytes
, unsigned long IP
),
60 TP_ARGS(pool_name
, bytes
, IP
),
63 ctf_string(pool_name
, pool_name
)
64 ctf_integer(int, bytes
, bytes
)
65 ctf_integer_hex(unsigned long, IP
, IP
)
69 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__mix_pool_bytes
, mix_pool_bytes
,
71 random_mix_pool_bytes
,
73 TP_PROTO(const char *pool_name
, int bytes
, unsigned long IP
),
75 TP_ARGS(pool_name
, bytes
, IP
)
78 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__mix_pool_bytes
, mix_pool_bytes_nolock
,
80 random_mix_pool_bytes_nolock
,
82 TP_PROTO(const char *pool_name
, int bytes
, unsigned long IP
),
84 TP_ARGS(pool_name
, bytes
, IP
)
88 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,17,0))
89 LTTNG_TRACEPOINT_EVENT_MAP(credit_entropy_bits
,
91 random_credit_entropy_bits
,
93 TP_PROTO(int bits
, int entropy_count
, unsigned long IP
),
95 TP_ARGS(bits
, entropy_count
, IP
),
98 ctf_integer(int, bits
, bits
)
99 ctf_integer(int, entropy_count
, entropy_count
)
100 ctf_integer_hex(unsigned long, IP
, IP
)
103 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,2,0))
104 LTTNG_TRACEPOINT_EVENT_MAP(credit_entropy_bits
,
106 random_credit_entropy_bits
,
108 TP_PROTO(const char *pool_name
, int bits
, int entropy_count
,
111 TP_ARGS(pool_name
, bits
, entropy_count
, IP
),
114 ctf_string(pool_name
, pool_name
)
115 ctf_integer(int, bits
, bits
)
116 ctf_integer(int, entropy_count
, entropy_count
)
117 ctf_integer_hex(unsigned long, IP
, IP
)
121 LTTNG_TRACEPOINT_EVENT_MAP(credit_entropy_bits
,
123 random_credit_entropy_bits
,
125 TP_PROTO(const char *pool_name
, int bits
, int entropy_count
,
126 int entropy_total
, unsigned long IP
),
128 TP_ARGS(pool_name
, bits
, entropy_count
, entropy_total
, IP
),
131 ctf_string(pool_name
, pool_name
)
132 ctf_integer(int, bits
, bits
)
133 ctf_integer(int, entropy_count
, entropy_count
)
134 ctf_integer(int, entropy_total
, entropy_total
)
135 ctf_integer_hex(unsigned long, IP
, IP
)
140 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,13,0))
141 LTTNG_TRACEPOINT_EVENT_MAP(push_to_pool
,
145 TP_PROTO(const char *pool_name
, int pool_bits
, int input_bits
),
147 TP_ARGS(pool_name
, pool_bits
, input_bits
),
150 ctf_string(pool_name
, pool_name
)
151 ctf_integer(int, pool_bits
, pool_bits
)
152 ctf_integer(int, input_bits
, input_bits
)
157 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,17,0))
158 LTTNG_TRACEPOINT_EVENT_MAP(debit_entropy
,
160 random_debit_entropy
,
162 TP_PROTO(int debit_bits
),
167 ctf_integer(int, debit_bits
, debit_bits
)
170 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,13,0))
171 LTTNG_TRACEPOINT_EVENT_MAP(debit_entropy
,
173 random_debit_entropy
,
175 TP_PROTO(const char *pool_name
, int debit_bits
),
177 TP_ARGS(pool_name
, debit_bits
),
180 ctf_string(pool_name
, pool_name
)
181 ctf_integer(int, debit_bits
, debit_bits
)
186 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,13,0))
187 LTTNG_TRACEPOINT_EVENT_MAP(add_input_randomness
,
189 random_add_input_randomness
,
191 TP_PROTO(int input_bits
),
196 ctf_integer(int, input_bits
, input_bits
)
200 LTTNG_TRACEPOINT_EVENT_MAP(add_disk_randomness
,
202 random_add_disk_randomness
,
204 TP_PROTO(dev_t dev
, int input_bits
),
206 TP_ARGS(dev
, input_bits
),
209 ctf_integer(dev_t
, dev
, dev
)
210 ctf_integer(int, input_bits
, input_bits
)
214 LTTNG_TRACEPOINT_EVENT_MAP(xfer_secondary_pool
,
216 random_xfer_secondary_pool
,
218 TP_PROTO(const char *pool_name
, int xfer_bits
, int request_bits
,
219 int pool_entropy
, int input_entropy
),
221 TP_ARGS(pool_name
, xfer_bits
, request_bits
, pool_entropy
,
225 ctf_string(pool_name
, pool_name
)
226 ctf_integer(int, xfer_bits
, xfer_bits
)
227 ctf_integer(int, request_bits
, request_bits
)
228 ctf_integer(int, pool_entropy
, pool_entropy
)
229 ctf_integer(int, input_entropy
, input_entropy
)
234 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,13,0))
235 LTTNG_TRACEPOINT_EVENT_CLASS(random__get_random_bytes
,
237 TP_PROTO(int nbytes
, unsigned long IP
),
242 ctf_integer(int, nbytes
, nbytes
)
243 ctf_integer_hex(unsigned long, IP
, IP
)
247 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__get_random_bytes
, get_random_bytes
,
249 random_get_random_bytes
,
251 TP_PROTO(int nbytes
, unsigned long IP
),
256 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__get_random_bytes
, get_random_bytes_arch
,
258 random_get_random_bytes_arch
,
260 TP_PROTO(int nbytes
, unsigned long IP
),
265 LTTNG_TRACEPOINT_EVENT_MAP(get_random_bytes
,
267 random_get_random_bytes
,
269 TP_PROTO(int nbytes
, unsigned long IP
),
274 ctf_integer(int, nbytes
, nbytes
)
275 ctf_integer_hex(unsigned long, IP
, IP
)
280 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,17,0))
281 LTTNG_TRACEPOINT_EVENT_CLASS(random__extract_entropy
,
282 TP_PROTO(int nbytes
, int entropy_count
, unsigned long IP
),
284 TP_ARGS(nbytes
, entropy_count
, IP
),
287 ctf_integer(int, nbytes
, nbytes
)
288 ctf_integer(int, entropy_count
, entropy_count
)
289 ctf_integer_hex(unsigned long, IP
, IP
)
294 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__extract_entropy
, extract_entropy
,
296 random_extract_entropy
,
298 TP_PROTO(int nbytes
, int entropy_count
, unsigned long IP
),
300 TP_ARGS(nbytes
, entropy_count
, IP
)
303 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__extract_entropy
, extract_entropy_user
,
305 random_extract_entropy_user
,
307 TP_PROTO(int nbytes
, int entropy_count
, unsigned long IP
),
309 TP_ARGS(nbytes
, entropy_count
, IP
)
312 LTTNG_TRACEPOINT_EVENT_CLASS(random__extract_entropy
,
313 TP_PROTO(const char *pool_name
, int nbytes
, int entropy_count
,
316 TP_ARGS(pool_name
, nbytes
, entropy_count
, IP
),
319 ctf_string(pool_name
, pool_name
)
320 ctf_integer(int, nbytes
, nbytes
)
321 ctf_integer(int, entropy_count
, entropy_count
)
322 ctf_integer_hex(unsigned long, IP
, IP
)
327 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__extract_entropy
, extract_entropy
,
329 random_extract_entropy
,
331 TP_PROTO(const char *pool_name
, int nbytes
, int entropy_count
,
334 TP_ARGS(pool_name
, nbytes
, entropy_count
, IP
)
337 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__extract_entropy
, extract_entropy_user
,
339 random_extract_entropy_user
,
341 TP_PROTO(const char *pool_name
, int nbytes
, int entropy_count
,
344 TP_ARGS(pool_name
, nbytes
, entropy_count
, IP
)
348 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,13,0))
349 LTTNG_TRACEPOINT_EVENT_MAP(random_read
,
353 TP_PROTO(int got_bits
, int need_bits
, int pool_left
, int input_left
),
355 TP_ARGS(got_bits
, need_bits
, pool_left
, input_left
),
358 ctf_integer(int, got_bits
, got_bits
)
359 ctf_integer(int, need_bits
, need_bits
)
360 ctf_integer(int, pool_left
, pool_left
)
361 ctf_integer(int, input_left
, input_left
)
365 LTTNG_TRACEPOINT_EVENT_MAP(urandom_read
,
369 TP_PROTO(int got_bits
, int pool_left
, int input_left
),
371 TP_ARGS(got_bits
, pool_left
, input_left
),
374 ctf_integer(int, got_bits
, got_bits
)
375 ctf_integer(int, pool_left
, pool_left
)
376 ctf_integer(int, input_left
, input_left
)
381 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,9,0))
382 LTTNG_TRACEPOINT_EVENT_MAP(prandom_u32
,
386 TP_PROTO(unsigned int ret
),
391 ctf_integer(unsigned int, ret
, ret
)
397 #endif /* LTTNG_TRACE_RANDOM_H */
399 /* This part must be outside protection */
400 #include <lttng/define_trace.h>