1#if !defined(_TRACE_KVM_H) || defined(TRACE_HEADER_MULTI_READ)
2#define _TRACE_KVM_H
3
4#include <linux/tracepoint.h>
5
6#undef TRACE_SYSTEM
7#define TRACE_SYSTEM kvm
8
9/*
10 * Tracepoints for vgic
11 */
12TRACE_EVENT(vgic_update_irq_pending,
13	TP_PROTO(unsigned long vcpu_id, __u32 irq, bool level),
14	TP_ARGS(vcpu_id, irq, level),
15
16	TP_STRUCT__entry(
17		__field(	unsigned long,	vcpu_id	)
18		__field(	__u32,		irq	)
19		__field(	bool,		level	)
20	),
21
22	TP_fast_assign(
23		__entry->vcpu_id	= vcpu_id;
24		__entry->irq		= irq;
25		__entry->level		= level;
26	),
27
28	TP_printk("VCPU: %ld, IRQ %d, level: %d",
29		  __entry->vcpu_id, __entry->irq, __entry->level)
30);
31
32/*
33 * Tracepoints for arch_timer
34 */
35TRACE_EVENT(kvm_timer_update_irq,
36	TP_PROTO(unsigned long vcpu_id, __u32 irq, int level),
37	TP_ARGS(vcpu_id, irq, level),
38
39	TP_STRUCT__entry(
40		__field(	unsigned long,	vcpu_id	)
41		__field(	__u32,		irq	)
42		__field(	int,		level	)
43	),
44
45	TP_fast_assign(
46		__entry->vcpu_id	= vcpu_id;
47		__entry->irq		= irq;
48		__entry->level		= level;
49	),
50
51	TP_printk("VCPU: %ld, IRQ %d, level %d",
52		  __entry->vcpu_id, __entry->irq, __entry->level)
53);
54
55#endif /* _TRACE_KVM_H */
56
57#undef TRACE_INCLUDE_PATH
58#define TRACE_INCLUDE_PATH ../../../virt/kvm/arm
59#undef TRACE_INCLUDE_FILE
60#define TRACE_INCLUDE_FILE trace
61
62/* This part must be outside protection */
63#include <trace/define_trace.h>
64