Fix: regmap instrumentation for Linux 3.19.4 and 4.0
[deliverable/lttng-modules.git] / instrumentation / events / lttng-module / regmap.h
1 #undef TRACE_SYSTEM
2 #define TRACE_SYSTEM regmap
3
4 #if !defined(LTTNG_TRACE_REGMAP_H) || defined(TRACE_HEADER_MULTI_READ)
5 #define LTTNG_TRACE_REGMAP_H
6
7 #include "../../../probes/lttng-tracepoint-event.h"
8 #include <linux/ktime.h>
9 #include <linux/version.h>
10
11 #ifndef _TRACE_REGMAP_DEF_
12 #define _TRACE_REGMAP_DEF_
13 struct device;
14 struct regmap;
15 #endif
16
17 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,4))
18 /*
19 * Log register events
20 */
21 LTTNG_TRACEPOINT_EVENT_CLASS(regmap_reg,
22
23 TP_PROTO(struct regmap *map, unsigned int reg,
24 unsigned int val),
25
26 TP_ARGS(map, reg, val),
27
28 TP_FIELDS(
29 ctf_string(name, regmap_name(map))
30 ctf_integer(unsigned int, reg, reg)
31 ctf_integer(unsigned int, val, val)
32 )
33 )
34 LTTNG_TRACEPOINT_EVENT_INSTANCE(regmap_reg, regmap_reg_write,
35
36 TP_PROTO(struct regmap *map, unsigned int reg,
37 unsigned int val),
38
39 TP_ARGS(map, reg, val)
40 )
41
42 LTTNG_TRACEPOINT_EVENT_INSTANCE(regmap_reg, regmap_reg_read,
43
44 TP_PROTO(struct regmap *map, unsigned int reg,
45 unsigned int val),
46
47 TP_ARGS(map, reg, val)
48 )
49 #else
50 /*
51 * Log register events
52 */
53 LTTNG_TRACEPOINT_EVENT_CLASS(regmap_reg,
54
55 TP_PROTO(struct device *dev, unsigned int reg,
56 unsigned int val),
57
58 TP_ARGS(dev, reg, val),
59
60 TP_FIELDS(
61 ctf_string(name, dev_name(dev))
62 ctf_integer(unsigned int, reg, reg)
63 ctf_integer(unsigned int, val, val)
64 )
65 )
66
67 LTTNG_TRACEPOINT_EVENT_INSTANCE(regmap_reg, regmap_reg_write,
68
69 TP_PROTO(struct device *dev, unsigned int reg,
70 unsigned int val),
71
72 TP_ARGS(dev, reg, val)
73 )
74
75 LTTNG_TRACEPOINT_EVENT_INSTANCE(regmap_reg, regmap_reg_read,
76
77 TP_PROTO(struct device *dev, unsigned int reg,
78 unsigned int val),
79
80 TP_ARGS(dev, reg, val)
81 )
82 #endif
83
84 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,4))
85 LTTNG_TRACEPOINT_EVENT_INSTANCE(regmap_reg, regmap_reg_read_cache,
86
87 TP_PROTO(struct regmap *map, unsigned int reg,
88 unsigned int val),
89
90 TP_ARGS(map, reg, val)
91 )
92 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
93 LTTNG_TRACEPOINT_EVENT_INSTANCE(regmap_reg, regmap_reg_read_cache,
94
95 TP_PROTO(struct device *dev, unsigned int reg,
96 unsigned int val),
97
98 TP_ARGS(dev, reg, val)
99 )
100 #endif
101
102 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,4))
103 LTTNG_TRACEPOINT_EVENT_CLASS(regmap_block,
104
105 TP_PROTO(struct regmap *map, unsigned int reg, int count),
106
107 TP_ARGS(map, reg, count),
108
109 TP_FIELDS(
110 ctf_string(name, regmap_name(map))
111 ctf_integer(unsigned int, reg, reg)
112 ctf_integer(int, count, count)
113 )
114 )
115
116 LTTNG_TRACEPOINT_EVENT_INSTANCE(regmap_block, regmap_hw_read_start,
117
118 TP_PROTO(struct regmap *map, unsigned int reg, int count),
119
120 TP_ARGS(map, reg, count)
121 )
122
123 LTTNG_TRACEPOINT_EVENT_INSTANCE(regmap_block, regmap_hw_read_done,
124
125 TP_PROTO(struct regmap *map, unsigned int reg, int count),
126
127 TP_ARGS(map, reg, count)
128 )
129
130 LTTNG_TRACEPOINT_EVENT_INSTANCE(regmap_block, regmap_hw_write_start,
131
132 TP_PROTO(struct regmap *map, unsigned int reg, int count),
133
134 TP_ARGS(map, reg, count)
135 )
136
137 LTTNG_TRACEPOINT_EVENT_INSTANCE(regmap_block, regmap_hw_write_done,
138
139 TP_PROTO(struct regmap *map, unsigned int reg, int count),
140
141 TP_ARGS(map, reg, count)
142 )
143 #else
144 LTTNG_TRACEPOINT_EVENT_CLASS(regmap_block,
145
146 TP_PROTO(struct device *dev, unsigned int reg, int count),
147
148 TP_ARGS(dev, reg, count),
149
150 TP_FIELDS(
151 ctf_string(name, dev_name(dev))
152 ctf_integer(unsigned int, reg, reg)
153 ctf_integer(int, count, count)
154 )
155 )
156
157 LTTNG_TRACEPOINT_EVENT_INSTANCE(regmap_block, regmap_hw_read_start,
158
159 TP_PROTO(struct device *dev, unsigned int reg, int count),
160
161 TP_ARGS(dev, reg, count)
162 )
163
164 LTTNG_TRACEPOINT_EVENT_INSTANCE(regmap_block, regmap_hw_read_done,
165
166 TP_PROTO(struct device *dev, unsigned int reg, int count),
167
168 TP_ARGS(dev, reg, count)
169 )
170
171 LTTNG_TRACEPOINT_EVENT_INSTANCE(regmap_block, regmap_hw_write_start,
172
173 TP_PROTO(struct device *dev, unsigned int reg, int count),
174
175 TP_ARGS(dev, reg, count)
176 )
177
178 LTTNG_TRACEPOINT_EVENT_INSTANCE(regmap_block, regmap_hw_write_done,
179
180 TP_PROTO(struct device *dev, unsigned int reg, int count),
181
182 TP_ARGS(dev, reg, count)
183 )
184 #endif
185
186 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,4))
187 LTTNG_TRACEPOINT_EVENT_MAP(regcache_sync,
188
189 regmap_regcache_sync,
190
191 TP_PROTO(struct regmap *map, const char *type,
192 const char *status),
193
194 TP_ARGS(map, type, status),
195
196 TP_FIELDS(
197 ctf_string(name, regmap_name(map))
198 ctf_string(status, status)
199 ctf_string(type, type)
200 )
201 )
202 #else
203 LTTNG_TRACEPOINT_EVENT_MAP(regcache_sync,
204
205 regmap_regcache_sync,
206
207 TP_PROTO(struct device *dev, const char *type,
208 const char *status),
209
210 TP_ARGS(dev, type, status),
211
212 TP_FIELDS(
213 ctf_string(name, dev_name(dev))
214 ctf_string(status, status)
215 ctf_string(type, type)
216 )
217 )
218 #endif
219
220 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,4))
221 LTTNG_TRACEPOINT_EVENT_CLASS(regmap_bool,
222
223 TP_PROTO(struct regmap *map, bool flag),
224
225 TP_ARGS(map, flag),
226
227 TP_FIELDS(
228 ctf_string(name, regmap_name(map))
229 ctf_integer(int, flag, flag)
230 )
231 )
232
233 LTTNG_TRACEPOINT_EVENT_INSTANCE(regmap_bool, regmap_cache_only,
234
235 TP_PROTO(struct regmap *map, bool flag),
236
237 TP_ARGS(map, flag)
238 )
239
240 LTTNG_TRACEPOINT_EVENT_INSTANCE(regmap_bool, regmap_cache_bypass,
241
242 TP_PROTO(struct regmap *map, bool flag),
243
244 TP_ARGS(map, flag)
245
246 )
247 #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
248 LTTNG_TRACEPOINT_EVENT_CLASS(regmap_bool,
249
250 TP_PROTO(struct device *dev, bool flag),
251
252 TP_ARGS(dev, flag),
253
254 TP_FIELDS(
255 ctf_string(name, dev_name(dev))
256 ctf_integer(int, flag, flag)
257 )
258 )
259
260 LTTNG_TRACEPOINT_EVENT_INSTANCE(regmap_bool, regmap_cache_only,
261
262 TP_PROTO(struct device *dev, bool flag),
263
264 TP_ARGS(dev, flag)
265 )
266
267 LTTNG_TRACEPOINT_EVENT_INSTANCE(regmap_bool, regmap_cache_bypass,
268
269 TP_PROTO(struct device *dev, bool flag),
270
271 TP_ARGS(dev, flag)
272 )
273 #endif
274
275 #endif /* LTTNG_TRACE_REGMAP_H */
276
277 /* This part must be outside protection */
278 #include "../../../probes/define_trace.h"
This page took 0.036314 seconds and 5 git commands to generate.