Fix: regmap instrumentation for Linux 3.19.4 and 4.0
[lttng-modules.git] / instrumentation / events / lttng-module / regmap.h
CommitLineData
b87700e3
AG
1#undef TRACE_SYSTEM
2#define TRACE_SYSTEM regmap
3
3bc29f0a
MD
4#if !defined(LTTNG_TRACE_REGMAP_H) || defined(TRACE_HEADER_MULTI_READ)
5#define LTTNG_TRACE_REGMAP_H
b87700e3 6
3bc29f0a 7#include "../../../probes/lttng-tracepoint-event.h"
b87700e3 8#include <linux/ktime.h>
b87700e3
AG
9#include <linux/version.h>
10
11#ifndef _TRACE_REGMAP_DEF_
12#define _TRACE_REGMAP_DEF_
13struct device;
14struct regmap;
15#endif
16
6bdc39b1
SM
17#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,4))
18/*
19 * Log register events
20 */
21LTTNG_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)
34LTTNG_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
42LTTNG_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
b87700e3
AG
50/*
51 * Log register events
52 */
3bc29f0a 53LTTNG_TRACEPOINT_EVENT_CLASS(regmap_reg,
b87700e3
AG
54
55 TP_PROTO(struct device *dev, unsigned int reg,
56 unsigned int val),
57
58 TP_ARGS(dev, reg, val),
59
f127e61e
MD
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 )
b87700e3
AG
65)
66
3bc29f0a 67LTTNG_TRACEPOINT_EVENT_INSTANCE(regmap_reg, regmap_reg_write,
b87700e3
AG
68
69 TP_PROTO(struct device *dev, unsigned int reg,
70 unsigned int val),
71
72 TP_ARGS(dev, reg, val)
b87700e3
AG
73)
74
3bc29f0a 75LTTNG_TRACEPOINT_EVENT_INSTANCE(regmap_reg, regmap_reg_read,
b87700e3
AG
76
77 TP_PROTO(struct device *dev, unsigned int reg,
78 unsigned int val),
79
80 TP_ARGS(dev, reg, val)
b87700e3 81)
6bdc39b1
SM
82#endif
83
84#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,4))
85LTTNG_TRACEPOINT_EVENT_INSTANCE(regmap_reg, regmap_reg_read_cache,
86
87 TP_PROTO(struct regmap *map, unsigned int reg,
88 unsigned int val),
b87700e3 89
6bdc39b1
SM
90 TP_ARGS(map, reg, val)
91)
92#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0))
3bc29f0a 93LTTNG_TRACEPOINT_EVENT_INSTANCE(regmap_reg, regmap_reg_read_cache,
b87700e3
AG
94
95 TP_PROTO(struct device *dev, unsigned int reg,
96 unsigned int val),
97
98 TP_ARGS(dev, reg, val)
b87700e3
AG
99)
100#endif
101
6bdc39b1
SM
102#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,4))
103LTTNG_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
116LTTNG_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
123LTTNG_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
130LTTNG_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
137LTTNG_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
3bc29f0a 144LTTNG_TRACEPOINT_EVENT_CLASS(regmap_block,
b87700e3
AG
145
146 TP_PROTO(struct device *dev, unsigned int reg, int count),
147
148 TP_ARGS(dev, reg, count),
149
f127e61e
MD
150 TP_FIELDS(
151 ctf_string(name, dev_name(dev))
152 ctf_integer(unsigned int, reg, reg)
153 ctf_integer(int, count, count)
154 )
b87700e3
AG
155)
156
3bc29f0a 157LTTNG_TRACEPOINT_EVENT_INSTANCE(regmap_block, regmap_hw_read_start,
b87700e3
AG
158
159 TP_PROTO(struct device *dev, unsigned int reg, int count),
160
161 TP_ARGS(dev, reg, count)
162)
163
3bc29f0a 164LTTNG_TRACEPOINT_EVENT_INSTANCE(regmap_block, regmap_hw_read_done,
b87700e3
AG
165
166 TP_PROTO(struct device *dev, unsigned int reg, int count),
167
168 TP_ARGS(dev, reg, count)
169)
170
3bc29f0a 171LTTNG_TRACEPOINT_EVENT_INSTANCE(regmap_block, regmap_hw_write_start,
b87700e3
AG
172
173 TP_PROTO(struct device *dev, unsigned int reg, int count),
174
175 TP_ARGS(dev, reg, count)
176)
177
3bc29f0a 178LTTNG_TRACEPOINT_EVENT_INSTANCE(regmap_block, regmap_hw_write_done,
b87700e3
AG
179
180 TP_PROTO(struct device *dev, unsigned int reg, int count),
181
182 TP_ARGS(dev, reg, count)
183)
6bdc39b1
SM
184#endif
185
186#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,4))
187LTTNG_TRACEPOINT_EVENT_MAP(regcache_sync,
188
189 regmap_regcache_sync,
b87700e3 190
6bdc39b1
SM
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
9bbf98da
MD
203LTTNG_TRACEPOINT_EVENT_MAP(regcache_sync,
204
205 regmap_regcache_sync,
b87700e3
AG
206
207 TP_PROTO(struct device *dev, const char *type,
208 const char *status),
209
210 TP_ARGS(dev, type, status),
211
f127e61e
MD
212 TP_FIELDS(
213 ctf_string(name, dev_name(dev))
214 ctf_string(status, status)
215 ctf_string(type, type)
216 )
b87700e3 217)
6bdc39b1
SM
218#endif
219
220#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,19,4))
221LTTNG_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)
b87700e3 232
6bdc39b1
SM
233LTTNG_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
240LTTNG_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))
3bc29f0a 248LTTNG_TRACEPOINT_EVENT_CLASS(regmap_bool,
b87700e3
AG
249
250 TP_PROTO(struct device *dev, bool flag),
251
252 TP_ARGS(dev, flag),
253
f127e61e
MD
254 TP_FIELDS(
255 ctf_string(name, dev_name(dev))
256 ctf_integer(int, flag, flag)
257 )
b87700e3
AG
258)
259
3bc29f0a 260LTTNG_TRACEPOINT_EVENT_INSTANCE(regmap_bool, regmap_cache_only,
b87700e3
AG
261
262 TP_PROTO(struct device *dev, bool flag),
263
264 TP_ARGS(dev, flag)
b87700e3
AG
265)
266
3bc29f0a 267LTTNG_TRACEPOINT_EVENT_INSTANCE(regmap_bool, regmap_cache_bypass,
b87700e3
AG
268
269 TP_PROTO(struct device *dev, bool flag),
270
271 TP_ARGS(dev, flag)
b87700e3
AG
272)
273#endif
274
3bc29f0a 275#endif /* LTTNG_TRACE_REGMAP_H */
b87700e3
AG
276
277/* This part must be outside protection */
278#include "../../../probes/define_trace.h"
This page took 0.037753 seconds and 4 git commands to generate.