Merge tag 'integrity-v5.13' of git://git.kernel.org/pub/scm/linux/kernel/git/zohar...
[linux-2.6-microblaze.git] / include / trace / events / random.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #undef TRACE_SYSTEM
3 #define TRACE_SYSTEM random
4
5 #if !defined(_TRACE_RANDOM_H) || defined(TRACE_HEADER_MULTI_READ)
6 #define _TRACE_RANDOM_H
7
8 #include <linux/writeback.h>
9 #include <linux/tracepoint.h>
10
11 TRACE_EVENT(add_device_randomness,
12         TP_PROTO(int bytes, unsigned long IP),
13
14         TP_ARGS(bytes, IP),
15
16         TP_STRUCT__entry(
17                 __field(          int,  bytes                   )
18                 __field(unsigned long,  IP                      )
19         ),
20
21         TP_fast_assign(
22                 __entry->bytes          = bytes;
23                 __entry->IP             = IP;
24         ),
25
26         TP_printk("bytes %d caller %pS",
27                 __entry->bytes, (void *)__entry->IP)
28 );
29
30 DECLARE_EVENT_CLASS(random__mix_pool_bytes,
31         TP_PROTO(const char *pool_name, int bytes, unsigned long IP),
32
33         TP_ARGS(pool_name, bytes, IP),
34
35         TP_STRUCT__entry(
36                 __field( const char *,  pool_name               )
37                 __field(          int,  bytes                   )
38                 __field(unsigned long,  IP                      )
39         ),
40
41         TP_fast_assign(
42                 __entry->pool_name      = pool_name;
43                 __entry->bytes          = bytes;
44                 __entry->IP             = IP;
45         ),
46
47         TP_printk("%s pool: bytes %d caller %pS",
48                   __entry->pool_name, __entry->bytes, (void *)__entry->IP)
49 );
50
51 DEFINE_EVENT(random__mix_pool_bytes, mix_pool_bytes,
52         TP_PROTO(const char *pool_name, int bytes, unsigned long IP),
53
54         TP_ARGS(pool_name, bytes, IP)
55 );
56
57 DEFINE_EVENT(random__mix_pool_bytes, mix_pool_bytes_nolock,
58         TP_PROTO(const char *pool_name, int bytes, unsigned long IP),
59
60         TP_ARGS(pool_name, bytes, IP)
61 );
62
63 TRACE_EVENT(credit_entropy_bits,
64         TP_PROTO(const char *pool_name, int bits, int entropy_count,
65                  unsigned long IP),
66
67         TP_ARGS(pool_name, bits, entropy_count, IP),
68
69         TP_STRUCT__entry(
70                 __field( const char *,  pool_name               )
71                 __field(          int,  bits                    )
72                 __field(          int,  entropy_count           )
73                 __field(unsigned long,  IP                      )
74         ),
75
76         TP_fast_assign(
77                 __entry->pool_name      = pool_name;
78                 __entry->bits           = bits;
79                 __entry->entropy_count  = entropy_count;
80                 __entry->IP             = IP;
81         ),
82
83         TP_printk("%s pool: bits %d entropy_count %d caller %pS",
84                   __entry->pool_name, __entry->bits,
85                   __entry->entropy_count, (void *)__entry->IP)
86 );
87
88 TRACE_EVENT(debit_entropy,
89         TP_PROTO(const char *pool_name, int debit_bits),
90
91         TP_ARGS(pool_name, debit_bits),
92
93         TP_STRUCT__entry(
94                 __field( const char *,  pool_name               )
95                 __field(          int,  debit_bits              )
96         ),
97
98         TP_fast_assign(
99                 __entry->pool_name      = pool_name;
100                 __entry->debit_bits     = debit_bits;
101         ),
102
103         TP_printk("%s: debit_bits %d", __entry->pool_name,
104                   __entry->debit_bits)
105 );
106
107 TRACE_EVENT(add_input_randomness,
108         TP_PROTO(int input_bits),
109
110         TP_ARGS(input_bits),
111
112         TP_STRUCT__entry(
113                 __field(          int,  input_bits              )
114         ),
115
116         TP_fast_assign(
117                 __entry->input_bits     = input_bits;
118         ),
119
120         TP_printk("input_pool_bits %d", __entry->input_bits)
121 );
122
123 TRACE_EVENT(add_disk_randomness,
124         TP_PROTO(dev_t dev, int input_bits),
125
126         TP_ARGS(dev, input_bits),
127
128         TP_STRUCT__entry(
129                 __field(        dev_t,  dev                     )
130                 __field(          int,  input_bits              )
131         ),
132
133         TP_fast_assign(
134                 __entry->dev            = dev;
135                 __entry->input_bits     = input_bits;
136         ),
137
138         TP_printk("dev %d,%d input_pool_bits %d", MAJOR(__entry->dev),
139                   MINOR(__entry->dev), __entry->input_bits)
140 );
141
142 DECLARE_EVENT_CLASS(random__get_random_bytes,
143         TP_PROTO(int nbytes, unsigned long IP),
144
145         TP_ARGS(nbytes, IP),
146
147         TP_STRUCT__entry(
148                 __field(          int,  nbytes                  )
149                 __field(unsigned long,  IP                      )
150         ),
151
152         TP_fast_assign(
153                 __entry->nbytes         = nbytes;
154                 __entry->IP             = IP;
155         ),
156
157         TP_printk("nbytes %d caller %pS", __entry->nbytes, (void *)__entry->IP)
158 );
159
160 DEFINE_EVENT(random__get_random_bytes, get_random_bytes,
161         TP_PROTO(int nbytes, unsigned long IP),
162
163         TP_ARGS(nbytes, IP)
164 );
165
166 DEFINE_EVENT(random__get_random_bytes, get_random_bytes_arch,
167         TP_PROTO(int nbytes, unsigned long IP),
168
169         TP_ARGS(nbytes, IP)
170 );
171
172 DECLARE_EVENT_CLASS(random__extract_entropy,
173         TP_PROTO(const char *pool_name, int nbytes, int entropy_count,
174                  unsigned long IP),
175
176         TP_ARGS(pool_name, nbytes, entropy_count, IP),
177
178         TP_STRUCT__entry(
179                 __field( const char *,  pool_name               )
180                 __field(          int,  nbytes                  )
181                 __field(          int,  entropy_count           )
182                 __field(unsigned long,  IP                      )
183         ),
184
185         TP_fast_assign(
186                 __entry->pool_name      = pool_name;
187                 __entry->nbytes         = nbytes;
188                 __entry->entropy_count  = entropy_count;
189                 __entry->IP             = IP;
190         ),
191
192         TP_printk("%s pool: nbytes %d entropy_count %d caller %pS",
193                   __entry->pool_name, __entry->nbytes, __entry->entropy_count,
194                   (void *)__entry->IP)
195 );
196
197
198 DEFINE_EVENT(random__extract_entropy, extract_entropy,
199         TP_PROTO(const char *pool_name, int nbytes, int entropy_count,
200                  unsigned long IP),
201
202         TP_ARGS(pool_name, nbytes, entropy_count, IP)
203 );
204
205 TRACE_EVENT(urandom_read,
206         TP_PROTO(int got_bits, int pool_left, int input_left),
207
208         TP_ARGS(got_bits, pool_left, input_left),
209
210         TP_STRUCT__entry(
211                 __field(          int,  got_bits                )
212                 __field(          int,  pool_left               )
213                 __field(          int,  input_left              )
214         ),
215
216         TP_fast_assign(
217                 __entry->got_bits       = got_bits;
218                 __entry->pool_left      = pool_left;
219                 __entry->input_left     = input_left;
220         ),
221
222         TP_printk("got_bits %d nonblocking_pool_entropy_left %d "
223                   "input_entropy_left %d", __entry->got_bits,
224                   __entry->pool_left, __entry->input_left)
225 );
226
227 TRACE_EVENT(prandom_u32,
228
229         TP_PROTO(unsigned int ret),
230
231         TP_ARGS(ret),
232
233         TP_STRUCT__entry(
234                 __field(   unsigned int, ret)
235         ),
236
237         TP_fast_assign(
238                 __entry->ret = ret;
239         ),
240
241         TP_printk("ret=%u" , __entry->ret)
242 );
243
244 #endif /* _TRACE_RANDOM_H */
245
246 /* This part must be outside protection */
247 #include <trace/define_trace.h>