1#undef TRACE_SYSTEM
2#define TRACE_SYSTEM power
3
4#if !defined(_TRACE_POWER_CPU_MIGRATE_H) || defined(TRACE_HEADER_MULTI_READ)
5#define _TRACE_POWER_CPU_MIGRATE_H
6
7#include <linux/tracepoint.h>
8
9#define __cpu_migrate_proto			\
10	TP_PROTO(u64 timestamp,			\
11		 u32 cpu_hwid)
12#define __cpu_migrate_args			\
13	TP_ARGS(timestamp,			\
14		cpu_hwid)
15
16DECLARE_EVENT_CLASS(cpu_migrate,
17
18	__cpu_migrate_proto,
19	__cpu_migrate_args,
20
21	TP_STRUCT__entry(
22		__field(u64,	timestamp		)
23		__field(u32,	cpu_hwid		)
24	),
25
26	TP_fast_assign(
27		__entry->timestamp = timestamp;
28		__entry->cpu_hwid = cpu_hwid;
29	),
30
31	TP_printk("timestamp=%llu cpu_hwid=0x%08lX",
32		(unsigned long long)__entry->timestamp,
33		(unsigned long)__entry->cpu_hwid
34	)
35);
36
37#define __define_cpu_migrate_event(name)		\
38	DEFINE_EVENT(cpu_migrate, cpu_migrate_##name,	\
39		__cpu_migrate_proto,			\
40		__cpu_migrate_args			\
41	)
42
43__define_cpu_migrate_event(begin);
44__define_cpu_migrate_event(finish);
45__define_cpu_migrate_event(current);
46
47#undef __define_cpu_migrate
48#undef __cpu_migrate_proto
49#undef __cpu_migrate_args
50
51/* This file can get included multiple times, TRACE_HEADER_MULTI_READ at top */
52#ifndef _PWR_CPU_MIGRATE_EVENT_AVOID_DOUBLE_DEFINING
53#define _PWR_CPU_MIGRATE_EVENT_AVOID_DOUBLE_DEFINING
54
55/*
56 * Set from_phys_cpu and to_phys_cpu to CPU_MIGRATE_ALL_CPUS to indicate
57 * a whole-cluster migration:
58 */
59#define CPU_MIGRATE_ALL_CPUS 0x80000000U
60#endif
61
62#endif /* _TRACE_POWER_CPU_MIGRATE_H */
63
64/* This part must be outside protection */
65#undef TRACE_INCLUDE_FILE
66#define TRACE_INCLUDE_FILE power_cpu_migrate
67#include <trace/define_trace.h>
68