Add new kernel probes instrumentation
[lttng-modules.git] / instrumentation / events / lttng-module / random.h
1 #undef TRACE_SYSTEM
2 #define TRACE_SYSTEM random
3
4 #if !defined(_TRACE_RANDOM_H) || defined(TRACE_HEADER_MULTI_READ)
5 #define _TRACE_RANDOM_H
6
7 #include <linux/writeback.h>
8 #include <linux/tracepoint.h>
9
10 DECLARE_EVENT_CLASS(random__mix_pool_bytes,
11 TP_PROTO(const char *pool_name, int bytes, unsigned long IP),
12
13 TP_ARGS(pool_name, bytes, IP),
14
15 TP_STRUCT__entry(
16 __string( pool_name, pool_name )
17 __field( int, bytes )
18 __field(unsigned long, IP )
19 ),
20
21 TP_fast_assign(
22 tp_strcpy(pool_name, pool_name)
23 tp_assign(bytes, bytes)
24 tp_assign(IP, IP)
25 ),
26
27 TP_printk("%s pool: bytes %d caller %pF",
28 __get_str(pool_name), __entry->bytes, (void *)__entry->IP)
29 )
30
31 DEFINE_EVENT(random__mix_pool_bytes, mix_pool_bytes,
32 TP_PROTO(const char *pool_name, int bytes, unsigned long IP),
33
34 TP_ARGS(pool_name, bytes, IP)
35 )
36
37 DEFINE_EVENT(random__mix_pool_bytes, mix_pool_bytes_nolock,
38 TP_PROTO(const char *pool_name, int bytes, unsigned long IP),
39
40 TP_ARGS(pool_name, bytes, IP)
41 )
42
43 TRACE_EVENT(credit_entropy_bits,
44 TP_PROTO(const char *pool_name, int bits, int entropy_count,
45 int entropy_total, unsigned long IP),
46
47 TP_ARGS(pool_name, bits, entropy_count, entropy_total, IP),
48
49 TP_STRUCT__entry(
50 __string( pool_name, pool_name )
51 __field( int, bits )
52 __field( int, entropy_count )
53 __field( int, entropy_total )
54 __field(unsigned long, IP )
55 ),
56
57 TP_fast_assign(
58 tp_strcpy(pool_name, pool_name)
59 tp_assign(bits, bits)
60 tp_assign(entropy_count, entropy_count)
61 tp_assign(entropy_total, entropy_total)
62 tp_assign(IP, IP)
63 ),
64
65 TP_printk("%s pool: bits %d entropy_count %d entropy_total %d "
66 "caller %pF", __get_str(pool_name), __entry->bits,
67 __entry->entropy_count, __entry->entropy_total,
68 (void *)__entry->IP)
69 )
70
71 TRACE_EVENT(get_random_bytes,
72 TP_PROTO(int nbytes, unsigned long IP),
73
74 TP_ARGS(nbytes, IP),
75
76 TP_STRUCT__entry(
77 __field( int, nbytes )
78 __field(unsigned long, IP )
79 ),
80
81 TP_fast_assign(
82 tp_assign(nbytes, nbytes)
83 tp_assign(IP, IP)
84 ),
85
86 TP_printk("nbytes %d caller %pF", __entry->nbytes, (void *)__entry->IP)
87 )
88
89 DECLARE_EVENT_CLASS(random__extract_entropy,
90 TP_PROTO(const char *pool_name, int nbytes, int entropy_count,
91 unsigned long IP),
92
93 TP_ARGS(pool_name, nbytes, entropy_count, IP),
94
95 TP_STRUCT__entry(
96 __string( pool_name, pool_name )
97 __field( int, nbytes )
98 __field( int, entropy_count )
99 __field(unsigned long, IP )
100 ),
101
102 TP_fast_assign(
103 tp_strcpy(pool_name, pool_name)
104 tp_assign(nbytes, nbytes)
105 tp_assign(entropy_count, entropy_count)
106 tp_assign(IP, IP)
107 ),
108
109 TP_printk("%s pool: nbytes %d entropy_count %d caller %pF",
110 __get_str(pool_name), __entry->nbytes, __entry->entropy_count,
111 (void *)__entry->IP)
112 )
113
114
115 DEFINE_EVENT(random__extract_entropy, extract_entropy,
116 TP_PROTO(const char *pool_name, int nbytes, int entropy_count,
117 unsigned long IP),
118
119 TP_ARGS(pool_name, nbytes, entropy_count, IP)
120 )
121
122 DEFINE_EVENT(random__extract_entropy, extract_entropy_user,
123 TP_PROTO(const char *pool_name, int nbytes, int entropy_count,
124 unsigned long IP),
125
126 TP_ARGS(pool_name, nbytes, entropy_count, IP)
127 )
128
129
130
131 #endif /* _TRACE_RANDOM_H */
132
133 /* This part must be outside protection */
134 #include "../../../probes/define_trace.h"
This page took 0.032535 seconds and 5 git commands to generate.