18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
28c2ecf20Sopenharmony_ci#undef TRACE_SYSTEM
38c2ecf20Sopenharmony_ci#define TRACE_SYSTEM power
48c2ecf20Sopenharmony_ci
58c2ecf20Sopenharmony_ci#if !defined(_TRACE_POWER_CPU_MIGRATE_H) || defined(TRACE_HEADER_MULTI_READ)
68c2ecf20Sopenharmony_ci#define _TRACE_POWER_CPU_MIGRATE_H
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_ci#include <linux/tracepoint.h>
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_ci#define __cpu_migrate_proto			\
118c2ecf20Sopenharmony_ci	TP_PROTO(u64 timestamp,			\
128c2ecf20Sopenharmony_ci		 u32 cpu_hwid)
138c2ecf20Sopenharmony_ci#define __cpu_migrate_args			\
148c2ecf20Sopenharmony_ci	TP_ARGS(timestamp,			\
158c2ecf20Sopenharmony_ci		cpu_hwid)
168c2ecf20Sopenharmony_ci
178c2ecf20Sopenharmony_ciDECLARE_EVENT_CLASS(cpu_migrate,
188c2ecf20Sopenharmony_ci
198c2ecf20Sopenharmony_ci	__cpu_migrate_proto,
208c2ecf20Sopenharmony_ci	__cpu_migrate_args,
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_ci	TP_STRUCT__entry(
238c2ecf20Sopenharmony_ci		__field(u64,	timestamp		)
248c2ecf20Sopenharmony_ci		__field(u32,	cpu_hwid		)
258c2ecf20Sopenharmony_ci	),
268c2ecf20Sopenharmony_ci
278c2ecf20Sopenharmony_ci	TP_fast_assign(
288c2ecf20Sopenharmony_ci		__entry->timestamp = timestamp;
298c2ecf20Sopenharmony_ci		__entry->cpu_hwid = cpu_hwid;
308c2ecf20Sopenharmony_ci	),
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_ci	TP_printk("timestamp=%llu cpu_hwid=0x%08lX",
338c2ecf20Sopenharmony_ci		(unsigned long long)__entry->timestamp,
348c2ecf20Sopenharmony_ci		(unsigned long)__entry->cpu_hwid
358c2ecf20Sopenharmony_ci	)
368c2ecf20Sopenharmony_ci);
378c2ecf20Sopenharmony_ci
388c2ecf20Sopenharmony_ci#define __define_cpu_migrate_event(name)		\
398c2ecf20Sopenharmony_ci	DEFINE_EVENT(cpu_migrate, cpu_migrate_##name,	\
408c2ecf20Sopenharmony_ci		__cpu_migrate_proto,			\
418c2ecf20Sopenharmony_ci		__cpu_migrate_args			\
428c2ecf20Sopenharmony_ci	)
438c2ecf20Sopenharmony_ci
448c2ecf20Sopenharmony_ci__define_cpu_migrate_event(begin);
458c2ecf20Sopenharmony_ci__define_cpu_migrate_event(finish);
468c2ecf20Sopenharmony_ci__define_cpu_migrate_event(current);
478c2ecf20Sopenharmony_ci
488c2ecf20Sopenharmony_ci#undef __define_cpu_migrate
498c2ecf20Sopenharmony_ci#undef __cpu_migrate_proto
508c2ecf20Sopenharmony_ci#undef __cpu_migrate_args
518c2ecf20Sopenharmony_ci
528c2ecf20Sopenharmony_ci/* This file can get included multiple times, TRACE_HEADER_MULTI_READ at top */
538c2ecf20Sopenharmony_ci#ifndef _PWR_CPU_MIGRATE_EVENT_AVOID_DOUBLE_DEFINING
548c2ecf20Sopenharmony_ci#define _PWR_CPU_MIGRATE_EVENT_AVOID_DOUBLE_DEFINING
558c2ecf20Sopenharmony_ci
568c2ecf20Sopenharmony_ci/*
578c2ecf20Sopenharmony_ci * Set from_phys_cpu and to_phys_cpu to CPU_MIGRATE_ALL_CPUS to indicate
588c2ecf20Sopenharmony_ci * a whole-cluster migration:
598c2ecf20Sopenharmony_ci */
608c2ecf20Sopenharmony_ci#define CPU_MIGRATE_ALL_CPUS 0x80000000U
618c2ecf20Sopenharmony_ci#endif
628c2ecf20Sopenharmony_ci
638c2ecf20Sopenharmony_ci#endif /* _TRACE_POWER_CPU_MIGRATE_H */
648c2ecf20Sopenharmony_ci
658c2ecf20Sopenharmony_ci/* This part must be outside protection */
668c2ecf20Sopenharmony_ci#undef TRACE_INCLUDE_FILE
678c2ecf20Sopenharmony_ci#define TRACE_INCLUDE_FILE power_cpu_migrate
688c2ecf20Sopenharmony_ci#include <trace/define_trace.h>
69