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(5,17,0))
12 LTTNG_TRACEPOINT_EVENT_CLASS(random__mix_pool_bytes
,
13 TP_PROTO(int bytes
, unsigned long IP
),
18 ctf_integer(int, bytes
, bytes
)
19 ctf_integer_hex(unsigned long, IP
, IP
)
23 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__mix_pool_bytes
, mix_pool_bytes
,
25 random_mix_pool_bytes
,
27 TP_PROTO(int bytes
, unsigned long IP
),
32 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__mix_pool_bytes
, mix_pool_bytes_nolock
,
34 random_mix_pool_bytes_nolock
,
36 TP_PROTO(int bytes
, unsigned long IP
),
41 LTTNG_TRACEPOINT_EVENT_CLASS(random__mix_pool_bytes
,
42 TP_PROTO(const char *pool_name
, int bytes
, unsigned long IP
),
44 TP_ARGS(pool_name
, bytes
, IP
),
47 ctf_string(pool_name
, pool_name
)
48 ctf_integer(int, bytes
, bytes
)
49 ctf_integer_hex(unsigned long, IP
, IP
)
53 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__mix_pool_bytes
, mix_pool_bytes
,
55 random_mix_pool_bytes
,
57 TP_PROTO(const char *pool_name
, int bytes
, unsigned long IP
),
59 TP_ARGS(pool_name
, bytes
, IP
)
62 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__mix_pool_bytes
, mix_pool_bytes_nolock
,
64 random_mix_pool_bytes_nolock
,
66 TP_PROTO(const char *pool_name
, int bytes
, unsigned long IP
),
68 TP_ARGS(pool_name
, bytes
, IP
)
72 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,17,0))
73 LTTNG_TRACEPOINT_EVENT_MAP(credit_entropy_bits
,
75 random_credit_entropy_bits
,
77 TP_PROTO(int bits
, int entropy_count
, unsigned long IP
),
79 TP_ARGS(bits
, entropy_count
, IP
),
82 ctf_integer(int, bits
, bits
)
83 ctf_integer(int, entropy_count
, entropy_count
)
84 ctf_integer_hex(unsigned long, IP
, IP
)
87 #elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,2,0))
88 LTTNG_TRACEPOINT_EVENT_MAP(credit_entropy_bits
,
90 random_credit_entropy_bits
,
92 TP_PROTO(const char *pool_name
, int bits
, int entropy_count
,
95 TP_ARGS(pool_name
, bits
, entropy_count
, IP
),
98 ctf_string(pool_name
, pool_name
)
99 ctf_integer(int, bits
, bits
)
100 ctf_integer(int, entropy_count
, entropy_count
)
101 ctf_integer_hex(unsigned long, IP
, IP
)
105 LTTNG_TRACEPOINT_EVENT_MAP(credit_entropy_bits
,
107 random_credit_entropy_bits
,
109 TP_PROTO(const char *pool_name
, int bits
, int entropy_count
,
110 int entropy_total
, unsigned long IP
),
112 TP_ARGS(pool_name
, bits
, entropy_count
, entropy_total
, IP
),
115 ctf_string(pool_name
, pool_name
)
116 ctf_integer(int, bits
, bits
)
117 ctf_integer(int, entropy_count
, entropy_count
)
118 ctf_integer(int, entropy_total
, entropy_total
)
119 ctf_integer_hex(unsigned long, IP
, IP
)
124 LTTNG_TRACEPOINT_EVENT_MAP(get_random_bytes
,
126 random_get_random_bytes
,
128 TP_PROTO(int nbytes
, unsigned long IP
),
133 ctf_integer(int, nbytes
, nbytes
)
134 ctf_integer_hex(unsigned long, IP
, IP
)
138 #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,17,0))
139 LTTNG_TRACEPOINT_EVENT_CLASS(random__extract_entropy
,
140 TP_PROTO(int nbytes
, int entropy_count
, unsigned long IP
),
142 TP_ARGS(nbytes
, entropy_count
, IP
),
145 ctf_integer(int, nbytes
, nbytes
)
146 ctf_integer(int, entropy_count
, entropy_count
)
147 ctf_integer_hex(unsigned long, IP
, IP
)
152 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__extract_entropy
, extract_entropy
,
154 random_extract_entropy
,
156 TP_PROTO(int nbytes
, int entropy_count
, unsigned long IP
),
158 TP_ARGS(nbytes
, entropy_count
, IP
)
161 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__extract_entropy
, extract_entropy_user
,
163 random_extract_entropy_user
,
165 TP_PROTO(int nbytes
, int entropy_count
, unsigned long IP
),
167 TP_ARGS(nbytes
, entropy_count
, IP
)
170 LTTNG_TRACEPOINT_EVENT_CLASS(random__extract_entropy
,
171 TP_PROTO(const char *pool_name
, int nbytes
, int entropy_count
,
174 TP_ARGS(pool_name
, nbytes
, entropy_count
, IP
),
177 ctf_string(pool_name
, pool_name
)
178 ctf_integer(int, nbytes
, nbytes
)
179 ctf_integer(int, entropy_count
, entropy_count
)
180 ctf_integer_hex(unsigned long, IP
, IP
)
185 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__extract_entropy
, extract_entropy
,
187 random_extract_entropy
,
189 TP_PROTO(const char *pool_name
, int nbytes
, int entropy_count
,
192 TP_ARGS(pool_name
, nbytes
, entropy_count
, IP
)
195 LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(random__extract_entropy
, extract_entropy_user
,
197 random_extract_entropy_user
,
199 TP_PROTO(const char *pool_name
, int nbytes
, int entropy_count
,
202 TP_ARGS(pool_name
, nbytes
, entropy_count
, IP
)
208 #endif /* LTTNG_TRACE_RANDOM_H */
210 /* This part must be outside protection */
211 #include <lttng/define_trace.h>