Rename LTTng instrumentation macros
[lttng-modules.git] / instrumentation / events / lttng-module / power.h
CommitLineData
b283666f
PW
1#undef TRACE_SYSTEM
2#define TRACE_SYSTEM power
3
3bc29f0a
MD
4#if !defined(LTTNG_TRACE_POWER_H) || defined(TRACE_HEADER_MULTI_READ)
5#define LTTNG_TRACE_POWER_H
b283666f 6
3bc29f0a 7#include "../../../probes/lttng-tracepoint-event.h"
b283666f 8#include <linux/ktime.h>
7c68b363 9#include <linux/version.h>
b283666f 10
7c68b363 11#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,38))
3bc29f0a 12LTTNG_TRACEPOINT_EVENT_CLASS(power_cpu,
b283666f
PW
13
14 TP_PROTO(unsigned int state, unsigned int cpu_id),
15
16 TP_ARGS(state, cpu_id),
17
18 TP_STRUCT__entry(
19 __field( u32, state )
20 __field( u32, cpu_id )
21 ),
22
23 TP_fast_assign(
d3ac4d63
PW
24 tp_assign(state, state)
25 tp_assign(cpu_id, cpu_id)
b283666f
PW
26 ),
27
28 TP_printk("state=%lu cpu_id=%lu", (unsigned long)__entry->state,
29 (unsigned long)__entry->cpu_id)
30)
31
3bc29f0a 32LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(power_cpu, cpu_idle,
9cf29d3e
MD
33
34 power_cpu_idle,
b283666f
PW
35
36 TP_PROTO(unsigned int state, unsigned int cpu_id),
37
38 TP_ARGS(state, cpu_id)
39)
40
41/* This file can get included multiple times, TRACE_HEADER_MULTI_READ at top */
42#ifndef _PWR_EVENT_AVOID_DOUBLE_DEFINING
43#define _PWR_EVENT_AVOID_DOUBLE_DEFINING
44
45#define PWR_EVENT_EXIT -1
46#endif
47
3bc29f0a 48LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(power_cpu, cpu_frequency,
9cf29d3e
MD
49
50 power_cpu_frequency,
b283666f
PW
51
52 TP_PROTO(unsigned int frequency, unsigned int cpu_id),
53
54 TP_ARGS(frequency, cpu_id)
55)
56
3bc29f0a 57LTTNG_TRACEPOINT_EVENT_MAP(machine_suspend,
9cf29d3e
MD
58
59 power_machine_suspend,
b283666f
PW
60
61 TP_PROTO(unsigned int state),
62
63 TP_ARGS(state),
64
65 TP_STRUCT__entry(
66 __field( u32, state )
67 ),
68
69 TP_fast_assign(
d3ac4d63 70 tp_assign(state, state)
b283666f
PW
71 ),
72
73 TP_printk("state=%lu", (unsigned long)__entry->state)
74)
7c68b363
AG
75#endif
76
77#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0))
3bc29f0a 78LTTNG_TRACEPOINT_EVENT_CLASS(power_wakeup_source,
7c68b363
AG
79
80 TP_PROTO(const char *name, unsigned int state),
81
82 TP_ARGS(name, state),
83
84 TP_STRUCT__entry(
85 __string( name, name )
86 __field( u64, state )
87 ),
88
89 TP_fast_assign(
90 tp_strcpy(name, name)
91 tp_assign(state, state)
92 ),
93
94 TP_printk("%s state=0x%lx", __get_str(name),
95 (unsigned long)__entry->state)
96)
97
3bc29f0a 98LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(power_wakeup_source, wakeup_source_activate,
9cf29d3e
MD
99
100 power_wakeup_source_activate,
7c68b363
AG
101
102 TP_PROTO(const char *name, unsigned int state),
103
104 TP_ARGS(name, state)
105)
106
3bc29f0a 107LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(power_wakeup_source, wakeup_source_deactivate,
9cf29d3e
MD
108
109 power_wakeup_source_deactivate,
7c68b363
AG
110
111 TP_PROTO(const char *name, unsigned int state),
112
113 TP_ARGS(name, state)
114)
115#endif
116
117#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,38))
118#undef CONFIG_EVENT_POWER_TRACING_DEPRECATED
119#define CONFIG_EVENT_POWER_TRACING_DEPRECATED
120#define _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED
121#endif
b283666f 122
b283666f
PW
123#ifdef CONFIG_EVENT_POWER_TRACING_DEPRECATED
124
125/*
126 * The power events are used for cpuidle & suspend (power_start, power_end)
127 * and for cpufreq (power_frequency)
128 */
3bc29f0a 129LTTNG_TRACEPOINT_EVENT_CLASS(power,
b283666f 130
7c68b363 131#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36))
b283666f
PW
132 TP_PROTO(unsigned int type, unsigned int state, unsigned int cpu_id),
133
134 TP_ARGS(type, state, cpu_id),
7c68b363
AG
135#else
136 TP_PROTO(unsigned int type, unsigned int state),
137
138 TP_ARGS(type, state),
139#endif
b283666f
PW
140
141 TP_STRUCT__entry(
142 __field( u64, type )
143 __field( u64, state )
7c68b363 144#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36))
b283666f 145 __field( u64, cpu_id )
7c68b363 146#endif
b283666f
PW
147 ),
148
149 TP_fast_assign(
d3ac4d63
PW
150 tp_assign(type, type)
151 tp_assign(state, state)
7c68b363 152#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36))
d3ac4d63 153 tp_assign(cpu_id, cpu_id)
7c68b363 154#endif
b283666f
PW
155 ),
156
7c68b363 157#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36))
b283666f
PW
158 TP_printk("type=%lu state=%lu cpu_id=%lu", (unsigned long)__entry->type,
159 (unsigned long)__entry->state, (unsigned long)__entry->cpu_id)
7c68b363
AG
160#else
161 TP_printk("type=%lu state=%lu", (unsigned long)__entry->type,
162 (unsigned long)__entry->state)
163#endif
b283666f
PW
164)
165
3bc29f0a 166LTTNG_TRACEPOINT_EVENT_INSTANCE(power, power_start,
b283666f 167
7c68b363 168#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36))
b283666f
PW
169 TP_PROTO(unsigned int type, unsigned int state, unsigned int cpu_id),
170
171 TP_ARGS(type, state, cpu_id)
7c68b363
AG
172#else
173 TP_PROTO(unsigned int type, unsigned int state),
174
175 TP_ARGS(type, state)
176#endif
b283666f
PW
177)
178
3bc29f0a 179LTTNG_TRACEPOINT_EVENT_INSTANCE(power, power_frequency,
b283666f 180
7c68b363 181#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36))
b283666f
PW
182 TP_PROTO(unsigned int type, unsigned int state, unsigned int cpu_id),
183
184 TP_ARGS(type, state, cpu_id)
7c68b363
AG
185#else
186 TP_PROTO(unsigned int type, unsigned int state),
187
188 TP_ARGS(type, state)
189#endif
b283666f
PW
190)
191
3bc29f0a 192LTTNG_TRACEPOINT_EVENT(power_end,
b283666f 193
7c68b363 194#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36))
b283666f
PW
195 TP_PROTO(unsigned int cpu_id),
196
197 TP_ARGS(cpu_id),
7c68b363
AG
198#else
199 TP_PROTO(int dummy),
200
201 TP_ARGS(dummy),
202#endif
b283666f
PW
203
204 TP_STRUCT__entry(
7c68b363 205#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36))
b283666f 206 __field( u64, cpu_id )
7c68b363
AG
207#else
208 __field( u64, dummy )
209#endif
b283666f
PW
210 ),
211
212 TP_fast_assign(
7c68b363 213#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36))
d3ac4d63 214 tp_assign(cpu_id, cpu_id)
7c68b363
AG
215#else
216 tp_assign(dummy, 0xffff)
217#endif
b283666f
PW
218 ),
219
7c68b363 220#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36))
b283666f 221 TP_printk("cpu_id=%lu", (unsigned long)__entry->cpu_id)
7c68b363
AG
222#else
223 TP_printk("dummy=%lu", (unsigned long)__entry->dummy)
224#endif
b283666f
PW
225)
226
227/* Deprecated dummy functions must be protected against multi-declartion */
228#ifndef _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED
229#define _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED
230
231enum {
232 POWER_NONE = 0,
233 POWER_CSTATE = 1,
234 POWER_PSTATE = 2,
235};
236#endif /* _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED */
237
238#else /* CONFIG_EVENT_POWER_TRACING_DEPRECATED */
239
240#ifndef _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED
241#define _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED
242enum {
243 POWER_NONE = 0,
244 POWER_CSTATE = 1,
245 POWER_PSTATE = 2,
246};
247
248/* These dummy declaration have to be ripped out when the deprecated
249 events get removed */
250static inline void trace_power_start(u64 type, u64 state, u64 cpuid) {};
251static inline void trace_power_end(u64 cpuid) {};
7c68b363
AG
252#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
253static inline void trace_power_start_rcuidle(u64 type, u64 state, u64 cpuid) {};
254static inline void trace_power_end_rcuidle(u64 cpuid) {};
255#endif
b283666f
PW
256static inline void trace_power_frequency(u64 type, u64 state, u64 cpuid) {};
257#endif /* _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED */
258
259#endif /* CONFIG_EVENT_POWER_TRACING_DEPRECATED */
260
7c68b363 261#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
b283666f
PW
262/*
263 * The clock events are used for clock enable/disable and for
264 * clock rate change
265 */
3bc29f0a 266LTTNG_TRACEPOINT_EVENT_CLASS(power_clock,
b283666f
PW
267
268 TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id),
269
270 TP_ARGS(name, state, cpu_id),
271
272 TP_STRUCT__entry(
273 __string( name, name )
274 __field( u64, state )
275 __field( u64, cpu_id )
276 ),
277
278 TP_fast_assign(
d3ac4d63
PW
279 tp_strcpy(name, name)
280 tp_assign(state, state)
281 tp_assign(cpu_id, cpu_id)
b283666f
PW
282 ),
283
284 TP_printk("%s state=%lu cpu_id=%lu", __get_str(name),
285 (unsigned long)__entry->state, (unsigned long)__entry->cpu_id)
286)
287
3bc29f0a 288LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(power_clock, clock_enable,
9cf29d3e
MD
289
290 power_clock_enable,
b283666f
PW
291
292 TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id),
293
294 TP_ARGS(name, state, cpu_id)
295)
296
3bc29f0a 297LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(power_clock, clock_disable,
9cf29d3e
MD
298
299 power_clock_disable,
b283666f
PW
300
301 TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id),
302
303 TP_ARGS(name, state, cpu_id)
304)
305
3bc29f0a 306LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(power_clock, clock_set_rate,
9cf29d3e
MD
307
308 power_clock_set_rate,
b283666f
PW
309
310 TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id),
311
312 TP_ARGS(name, state, cpu_id)
313)
314
315/*
316 * The power domain events are used for power domains transitions
317 */
3bc29f0a 318LTTNG_TRACEPOINT_EVENT_CLASS(power_domain,
b283666f
PW
319
320 TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id),
321
322 TP_ARGS(name, state, cpu_id),
323
324 TP_STRUCT__entry(
325 __string( name, name )
326 __field( u64, state )
327 __field( u64, cpu_id )
328 ),
329
330 TP_fast_assign(
d3ac4d63
PW
331 tp_strcpy(name, name)
332 tp_assign(state, state)
333 tp_assign(cpu_id, cpu_id)
b283666f
PW
334),
335
336 TP_printk("%s state=%lu cpu_id=%lu", __get_str(name),
337 (unsigned long)__entry->state, (unsigned long)__entry->cpu_id)
338)
339
3bc29f0a 340LTTNG_TRACEPOINT_EVENT_INSTANCE(power_domain, power_domain_target,
b283666f
PW
341
342 TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id),
343
344 TP_ARGS(name, state, cpu_id)
345)
7c68b363
AG
346#endif
347
3bc29f0a 348#endif /* LTTNG_TRACE_POWER_H */
b283666f
PW
349
350/* This part must be outside protection */
351#include "../../../probes/define_trace.h"
This page took 0.039917 seconds and 4 git commands to generate.