]> git.kernelconcepts.de Git - karo-tx-linux.git/blob - arch/x86/include/asm/trace/irq_vectors.h
ASoC: wm8995: Use IS_ENABLED() macro
[karo-tx-linux.git] / arch / x86 / include / asm / trace / irq_vectors.h
1 #undef TRACE_SYSTEM
2 #define TRACE_SYSTEM irq_vectors
3
4 #if !defined(_TRACE_IRQ_VECTORS_H) || defined(TRACE_HEADER_MULTI_READ)
5 #define _TRACE_IRQ_VECTORS_H
6
7 #include <linux/tracepoint.h>
8
9 extern void trace_irq_vector_regfunc(void);
10 extern void trace_irq_vector_unregfunc(void);
11
12 DECLARE_EVENT_CLASS(x86_irq_vector,
13
14         TP_PROTO(int vector),
15
16         TP_ARGS(vector),
17
18         TP_STRUCT__entry(
19                 __field(                int,    vector  )
20         ),
21
22         TP_fast_assign(
23                 __entry->vector = vector;
24         ),
25
26         TP_printk("vector=%d", __entry->vector) );
27
28 #define DEFINE_IRQ_VECTOR_EVENT(name)           \
29 DEFINE_EVENT_FN(x86_irq_vector, name##_entry,   \
30         TP_PROTO(int vector),                   \
31         TP_ARGS(vector),                        \
32         trace_irq_vector_regfunc,               \
33         trace_irq_vector_unregfunc);            \
34 DEFINE_EVENT_FN(x86_irq_vector, name##_exit,    \
35         TP_PROTO(int vector),                   \
36         TP_ARGS(vector),                        \
37         trace_irq_vector_regfunc,               \
38         trace_irq_vector_unregfunc);
39
40
41 /*
42  * local_timer - called when entering/exiting a local timer interrupt
43  * vector handler
44  */
45 DEFINE_IRQ_VECTOR_EVENT(local_timer);
46
47 /*
48  * reschedule - called when entering/exiting a reschedule vector handler
49  */
50 DEFINE_IRQ_VECTOR_EVENT(reschedule);
51
52 /*
53  * spurious_apic - called when entering/exiting a spurious apic vector handler
54  */
55 DEFINE_IRQ_VECTOR_EVENT(spurious_apic);
56
57 /*
58  * error_apic - called when entering/exiting an error apic vector handler
59  */
60 DEFINE_IRQ_VECTOR_EVENT(error_apic);
61
62 /*
63  * x86_platform_ipi - called when entering/exiting a x86 platform ipi interrupt
64  * vector handler
65  */
66 DEFINE_IRQ_VECTOR_EVENT(x86_platform_ipi);
67
68 /*
69  * irq_work - called when entering/exiting a irq work interrupt
70  * vector handler
71  */
72 DEFINE_IRQ_VECTOR_EVENT(irq_work);
73
74 /*
75  * call_function - called when entering/exiting a call function interrupt
76  * vector handler
77  */
78 DEFINE_IRQ_VECTOR_EVENT(call_function);
79
80 /*
81  * call_function_single - called when entering/exiting a call function
82  * single interrupt vector handler
83  */
84 DEFINE_IRQ_VECTOR_EVENT(call_function_single);
85
86 /*
87  * threshold_apic - called when entering/exiting a threshold apic interrupt
88  * vector handler
89  */
90 DEFINE_IRQ_VECTOR_EVENT(threshold_apic);
91
92 /*
93  * thermal_apic - called when entering/exiting a thermal apic interrupt
94  * vector handler
95  */
96 DEFINE_IRQ_VECTOR_EVENT(thermal_apic);
97
98 #undef TRACE_INCLUDE_PATH
99 #define TRACE_INCLUDE_PATH .
100 #define TRACE_INCLUDE_FILE irq_vectors
101 #endif /*  _TRACE_IRQ_VECTORS_H */
102
103 /* This part must be outside protection */
104 #include <trace/define_trace.h>